---
name: "BIS_fnc_taskCreate"
type: function
status: ok
groups: ["Tasks"]
arma3_since: "1.00"
locality: {"argument": "global", "effect": "global", "server_exec": false}
source: https://community.bistudio.com/wiki/BIS_fnc_taskCreate
revid: 369829
updated: 2024-10-15T15:21:45Z
---

# BIS_fnc_taskCreate

*Function · Tasks · Arma 3 v1.00*

Locality: arguments **global** · effect **global**

## Description

Create a task.

## Syntax

```sqf
[owner, taskID, description, destination, state, priority, showNotification, type, visibleIn3D] call BIS_fnc_taskCreate
```

**Parameters:**

- **owner**: Task owner(s)
  - [Boolean](../topics/Boolean.md) - true to set task of all playable units
  - [Object](../topics/Object.md) - set task of a specific object
  - [Group](../topics/Group.md) - set tasks of all objects in the group
  - [Side](../topics/Side.md) - set tasks of all objects of the given side
  - [Array](../topics/Array.md) - collection of above types
- **taskID**:
  - [String](../topics/String.md) - Task ID
  - [Array](../topics/Array.md) - In the format of [task ID, parent task ID]
- **description**:
  - [Array](../topics/Array.md) - Task description in the format ["description", "title", "marker"] - "marker" is depreciated, functionally does nothing
    - Description and Title can also be a [format](../commands/format.md) array [ "Text", var1, var2, ... ] where Text will be localized and then formatted per client, see [#Example 4](../functions/BIS_fnc_taskCreate.md#example-4)
  - [String](../topics/String.md) - [CfgTaskDescriptions](../topics/Description.ext.md#cfgtaskdescriptions) class name, if empty string is used then [CfgTaskDescriptions](../topics/Description.ext.md#cfgtaskdescriptions) is searched for a class matching the tasks TaskID
- **destination** (Optional): Task destination
  - [Object](../topics/Object.md) - Use [objNull](../commands/objNull.md) to set no position
  - [Array](../topics/Array.md) - can be one of:
    - format [Position](../topics/Position.md)
    - [target, precision] (as used by [setSimpleTaskTarget](../commands/setSimpleTaskTarget.md))
      - target: [Object](../topics/Object.md)
      - precision: [Boolean](../topics/Boolean.md) - [false](../commands/false.md) to use *owner*'s knowledge of *target*, [true](../commands/true.md) to force display even if *target* is unknown to *owner*
- **state**: (Optional, default "CREATED") task state. Can be:
  - [String](../topics/String.md) - can be one of following:
    - "CREATED"
    - "ASSIGNED"
    - "AUTOASSIGNED" ("ASSIGNED" when no task is assigned yet, otherwise "CREATED")
    - "SUCCEEDED"
    - "FAILED"
    - "CANCELED"
  - [Boolean](../topics/Boolean.md) - [true](../commands/true.md) to set the task as current
  - [Number](../topics/Number.md)
    - 0 or less for [false](../commands/false.md)
    - > 0 as [true](../commands/true.md)
- **priority**: [Number](../topics/Number.md) - (Optional) priority. When the current task is completed, the system selects the one with the largest priority >= 0. To avoid auto assignment of that task, give it a priority of -1.
- **showNotification**: [Boolean](../topics/Boolean.md) - (Optional, default [true](../commands/true.md)) true to show notification, false to disable it
- **type**: [String](../topics/String.md) - (Optional, default "") vanilla or [custom](../topics/Description.ext.md#cfgtasktypes) task type; if not defined, empty (no) type is used
- **visibleIn3D**: [Boolean](../topics/Boolean.md) - (Optional, default [false](../commands/false.md)) true to make task always visible in 3D

**Returns:** [Boolean](../topics/Boolean.md)

## Examples

### Example 1

```sqf
[civilian, "task1", ["Do this and you get a cookie", "Earn Cookie", "cookiemarker"], [0,0,0], "ASSIGNED", 2, true] call BIS_fnc_taskCreate;
```

### Example 2

```sqf
[west, "parentTask", ["This is the parent task.", "Parent task", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate;
[west, ["subTask", "parentTask"], ["This is the subTask.", "subTask", "cookiemarker2"], objNull, 1, 3, true] call BIS_fnc_taskCreate;
```

### Example 3

in [Description.ext](../topics/Description.ext.md)

```cpp
class CfgTaskTypes
{
    class my_CfgTaskType
    {
        displayname = "Tank";
        icon = "Tank_MCO.paa";
        icon3D = "Tank_MCO.paa";
    };
};
```

SQF:

```sqf
[east, ["taskType_"], ["Setting taskType", "The simple way", "marker2"], objNull, 1, 3, true, "my_CfgTaskType"] call BIS_fnc_taskCreate; // task with a custom icon
```

### Example 4

in Stringtable.xml

```xml
<Key ID="STR_CITY_TASK">
    <English>Clear %1 of enemies</English>
    <!-- more languages -->
</Key>
```

SQF:

```sqf
[
    _side,
    _taskID,
    [
        // format array, string to be localised, parameters for format %1, %2 ...
        [ "STR_CITY_TASK", _cityName ],
        [ "STR_CITY_TASK", _cityName ],
        ""
    ]
] call BIS_fnc_taskCreate;
```

## See also

Arma 3: Task Framework

## Community notes

**Lou Montana** — 2018-02-02

You can define a [CfgTaskDescriptions](../topics/Description.ext.md#cfgtaskdescriptions) part in [description.ext](../topics/Description.ext.md), such as:

```cpp
class CfgTaskDescriptions
{
    class myTask
    {
        title = "$STR_MyTaskTitle";
        description = "$STR_MyTaskDescription";
    };
};
```

This should allow tasks to be localised for every player in MP **if created locally**.
You can use "myTask" as *description* (3rd) parameter.

> [!IMPORTANT]
> For a proper localisation everywhere, see Hypoxic125's note below.

---

**Hypoxic125** — 2022-11-13

Example of Correct Localization Setup Using CfgTaskDescriptions

```cpp
class CfgTaskDescriptions
{
    class hyp_infiltrate
    {
        title = "STR_HYP_TASKS_INFILTRATE_TITLE";
        description = "STR_HYP_TASKS_INFILTRATE_DESCRIPTION";
        // requires stringtable key - NOT localized string
        // note the lack of "$" before the stringtable key - if "$" is included, languages will be incorrect
    };
};
```

```sqf
// Server Execution
[east, "infiltrate", "hyp_infiltrate", objNull, "ASSIGNED", -1, true, "MOVE", false] call BIS_fnc_taskCreate;
```

<sub>Source: [BI Community Wiki — BIS fnc taskCreate](https://community.bistudio.com/wiki/BIS_fnc_taskCreate) (revision 369829).</sub>
