# Args

The **Args** object is passed to a script when it is invoked via a command, via the [**Func**](https://chaoses-ib.gitbook.io/directory-opus/manual/reference/scripting_reference/scripting_objects/func)**.args** property. It is used when a command added by a script has a [command line template](https://chaoses-ib.gitbook.io/directory-opus/manual/reference/command_reference/argument_types) and provides access to any arguments provided on the command line.

| Property Name      | Return Type | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------ | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| *\<argument name>* | *variant*   | <p>The <strong>Args</strong> object will have one property corresponding to each of the arguments in the command line template.</p><p>For example, if the command line template is <strong>NAME/K,SIZE/N</strong>, the <strong>Args</strong> object would have two properties, called <strong>name</strong> and <strong>size</strong>.</p><p>The type returned by each property is also defined by the template. In the above example, <strong>name</strong> would return a <em>string</em> and <strong>size</strong> an <em>int</em>.<br>A <strong>/S</strong> argument returns a <em>bool</em>, a <strong>/N</strong> argument returns an <em>int</em>, and all other argument types return a <em>string</em>. Note that a <strong>/O</strong> argument will also return a <em>bool</em> if no string value is provided on the command line.<br>If an argument is marked in the template as <strong>/M</strong> (multiple) then it returns a <a href="vector"><strong>Vector</strong></a> containing elements of the appropriate type.</p><p>If an argument was not provided on the command line by the user, its property will either return <em>bool</em> (for a <strong>/S</strong> or <strong>/O</strong> argument), or an empty variant otherwise.</p> |
| **got\_arg**       | *object*    | The **got\_arg** property returns an object with a *bool* child property for each argument in the template. It lets you test if a particular argument was provided on the command line, before you actually query for the value of the argument. For example, ***If Args.got\_arg.size Then...***                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
