{"name":"Eden Editor: System","title":"Eden Editor: System","type":"topic","url":"https://community.bistudio.com/wiki/Eden_Editor:_System","revid":338898,"updated":"2023-04-16T14:04:40Z","aliases":["Eden Editor: Systems"],"markdown":"A system is a virtual object which can help expand your scenario with a new functionality.\n\n### Modules\n\nA **module** provides complex functionality which would otherwise have to be scripted. It can usually be configured using custom attributes, and can sometimes be affected by **synchronization** connections. For example, many modules are activated only once all the synchronized triggers are active. To see more about the individual modules, explore their attributes.\n\n### Logic Entities\n\nA **logic entity** is simply a virtual object without any inherent functionality. It is mainly used in cooperation with modules or scripts, for example, to mark positions and their relations.\n\n### Virtual Entities\n\nSome **virtual entities** are playable. They are used in multiplayer for abstract roles such as a spectator or headless client.\n\nBe sure to investigate all the available systems, especially Modules. Because each has its own rules, do not forget to also check their attributes.\n\n### Attributes\n\n| Info |  |  | Development |  |\n|---|---|---|---|---|\n| Name | Category | Description | Property | Type |\n| **Type** | Type |  | `itemClass` | String |\n| **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 |\n| **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| **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 |\n| **Rotation** | Transformation | Local rotation in degrees. X is pitch, Y is roll and Z is yaw. | `rotation` | Array |\n| **Size** | Transformation | Area size in meters. | `size2` | Array |\n| **Size** | Transformation | Area size in meters. | `size3` | Array |\n| **Shape** | Transformation | Area shape.<br>Available options:<br>- **Ellipse**<br>- **Rectangle** | `IsRectangle` | Boolean |\n| **Placement Radius** | Transformation | Placement radius in meters. The entity will start at a random position within the radius. | `placementRadius` | Number |\n| **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 |\n| **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 |\n| **Role Description** | Control | Multiplayer role description visible in the multiplayer lobby. When undefined, the object type name will be used by default. | `description` | String |\n| **Probability of Presence** | Presence | Probability of presence evaluated at the scenario start. When it fails, the object is not created at all. | `presence` | Number |\n| **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 |","sections":[{"heading":null,"level":1,"markdown":"A system is a virtual object which can help expand your scenario with a new functionality."},{"heading":"Modules","level":3,"markdown":"A **module** provides complex functionality which would otherwise have to be scripted. It can usually be configured using custom attributes, and can sometimes be affected by **synchronization** connections. For example, many modules are activated only once all the synchronized triggers are active. To see more about the individual modules, explore their attributes."},{"heading":"Logic Entities","level":3,"markdown":"A **logic entity** is simply a virtual object without any inherent functionality. It is mainly used in cooperation with modules or scripts, for example, to mark positions and their relations."},{"heading":"Virtual Entities","level":3,"markdown":"Some **virtual entities** are playable. They are used in multiplayer for abstract roles such as a spectator or headless client.\n\nBe sure to investigate all the available systems, especially Modules. Because each has its own rules, do not forget to also check their attributes."},{"heading":"Attributes","level":3,"markdown":"| Info |  |  | Development |  |\n|---|---|---|---|---|\n| Name | Category | Description | Property | Type |\n| **Type** | Type |  | `itemClass` | String |\n| **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 |\n| **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| **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 |\n| **Rotation** | Transformation | Local rotation in degrees. X is pitch, Y is roll and Z is yaw. | `rotation` | Array |\n| **Size** | Transformation | Area size in meters. | `size2` | Array |\n| **Size** | Transformation | Area size in meters. | `size3` | Array |\n| **Shape** | Transformation | Area shape.<br>Available options:<br>- **Ellipse**<br>- **Rectangle** | `IsRectangle` | Boolean |\n| **Placement Radius** | Transformation | Placement radius in meters. The entity will start at a random position within the radius. | `placementRadius` | Number |\n| **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 |\n| **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 |\n| **Role Description** | Control | Multiplayer role description visible in the multiplayer lobby. When undefined, the object type name will be used by default. | `description` | String |\n| **Probability of Presence** | Presence | Probability of presence evaluated at the scenario start. When it fails, the object is not created at all. | `presence` | Number |\n| **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 |"}],"categories":["Eden Editor: Asset Types"],"groups":["Mission Editing"]}