Eden Editor: Setting Attributes: Difference between revisions
mNo edit summary |
Lou Montana (talk | contribs) m (Some wiki formatting) |
||
(16 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
{{TOC|side}} | |||
While Eden Editor [[ | While Eden Editor [[Eden Editor: Modding#Workspace|Workspace]] behaves like a normal scenario and it is possible to modify entities using existing commands (e.g., [[setPosATL]]), such changes would be invisible for the editor and not saved to the scenario file. | ||
Instead, the editor is using attributes to store all entity and scenario settings. Most commonly, the scenario designer can edit them using Attributes window available after double-clicking on an entity. Some are also edited directly, like position when dragging entities around. | Instead, the editor is using attributes to store all entity and scenario settings. Most commonly, the scenario designer can edit them using Attributes window available after double-clicking on an entity. Some are also edited directly, like position when dragging entities around. | ||
When an attribute is changed, the functionality attached to it is also performed. Setting ''position'' attribute of an object will move it to the given position, and adjusting | When an attribute is changed, the functionality attached to it is also performed. Setting ''position'' attribute of an object will move it to the given position, and adjusting {{hl|IntelWeatherStart}} attribute will change the weather. | ||
Using [[setPosATL]] or [[setOvercast]] commands would seemingly achieve the same, but without permanent effect - the changes would not be visible next time the scenario is loaded. | |||
== Scripting == | == Scripting == | ||
A scenario designer is not the only one who can modify attributes. Scripted systems can access them as well, giving you an ability to write some automated systems. | A scenario designer is not the only one who can modify attributes. Scripted systems can access them as well, giving you an ability to write some automated systems. | ||
{{ | {{Feature|important|Attributes are available only within the Eden Editor workspace. They cannot be accessed in scenario preview or exported scenario.}} | ||
=== Setting Entity Attributes === | === Setting Entity Attributes === | ||
To set an attribute, you need to know it | |||
To set an attribute, you need to know it is ''property'' and value ''type''. Tables below will help you with that - look at the last two columns, labeled '''Development'''. | |||
For example to set player as invincible, we'll use '''Enable Damage''' attribute. | |||
You can see its class is {{hl|allowDamage}} (corresponding with [[allowDamage]] command; most attributes are named this way) and its value type is [[Boolean]]. This is how the expression will look like: | |||
<sqf>player set3DENAttribute ["allowDamage", false];</sqf> | |||
You can also check for the attribute state: | You can also check for the attribute state: | ||
<sqf>_isInvincible = player get3DENAttribute "allowDamage";</sqf> | |||
=== Managing History === | === Managing History === | ||
When setting attributes, each command execution would create a new history entry. When doing a batch change, the user would have to press undo for each entity modified, which would be uncomfortable. To prevent this, you can collect multiple changes together by wrapping them inside [[collect3DENHistory]] command: | |||
When setting attributes, each command execution would create a new history entry. When doing a batch change, the user would have to press undo for each entity modified, which would be uncomfortable. | |||
To prevent this, you can collect multiple changes together by wrapping them inside [[collect3DENHistory]] command: | |||
<sqf> | |||
collect3DENHistory { | |||
{ | |||
_x set3DENAttribute ["allowDamage",false]; | |||
} forEach (all3DENEntities select 0); | |||
}; | |||
</sqf> | |||
Alternatively, you can use more [[set3DENAttributes]] command which is able to modify multiple entities at once already. | Alternatively, you can use more [[set3DENAttributes]] command which is able to modify multiple entities at once already. | ||
=== Setting Object Type === | === Setting Object Type === | ||
[[Eden Editor: Object|Objects]] have | |||
[[Eden Editor: Object|Objects]] also have the ''ItemType'' special attribute, which defines which object class will represent them (i.e., a soldier, a car, a house, etc.). | |||
It cannot be changed as a normal attribute, because it requires replacing the old model with the new one. There's a special command to handle this: | |||
<sqf>player set3DENObjectType "B_Soldier_F";</sqf> | |||
=== Setting Scenario Attributes === | === Setting Scenario Attributes === | ||
Scenario attributes can be set with the following commands. | |||
* [[set3DENMissionAttributes]] | * [[set3DENMissionAttributes]] | ||
* [[get3DENMissionAttribute]] | * [[set3DENMissionAttribute]] | ||
To return a specific scenario attribute value use [[get3DENMissionAttribute]]. | |||
==== Sections & Properties ==== | |||
Use the following sections to return the scenario attribute values. | |||
{| class="wikitable" | |||
|- | |||
! Display Name !! Section (Class Name) | |||
|- | |||
| Environment || <small>{{hl|Intel}}</small> | |||
|- | |||
| Multiplayer || <small>{{hl|Multiplayer}}</small> | |||
|- | |||
| Performance || <small>{{hl|GarbageCollection}}</small> | |||
|- | |||
| Preferences|| <small>{{hl|Preferences}}</small> | |||
|} | |||
The <small>{{hl|property}}</small> can be retrieved from the tables below. | |||
== Attributes == | == Attributes == | ||
=== Object === | === Object === | ||
{{: | |||
{{:Eden Editor: Object}} | |||
=== Composition === | === Composition === | ||
{{: | |||
{{:Eden Editor: Composition}} | |||
=== Trigger === | === Trigger === | ||
{{: | |||
{{:Eden Editor: Trigger}} | |||
=== Waypoint === | === Waypoint === | ||
{{: | |||
{{:Eden Editor: Waypoint}} | |||
=== System === | === System === | ||
{{: | |||
{{:Eden Editor: System}} | |||
=== Marker === | === Marker === | ||
{{: | |||
{{:Eden Editor: Marker}} | |||
=== Scenario === | === Scenario === | ||
[[Category:Eden Editor|Setting Attributes]] | {{:Eden Editor: Scenario Attributes}} | ||
=== Comment === | |||
{{:Eden Editor: Comment}} | |||
[[Category:Eden Editor: Editing|Setting Attributes]] | |||
[[Category:Eden Editor: Modding|Setting Attributes]] | [[Category:Eden Editor: Modding|Setting Attributes]] |
Latest revision as of 10:35, 25 June 2024
While Eden Editor Workspace behaves like a normal scenario and it is possible to modify entities using existing commands (e.g., setPosATL), such changes would be invisible for the editor and not saved to the scenario file.
Instead, the editor is using attributes to store all entity and scenario settings. Most commonly, the scenario designer can edit them using Attributes window available after double-clicking on an entity. Some are also edited directly, like position when dragging entities around.
When an attribute is changed, the functionality attached to it is also performed. Setting position attribute of an object will move it to the given position, and adjusting IntelWeatherStart attribute will change the weather. Using setPosATL or setOvercast commands would seemingly achieve the same, but without permanent effect - the changes would not be visible next time the scenario is loaded.
Scripting
A scenario designer is not the only one who can modify attributes. Scripted systems can access them as well, giving you an ability to write some automated systems.
Setting Entity Attributes
To set an attribute, you need to know it is property and value type. Tables below will help you with that - look at the last two columns, labeled Development. For example to set player as invincible, we'll use Enable Damage attribute. You can see its class is allowDamage (corresponding with allowDamage command; most attributes are named this way) and its value type is Boolean. This is how the expression will look like:
You can also check for the attribute state:
Managing History
When setting attributes, each command execution would create a new history entry. When doing a batch change, the user would have to press undo for each entity modified, which would be uncomfortable. To prevent this, you can collect multiple changes together by wrapping them inside collect3DENHistory command:
Alternatively, you can use more set3DENAttributes command which is able to modify multiple entities at once already.
Setting Object Type
Objects also have the ItemType special attribute, which defines which object class will represent them (i.e., a soldier, a car, a house, etc.). It cannot be changed as a normal attribute, because it requires replacing the old model with the new one. There's a special command to handle this:
Setting Scenario Attributes
Scenario attributes can be set with the following commands.
To return a specific scenario attribute value use get3DENMissionAttribute.
Sections & Properties
Use the following sections to return the scenario attribute values.
Display Name | Section (Class Name) |
---|---|
Environment | Intel |
Multiplayer | Multiplayer |
Performance | GarbageCollection |
Preferences | Preferences |
The property can be retrieved from the tables below.
Attributes
Object
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Type | Type | Object type. Can be changed only to another type of the same side,
e.g., you can change BLUFOR Car to BLUFOR Helicopter, but not to OPFOR Car or a Prop. |
ItemClass | String |
Variable Name | Init | Unique system name. Can contain only letters, numbers and underscore. The name is not case sensitive, so 'someName' and 'SOMENAME' are treated as the same variables. | Name | String |
Init | Init | Expression called upon at start. In multiplayer, it is called on every machine and for each player who joins in the progress. The variable 'this' refers to the affected object. | Init | String |
N/A | Pylons Settings | Pylons | ||
Position | Transformation | World coordinates in meters. X goes from West to East, Y from South to North and Z is height above terrain. | position | Position3D |
Rotation | Transformation | Local rotation in degrees. X is pitch, Y is roll and Z is yaw. | rotation | Number |
Size | Transformation | Area size in meters. | size3 | Array |
Shape | Transformation | Area shape.
Available options:
|
IsRectangle | Boolean |
Placement Radius | Transformation | Placement radius in meters. The entity will start at a random position within the radius. | placementRadius | Number |
Player | Control | Player in singleplayer. When enabled, the character will also be available in multiplayer and team switch ('Playable' status cannot be disabled individually in such case). | ControlSP | Boolean |
Playable | Control | When enabled, the character will appear as a slot in the multiplayer scenario lobby and in the list of roles available for team switch. | ControlMP | Boolean |
Role Description | Control | Multiplayer role description visible in the multiplayer lobby. When undefined, the object type name will be used by default. | description | String |
Lock | States | Vehicle lock. When locked, characters outside of the vehicle will be unable to get in and those already inside will be forbidden from leaving.
Available options:
|
lock | Number |
Skill | States | General AI skill. The attribute does not allow for decreasing it below 20%, because AI behavior would be too simplified. | skill | Number |
Health / Armor | States | Object health / armor. When close to 0%, the object will be destroyed. | Health | Number |
Fuel | States | Vehicle fuel. | fuel | Number |
Ammunition | States | General vehicle ammo state. | ammo | Number |
Rank | States | Character rank. When a group leader is killed, the subordinate with the highest rank will take over.
Available options:
|
rank | String |
Stance | States |
Available options:
|
unitPos | |
Enable Dynamic Simulation | Special States | Entity simulation is enabled only if the player or an enemy unit is nearby.
Note: Doesn't work on simple objects and it overwrites basic simulation settings. |
dynamicSimulation | Number |
Wake-Up Dynamic Simulation | Special States | Controls unit capability to activate dynamically simulated entities. | addToDynSimGrid | Number |
Enable Simulation | Special States | When disabled, the object will freeze and ignore any input or collisions.
Note: This option doesn't have any effect on dynamically simulated objects. |
enableSimulation | Boolean |
Simple Object | Special States | When enabled, the object will behave like a map object (e.g. rocks or trees), which significantly saves performance. This option is available only for objects where it leads to improved performance.
Warning: If set, the setting is enforced at the start of the scenario and is irreversible during its runtime! |
objectIsSimple | Boolean |
Show Model | Special States | Show model and collisions. Even when disabled, the object will be simulated normally (e.g., soldiers will still be able to move and shoot). | hideObject | Boolean |
Enable Damage | Special States | Set if the object can receive any damage. When a vehicle is invincible, its crew can still be killed. | allowDamage | Boolean |
Enable Stamina | Special States | Set whether the character should become tired when moving or not. When disabled for player, the stamina bar will be hidden completely. | enableStamina | Boolean |
Revive Enabled | Special States | Enable revive for this unit. | EnableRevive | Boolean |
Doors States | Special States | Set closed, locked or opened state for terrain object doors.
LMB - cycle between states RMB - close door (reset to default state) LMB + Alt - open door LMB + Shift - lock door LMB + Ctrl - close door |
DoorStates | |
Local Only | Special States | When enabled, the object will exist as a local instance on every client. It will not be synchronized over the network. Use this primarily for static (decorative) objects in order to optimize large-scale scenarios. | isLocalOnly | Boolean |
Name | Identity | Character name, by default automatically generated based on faction. | unitName | String |
Face | Identity | Character face. | face | String |
Call Sign | Identity | Call sign used in radio protocol (e.g., leader will order 'Kerry, fall back' instead of generic '2, fall back'). It doesn't affect character's actual name; consider changing it as well so they match together.
Available options:
|
NameSound | String |
Voice | Identity | Radio voice used in group communication (e.g., target reporting). | speaker | String |
Voice Pitch | Identity | Voice pitch. Higher number means higher voice. | pitch | Number |
Insignia | Identity | Left shoulder insignia. Right shoulder insignia is reserved for a squad logo and cannot be changed by the scenario. | unitInsignia | String |
Probability of Presence | Presence | Probability of presence evaluated at the scenario start. When it fails, the object is not created at all. | presence | Number |
Condition of Presence | Presence | Condition of presence evaluated at the scenario start, must return boolean expression. When false, the object is not created at all. | presenceCondition | String |
Equipment Storage | Equipment Storage | ammoBox | String | |
Data Link Send | Electronics & Sensors | Vehicle will broadcast targets tracked by its sensors to any other unit on the same side with Data Link enabled. | ReportRemoteTargets | Boolean |
Data Link Receive | Electronics & Sensors | Vehicle will receive targeting and positional data from any other broadcasting vehicle on the same side. | ReceiveRemoteTargets | Boolean |
Data Link Position | Electronics & Sensors | Vehicle will broadcast its own position to any other unit on the same side with Data Link enabled. | ReportOwnPosition | Boolean |
Emission Control | Electronics & Sensors | Radar EMCON rules for the AI
Available options:
|
RadarUsageAI | String |
Composition
Apart from pre-defined groups and compositions, you can save and share your own custom compositions.
The following things will be saved with the composition:
- Attribute values (inventory, simulation, simple object, etc.)
- Layer structure (i.e. one can place comments in their own sub-layer for easy removal)
- Layer visibility and transformation
- Connections
Since 2.06, custom Eden Editor compositions are also available in Zeus.
Saving Compositions
To save a composition, select the entities in the scene, click right mouse button on one of them and pick the Save Custom Composition option (or use the button in the Asset Browser).
A window will be opened where you can set a title, author and category for your composition.
In the list on the left, you can either choose to create a new composition, or overwite one of the existing ones. This way, you can edit already created compositions. To edit a composition's attributes, double-click on it, or select it and click on the Edit button (or use the button in the Asset Browser). It will open a window where you can change the title, author and category again.
In order to delete a composition permanently, select it in list and then use the button.
Placing Compositions
You can find compositions in Compositions > Custom. Place it just like any other entity - either select it and then click in the scene on desired position, or drag it from the list to the scene.
If you need to correct the position or rotation of a placed composition it is recommended to use the Translation Widget and Rotation Widget. This way, relative position and orientation of all entities in the composition will be preserved.
If you do not want each composition to be placed in its own layer turn off Automatic Composition Layering which can be found in Settings... -> Preferences... -> Misc.
Publishing Compositions
You can also publish your compositions to Steam Workshop. Do so by selecting the saved composition in the Asset Browser, and then using the button there.
A publishing window will be opened where you can enter a name, description, visibility setting, image, and various tags. After agreeing with the Workshop license, you are free to publish the composition and share the link with others.
Creating a Screenshot
In order for your composition to be found easier in the Steam Workshop you should add a meaningful screenshot. It is very easy to do so:
- Place your composition
- Move the Eden Editor camera so that only the composition is visible
- Press the Backspace button to hide the Eden Editor interface
- Press F12 (or the key you have assigned for screenshots in your steam application)
- Select your screenshot in the publish composition UI by pressing the Browse... button, navigate to Steam screenshots and select the previously taken screenshot
Republishing Compositions
Updating a composition that was already published is effectively the same as the first time. Select the composition and use . In the publishing window, select your already published composition on the left. Consider entering relevant change notes and publish.
Unpublishing Compositions
In order to unpublish a composition from within Eden Editor, open the publishing window by selecting any saved composition and using the button. Now select the published composition in the list on the left and press DELETE.
Subscribing to Compositions
You can easily find all published compositions made by yourself and others by selecting the Steam subscribed content entry in the Asset Browser, and then pressing the button. This will open a Steam overlay with the Workshop opened and compositions filtered. Soon after subscribing to any number of composition items there, the game should download these in the background. Large compositions may take a brief while to download and appear. They will then be listed in the Asset Browser, ready for regular placement. Note that certain compositions require placement using a specific vertical mode to work correctly (see above).
Unsubscribing from Compositions
To unsubscribe from a Workshop composition from within Eden Editor, select it in the Asset Browser and press the button. Note that you should look for compositions listed under Steam subscribed content, otherwise you may accidentally delete a local composition instead.
Local Files
Compositions are saved in the Compositions folder in your Profile directory.
They can be shared freely - if you pack a composition folder into a *.zip file and make it available for download, people who place the unpacked composition to their Compositions folder will have it available as well.
Modding Compositions
It is possible for mods to add their own compositions. The mod needs to register them in config (see the Example below) for them to be loaded and displayed in groups tabs in Eden and Zeus.
Modded Compositions can be used as replacement for CfgGroups and the arsenal can be used in compositions, thus removing the need to make custom hidden unit classes with custom loadouts in order to construct a group. Note that placement-wise, compositions are slightly less efficient than using CfgGroups.
Example
class CfgEditorCategories
{
class EdCat_NATO // CfgGroups NATO
{
displayName = "$STR_A3_CfgGroups_West_BLU_F0";
};
};
class CfgEditorSubcategories
{
class EdSubcat_Armored // CfgGroups Armored
{
displayName = "$STR_A3_CfgGroups_West_BLU_F_Armored0";
};
};
class Cfg3DEN
{
class Compositions
{
class ModTag_MyComposition1 // one class per composition
{
path = "edenCompositionTestmod\compositionTank"; // pbo path to a folder containing header.sqe/composition.sqe files
side = 0; // 0 opfor, 1 blufor, 2 indfor, 3 civ, 8 Empty/Props
editorCategory = "EdCat_NATO"; // link to CfgEditorCategories
editorSubcategory = "EdSubcat_Armored"; // link to CfgEditorSubcategories
displayName = "$STR_Composition_Armored01";
icon = "\A3\ui_f\data\map\markers\nato\b_inf.paa"; // left side icon in groups list
useSideColorOnIcon = 1; // 1 == icon is always colored in faction color
};
};
};
Automating Composition Creation
It's possible to automate the creation of compositions. This is extremly helpful for maintaining a large number of compositions.
Trigger
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Variable Name | Init | Unique system name. Can contain only letters, numbers and underscore. The name is not case sensitive, so 'someName' and 'SOMENAME' are treated as the same variables. | name | String |
Text | Init | Trigger description. Players can see it in the radio menu when its activation is set to 'Radio'. Also visible in tooltip when hovering over the trigger in the editor. | text | String |
Position | Transformation | World coordinates in meters. X goes from West to East, Y from South to North and Z is height above terrain. | position | Position3D |
Rotation | Transformation | Local rotation in degrees. X is pitch, Y is roll and Z is yaw. | rotation | Number |
Size | Transformation | Area size in meters in format [a, b, c]. | size3 | Array |
Shape | Transformation | Area shape.
Available options:
|
IsRectangle | Boolean |
Type | Activation | Trigger type, determines special behavior upon activation.
Available options:
|
TriggerType | String |
Activation | Activation | What or who can activate the trigger. Some options further depend on 'Activation Condition'.
Available options:
|
ActivationBy | String |
Activation | Activation | What or who can activate the trigger. Some options further depend on 'Activation Type'. The available options are specific to the connected trigger owner.
Available options:
|
activationByOwner | String |
Activation Type | Activation | Condition of the 'Activation' attribute.
Available options:
|
activationType | String |
Repeatable | Activation | Repetition rules. When enabled, the trigger can be activated again once deactivated. | repeatable | Boolean |
Server Only | Activation | When enabled, the trigger will only be created and evaluated on the server. | isServerOnly | Boolean |
Condition | Expression | Repeatedly calculated condition, must return boolean expression. When true, the trigger will be activated.
Passed variables are:
|
condition | String |
Interval | Expression | How frequently the trigger condition is evaluated in seconds. | triggerInterval | Number |
On Activation | Expression | Expression executed once the trigger is activated.
Passed variables are:
|
onActivation | String |
On Deactivation | Expression | Expression executed once the trigger is deactivated. Passed variables are:
|
onDeactivation | String |
Timer Type | Timer | Type of activation timer.
Available options:
|
interuptable | Boolean |
Timer Values | Timer | Timer values in seconds, selected randomly in a range from Min to Max, gravitating towards Mid. | timeout | Array in format [min, mid, max] |
Effect Condition | Effects | Condition for effects to be played, must return boolean expression. | effectCondition | String |
Sound | Effects | Sound played upon activation. | sound | String |
Voice | Effects | Sound spoken by the first unit which activated the trigger. | voice | String |
Environment | Effects | Environment sounds played upon activation. | soundEnvironment | String |
SFX | Effects | Sound effect played by the trigger upon activation. Repeats as long as the repeatable trigger is active or forever for non-repeatable triggers. | soundTrigger | String |
Music | Effects | Music played upon activation. Replaces previously playing music track. | music | String |
UI Overlay | Effects | User interface overlay shown upon activation. | title | String |
Waypoint
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Type | Type | Waypoint type defines what the group will do when the waypoint becomes active, and the condition when it becomes completed. Applies mainly to AI-led groups, as players will not be prompted to perform any specific actions, even though the waypoint completion condition is the same.
Some waypoints have special attributes, which are only available the next time you access the attribute window. |
itemClass | String |
Description | Init | Text visible for the player next to the waypoint icon in the scene. | description | String |
Order | Init | Order in which waypoints follow. When changing order, the waypoint will take position of the selected one, pushing all other further down. | order | |
Identified | Init | System name of the waypoint, used for identification in scripts. | name | String |
Position | Transformation | World coordinates in meters. X goes from West to East, Y from South to North and Z is height above terrain. | position | Position3D |
Placement Radius | Transformation | Placement radius in meters. The entity will start at a random position within the radius. | placementRadius | Number |
Completion Radius | Transformation | Distance in meters in which a group member has to be in order for the waypoint to be considered completed. | completionRadius | Number |
Combat Mode | State | Controls how and when the group will choose to engage enemy targets.
Available options:
|
combatMode | String |
Behavior | State | Behavior pattern of the group.
Available options:
|
behaviour | String |
Formation | State | Default group formation. Based on the combat mode, group members may ignore the formation in 'Combat' and 'Stealth' modes.
Available options:
|
formation | String |
SpeedMode | State | Default travel speed of the group. In Combat and Stealth behavior modes, group members will try to prioritize this setting.
Available options:
|
speedMode | String |
Condition | Expression | Repeatedly calculated condition, must return boolean expression. When the waypoint type conditions are met and this expression returns true, the waypoint is completed.
Passed variables are:
|
condition | String |
On Activation | Expression | Expression called when the waypoint is completed.
Passed variables are:
|
onActivation | String |
Script | Expression | Script executed when 'SCRIPTED' waypoint type is selected. The waypoint will be completed once the script is finished. | script | String |
Map Visibility | Visibility | Make the waypoint visible for the player on the map. | show2D | Boolean |
Scene Visibility | Visibility | Make the waypoint visible for the player in the scene. | show3D | Boolean |
Timer Values | Timer | Time in seconds passed between when the waypoint would be considered complete and when it actually completes. Selected randomly in a range from Min to Max, gravitating towards Mid. | timeout | Array in format [min, mid, max] |
Effect Condition | Effects | Condition for effects to be played, must return boolean expression. | effectCondition | String |
Sound | Effects | Sound played upon activation. | sound | String |
Voice | Effects | Sound spoken by the first unit which activated the trigger. | voice | String |
Environment | Effects | Environment sounds played upon activation. | soundEnvironment | String |
Music | Effects | Music played upon activation. Replaces previously playing music track. | music | String |
UI Overlay | Effects | User interface overlay shown upon activation. | title | String |
System
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Type | Type | itemClass | String | |
Variable Name | Init | Unique system name. Can contain only letters, numbers and underscore. The name is not case sensitive, so 'someName' and 'SOMENAME' are treated as the same variables. | Name | String |
Init | Init | Expression called upon at start. In multiplayer, it is called on every machine and for each player who joins in the progress. The variable 'this' refers to the affected object. | Init | String |
Position | Transformation | World coordinates in meters. X goes from West to East, Y from South to North and Z is height above terrain. | position | Position3D |
Rotation | Transformation | Local rotation in degrees. X is pitch, Y is roll and Z is yaw. | rotation | Array |
Size | Transformation | Area size in meters. | size2 | Array |
Size | Transformation | Area size in meters. | size3 | Array |
Shape | Transformation | Area shape.
Available options:
|
IsRectangle | Boolean |
Placement Radius | Transformation | Placement radius in meters. The entity will start at a random position within the radius. | placementRadius | Number |
Player | Control | Player in singleplayer. When enabled, the character will also be available in multiplayer and team switch ('Playable' status cannot be disabled individually in such case). | ControlSP | Boolean |
Playable | Control | When enabled, the character will appear as a slot in the multiplayer scenario lobby and in the list of roles available for team switch. | ControlMP | Boolean |
Role Description | Control | Multiplayer role description visible in the multiplayer lobby. When undefined, the object type name will be used by default. | description | String |
Probability of Presence | Presence | Probability of presence evaluated at the scenario start. When it fails, the object is not created at all. | presence | Number |
Condition of Presence | Presence | Condition of presence evaluated at the scenario start, must return boolean expression. When false, the object is not created at all. | presenceCondition | String |
Marker
Info | Development | ||||
---|---|---|---|---|---|
Name | Category | Description | Property | Type | Correspondence |
Type | Type | Icon texture. | itemClass | String | markerType |
Variable Name | Init | Unique system name. Can contain any characters. The name is not case sensitive, so 'someName' and 'SOMENAME' are treated as the same variables. | markerName | String | createMarker |
Text | Init | Text displayed right from the marker. | text | String | markerText |
Position | Transformation | World coordinates in meters. X goes from West to East and Y from South to North. | position | Position3D | markerPos |
Size | Transformation | Marker A and B size. | size2 | Array | markerSize |
Rotation | Transformation | Rotation in degrees. | rotation | Number | markerDir |
Shape | Style | Marker shape. The marker has to be created as shape marker, for this use "" empty string as class name with create3DENEntity, this will create rectangular marker.
Available options:
|
markerType | Number | markerShape |
Brush | Style | Area fill texture. | brush | String | markerBrush |
Color | Style | Marker color. 'Default' is based on the selected marker type. | baseColor | Array | markerColor |
Alpha | Style | Transparency. When the icon marker has a shadow, it will be visible behind the transparent icon. | alpha | Number | markerAlpha |
Scenario
General
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Title | Presentation | Scenario name. Appears in the scenarios menu, multiplayer lobby and loading screens. Use @STR_ prefix to link to localization keys. | IntelBriefingName | String |
Author | Presentation | Scenario author. Appears in the scenarios menu and in loading screens. | Author | String |
Picture | Overview | Path to overview picture visible in the scenarios menu. When no loading screen picture is defined, this will be used in loading screen instead. | OverviewPicture | String |
Text | Overview | Short overview text visible in the scenarios menu. When no loading screen text is defined, this will be used in loading screens instead. Use @STR_ prefix to link to localization keys. | OverviewText | String |
DLC | Overview | When set, the overview image will be overlaid with a DLC frame indicating the scenario belongs to the DLC. | AppId | Number |
Require DLC | Overview | Sets if the DLC is required. When checked, the player will not be able to play the scenario if the DLC is not owned. | AssetType | String |
Picture | Overview (Locked) | Path to the overview picture visible in the scenarios menu. When no loading screen picture is defined, this will be used in the loading screen instead. | OverviewPictureLocked | String |
Text | Overview (Locked) | Short overview text visible in the scenarios menu when the scenario is locked (see 'Unlock' category for more details). Use @STR_ prefix to link to localization keys. | OverviewTextLocked | String |
Picture | Loading Screen | Path to the picture visible in the loading screens before and during the scenario. | LoadScreen | String |
Text | Loading Screen | Short text visible in loading screens before and during the scenario. Use @STR_ prefix to link to localization keys. | OnLoadMission | String |
Show Briefing | States | When disabled, the scenario will start automatically after the loading, without showing the briefing. Valid only for singleplayer scenarios. | Briefing | Boolean |
Show Debriefing | States | When disabled, the debriefing screen will not be shown when the scenario is completed. | Debriefing | Boolean |
Enable Saving | States | When disabled, the 'SAVE' option in the pause menu will be disabled and scripted autosaves will not do anything. | Saving | Boolean |
Show Map | States | When disabled, a black screen is shown instead of the map. Tasks, notes and other information will remain accessible. Can also be achieved by removing the map from the player's inventory. | ShowMap | Boolean |
Show Compass | States | When disabled, the compass will not be available either on the map, or in the scene after pressing the 'Compass' key. Can also be achieved by removing the compass from the player's inventory. | ShowCompass | Boolean |
Show Watch | States | When disabled, the watch will not be available in the scene after pressing the 'Watch' key. Can also be achieved by removing the watch from the player's inventory. | ShowWatch | Boolean |
Show GPS | States | When disabled, the GPS minimap will not be available in the scene after pressing the 'GPS' key. Can also be achieved by removing the GPS from the player's inventory. | ShowGPS | Boolean |
Show HUD | States | When disabled, on-screen information such as weapon information or the command menu will be hidden. | ShowHUD | Boolean |
Show UAV Feed | States | When disabled, the UAV feed will not be available in the scene after pressing the 'AV Camera' key. | ShowUAVFeed | Boolean |
Advanced Flight Model | States | When enabled, all player controlled helicopters will use the advanced flight model. | ForceRotorLibSimulation | Boolean |
Debug Console | States | Determines debug console availability
Available options:
|
EnableDebugConsole | Number |
Unlocked Keys | Unlock | Keys needed to mark the scenario as completed in the scenarios menu. Can be multiple words divided by a semicolon. Key can be activated using 'activateKey' scripting command. Does not affect the multiplayer and campaign scenarios, and the scenarios downloaded from Steam. | DoneKeys | Array |
Required Keys | Unlock | Keys required for mission to be available for playing from the scenarios menu. Can be multiple words divided by a semicolon. Does not affect the multiplayer and campaign scenarios. | Keys | Array |
Required Keys Limit | Unlock | The number of required keys to be active for the mission to be unlocked. | KeysLimit | Number |
Init | Init | Expression called upon at start. In multiplayer, it is called on every machine and for each player who joins in the progress. The variable 'this' refers to the affected object. init.sqf. | This attribute behaves similar to theInit | String |
Independents Allegiance | Misc | Sets who the Independent side will be friendly to. The value is shared across all scenario phases. | IntelIndepAllegiance | Array in format [west:Number,east:Number] |
Binarize the Scenario File | Misc | When true, the *.sqm file will be binarized. The process saves loading time, but makes the file uneditable in a text editor. | SaveBinarized | Boolean |
Environment
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Date | Date | Starting date. | IntelDate | Array in format [year, month, day] |
Time | Date | Starting time of the day. Please note that the sunrise and sunset times are influenced by the date (e.g., days are shorter in winter) and the longitude and latitude of the terrain. | IntelTime | Number |
Time of Changes | Weather Forecast | Delay until all forecasted weather values take effect. | IntelTimeOfChanges | Number |
Overcast Start | Overcast | Initial cloud cover. Unless set manually, this value also affects rain, lightning, waves, wind and gusts values. | IntelWeatherStart | Number |
Overcast Forecast | Overcast | Forecasted cloud cover. | IntelWeatherForecast | Number |
Fog Start | Fog | Initial fog. Strength affects not only how far player can see, but also limits the sight of AI entities. | IntelFogStart | Number |
Fog Forecast | Fog | Forecasted fog. | IntelFogForecast | Number |
Manual Override | Rain | Enables manual settings in this category. When disabled, the engine will calculate the values automatically. | IntelRainIsForced | Boolean |
Rain Start | Rain | Initial rain strength. Applied only when the cloud cover is already bad, i.e., a high value is ignored when the weather is sunny. | IntelRainStart | Number |
Rain Forecast | Rain | Forecasted rain strength. | IntelRainForecast | Number |
Manual Override | Lightnings | Enables manual settings in this category. When disabled, the engine will calculate the values automatically. | IntelLightningIsForced | Boolean |
Lightnings Start | Lightnings | Initial frequency of lightning. Applied only when the cloud cover is already bad, i.e., a high value is ignored when the weather is sunny. | IntelLightningStart | Number |
Lightnings Forecast | Lightnings | Forecasted frequency of lightning. | IntelLightningForecast | Number |
Manual Override | Waves | Enables manual settings in this category. When disabled, the engine will calculate the values automatically. | IntelWavesIsForced | Boolean |
Waves Start | Waves | Initial waves size. Applied independently of cloud cover settings. | IntelWavesStart | Number |
Waves Forecast | Waves | Forecasted waves size. | IntelWavesForecast | Number |
Manual Override | Wind | Enables manual settings in this category. When disabled, the engine will calculate the values automatically. | IntelWindIsForced | Boolean |
Wind Start | Wind | Initial wind strength. Together with wind direction, it influences how clouds, smoke, vegetation or flags are moving. | IntelWindStart | Number |
Wind Forecast | Wind | Forecasted wind strength. | IntelWindForecast | Number |
Gusts Start | Wind | Initial gusts strength. Gusts are randomly changing wind direction. The worse the cloud cover, the stronger and more frequent the changes. | IntelWindGustStart | Number |
Gusts Forecast | Wind | Forecasted gusts value. | IntelWindGustForecast | Number |
Direction Start | Wind | Initial wind direction. | IntelWindDirectionStart | Number |
Direction Forecast | Wind | Forecasted wind direction. | IntelWindDirectionForecast | Number |
Multiplayer
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Game Type | Type | Scenario type shown in the server browser and in the loading screen. | GameType | String |
Min Players | Type | Minimum number of required players. | MinPlayers | Number |
Max Players | Type | Minimum number of allowed players. | MaxPlayers | Number |
Summary | Lobby | Short summary shown in the scenario lobby. | IntelOverviewText | Structured Text |
Enable AI | Lobby | When AI is enabled, all playable characters are created at the scenario start, controlled by AI. Upon joining, a player takes control of an existing character.
When AI is disabled, a new character is created for each connecting player. Server host can disable AI even when it is allowed by default. |
DisabledAI | Boolean |
Auto Assign Slots | Lobby | When enabled, arriving players will be first assigned to the side with the lowest number of players. Valid only for scenarios with multiple playable sides involved. | JoinUnassigned | Boolean |
Respawn | Respawn | Character respawn type. Defines what happens to players and playable characters after they die in multiplayer scenarios. Has no effect in singleplayer scenarios.
Available options:
|
Respawn | Number |
Rulesets | Respawn | Specific respawn rulesets based on currently selected 'Respawn'. | RespawnTemplates | Array |
Respawn Delay | Respawn | Time in seconds after which players respawn. | RespawnDelay | Number |
Vehicle Respawn Delay | Respawn | Time in seconds after which vehicles respawn. | RespawnVehicleDelay | Number |
Show Scoreboard | Respawn | When enabled, the scoreboard is shown while waiting for respawn. May be subdued by some respawn rulesets. | RespawnDialog | Boolean |
Allow Manual Respawn | Respawn | When enabled, players will have the option to manually respawn in the pause menu. | RespawnButton | Boolean |
Enable Team Switch | Respawn | When enabled, players will be able to manually switch to any other playable character in the scenario not controlled by another player. | EnableTeamSwitch | Boolean |
Allow AI Score | Respawn | When enabled, the score of playable characters controlled by AI will appear on the scoreboard. | AIKills | Boolean |
Shared Objectives | Tasks | Sets if tasks assigned to friendlies are visualized to player and who can assign/unassign tasks.
Available options:
|
SharedObjectives | String |
Revive Mode | Revive | Controls who can be incapacitated and who can revive others.
Available options:
|
ReviveMode | String |
Required Trait | Revive | Controls the specialty required to revive others.
Available options:
|
ReviveRequiredTrait | String |
Required Items | Revive | Controls the item required to revive others.
Available options:
|
ReviveRequiredItems | String |
Revive Duration | Revive | Controls the time it takes to revive someone. | ReviveDelay | String |
Medic Speed Multiplier | Revive | Controls how much faster a medic revives someone. | ReviveMedicSpeedMultiplier | String |
Force Respawn Duration | Revive | Controls how long it takes to force respawn while incapacitated. | ReviveForceRespawnDelay | String |
Incapacitation Mode | Revive | Controls the level of simulation involved in triggering incapacitation.
Available options:
|
ReviveUnconsciousStateMode | String |
Bleed Out Duration | Revive | Controls how long it takes an incapacitated unit to bleed out. | ReviveBleedOutDelay | String |
Garbage Collection
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Minimum distance | Garbage Collection | The minimum distance from any player. Set the value to 0 to remove the min. distance. | MinPlayerDistance | Number |
Character Corpses | Garbage Collection | AttributeSystemSubcategory | ||
Mode | Garbage Collection | Garbage collecting mode.
Available options:
|
CorpseManagerMode | Number |
Limit | Garbage Collection | Maximum allowed number of dead bodies in the scenario. | CorpseLimit | Number |
Min Delay | Garbage Collection | Time in seconds before a dead body is removed when the number of dead bodies exceeds the 'Limit'. | CorpseRemovalMinTime | Number |
Max Delay | Garbage Collection | Time in seconds before a dead body is removed when the number of dead bodies is below or equals the 'Limit'. | CorpseRemovalMaxTime | Number |
Vehicle Wrecks | Garbage Collection | AttributeSystemSubcategory | ||
Mode | Garbage Collection | Garbage collecting mode.
Available options:
|
WreckManagerMode | Number |
Limit | Garbage Collection | Maximum allowed number of dead bodies in the scenario. | WreckLimit | Number |
Min Delay | Garbage Collection | Time in seconds before a dead body is removed when the number of dead bodies exceeds the 'Limit'. | WreckRemovalMinTime | Number |
Max Delay | Garbage Collection | Time in seconds before a dead body is removed when the number of dead bodies is below or equals the 'Limit'. | WreckRemovalMaxTime | Number |
Enable Dynamic Simulation | Dynamic Simulation | Turns on the 'Dynamic Simulation' system. Only entities and groups with the 'Dynamic Simulation' will be affected. | DynSimEnabled | |
Characters | Dynamic Simulation | DynSimDistGroup | ||
Manned Vehicles | Dynamic Simulation | DynSimDistVehicle | ||
Props | Dynamic Simulation | DynSimDistProp | ||
Empty Vehicles | Dynamic Simulation | DynSimDistEmptyVehicle | ||
Is Moving | Dynamic Simulation | Multiplies activation distance of non-static entity by set value. | DynSimMovingCoef | |
Limit by View Distance | Dynamic Simulation | Limits all activation distances to player's object view distance. Dynamically simulated entities beyond the object view distance will be disabled. | DynSimSaturateByObjDist |
Comment
Info | Development | |||
---|---|---|---|---|
Name | Category | Description | Property | Type |
Title | Init | Text displayed above the comment icon. | Name | String |
Tooltip | Init | Text displayed as a tooltip when hovering over the comment icon. | Description | String |
Position | Init | World coordinates in meters. X goes from West to East, Y from South to North and Z is height above terrain. | position | Position3D |
Rotation | Init | Local rotation in degrees. X is pitch, Y is roll and Z is yaw. | rotation | Number |