Reyhard/Sandbox – User

From Bohemia Interactive Community
< Reyhard
Categories:
No edit summary
No edit summary
 
(30 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{TOC|side}}
=== AIAnimalAimingComponent ===
= Goals of this tutorial =
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Aiming PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Origin Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|}


In this tutorial you will learn about:
=== AICharacterAimingComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Aiming PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Use PID =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Time ADSOff =====
|''Scalar''
|<code>3</code>
|
|How long ADS should be enabled
|-
|}


* How to prepare prop in FBX format for Enfusion
=== AITurretAimingComponent ===
* How to import FBX into Workbench
{| class="wikitable"
* How to configure new prop in Workbench
|+
* How to add procedural animation with sound & custom action to prop prefab
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Aiming PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|Coefficients of main PID controller for aiming of turret
|-
|
===== Aiming PIDMax Error Integral =====
|''Scalar''
|<code>3</code>
|
|Max value of integral component of main PID controller
|-
|
===== Aiming Base PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|Coefficients of PID controller for aiming turret base. Only for turrets with movable base.
|-
|
===== Aiming Base PIDMax Error Integral =====
|''Scalar''
|<code>3</code>
|
|Max value of integral component of PID controller for aiming turret base.
|-
|}


{{Feature|informative|If you '''don't have any experience with Workbench''' yet, it is recommended to '''go through [[Arma_Reforger:Weapon_Modding|modded weapon tutorial]]''' to familiarize with some of the concepts present in the '''Workbench'''}}
=== AIAnimal ===
{{Messagebox|Sources files for this tutorial can be found on
{| class="wikitable"
[https://github.com/BohemiaInteractive/Arma-Reforger-Samples/tree/main/SampleMod_NewProp '''Arma Reforger Samples Github repository''']|📥|orange}}  
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Dead Reaction Radius =====
|''Scalar''
|<code>3</code>
|
|Will not react to danger closer than the dead zone
|-
|}


= Preparation =
=== AIAnimalData ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Prefab To Use =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Tags =====
|''Array of Integers''
|<code>0</code>
|
|Which tile tags should this animal spawn at (ie: Soundmap tile tags are: Sea = 0, Forest = 1, City = 2)
|-
|
===== Weight =====
|''Scalar''
|<code>3</code>
|
|Weight of this animal among the other ones in its tile type. The higher it is compared to the other weights the more likely it is to appear
|-
|}


{{Messagebox|'''Overview'''
=== AIAnimalManagerComponent ===
Preparation phase consist of things like:
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Animal Activation Mode =====
|''Integer''
|<code>0</code>
|
|Animal activation mode
|-
|
===== Max Active Animals =====
|''Integer''
|<code>0</code>
|
|Maximum ammount of simultaneous active animals. More animals could be spawned, but would not be activated
|-
|
===== Animal Prefabs To Use =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Animal Spawn Cooldown =====
|''Scalar''
|<code>3</code>
|
|Distance from every other agent so animal despawns
|-
|
===== Animal Despawn Range =====
|''Scalar''
|<code>3</code>
|
|Distance from every other agent so animal despawns
|-
|
===== Animal To Animal Spawn Range =====
|''Scalar''
|<code>3</code>
|
|When spawning animals, how far should it be from other animals to do spawn
|-
|
===== Check Animal Time =====
|''Scalar''
|<code>3</code>
|
|How often to check to spawn / despawn animals
|-
|}


* Preparing basic structure
=== AIBirdManagerComponent ===
* Preparing mesh
{| class="wikitable"
* Exporting mesh|💬|#CDF}}  
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Tree Height Threshold =====
|''Scalar''
|<code>3</code>
|
|Any tree with a Y scale less than this will be ignored (bushes)
|-
|
===== Cells To Check =====
|''Integer''
|<code>0</code>
|
|How many cells to check to each side using Manhatan distance)
|-
|
===== Coast Percentage =====
|''Scalar''
|<code>3</code>
|
|From the soundmap, if the soundmap tile value is above the coast percentage, the first prefab will always be used
|-
|
===== Rain Threshold =====
|''Scalar''
|<code>3</code>
|
|Rain intensity limit for spawning birds
|-
|}


{{Feature|informative|It is recommend to read before [[Arma_Reforger:FBX_Import|FBX Import]] & [[Arma_Reforger:Textures|Textures]] pages before proceeding.}}
=== BirdAnimationComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max Bird Takeoff Speed Modifier =====
|''Scalar''
|<code>3</code>
|
|When taking off, each bird has a small time offest. This is the max it can be
|-
|
===== Min Bird Takeoff Speed Modifier =====
|''Scalar''
|<code>3</code>
|
|When taking off, each bird has a small time offest. This is the min it can be
|-
|
===== Curve XOffset =====
|''Scalar''
|<code>3</code>
|
|Offset for the X values of the curve
|-
|
===== Curve TOffset =====
|''Scalar''
|<code>3</code>
|
|Offset for the Y values of the curve
|-
|
===== Curve YModifier =====
|''Scalar''
|<code>3</code>
|
|Modifier for the Y values of the takeoff / landing curves
|-
|}


== Preparing structure ==
=== ChimeraCoverManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Filter Visibility =====
|''Boolean''
|<code>0</code>
|
|Filters out non visible threats from cover point. Expensive
|-
|
===== Filter Cover To Enemy Angle =====
|''Boolean''
|<code>0</code>
|
|Filters out cover that are out of a given angle from cover to threat
|-
|
===== Filter Cover Height =====
|''Boolean''
|<code>0</code>
|
|Filters out covers that anre not in the height limits
|-
|
===== Filter Cover Is Occupied =====
|''Boolean''
|<code>0</code>
|
|Filters out covers that are occupied
|-
|
===== Visibility Check Vertical Offset =====
|''Scalar''
|<code>3</code>
|
|Vertical offset from cover top position, used for visibility checks
|-
|
===== Visibility Check Layers =====
|''Flags''
|<code>0</code>
|
|Physics layers for visibility check
|-
|
===== Score Distance =====
|''Boolean''
|<code>0</code>
|
|Scores cover points by inverse distance to the querier
|-
|
===== Query Max Nodes =====
|''Integer''
|<code>0</code>
|
|Maximum number of nodes that will be used for cover queries.
|-
|}


While keeping to official structure is not mandatory and there are no engine restrictions asset wise about it, it's recommended to follow guidelines listed here - [[Arma_Reforger:Directory_Structure|Data (file) structure]] - to ensure that all automation plugins are parsing your assets correctly and make it later easy to navigate.
=== AIFlock ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Lod Threshold =====
|''Integer''
|<code>0</code>
|
|The LOD threshold to simulate the flocking or just have the particle many birds in the flock
|-
|
===== Reaction Cooldown =====
|''Scalar''
|<code>3</code>
|
|How many seconds to wait before reacting to danger again
|-
|
===== Chance To Create Cell =====
|''Scalar''
|<code>3</code>
|
|When creating the posible original positions of the birds, chance to delete a particular cell for it not to be used
|-
|
===== Number Of Birds =====
|''Vector with 2 elements''
|<code>3</code>
|
|How many birds min/max in the flock
|-
|
===== Flock Dist =====
|''Vector with 2 elements''
|<code>3</code>
|
|When creating a new position for each bird, the min/max distance from the center of the flock
|-
|
===== Max Flock Visible Distance =====
|''Scalar''
|<code>3</code>
|
|Distance within the flock will be visible
|-
|
===== Visibility Cooldown =====
|''Scalar''
|<code>3</code>
|
|How many seconds to wait before checking visibility again
|-
|
===== Bird Prefab =====
|''Resource Name''
|<code>0</code>
|
|Prefab of the birds
|-
|
===== Takeoff Time =====
|''Scalar''
|<code>3</code>
|
|For how long the flock is taking off
|-
|
===== Takeoff Speed =====
|''Scalar''
|<code>3</code>
|
|Speed of movement at start of take off
|-
|
===== Max Wind Speed =====
|''Scalar''
|<code>3</code>
|
|Max speed the wind can have
|-
|
===== Wind Factor =====
|''Scalar''
|<code>3</code>
|
|How much the wind affect us
|-
|
===== Movement Speed =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max speed while flying. It is used to define the Amplitude the speed curve: Y = YOffset + Amplitude * sin((X - XOffset) * Period)
|-
|
===== Speed Curve XOffset =====
|''Scalar''
|<code>3</code>
|
|Offset of the X in the speed curve: Y = YOffset + Amplitude * sin((X - XOffset) * Period)
|-
|
===== Speed Curve Period =====
|''Scalar''
|<code>3</code>
|
|Period of the speed curve: Y = YOffset + Amplitude * sin((X - XOffset) * Period
|-
|
===== Nodes For Flight Speed =====
|''Integer''
|<code>0</code>
|
|How many nodes to use in the flight for speed calculations
|-
|
===== Nodes To Land =====
|''Integer''
|<code>0</code>
|
|How many nodes before the end of the path should the birds start the landing animation
|-
|
===== Wind Speed Threshold =====
|''Scalar''
|<code>3</code>
|
|Below this threshold, back wind and front wind will not affect the annimations
|-
|
===== Wind Angle Threshold =====
|''Scalar''
|<code>3</code>
|
|How big is the angle in which we have back-wind or are against it
|-
|
===== Altitude Threshold =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max At how much absolute vertical movement, the Animation Score Min, Mid and Max Level are reached. Below the first threshold, MIN. Between the thresholds, Mid. Above the last threshold, Max
|-
|
===== Animation Score Max Level =====
|''Scalar''
|<code>3</code>
|
|Score added to the animation (Glide if moving down, Flap if moving up) while in the Max vertical movement threshold
|-
|
===== Animation Score Mid Level =====
|''Scalar''
|<code>3</code>
|
|Score added to the animation (Glide if moving down, Flap if moving up) while in the Mid vertical movement threshold
|-
|
===== Animation Score Min Level =====
|''Scalar''
|<code>3</code>
|
|Score added to the animation (Glide if moving down, Flap if moving up) while in the Min vertical movement threshold
|-
|
===== Animation Score Back Wind =====
|''Scalar''
|<code>3</code>
|
|Score added to the Glide animation when flying with back wind
|-
|
===== Animation Score Against Wind =====
|''Scalar''
|<code>3</code>
|
|Score added to the Flap animation when flying with back wind
|-
|
===== Animation Score Decelerating =====
|''Scalar''
|<code>3</code>
|
|Score added to the Glide animation while decelerating
|-
|
===== Animation Score Accelerating =====
|''Scalar''
|<code>3</code>
|
|Score added to the Flap animation while accelerating
|-
|
===== Take Off To Fly Threshold =====
|''Scalar''
|<code>3</code>
|
|In the direction of the movement, the needed vertical proportion to stop the Take off animation and to start the Flying animations
|-
|
===== Bird Time Offset =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max When checking the accelerate function for the animations, the min/max offset a bird can have
|-
|
===== Bird Takeoff Speed =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max When taking off, the min/max speed of the animation
|-
|
===== Max Bird Radius =====
|''Scalar''
|<code>3</code>
|
|Radius of the movement possible positions of each bird from its center
|-
|
===== Bird Lerp Factor =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max for the initial lerping factor number. This are the limits for how they will flock
|-
|
===== Bird Lerp Factor Change =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max for how much the lerp factor number can change each time a new target is created.
|-
|
===== Bird Time =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max When creating a new position for each bird, the min/max time to get there
|-
|
===== Bird Pitch Angle =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min/max In degrees, how much a bird pitches at least/most while turning
|-
|
===== Max Bird Roll Angle =====
|''Scalar''
|<code>3</code>
|
|In degrees, how much can a bird roll while turning
|-
|
===== Min Bird Roll Angle =====
|''Scalar''
|<code>3</code>
|
|In degrees, how much the angle difference must be for the bird to roll
|-
|
===== Bird Degrees Per Second =====
|''Scalar''
|<code>3</code>
|
|In degrees, how fast a bird can roll while turning
|-
|
===== Nodes For Turning =====
|''Integer''
|<code>0</code>
|
|How many nodes ahead in the path do we consider for the bird tilting
|-
|
===== Local Movement At Turning Percentage =====
|''Scalar''
|<code>3</code>
|
|How the local movement of the bird and the flock are related for the calculation of the turning
|-
|}


Therefore, your first task will be preparing following file structure
=== ChimeraAIWorld ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Initialize Road Network =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Allowed Link Navmesh Types =====
|''Array of Strings''
|<code>0</code>
|
|Only navlinks declared for these Navmesh Types will be built into the road network
|-
|
===== Navmesh For Off Roads =====
|''String''
|<code>0</code>
|
|Navmesh where to search for off roads when a road is blocked
|-
|
===== Off Road Flags =====
|''Flags''
|<code>0</code>
|
|Flags used to find off roads on navmesh
|-
|
===== Price of crossroad on Road network =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Price of roadnetwork paths =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Accepted Road Types =====
|''Flags''
|<code>0</code>
|
|Road types
|-
|
===== Collision detection layers =====
|''Flags''
|<code>0</code>
|
|What layers are used when doing road rebuilding
|-
|
===== Actual road width percentage =====
|''Scalar''
|<code>3</code>
|
|Percentage of the road width that is afected by obstacles
|-
|
===== Min Road Width =====
|''Scalar''
|<code>3</code>
|
|Minimum width a road can have after rebuilding
|-
|
===== Road Width Change Step =====
|''Scalar''
|<code>3</code>
|
|Minimum size change unit (in meters) for road width changes when rebuilding
|-
|}


[[Image:armareforger-new-prop-file-structure.png|800px]]
=== AICarMovementComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Cruise Vehicle Speed Kmh =====
|''Scalar''
|<code>3</code>
|
|Typical (cruise) speed of vehicle in km/h
|-
|
===== Reverse Vehicle Speed Kmh =====
|''Scalar''
|<code>3</code>
|
|Reverse speed of vehicle in km/h (should be negative)
|-
|
===== Friction Coefficient =====
|''Scalar''
|<code>3</code>
|
|How good is this car at braking (usually in range 0.5 to 1.0)
|-
|
===== Stop Distance Coefficient =====
|''Scalar''
|<code>3</code>
|
|Used for approximation how long it takes to stop the vehicle. Higher val - shorter distance. Used for speed predictions.
|-
|
===== Max Reverse Travel Distance =====
|''Scalar''
|<code>3</code>
|
|Max distance a vehicle will traverse reversing.
|-
|
===== Break Treshold =====
|''Scalar''
|<code>3</code>
|
|Use break when speed is higher than desired in km/h
|-
|
===== Max Break At =====
|''Scalar''
|<code>3</code>
|
|Use full break when speed is higher than this in km/h
|-
|
===== Max Bump Speed =====
|''Scalar''
|<code>3</code>
|
|Speed in which it should be safe to bump a static vehicle (km/h).
|-
|
===== Max Steering Change S =====
|''Scalar''
|<code>3</code>
|
|Max change in steering per second in radians
|-
|
===== Steering PIDOn Water =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Steering PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Throttle PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Use navmesh for pathfinding =====
|''Boolean''
|<code>0</code>
|
|If unchecked, road network will be used. Navmesh, otherwise.
|-
|
===== Collision rays origin height from pivot =====
|''Scalar''
|<code>3</code>
|
|The Y difference between the object pivot and the desired origin of collision detection rays
|-
|
===== Collision detection layers =====
|''Flags''
|<code>0</code>
|
|What layers are used when doing reversing collision detection (if preset not set)
|-
|
===== Collision detection layers preset =====
|''String''
|<code>0</code>
|
|Preset of layer definition
|-
|
===== AILOD level =====
|''Integer''
|<code>0</code>
|
|Level of LOD at which speed is reduced
|-
|
===== Max AILOD =====
|''Integer''
|<code>0</code>
|
|Level of LOD max for drivers
|-
|
===== LOD speed coeficient =====
|''Scalar''
|<code>3</code>
|
|How much reduce reduce speed in higher AILODs
|-
|
===== Obstacle Avoidance Timer =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Obstacle Avoidance Check Dist =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Detection Angle =====
|''Scalar''
|<code>3</code>
|
|Angle of the circle sector for detection in degrees
|-
|
===== Min Range Detection Angle =====
|''Scalar''
|<code>3</code>
|
|Angle of the circle sector in proximity
|-
|
===== Min Detection Range =====
|''Scalar''
|<code>3</code>
|
|Min range
|-
|
===== Min Horn Time S =====
|''Scalar''
|<code>3</code>
|
|Min time for performing the horn in seconds
|-
|
===== Max Horn Time S =====
|''Scalar''
|<code>3</code>
|
|Max time for performing the horn in seconds
|-
|
===== Min Horn Pause S =====
|''Scalar''
|<code>3</code>
|
|Min time between horns in seconds
|-
|
===== Max Horn Pause S =====
|''Scalar''
|<code>3</code>
|
|Max pause between horns in seconds
|-
|}


=== Cutting object to parts ===
=== AICharacterMovementComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Orientation PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Obstacle Avoidance Timer =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Obstacle Avoidance Check Dist =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


Portable desk source model contained all optional elements, like desk wing and lids, in single model. In Arma 3, subvariants of such assets would be created by '''hiding each element via model config animations'''. Something like that is '''no longer necessary nor recommended''' (''hiding of mesh has some performance drawback'') - instead, additional parts of the model can be either added by '''SlotManagerComponent ''' or through '''Hierarchy'''.
=== AIFlockMovementComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Possible Splines To Use =====
|''Array of Resource Names''
|<code>0</code>
|
|
|-
|
===== Wind Factor =====
|''Scalar''
|<code>3</code>
|
|How much the wind speed affects the path
|-
|
===== Distance Factor =====
|''Scalar''
|<code>3</code>
|
|The farther from the origin of the spline in the y, the more the wind affets the path
|-
|
===== Max Wind Skew Factor =====
|''Scalar''
|<code>3</code>
|
|Maximum ammount that the wind can displace the points from their origin
|-
|
===== Force Above Terrain =====
|''Boolean''
|<code>0</code>
|
|Force the path to always be above the point the bird spawned in reference to terrain
|-
|
===== Enable Random Path Orientation =====
|''Boolean''
|<code>0</code>
|
|Randomly rotate the spline for movement or use the one in the prefab
|-
|}


[[Image:armareforger-new-prop-object-builder-parts.gif|center]]
=== AIFlyingMovementComponent ===
{{Clear}}
{| class="wikitable"
In case of those asset, '''one wing''' ''(PortableDesk_01_wing.fbx)'' and '''one lid''' ''(PortableDesk_01_lid.fbx)'' should be moved to separate FBX files and then all of them should be removed from the main mesh (''PortableDesk_01.fbx)''
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Direct Flight =====
|''Boolean''
|<code>0</code>
|
|Avoid pathfinding and fly directly in the direction of the target location.
|-
|}


[[Image:armareforger-new-prop-split-object.png|center]]
=== AIGroupMovementComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Leader movement history size =====
|''Integer''
|<code>0</code>
|
|Maximum number of recent leader positions recorded in history buffer.
|-
|
===== Leader movement distance threshold =====
|''Scalar''
|<code>3</code>
|
|Minimum distance the leader needs to travel before a new position is recorded in history buffer.
|-
|
===== Default Formation =====
|''String''
|<code>0</code>
|
|
|-
|}


{{Clear}}
=== AIHelicopterMovementComponent ===
=== Adding sockets ===
Inherits from: [[#AIFlyingMovementComponent|AIFlyingMovementComponent]]


[[Image:armareforger-new-weapon-empty-create.png|right]]
{| class="wikitable"
Sockets are empty objects ''(in Blender nomenclature)'' which can be used to attach elements (prefabs) or actions to it. In Blender, such sockets can be added via '''Add→ Empty→ Plain Axis''' option.
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Prediction Time =====
|''Scalar''
|<code>3</code>
|
|Time to predict future position.
|-
|
===== Max Pitch =====
|''Scalar''
|<code>3</code>
|
|Max pitch of the Helicopter, in radians.
|-
|
===== Max Roll =====
|''Scalar''
|<code>3</code>
|
|Max roll of the Helicopter, in radians.
|-
|}


It is quite important to properly orientate those empty objects since their position & rotation will be used in various systems, like in '''SlotManagerComponent''' for attaching various parts of rugged desk (''this is covered in detail in later part of this tutorial'').
=== AIRocketMovementComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Prediction Time =====
|''Scalar''
|<code>3</code>
|
|Time to predict future position.
|-
|
===== Max Pitch =====
|''Scalar''
|<code>3</code>
|
|Velocity damper.
|-
|
===== Max Head Change =====
|''Scalar''
|<code>3</code>
|
|Max heading change.
|-
|
===== Forward Thrust =====
|''Scalar''
|<code>3</code>
|
|Forward thrust.
|-
|
===== Rotation Thrust =====
|''Scalar''
|<code>3</code>
|
|Rotation thrust.
|-
|}


At this stage, main, '''PortableDesk_01.fbx''', file should have following sockets
=== InsectFlyMovementComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max height =====
|''Scalar''
|<code>3</code>
|
|Maximum prefered height of flight
|-
|
===== Min height =====
|''Scalar''
|<code>3</code>
|
|Minimum prefered height of flight
|-
|
===== Max radius =====
|''Scalar''
|<code>3</code>
|
|Maximum prefered radius
|-
|
===== Rest time min =====
|''Scalar''
|<code>3</code>
|
|Rest period after landing
|-
|
===== Rest time max =====
|''Scalar''
|<code>3</code>
|
|Rest period after landing
|-
|
===== Takeoff delay =====
|''Scalar''
|<code>3</code>
|
|Delay between sending take-off command to animation graph and entity starting to move
|-
|
===== Direction change period min =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often direction is changed
|-
|
===== Direction change period max =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often direction is changed
|-
|
===== Direction change delta min =====
|''Scalar''
|<code>3</code>
|
|degrees, rotation around Y axis, only positive values, value is mirrored on both sides
|-
|
===== Direction change delta max =====
|''Scalar''
|<code>3</code>
|
|degrees, rotation around Y axis, only positive values, value is mirrored on both sides
|-
|
===== Direction change interpolation =====
|''Scalar''
|<code>3</code>
|
|in seconds, length of interpolation
|-
|
===== Forward speed period min =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often forward speed is changed
|-
|
===== Forward speed period max =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often forward speed is changed
|-
|
===== Forward speed duration min =====
|''Scalar''
|<code>3</code>
|
|in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
|-
|
===== Forward speed duration max =====
|''Scalar''
|<code>3</code>
|
|in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
|-
|
===== Forward speed range min =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Forward speed range max =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Forward speed interpolation =====
|''Scalar''
|<code>3</code>
|
|in seconds, length of interpolation
|-
|
===== Side speed period min =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often side speed is changed
|-
|
===== Side speed period max =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often side speed is changed
|-
|
===== Side speed duration min =====
|''Scalar''
|<code>3</code>
|
|in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
|-
|
===== Side speed duration max =====
|''Scalar''
|<code>3</code>
|
|in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
|-
|
===== Side speed range min =====
|''Scalar''
|<code>3</code>
|
|only positive values, value is mirrored on both sides
|-
|
===== Side speed range max =====
|''Scalar''
|<code>3</code>
|
|only positive values, value is mirrored on both sides
|-
|
===== Side speed interpolation =====
|''Scalar''
|<code>3</code>
|
|in seconds, length of interpolation
|-
|
===== Up speed period min =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often up speed is changed
|-
|
===== Up speed period max =====
|''Scalar''
|<code>3</code>
|
|in seconds, how often up speed is changed
|-
|
===== Up speed duration min =====
|''Scalar''
|<code>3</code>
|
|in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
|-
|
===== Up speed duration max =====
|''Scalar''
|<code>3</code>
|
|in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
|-
|
===== Up speed range min =====
|''Scalar''
|<code>3</code>
|
|only positive values, value is mirrored on both sides
|-
|
===== Up speed range max =====
|''Scalar''
|<code>3</code>
|
|only positive values, value is mirrored on both sides
|-
|
===== Up speed interpolation =====
|''Scalar''
|<code>3</code>
|
|in seconds, length of interpolation
|-
|
===== Pitch limit min =====
|''Scalar''
|<code>3</code>
|
|degrees, minimum attainable pitch, applied only if speed that affects pitch is not 0
|-
|
===== Pitch limit max =====
|''Scalar''
|<code>3</code>
|
|degrees, maximum attainable pitch
|-
|
===== Max pitch at forward acceleration =====
|''Scalar''
|<code>3</code>
|
|at what acceleration pitch is maximum
|-
|
===== Max pitch at upward acceleration =====
|''Scalar''
|<code>3</code>
|
|at what acceleration pitch is maximum
|-
|
===== Pitch interpolation =====
|''Scalar''
|<code>3</code>
|
|in seconds, length of interpolation
|-
|
===== Roll limit min =====
|''Scalar''
|<code>3</code>
|
|degrees, minimum attainable roll, applied only if speed that affects roll is not 0
|-
|
===== Roll limit max =====
|''Scalar''
|<code>3</code>
|
|degrees, maximum attainable roll
|-
|
===== Turn speed max roll =====
|''Scalar''
|<code>3</code>
|
|at what turn speed roll is maximum
|-
|
===== Max roll at side acceleration =====
|''Scalar''
|<code>3</code>
|
|at what acceleration roll is maximum
|-
|
===== Roll interpolation =====
|''Scalar''
|<code>3</code>
|
|in seconds, length of interpolation
|-
|}


* '''socket_wing_01''' & '''socket_wing_02''' - for both wing models
=== ChimeraAIPathfindingComponent ===
* '''socket_lid_01''' & '''socket_lid_02 -''' for both lids
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Use Road Network =====
|''Boolean''
|<code>0</code>
|
|Enforces the use of Road Network when pathfinding if it's available.
|-
|
===== Turn radius =====
|''Scalar''
|<code>3</code>
|
|Turn radius for path smoothing.
|-
|}


[[Image:armareforger-new-prop-sockets-model.png]]
=== ChimeraNavmeshWorld ===
{{Clear}}
{| class="wikitable"
Then, '''PortableDesk_01_lid.fbx''' & '''PortableDesk_01_wing.fbx''' should have corresponding snappoints - i.e. '''snap_wing''' and '''snap_lid'''.
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Destructible Area Type =====
|''String''
|<code>0</code>
|
|Area type for destructibles
|-
|}


Those points would be used later to '''connect''' (aka snap) '''both models together''' so their '''position and orientation is extremely important'''!
=== PathVisualizer ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== End Position =====
|''Vector with 3 elements''
|<code>3</code>
|
|End position wanted in world coordinates
|-
|
===== Start Obj Name =====
|''String''
|<code>0</code>
|
|Name of the entity that will be used for determining the start position.
|-
|
===== End Obj Name =====
|''String''
|<code>0</code>
|
|Name of the entity that will be used for determining the end position.
|-
|
===== Precision =====
|''Scalar''
|<code>3</code>
|
|Minimum position change required for recalculating a new path.
|-
|
===== Navmesh Project =====
|''String''
|<code>0</code>
|
|Navmesh that will be used to get navmesh world.
|-
|
===== Use Road Network =====
|''Boolean''
|<code>0</code>
|
|Enables the use of Road Network when pathfinding.
|-
|}


[[Image:armareforger-new-prop-snap-points.png]]
=== RoadNetworkBridgeComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Points =====
|''Array of Vectors with 3 elements''
|<code>3</code>
|
|
|-
|
===== Bridge Width =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


=== Setting skeleton & rigging mesh ===
=== AISmartActionComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== AIBehavior Tree =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Tags =====
|''Array of Strings''
|<code>0</code>
|
|tags of smart action
|-
|
===== Action Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Action position offset
|-
|}
 
=== AITaskPerformObjectAction ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Action Entity =====
|''Integer''
|<code>0</code>
|
|
|-
|}
 
=== AIAnimalManagerReactToCloseEntitiesMovement ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Walk Speed Limit =====
|''Scalar''
|<code>3</code>
|
|Until what speed it is considered Walking
|-
|
===== Run Speed Limit =====
|''Scalar''
|<code>3</code>
|
|Until what speed it is considered Running
|-
|
===== Car Speed Limit =====
|''Scalar''
|<code>3</code>
|
|When the top max achieved. Going faster would not increase the chance
|-
|
===== Walk Trigger Chance =====
|''Scalar''
|<code>3</code>
|
|Base chance, while walking, of triggering
|-
|
===== Run Trigger Chance =====
|''Scalar''
|<code>3</code>
|
|Base chance, while running, of triggering
|-
|
===== Car Trigger Chance =====
|''Scalar''
|<code>3</code>
|
|Base chance, while going faster than running, of triggering
|-
|
===== Min Distance =====
|''Scalar''
|<code>3</code>
|
|If closer than this, the chance will not be fading out
|-
|
===== Max Distance =====
|''Scalar''
|<code>3</code>
|
|If farther than this, the chance will be faded out
|-
|}


This asset has six drawers which can be animated. In order to make those drawers animated, it is necessary to add proper skeleton to the model and then skin those movable selections to newly created bones.
=== AITaskPlayGesture ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Gesture =====
|''Integer''
|<code>0</code>
|
|Pick gesture type from the list
|-
|
===== Play =====
|''Boolean''
|<code>0</code>
|
|Play gesture if TRUE; Stop gesture if FALSE
|-
|}


[[Image:armareforger-new-prop-blender-add-bone.png|left]]
=== AITaskSetADS ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Use ADS =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


In Blender, new armature can be easily created by adding new '''Single Bone''' in ''Add → Armature '' menu when in '''Object Mode'''. This new bone can be called '''root''' and it will be serving as main bone of this skeleton.
=== AITaskChangeStance ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Stance =====
|''Integer''
|<code>0</code>
|
|Wanted Stance
|-
|
===== In Stance =====
|''Integer''
|<code>0</code>
|
|
|-
|}


Similar to sockets, orientation of bones is quite important for animation. Unlike in RV engine, animations are '''no longer using two vertices to create axis of transformation''' but instead '''rotation & position of bone''' is used to determine origin of animation.
=== AITaskCharacterAim ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Aim Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Use ADS =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


Once root '''bone''' was created, it is possible to add bone for each of the drawers like on picture below.
=== AITaskCharacterRaiseWeapon ===
{{Clear}}
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Raise =====
|''Boolean''
|<code>0</code>
|
|Raise weapon
|-
|}


[[Image:armareforger-new-prop-blender-full-skeleton.png]]
=== AITaskCharacterSetMovementSpeed ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Movement speed =====
|''Integer''
|<code>0</code>
|
|Wanted movement speed
|-
|
===== Input Movement speed =====
|''Integer''
|<code>0</code>
|
|
|-
|}


=== Colliders & material names ===
=== AITaskCharacterStop ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Aim Type =====
|''Integer''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-blender-scene-colection.png|right]]
=== DecoAiming ===
Colliders are special type of objects which are used to calculate various kinds of collisions - be it physic simulation or tracing of bullet penetration. There are few rules regarding those colliders and most of them listed on [[Arma_Reforger:FBX_Import#Collider_usage|'''collider related segment of FBX Import page''']].
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Test Type =====
|''Integer''
|<code>0</code>
|
|What test to run
|-
|
===== Aim Threshold =====
|''Scalar''
|<code>6u</code>
|
|Value for testing
|-
|
===== In Aim Threshold =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Aim Type =====
|''Integer''
|<code>0</code>
|
|
|-
|}


When importing asset from previous Arma game - like in this example - you are most likely going to have already convex components ready from '''Geometry''', '''Fire Geometry''', '''View Geometry''' or '''Geometry Physx''' LODs. If you are using [[Arma_Reforger:Enfusion_Blender_Tools:_P3D_Conversion|P3D importer]] which is part of [[Arma_Reforger:Enfusion_Blender_Tools|Enfusion Blender Tools]], then those components will be automatically converted to trimesh colliders ( ''UTM_ prefix''). Since trimesh colliders are not recommended for general collision, it might be wise to verify if object can be converted to trimesh.
=== DecoCheckLOD ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Check LOD =====
|''Integer''
|<code>0</code>
|
|
|-
|}


If you are using Blender, there is small handy tool to assist you with assigning correct game materials & layer presets on colliders - more details about can be found on [[Arma_Reforger:Enfusion_Blender_Tools:_Objects_Tools]].
=== DecoDangerEvent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Has Any =====
|''Boolean''
|<code>0</code>
|
|Check for any type of danger event
|-
|
===== Danger Event Type =====
|''Integer''
|<code>0</code>
|
|Pick type of danger event to check
|-
|
===== Distance Threshold =====
|''Scalar''
|<code>3</code>
|
|TLimit search for danger events to a certain radius. Default 0 = range not limited
|-
|}


In this sample, rugged desk uses simple box mesh, so usage of '''UBX_ prefix is recommended'''.
=== DecoIsInVehicle ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Entity In =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Vehicle Out =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Compartment Type Out =====
|''Integer''
|<code>0</code>
|
|
|-
|}


Next thing when it comes to configuration of colliders is '''configuration of Layer Preset'''. This is done through '''usage''' custom property (''details about adding that property can be found on following [[Arma_Reforger:FBX_Import#Setting_Layer_Preset_on_colliders_.28usage_parameter.29|'''FBX Import page''']]). For simple prop like this one, layer preset should be set to '''PropFireView'''. If you have multiple colliders, you have to add that property to each of them!
=== DecoTestOrder ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Has Any =====
|''Boolean''
|<code>0</code>
|
|Check for any type of order
|-
|
===== Order Type =====
|''Integer''
|<code>0</code>
|
|Pick a type of order to check
|-
|
===== In Agent =====
|''Integer''
|<code>0</code>
|
|
|-
|}


After layer preset is set, it is time for setting [[Arma_Reforger:FBX_Import#Physical_material_.28Game_material.29|'''Game Material''']]. This is done by assigning to collider a material with specific name and again, details of naming are described on FBX Import page. For this example prop, '''Plastic_6mm''' game materials is used, since it is assumed that single wall is 3mm thick and due to to geometry is a simple box, those walls are counted twice.
=== AITaskGetFormationOffset ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Out Offset =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Default World Pos =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Projected World Pos =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Leader =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Scale =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Scale =====
|''Scalar''
|<code>3</code>
|
|Scale applied to default formation
|-
|}


Below is screen showing [[Arma_Reforger:Enfusion_Blender_Tools:_Objects_Tools#Colliders_.26_Layer_Presets_setup|'''Game Materials''' & '''Layer Presets''' selection menu]] from '''Enfusion Blender Tools'''. Using this simple tool it is possible to easily select desired game material and layer preset, which will be automatically. Please note that before using that feature it is necessary to [[Arma_Reforger:Enfusion_Blender_Tools:_Objects_Tools#Automatic_sorting_of_objects|sort objects]] and [[Arma_Reforger:Enfusion_Blender_Tools#Installation|setup plugin]] correctly.
=== AITaskGroupSetMovementSpeed ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Movement speed =====
|''Integer''
|<code>0</code>
|
|Wanted movement speed
|-
|
===== Input Movement speed =====
|''Integer''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-blender-game-materials.png]]
=== AITaskGroupMove ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Group Move Completion Type =====
|''Integer''
|<code>0</code>
|
|Group movement will complete based on which set of move handlers completes movement.
|-
|
===== Group Move Completion Type =====
|''Integer''
|<code>0</code>
|
|Group movement will complete based on which set of move handlers completes movement.
|-
|
===== Failed Handler Id =====
|''Integer''
|<code>0</code>
|
|
|-
|}


=== AITaskGroupMoveToEntity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Group Move Completion Type =====
|''Integer''
|<code>0</code>
|
|Group movement will complete based on which set of move handlers completes movement.
|-
|
===== Group Move Completion Type =====
|''Integer''
|<code>0</code>
|
|Group movement will complete based on which set of move handlers completes movement.
|-
|
===== Failed Handler Id =====
|''Integer''
|<code>0</code>
|
|
|-
|}


{{Clear}}
=== AITaskMoveInFormation ===
== FBX export settings ==
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Scale =====
|''Integer''
|<code>0</code>
|
|Scale input applied to formation.
|-
|
===== Scale =====
|''Scalar''
|<code>3</code>
|
|Scale applied to default formation.
|-
|
===== In Max Dist To Formation Pos =====
|''Integer''
|<code>0</code>
|
|Input Maximum distance an agent can have from it's default formation position.
|-
|
===== Max Dist To Formation Position =====
|''Scalar''
|<code>3</code>
|
|Maximum distance an agent can have from it's default formation position.
|-
|
===== In Projected Distance =====
|''Integer''
|<code>0</code>
|
|Input distance to project the formation on the leader's path
|-
|
===== Projected Distance =====
|''Scalar''
|<code>3</code>
|
|Distance to project the formation on the leader's path
|-
|}


Most of the general rules can be found on [[Arma_Reforger:FBX_Import#FBX_Export|'''FBX Import page''']] . In principle, when exporting from i.e. 3DS Max, you have to make sure that you are exporting in '''binary format in version 2014/2015'''. Furthermore, '''Triangulation''' & '''Preserve Edge Orientation should be turned off.'''
=== AITaskMoveToWaypoint ===
Inherits from: [[#AITaskGroupMove|AITaskGroupMove]]


'''Blender''' wise, there are 3 most important things to keep in mind when exporting FBX
{| class="wikitable"
{| class="wikitable"
| '''1. Object Types''':
|+
For animated object like this prop, you need to have '''checked on''' at least:
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Waypoint Entity =====
|''Integer''
|<code>0</code>
|
|
|-
|}


'''Empty -''' handles all snap points
=== AITaskCurrentOrder ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Out Order Object =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Order Position =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Order Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Order =====
|''Integer''
|<code>0</code>
|
|
|-
|}


'''Armature''' '''-''' exports skeleton of your weapon
=== AITaskSendOrder ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Agent Sender =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Agent Receiver =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Order Type =====
|''Integer''
|<code>0</code>
|
|Order type to send
|-
|
===== In Order Position =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Order Entity =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Order Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Order =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Highest Priority =====
|''Boolean''
|<code>0</code>
|
|If true, order will be first one in queue. If false will be queued.
|-
|
===== Order Object =====
|''String''
|<code>0</code>
|
|Class name with base class of AIOrder
|-
|}


'''Mesh -''' self explanatory
=== AITaskPickTarget ===
| rowspan="3" | [[Image:armareforger-new-weapon-export-blender2.png|200px]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|-
| '''2. Custom Properties''':
|
Without this option all custom properties like '''LayerPresets''' would be lost!
===== Out Entity =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Count Enemies =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Last Seen Max =====
|''Scalar''
|<code>3</code>
|
|Filter target by how long ago it was seen
|-
|
===== Enemy =====
|''Integer''
|<code>0</code>
|
|Wanted Target
|-
|-
| '''3. Leaf bones''':
Leaf bones are completely unnecessary in Enfusion and it's better to have that option '''turned off'''
|}
|}


=== AITaskFindSmartAction ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Radius =====
|''Scalar''
|<code>3</code>
|
|The radius to search for actions within
|-
|
===== Out Smart Action =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Position =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Radius =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Tags =====
|''Array of Strings''
|<code>0</code>
|
|Tags of smart action
|-
|
===== Tags Test =====
|''Integer''
|<code>0</code>
|
|Way of testing tags
|-
|
===== In Tags =====
|''Integer''
|<code>0</code>
|
|
|-
|}


== Preparing textures ==
=== AITaskGetCurrentSmartAction ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Out Smart Action =====
|''Integer''
|<code>0</code>
|
|
|-
|}


When importing textures of weapon from previous Real Virtuality games like Arma 3 there is no real automated or simple method of conversion spec-gloss textures to PBR (''Physicial Based Rendering'') Metal Rough ones - current industry standard. Therefore in most cases it's much easier to do textures from scratch in i.e. Substance Painter.
=== AITaskGetSmartActionParams ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Smart Action =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Behavior =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Pos =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Out Smart Action Entity =====
|''Integer''
|<code>0</code>
|
|
|-
|}


There are tons of materials on the internet how to create proper PBR texture and it's highly recommend to search for it via some popular search engines. More information about maps and textures used by Reforger can be found on [[Arma_Reforger:Textures]] page
=== AITaskPerformSmartAction ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== In Smart Action =====
|''Integer''
|<code>0</code>
|
|
|-
|}


For this asset, assuming that Substance Painter is used, it is recommended to use one of the shared export profiles - Arma Reforger - BCR + NMO, which should create textures compatible with Reforger.
=== AITaskGetInVehicle ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Position =====
|''Integer''
|<code>0</code>
|
|Wanted Position
|-
|
===== Vehicle Name =====
|''String''
|<code>0</code>
|
|Select vehicle by name
|-
|
===== In Vehicle =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Compartment Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== In Compartment Slot =====
|''Integer''
|<code>0</code>
|
|
|-
|}


=== AITaskFire ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Period =====
|''Scalar''
|<code>3</code>
|
|For how long to idle
|-
|
===== Keep Firing =====
|''Boolean''
|<code>0</code>
|
|Keep firing during whole period (will work only with auto firemodes)
|-
|
===== Period Key =====
|''Integer''
|<code>0</code>
|
|
|-
|}


== Importing & registering new model ==
=== AICombatPropertiesComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Priority =====
|''Scalar''
|<code>3</code>
|
|Priority affecting which magazine AI prefer to use against a target
|-
|
===== Priority Against Vehicles =====
|''Scalar''
|<code>3</code>
|
|Overrides priority against vehicles. If not specified, same priority is used.
|-
|
===== Used Against =====
|''Flags''
|<code>0</code>
|
|Against what unit types AI will use this magazine
|-
|
===== Indirectly Used Against =====
|''Flags''
|<code>0</code>
|
|Against what unit types AI will use this magazine when can't see target directly
|-
|
===== Traits =====
|''Flags''
|<code>0</code>
|
|Flags of traits, to aid finding of magazines by traits
|-
|}


Importing and registering of new model is quite simple and this involves following steps:
=== AnimationAttachmentInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Anim Graph =====
|''Resource Name''
|<code>0</code>
|
|Anim graph name
|-
|
===== Anim Instance =====
|''Resource Name''
|<code>0</code>
|
|Anim graph instance
|-
|
===== Start Node =====
|''String''
|<code>0</code>
|
|Node where to start from
|-
|
===== Binding Name =====
|''String''
|<code>0</code>
|
|Binding name in root graph
|-
|}


* Locating FBX file that you wish to convert in '''Resource Browser'''
=== AnimationIKTargetInfo ===
* Clicking on that FBX with RMB and then selecting "'''Register and Import'''" option from the context menu
{| class="wikitable"
* From pop up menu with title '''Register Resource (File(s)''', select  "'''as Model'''" option
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Binding Name =====
|''String''
|<code>0</code>
|
|Binding name in accessor (e.g character) graph
|-
|
===== Position Info =====
|''Object''
|<code>0</code>
|
|Position of target
|-
|}


After that, conversion of FBX into XOB will begin and depending on complexity of the model it might take some time. In case of that simple prop.
=== ProcAnimComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== On Frame Update =====
|''Boolean''
|<code>0</code>
|
|Enable/disable on-frame updating of the component
|-
|}


Once model is imported, a '''new XOB''' should appear in '''Resource Browser -''' this file can be now opened in new '''Resource Manager''' tab for '''preview''' and '''game related parameters tweaking''' by double clicking with {{Controls|LMB}} on it.
=== ChimeraGlobalConfig ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Default Player Controller =====
|''Resource Name''
|<code>0</code>
|
|Default player controller to be spawned if world does not have one already.
|-
|
===== Maximum View Distance =====
|''Scalar''
|<code>3</code>
|
|Hard limit of maximum view distance in meters.
|-
|
===== Minimum View Distance =====
|''Scalar''
|<code>3</code>
|
|Hard limit of minimum view distance in meters.
|-
|
===== Minimum Scaled Explosion Distance =====
|''Scalar''
|<code>3</code>
|
|Minimum scaled limit of distance from explosion for damage calculation.
|-
|
===== Maximum Scaled Explosion Distance =====
|''Scalar''
|<code>3</code>
|
|Maximum scaled limit of distance from explosion for damage calculation.
|-
|
===== Ballistics =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Input Button Layout Config =====
|''Resource Name''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-register-fbx.gif]]
=== BaseEventHandler ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Event Name =====
|''String''
|<code>0</code>
|
|Event which will be handled
|-
|}


{{Feature|warning|While Workbench still supports relative paths for materials, this method is discouraged and should not be used.}}
=== EventHandlerManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Event Handlers =====
|''Array of Objects''
|<code>0</code>
|
|List of event handler definitions for events to be registered into
|-
|}


{{Feature|important|Both Layer Preset and Game Material can be changed in Import Settings window, although it is recommended to have that stored in model itself. Otherwise you might loose your data if colliders are changed (by f.e. renaming of objects).}}
=== SoundInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Surface Signal Value =====
|''Integer''
|<code>0</code>
|
|
|-
|}


=== HitEffectInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Default particle effect
|-
|
===== Decal Material =====
|''Resource Name''
|<code>0</code>
|
|Decal(s) to be spawned on that material
|-
|
===== Bayonet Hit Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Particle effect for bayonets
|-
|
===== Decal Scale =====
|''Scalar''
|<code>3</code>
|
|Scale - multiplier applied to decal size (based on projectile diameter)
|-
|
===== Decal Far Plane =====
|''Scalar''
|<code>3</code>
|
|Far plane - maximum distance for decal projection box
|-
|
===== Decal Offset =====
|''Scalar''
|<code>3</code>
|
|Offset - distance of a projection start away from impact point
|-
|}


While Workbench still supports relative paths for materials, this method is discouraged and should not be used.
=== CollisionInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Default particle effect
|-
|}


=== Import settings ===
=== BallisticInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Density =====
|''Scalar''
|<code>3</code>
|
|[g/cm^3]
|-
|
===== Kinetic Penetration Resistance =====
|''Scalar''
|<code>3</code>
|
|[] Kinetic penetrator resistance multiplier
|-
|
===== Chemical Penetration Resistance =====
|''Scalar''
|<code>3</code>
|
|[] Chemical penetrator resistance multiplier
|-
|
===== Thickness Override =====
|''Integer''
|<code>0</code>
|
|Select type of thickness override
|-
|
===== Thickness =====
|''Scalar''
|<code>3</code>
|
|[mm]
|-
|
===== Thickness Max =====
|''Scalar''
|<code>3</code>
|
|[mm]
|-
|
===== Allow Deflection =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Stop Explosion Trace =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Penetration Dir Distribution =====
|''Scalar''
|<code>3</code>
|
|[]
|-
|
===== Penetration Dir Combine =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Water Surface =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Glass Surface =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Mushrooming Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier for mushrooming damage. When set to 0, the mushrooming ability of the projectile will not affect the damage outcome on this material.
|-
|
===== Tumbling Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier for tumbling damage. When set to 0, the tumbling ability of the projectile will not affect the damage outcome on this material.
|-
|
===== Cavitation Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier for cavitation damage. When set to 0, the cavitation ability of the projectile will not affect the damage outcome on this material.
|-
|
===== Penetration Damage Model =====
|''Boolean''
|<code>0</code>
|
|Allow penetration damage model\nENABLED (Material and Projectile):\n SpeedLoss * PenetrationDepth * PenetrationDensity / PenetrationSpeed\nDISABLED (Material or Projectile):\n InitSpeed * Mass
|-
|}


If everything went fine, main '''Resource Manager''' window should look like that:
=== ParticleEffectInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Vehicle Dust =====
|''Array of Resource Names''
|<code>0</code>
|
|Vehicle dust particle effects
|-
|
===== Blast =====
|''Array of Resource Names''
|<code>0</code>
|
|Blast particle effects
|-
|}


[[Image:armareforger-new-prop-imported-model-xob.png]]
=== GameMaterial ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sound Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Hit Effect Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collision Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Ballistic Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Particle Effect Info =====
|''Object''
|<code>0</code>
|
|
|-
|}


On the right side of the viewport, there is a panel where you can select between two tabs:
=== HierarchicalParametricMaterialInstanceComponent ===
Inherits from: [[#ParametricMaterialInstanceComponent|ParametricMaterialInstanceComponent]]


* [[Arma_Reforger:Resource_Manager:_Model_Editor#Details_Tab|'''Details''']] - shows various statistics (i.e. vertex, face or face count) and informations about  materials, colliders, skeleton or LODs present in the imported model. This tab is by '''default selected''' when opening new model.
{| class="wikitable"
* [[Arma_Reforger:Resource_Manager:_Model_Editor#Import_Settings_Tab|'''Import Settings''']] - in this tab it is possible to modify how FBX is imported to the game and it is possible to modify '''transformation, materials, physics or other misc parameters''' here.
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Hierarchy Propagation =====
|''Flags''
|<code>0</code>
|
|If the property value should be propagate to hierarchy.
|-
|}


After briefly checking if model has correct number of [[Arma_Reforger:Resource_Manager:_Model_Editor#LODs|LOD (''levels of details'')]] and it looks visually fine, it's time to move to '''Import Settings''' tab, where there are couple important things to set.
=== ParametricMaterialInstanceComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Accept Hierarchy Properties =====
|''Flags''
|<code>0</code>
|
|If the property value should be accepted from hierarchy.
|-
|
===== Color Albedo =====
|''Color''
|<code>4</code>
|
|
|-
|
===== Color Emissive =====
|''Color''
|<code>4</code>
|
|
|-
|
===== Emissive Multiplier =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Use User Param One =====
|''Boolean''
|<code>0</code>
|
|If user User Parameter One should be used
|-
|
===== User Param One =====
|''Integer''
|<code>0</code>
|
|Usually mud
|-
|
===== Use User Param Two =====
|''Boolean''
|<code>0</code>
|
|If user User Parameter Two should be used
|-
|
===== User Param Two =====
|''Integer''
|<code>0</code>
|
|Usually dirt
|-
|
===== Use User Param Three =====
|''Boolean''
|<code>0</code>
|
|If user User Parameter Three should be used
|-
|
===== User Param Three =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Use User Param Four =====
|''Boolean''
|<code>0</code>
|
|If user User Parameter Four should be used
|-
|
===== User Param Four =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Use User Param Alpha =====
|''Boolean''
|<code>0</code>
|
|If user User Parameter Alpha should be used
|-
|
===== User Param Alpha =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Custom Wetness Enabled =====
|''Boolean''
|<code>0</code>
|
|If custom wetness is enabled. Custom wetness value itslef is then set in User Param Three
|-
|
===== Sliding Drops Enabled =====
|''Boolean''
|<code>0</code>
|
|If sliding rain drops are enabled.
|-
|
===== Apply Properties When Mesh Changed =====
|''Boolean''
|<code>0</code>
|
|If set to true same properties would be applied to mesh that was changed at runtime on entity
|-
|}


=== Physics setup ===
=== DecalSlotInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Projection Offset =====
|''Scalar''
|<code>3</code>
|
|Projection offset from PointInfo target transform
|-
|
===== Projection Rotation =====
|''Vector with 3 elements''
|<code>3</code>
|
|Projection rotation around PointInfo target transform
|-
|
===== Far Plane =====
|''Scalar''
|<code>3</code>
|
|Far plane - maximum distance for decal projection box
|-
|
===== Stretch =====
|''Scalar''
|<code>3</code>
|
|Stretch of decal
|-
|
===== Scale =====
|''Scalar''
|<code>3</code>
|
|Scale
|-
|
===== Lifetime =====
|''Scalar''
|<code>3</code>
|
|Decal lifetime, value <= 0 is indeffinite.
|-
|
===== Create On Init =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Debug Draw =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Material =====
|''Resource Name''
|<code>0</code>
|
|Decal material
|-
|}


After initial import was done it's time to make sure that materials & colliders are using proper materials & colliders.  If it fails to find such texture, new dummy material (see area marked in orange on screen below) will be created in '''data''' folder next to the FBX model.
=== DecalZoneConfigurationItem ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Show Threshold =====
|''Scalar''
|<code>3</code>
|
|Show decal when hitzone accumulated at least provided damage alpha value (damage/maxDamage)
|-
|
===== Decal Slot =====
|''Object''
|<code>0</code>
|
|
|-
|}


If everything was setup correctly in Blender, imported model should already have one collider imported with correctly assigned '''Layer Preset''' ''(PropFireView)'' and '''Surface Properties''' (''plastic_3mm.gamemat''). Otherwise, here is the list of some common issues:
=== EntitySlotInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Auto Transform =====
|''Boolean''
|<code>0</code>
|
|auto transform
|-
|
===== Merge Physics =====
|''Boolean''
|<code>0</code>
|
|merge physics
|-
|
===== Child Pivot ID =====
|''String''
|<code>0</code>
|
|offset defined by child node
|-
|
===== Enabled =====
|''Boolean''
|<code>0</code>
|
|Should the prefab be spawned.
|-
|
===== Prefab =====
|''Resource Name''
|<code>0</code>
|
|Prefab to spawn
|-
|
===== Disable Physics Interaction =====
|''Boolean''
|<code>0</code>
|
|Should attached object not collide with any parent
|-
|
===== Inherit Parent Skeleton =====
|''Boolean''
|<code>0</code>
|
|Should attached object inherit parent skeleton
|-
|
===== Activate Physics On Detaching =====
|''Boolean''
|<code>0</code>
|
|Should physics be activated when entity is detached from slot?
|-
|
===== Deactivate Physics On Ataching =====
|''Boolean''
|<code>0</code>
|
|Should physics be deactivated when entity is atached to slot?
|-
|
===== Update Replication Parent =====
|''Boolean''
|<code>0</code>
|
|The slot takes care of (un)registering the replication parent. Used only for entities with RplComponent that has \"Parent Node From Parent Entity\" disabled. Helpful in situations where some component complains that it's not compatible with the RplComponent's setting enabled or when nothing else handles setting the replication parent
|-
|}


==== Geometry Params list is empty ====
=== RegisteringComponentSlotInfo ===
If both '''Colliders''' array in '''Details''' and '''Geometry Params''' array in '''Import Settings''' are empty, check for following errors:
Inherits from: [[#EntitySlotInfo|EntitySlotInfo]]


# Check if objects which are supposed to be colliders have '''correct prefix''' - i.e. UBX, UCX, etc. See [[Arma_Reforger:FBX_Import#Collider_shape|FBX Import]] page for more information
{| class="wikitable"
# Check '''Console Log''' if there are no errors regarding convexity or shape of the collider. See [[Arma_Reforger:FBX_Import#Collider_shape|FBX Import]] page for more information
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Register Actions =====
|''Boolean''
|<code>0</code>
|
|register action to parent
|-
|
===== Register Damage =====
|''Boolean''
|<code>0</code>
|
|register damage to parent
|-
|
===== Register Controllers =====
|''Boolean''
|<code>0</code>
|
|register controllers to parent
|-
|
===== Register Weapons =====
|''Boolean''
|<code>0</code>
|
|register weapons to parent
|-
|
===== Register Compartments =====
|''Boolean''
|<code>0</code>
|
|register compartments to parent
|-
|
===== Register Lights =====
|''Boolean''
|<code>0</code>
|
|register lights to parent
|-
|
===== Register Action Signals =====
|''Boolean''
|<code>0</code>
|
|register action signals to nearest parent
|-
|
===== Count As Parent For Explosions =====
|''Boolean''
|<code>0</code>
|
|If true, this entity will count as hitting the parent on traced explosions, and will not block traces to it.
|-
|}


==== Wrong Game Material ====
=== SlotManagerComponent ===
If impact effect on the asset are using default dirt impact effects or following error appears in console
{| class="wikitable"
<syntaxhighlight lang="erlang">
|+
RESOURCES : GetResourceObject @"{411A617924FC3D61}Assets/Props/Military/Camps/PortableDesk_01/PortableDesk_01.xob"
!Param
RESOURCES (E): Wrong&patched resource GUID in @"Assets/Props/Military/Camps/PortableDesk_01/PortableDesk_01.xob" for property UBX_Component01 resource name @"Plastic_6m.gamemat"
!Type
RESOURCES : GetResourceObject @"{D4D49F200A5937E1}Plastic_6m.gamemat"
!Default value
RESOURCES (E): Failed to open
!Unit
</syntaxhighlight>
!Description
then check for following errors:
|-
|
===== Slots =====
|''Array of Objects''
|<code>0</code>
|
|List of Entity slots
|-
|
===== Slot Mappers =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


# Make sure in 3D software of your choice that material assigned to collider is correctly named, i.e. ''Plastic_6mm_6A7CBD6BBCFC5148 - see [[Arma_Reforger:FBX_Import#Physical_material_.28Game_material.29|Game Material section of FBX Import page]].''
=== PlayerController ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Player Entity Name =====
|''String''
|<code>0</code>
|
|Player entity
|-
|
===== Self Register =====
|''Boolean''
|<code>0</code>
|
|Registers itself to Game as local controller.
|-
|
===== Default Controlled Entity =====
|''Resource Name''
|<code>0</code>
|
|Default entity to spawn if player controlled entity name is not set.
|-
|
===== Default Player Camera =====
|''Resource Name''
|<code>0</code>
|
|Default player camera to spawn after spawning default entity.
|-
|}


{{Feature|warning|Keep in mind that '''changes to materials or layer presets in FBX''' are only imported if '''Geometry Params list is empty'''. See [[Arma_Reforger:FBX_Import#Physical_material_.28Game_material.29|'''FBX Import - Game Materials''']] pagefor more information}}
=== SignalsComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== On Frame Update =====
|''Boolean''
|<code>0</code>
|
|Enable/disable on-frame updating of the component
|-
|
===== Filenames =====
|''Resource Name''
|<code>0</code>
|
|
|-
|}


==== Wrong Layer Preset ====
=== SignalsSourceAccess ===
If you see warning triangle '''Colliders''' section of '''Details''' tab or ''All interaction layers used'' error, then check for following things:
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== signals Suffix =====
|''String''
|<code>0</code>
|
|Signals suffix
|-
|}


# Make sure that collider has correct Layer Preset assigned
=== CommunicationSoundComponent ===
# Make sure that '''Custom Properties''' option is checked in FBX export settings
Inherits from: [[#SoundComponent|SoundComponent]]


[[Image:armareforger-new-weapon-collider-errors.png]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Stamina Threshold =====
|''Scalar''
|<code>4</code>
|
|Threshold to start breathing
|-
|
===== Stamina Threshold Minimum =====
|''Scalar''
|<code>4</code>
|
|Minimum Threshold to start breathing heavily
|-
|}


==== Changing parameters ====
=== ProjectileSoundsManager ===
If for some reason you don't want to touch FBX and want to change Layer Preset or assigned game materials in Workbench itself, then it is possible to do that by manipulating '''Layer Preset & Surface Properties''' parameters in '''Physics''' section of '''Import Settings''' tab. Changes to those parameters require usage of '''Reimport resource''' button - otherwise information stored in XOB would not be updated. This method is '''not recommended though.'''
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Filenames =====
|''Array of Resource Names''
|<code>0</code>
|
|
|-
|
===== Exclusion Radius =====
|''Scalar''
|<code>2u</code>
|
|Projectiles spawned within this radius [m] relative to the listener are ignored
|-
|
===== Subsonic =====
|''Scalar''
|<code>2u</code>
|
|Maximum audible distance for subsonic projectiles [m]
|-
|
===== Supersonic =====
|''Scalar''
|<code>2u</code>
|
|Maximum audible distance for supersonic projectiles [m]
|-
|}


[[Image:armareforger-new-prop-import-change-params.gif]]
=== SimpleSoundComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== On Frame Update =====
|''Boolean''
|<code>0</code>
|
|Enable/disable on-frame updating of the component
|-
|
===== Script Callbacks =====
|''Boolean''
|<code>0</code>
|
|Callbacks for scripted methods
|-
|
===== Distance Management =====
|''Boolean''
|<code>0</code>
|
|Updating sounds and ability to play them automatically enabled or disabled based on their distance from camera
|-
|
===== Include Inactive =====
|''Boolean''
|<code>0</code>
|
|Distance management for inactive component
|-
|}


=== Skeleton & Hierarchy ===
=== SoundComponent ===
Inherits from: [[#SimpleSoundComponent|SimpleSoundComponent]]


In case of models with skeleton (''Armature)'' it is quite important to check '''Export''' '''Skinning''' option in '''Miscellaneous''' section of '''Import Settings.'''
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sound Points =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


Since Rugged Desk is supposed to have six animated drawers, it is important to '''enable''' that option and then '''reimport''' the model via '''Reimport resource (PC)''' button.
=== VoNComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Speaking Range =====
|''Scalar''
|<code>3</code>
|
|Speaking range in meters
|-
|
===== Filename =====
|''Resource Name''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-export-skinning.png]]
=== Music ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Acp =====
|''Resource Name''
|<code>0</code>
|
|.acp path where the music to play resides
|-
|
===== Music Name =====
|''String''
|<code>0</code>
|
|Name of the sound node of the music you want to play
|-
|
===== Priority =====
|''Integer''
|<code>0</code>
|
|Priority is used when shouldplay is evaluated
|-
|
===== Interruptible =====
|''Boolean''
|<code>0</code>
|
|Whether a interruption can stop the music from playing
|-
|
===== Time between repeats =====
|''Scalar''
|<code>3</code>
|
|Time (in seconds) of rest between repeating music (0 = Allow Repeat Directly)
|-
|
===== Categories =====
|''Flags''
|<code>0</code>
|
|Categories this sound belongs in
|-
|}


If skeleton was imported correctly'''''', '''Details tab''' in right section of the Resource Manger view port should show some '''non zero number''' in [[Arma_Reforger:Resource_Manager:_Model_Editor#Bones|'''Bones section''']]. In case of '''Rugged Desk''', this object should have '''6''' '''skinned bones, 4 sockets''' and '''one dummy hierarchy element (root), which should be visible as Bones (6 + 5)'''. First number in the bracket indicates number of skinned bones and 2nd one indicates of empty bones (''either bones which are not skinned to anything or empty objects'')
=== MusicManager ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Fade out time interruption =====
|''Scalar''
|<code>3</code>
|
|Time to use to fade out when an interruption happens (ms)
|-
|
===== Fade out time force play =====
|''Scalar''
|<code>3</code>
|
|Time to use to fade out when another music track is played (ms)
|-
|
===== Time between music =====
|''Scalar''
|<code>3</code>
|
|Time (in seconds) of rest between music ending and the next one playing
|-
|
===== Min interruption volume =====
|''Scalar''
|<code>3</code>
|
|Minimum volume for an interruption to stop the music that's currently playing
|-
|
===== Music =====
|''Array of Objects''
|<code>0</code>
|
|List of Music structures to include.
|-
|}


[[Image:armareforger-new-prop-skeleton-full-imported.png]]
=== AnimalAnimationComponent ===
Inherits from: [[#BaseAnimPhysComponent|BaseAnimPhysComponent]]


For Rugged Desk '''wing''' & '''lid''' it is possible to just use '''Export Scene Hierarchy''' - this should allow to use empty objects created before for snapping purposes.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Layers =====
|''Flags''
|<code>0</code>
|
|Interaction layers we belong to
|-
|
===== Layer Preset =====
|''String''
|<code>0</code>
|
|Presets of layer definitions
|-
|
===== Collision Mass =====
|''Scalar''
|<code>3</code>
|
|Collision mass
|-
|
===== Collision Min =====
|''Vector with 3 elements''
|<code>3</code>
|
|Min vector of collision shape
|-
|
===== Collision Max =====
|''Vector with 3 elements''
|<code>3</code>
|
|Max vector of collision shape
|-
|}


== Importing textures ==
=== AnimalControllerComponent ===
Inherits from: [[#BaseControllerComponent|BaseControllerComponent]]


By default, '''Workbench''' importer will create '''new materials''' (emats) using '''MatPBRBasic''' shader in '''Data''' folder next to the imported model, based on material names located in FBX. If material suitable for the mesh already exist somewhere in available projects, it is possible to change linked material by changing elements in [[Arma_Reforger:Resource_Manager:_Model_Editor#Material_Assigns|'''Material Assigns''']] located in '''Visual''' section of [[Arma_Reforger:Resource_Manager:_Model_Editor#Import_Settings_Tab|'''Import Settings -''']] this option will be later used for '''Portable Desk''' lid & wing, which share same materials.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Use speed mapping =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Speed mapping =====
|''Array of Scalars''
|<code>3</code>
|
|
|-
|}


Once those materials are ready, you can use same procedures as the ones described on Sample Modded Weapon - Documentation - Creating New Materials page.
=== AimingComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Signals Source Access =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Provide Aiming Type =====
|''Integer''
|<code>0</code>
|
|defines which aimning component will be used
|-
|
===== Limits Horiz =====
|''Vector with 2 elements''
|<code>3</code>
|
|Aiming horizontal limits (turn)
|-
|
===== Limits Vert =====
|''Vector with 2 elements''
|<code>3</code>
|
|Aiming vertical limits (elevation)
|-
|
===== Init Aiming =====
|''Vector with 2 elements''
|<code>3</code>
|
|Initial aiming
|-
|
===== Aiming Max Speed =====
|''Vector with 2 elements''
|<code>3</code>
|
|Aiming Max Speed
|-
|
===== Aiming Speed Controls =====
|''Vector with 2 elements''
|<code>3</code>
|
|Aiming Speed Controls
|-
|}


= Adding basic configuration =
=== BaseAnimPhysComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Anim Graph =====
|''Resource Name''
|<code>0</code>
|
|Anim graph name
|-
|
===== Anim Instance =====
|''Resource Name''
|<code>0</code>
|
|Anim graph instance
|-
|
===== Start Node =====
|''String''
|<code>0</code>
|
|Node where to start from
|-
|
===== Collision bone =====
|''String''
|<code>0</code>
|
|Bone which is used as an offset for collision shape
|-
|
===== Server LOD =====
|''Integer''
|<code>0</code>
|
|Animation LOD on dedicated server
|-
|}


{{Messagebox|'''Overview'''
=== BaseControllerComponent ===
Following topics will be covered in this paragraph
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Draw Debug Info =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Apply Controls =====
|''Boolean''
|<code>0</code>
|
|Should the controller be able to create inputs
|-
|}


* Creating prefab
=== FlattenGrassParametersObject ===
* Basic asset configuration|💬|#CDF}}  
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Side X =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Side Z =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Offset =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Center Lerp =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Time Down =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Max Height =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Shape Of Grass Flattening =====
|''String''
|<code>0</code>
|
|Shape which is going to be used for grass flattening
|-
|}


== Creating prefab ==
=== BaseFlattenGrassComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Parameters Collection =====
|''Array of Objects''
|<code>0</code>
|
|Available configurations for grass flattening
|-
|
===== Default Collection =====
|''Integer''
|<code>0</code>
|
|Configuration to use by default from predefined parameters collection
|-
|
===== Offset From Com =====
|''Scalar''
|<code>3</code>
|
|How much the object should be high enough to disable the flattening of grass. (Only works with helicopter for now)
|-
|}


Prefabs for props can be prepared in multiple ways and it also depends on amount of functions that are planned to be added to such asset.
=== MeshesVisibilitySwitchConfig ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Event =====
|''String''
|<code>0</code>
|
|When change should be applied?
|-
|
===== Meshes =====
|''Array of Strings''
|<code>0</code>
|
|To which submeshes should be applied?
|-
|
===== Hide Mesh =====
|''Boolean''
|<code>0</code>
|
|Should we hide or show mesh when event arrives?
|-
|}


In general, it is recommend to use one of those two prefabs as a base:
=== BaseItemAnimationComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Always Active =====
|''Boolean''
|<code>0</code>
|
|Should component be always active? Otherwise will be active only when synced with Character.
|-
|
===== Anim Injection =====
|''Object''
|<code>0</code>
|
|Character animation injection to be set to character's anim graph attachment node
|-
|
===== Bind With Injection =====
|''Boolean''
|<code>0</code>
|
|Bind commands only when character injection is setup
|-
|
===== Auto Command Bind =====
|''Boolean''
|<code>0</code>
|
|Automatically Bind all commands from template
|-
|
===== Anim Commands To Bind =====
|''Array of Strings''
|<code>0</code>
|
|Animation commands to be synchronized with character graph
|-
|
===== Auto Variables Bind =====
|''Boolean''
|<code>0</code>
|
|Automatically Bind all variables from template
|-
|
===== Anim Variables To Bind =====
|''Array of Strings''
|<code>0</code>
|
|Animation variables to be synchronized with character graph
|-
|
===== Mesh Visibility Configurations =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Reset On Deactivation =====
|''Boolean''
|<code>0</code>
|
|On component deactivation, should the internal animation state be reset and the base pose applied?
|-
|
===== Simulate On Headless =====
|''Boolean''
|<code>0</code>
|
|Should we simulate current animations on headless builds?
|-
|
===== Deactivation Delay =====
|''Scalar''
|<code>3</code>
|
|Delay before animations go to sleep when inactive state was requested
|-
|}


* [enfusion://ResourceManager/~ArmaReforger:Prefabs/Props/Core/Props_Base.et|'''Props_Base.et'''] - prefab for simple, '''non destructible''' assets
=== PreloadEntry ===
* [enfusion://ResourceManager/~ArmaReforger:Prefabs/Props/Core/Destructible_Props_Base.et|'''Destructible_Props_Base.et'''] - prefab dedicated for assets which '''can be destroyed'''
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Prefab =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Fully Preload =====
|''Boolean''
|<code>0</code>
|
|Should the prefab be fully preloaded by spawning it in a world?
|-
|}


Since this sample is planned to have destruction, [enfusion://ResourceManager/~ArmaReforger:Prefabs/Props/Core/Destructible_Props_Base.et|'''Destructible_Props_Base.et'''] prefab can be used as a base.
=== BasePreloadManager ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Prefabs To Preload =====
|''Array of Objects''
|<code>0</code>
|
|Prefabs to preload
|-
|}


{{Feature|informative|In this article, [[Arma_Reforger:Resource_Manager:_Options#Register_.22enfusion:.2F.2F.22_protocol|'''Enfusion links''']] are used. With those links it is possible to open specific resource just by simply clicking on that link. Enfusion links '''has to be manually activated in Workbench options''' (Workbench -> Options -> Workbench -> Register "enfusion://" protocol) before it can be used]}}
=== BaseStaminaComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Signals Source Access =====
|''Object''
|<code>0</code>
|
|
|-
|}


In general, it is possible to create new inherited prefab in two ways:
=== BaseVehicleNodeComponent ===
* [[Arma_Reforger:Prefabs_Basics#Drag_and_drop_method|By dropping parent prefab in World Editor and drag and dropping that entity into Resource Browser field]]
{| class="wikitable"
* By using [[Arma_Reforger:Data_Modding_Basics#Using_.22Inherit_Prefab_in_Addon.22_function|'''Inherit Prefab in Addon''']] on prefab selected in '''Resource Browser''' attached to '''World Editor'''
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Default Node =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


No matter what method was picked, it is recommended to create base prefab for props, which might have some variants. In this tutorial '''Portable Desk''' have 3 texture variants prepared, so such base class will be more than welcome.
=== BaseBuilding ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== House Number =====
|''Integer''
|<code>0</code>
|
|The unique number given to the building.
|-
|}


In this case, new prefab, which inherits from [enfusion://ResourceManager/~ArmaReforger:Prefabs/Props/Core/Destructible_Props_Base.et|'''Destructible_Props_Base.et'''] , should be called '''PortableDesk_01_Base.et'''
=== BaseSlotComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attach Type =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Entity Prefab =====
|''Resource Name''
|<code>0</code>
|
|Prefab to spawn in that slot.
|-
|
===== Disable Physics Interaction =====
|''Boolean''
|<code>0</code>
|
|Should attached object not collide with any parent
|-
|
===== Inherit Parent Skeleton =====
|''Boolean''
|<code>0</code>
|
|Should attached object inherit parent skeleton
|-
|}


Final step in initial configuration  will be assigning previously imported mesh. This can be done by simply assigning '''Rugged Desk XOB''' into '''Object''' property of '''MeshObject''' component in '''PortableDesk_01_Base.et''' prefab.
=== SlotBoneMappingObject ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Bone Prefix =====
|''String''
|<code>0</code>
|
|Bone prefix to find
|-
|
===== Prefab =====
|''Resource Name''
|<code>0</code>
|
|What entity to spawn
|-
|}


[[Image:armareforger-new-prop-desk-prefab.png]]
=== Building ===
Inherits from: [[#BaseBuilding|BaseBuilding]]


If change was applied to '''MeshObject''' component of '''prefab instance''', don't forget to press '''Apply to prefab''' button and then save currently loaded world!
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Is Building =====
|''Boolean''
|<code>0</code>
|
|Mark this entity as a building
|-
|
===== Slot Bone Mappings =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Adjust Height Map =====
|''Boolean''
|<code>0</code>
|
|Modify terrain under building
|-
|
===== Adjust Height Map Prio =====
|''Integer''
|<code>0</code>
|
|Priority of terrain heightmap adjust
|-
|
===== Falloff Start Width =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Falloff Width =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Underground Structure =====
|''Boolean''
|<code>0</code>
|
|Tunnel, cellar etc.
|-
|}


'''Creating texture variants'''
=== ClimbingDataComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Can Climb Over =====
|''Boolean''
|<code>0</code>
|
|If false, this object cannot be climbed over by player - the jumping animation will be used instead.
|-
|}


[[Image:armareforger-new-prop-prefab-material-assign.png|right]]
=== SoundPointEventInfo ===
Since this assets is supposed to have three color variants, new prefab variants have to be prepared
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Event =====
|''Integer''
|<code>0</code>
|
|
|-
|}


# Create new prefabs, inheriting from '''PortableDesk_01_Base.et''',  either via '''World Editor''' viewport '''drag and drop''' method or via '''Inherit Prefab''' action available in '''Resource Browser''' attached to '''World Editor'''
=== DoorComponent ===
# Once new prefabs are created, open them and one by one, change assigned materials in '''Materials''' array inside '''MeshObject''' component to appropriate material created before.
{| class="wikitable"
# '''Apply changes to the prefabs''' if changes were applied to entity instance, otherwise (''if hierarchy tree was used'') this step can be skipped
|+
# '''Permanently save changes''' to the prefabs by either '''saving current world''' or, if in '''prefab edit mode''', '''save the prefab''' directly.
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Door Action =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Pivot ID =====
|''String''
|<code>0</code>
|
|
|-
|
===== Open Both Ways =====
|''Boolean''
|<code>0</code>
|
|Should the door open both ways
|-
|
===== Door Width Is XYZ =====
|''Integer''
|<code>0</code>
|
|Which dimension of the door's bounds is used for door width: X Y or Z
|-
|
===== Angle Range =====
|''Scalar''
|<code>3</code>
|
|Maximum angle of rotation of the Door hinge
|-
|
===== Closed Angle =====
|''Scalar''
|<code>3</code>
|
|Angle in which the Door is considered to be closed (must be lower or equal to the range)
|-
|
===== Initial Angle =====
|''Scalar''
|<code>3</code>
|
|Angle of the Door upon initialization
|-
|
===== Open Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Door Animation Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Max Impulse =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Softness =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Bias Factor =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Relaxation Factor =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Sound Filename =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Sound Points =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Direction Change Angle Threshold =====
|''Scalar''
|<code>4u</code>
|
|Alpha value to consider open and closed door as complete and allowed to change direction on next interaction.\n0 will mean blocked door at any time can change open/close state;\n1 will mean that only when the door is completed it's open/close angle it will be allowed to change open/close state
|-
|
===== Test Contacts =====
|''Boolean''
|<code>0</code>
|
|Should this door component perform contact tests
|-
|
===== Test Collider =====
|''String''
|<code>0</code>
|
|Collider that will be tested for contacts
|-
|}


In the end, following files should be present in next to the '''PortableDesk_01_Base.et'''
=== DoorSlotComponent ===
Inherits from: [[#BaseSlotComponent|BaseSlotComponent]]


* '''PortableDesk_01_Black.et'''
{| class="wikitable"
* '''PortableDesk_01_Olive.et'''
|+
* '''PortableDesk_01_Sand.et'''
!Param
{{Clear}}
!Type
!Default value
!Unit
!Description
|-
|
===== Door Mirrored =====
|''Boolean''
|<code>0</code>
|
|Should door open the other way
|-
|
===== Door Open Both Ways =====
|''Boolean''
|<code>0</code>
|
|Should the door open both ways
|-
|
===== Door Angle Range Override =====
|''Scalar''
|<code>3</code>
|
|Change max angle (in degrees) for spawned door (-1 to disable).
|-
|
===== Door Closed Angle Override =====
|''Scalar''
|<code>3</code>
|
|Change closed angle (in degrees) for spawned door (-1 to disable).
|-
|
===== Door Initial Angle Override =====
|''Scalar''
|<code>3</code>
|
|Change initial angle (in degrees) for spawned door (-1 to disable).
|-
|}


=== LadderExitPointInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Final Transform =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Apply Orientation =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Use As Entry Alignment =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


== Creating prefabs for smaller parts ==
=== LadderComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Bottom Front Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Top Front Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Top Left Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Top Right Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Enable Top Front Entry =====
|''Boolean''
|<code>0</code>
|
|Should top front entry be allowed by default
|-
|
===== Top Variant =====
|''Integer''
|<code>0</code>
|
|Top front entry animation variant
|-
|
===== Middle Lefts Position Info =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Middle Rights Position Info =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Ladder Step Length =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Visible in editor =====
|''Boolean''
|<code>0</code>
|
|Visible in editor
|-
|}


[[Image:armareforger-new-prop-prefab-variants-list.png|right]]
=== StreetLampComponent ===
Procedure described above should be also applied to '''lid''' and '''wing prefabs''' so they have base prefab (inheriting from [enfusion://ResourceManager/~ArmaReforger:Prefabs/Props/Core/Destructible_Props_Base.et|'''Destructible_Props_Base.et'''] ) and color variants. Those prefabs should be really simple at this stage so '''MeshObject''' and '''RigidBody''' components which they inheriting from [enfusion://ResourceManager/~ArmaReforger:Prefabs/Props/Core/Destructible_Props_Base.et|'''Destructible_Props_Base'''] should be enough.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Emissive Color =====
|''Color''
|<code>4</code>
|
|Default emmisive color.
|-
|
===== Use Electricity =====
|''Boolean''
|<code>0</code>
|
|Should it use the electricity
|-
|}


In the end, following set of prefabs should be created
=== CameraBase ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== FOV =====
|''Scalar''
|<code>3</code>
|
|Camera field of view
|-
|
===== near Plane =====
|''Scalar''
|<code>3</code>
|
|Camera near plane clipping
|-
|
===== far Plane =====
|''Scalar''
|<code>3</code>
|
|Camera far plane clipping
|-
|
===== projection Type =====
|''Integer''
|<code>0</code>
|
|Type of projection
|-
|
===== camera Flags =====
|''Flags''
|<code>0</code>
|
|Camera usage flags
|-
|
===== lens Flare Set Type =====
|''Integer''
|<code>0</code>
|
|Type of lens flare set
|-
|
===== lens Flare Set User Name =====
|''String''
|<code>0</code>
|
|Name for user lens flare set.
|-
|}
 
=== CameraHandlerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Camera entity prefab =====
|''Resource Name''
|<code>0</code>
|
|Camera prefab to spawn
|-
|
===== Camera Set name =====
|''String''
|<code>0</code>
|
|Name of camera set
|-
|}
 
=== CameraManager ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Default Cam Name =====
|''String''
|<code>0</code>
|
|Default camera name
|-
|
===== Fov Mininum =====
|''Scalar''
|<code>3</code>
|
|Minimum field of view
|-
|
===== Fov Maximum =====
|''Scalar''
|<code>3</code>
|
|Maximum field of view
|-
|
===== Fov Firstperson =====
|''Scalar''
|<code>3</code>
|
|First person field of view
|-
|
===== Fov Thirdperson =====
|''Scalar''
|<code>3</code>
|
|Third person field of view
|-
|
===== Fov Vehicle =====
|''Scalar''
|<code>3</code>
|
|Vehicle field of view
|-
|
===== Default View Position =====
|''Vector with 3 elements''
|<code>3</code>
|
|Default view position (meters), if no camera is present.
|-
|
===== Default View Angles =====
|''Vector with 3 elements''
|<code>3</code>
|
|Default view rotation (pitch,yaw,roll in degrees), if no camera is present.
|-
|
===== Default View Fov =====
|''Scalar''
|<code>3</code>
|
|Default view field of view, if no camera is present.
|-
|
===== Default View Nearplane =====
|''Scalar''
|<code>3</code>
|
|Default view near plane (in meters), if no camera is present.
|-
|
===== Default View Farplane =====
|''Scalar''
|<code>3</code>
|
|Default view far plane (in meters), if no camera is present.
|-
|}
 
=== PlayerCamera ===
Inherits from: [[#CameraBase|CameraBase]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Focus Mode FOV =====
|''Scalar''
|<code>3</code>
|
|Camera field of view when in focus mode
|-
|}
 
=== ScriptCharacterCommandMoveSettings ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Movement Filter Max Change =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Movement Speed Anim Threshold =====
|''Scalar''
|<code>6u</code>
|
|Speed threshold to start movement animation for no root motion target
|-
|
===== Speed Variable Interpolation =====
|''Scalar''
|<code>3</code>
|
|Speed at which we interpolate speed animation variable (units/s eg at value of 10 one unit of speed change will be interpolated over 100ms)
|-
|
===== Max Slope =====
|''Scalar''
|<code>3</code>
|
|Max slope angle of surface that character can move againsts.
|-
|
===== Overencumberance Worst Speed Multiplier =====
|''Scalar''
|<code>3</code>
|
|Speed multiplier applied to character movement when carrying 70+kg of gear.
|-
|
===== Sample Slope Factor Smoothing Time =====
|''Scalar''
|<code>3</code>
|
|Smoothing of slope sample factor (effectively angle player is moving against). Higher values mean more smoothing but slower reaction to changes.
|-
|
===== Slope Slowdown Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|How much will character max speed gets slowed down when moving against a slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be slowdown factor of max speed.
|-
|
===== Slope Speedup Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|How much will character max speed gets sped up down when moving down a slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be speedup factor of max speed.
|-
|
===== Slope Stamina Penalty Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Describes the stamina regen penalty when moving against the slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be used as stamina regen penalty.
|-
|
===== Slope Stamina Bonus Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Describes the stamina regen bonus when moving down the slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be used as stamina regen bonus.
|-
|
===== Run Spring Timeout =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Run Spring Max Change =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Dir Filter Timeout =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Dir Filter Speed =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Max Sprint Angle =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Rotation Change Blend =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== On Turn Speed Reduc Factor =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== On Turn No Reduc Angle =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Turn Angle =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Turn End Update NTime =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Turn Next NTime =====
|''Scalar''
|<code>6u</code>
|
|
|-
|
===== Banking Strength =====
|''Scalar''
|<code>3</code>
|
|Just a multiplier of how strongly the mouse movement transforms to banking. Higher value fills the max delta easier.
|-
|
===== Banking Max Angle =====
|''Scalar''
|<code>3</code>
|
|Max angle the character is allowed to bank in degrees.|
|-
|
===== Banking Max Delta Growth =====
|''Scalar''
|<code>3</code>
|
|Max change in the angle per second when the banking is increasing.
|-
|
===== Banking Max Delta Decay =====
|''Scalar''
|<code>3</code>
|
|Max change in the angle per second when returning from banking to 0.
|-
|
===== Banking Max Delta Switching =====
|''Scalar''
|<code>3</code>
|
|Max change in the angle per second when banking one side, but turning the other.
|-
|
===== Banking Decay Delay =====
|''Scalar''
|<code>3</code>
|
|After the peak in mouse movement speed, the character stays banked for *this time period* before returning to normal. Also smooths out any noise in input.
|-
|
===== Banking Delta Early Decay Multiplier =====
|''Scalar''
|<code>3</code>
|
|The multiplier of banking during the BankingDecayDelay period.
|-
|
===== Banking Angle Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Describes the translation of final banking (after smoothing and clamping) into the angle - input is the fraction of the max angle, output is a multiplier of the result.
|-
|
===== Sliding Pose Angle =====
|''Scalar''
|<code>1u</code>
|
|
|-
|
===== Sliding Speed Lower =====
|''Scalar''
|<code>4u</code>
|
|
|-
|
===== Sliding Friction =====
|''Scalar''
|<code>4u</code>
|
|
|-
|
===== Allow Jump When Sliding =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Sliding Pose Track Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Sliding Pose Rep Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Heading Change Limiter Idle =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Heading Change Limiter Walk =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Heading Change Limiter Run =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Leaning Speed =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Lean Collision Test Distance =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Adjusted Stance Change Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Adjusted Stance Change Max Speed =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Weapon Deployment Adjusted Stance Change Time =====
|''Scalar''
|<code>3</code>
|
|Time of dynamic adjust stance change 0->1 or 1->0 when stance is changed
|-
|
===== Adjusted Stance Trace Length =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Adjusted Stance Upper Threshold =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Adjusted Stance Lower Threshold =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Detect Ladders =====
|''Boolean''
|<code>0</code>
|
|enable ladder detection
|-
|
===== Fall Time Ladder Detection =====
|''Scalar''
|<code>3</code>
|
|Time of falling when ladder detection can start, any negative value will cancel detection during fall
|-
|
===== Limit Fall Time Ladder Detection =====
|''Scalar''
|<code>3</code>
|
|Limit previously set time to forbid automatic detection when fall time above this limit
|-
|
===== Max Enter Ladder Angle =====
|''Scalar''
|<code>3</code>
|
|max allowed angle between character and ladder for entering (deg)
|-
|
===== Min Ladder Tangent Angle =====
|''Scalar''
|<code>3</code>
|
|min angle of ladder allowed for climbing (deg)
|-
|
===== Max Ladder Tangent Angle =====
|''Scalar''
|<code>3</code>
|
|max angle of ladder allowed for climbing (deg)
|-
|
===== Speed Erect Slow Forward =====
|''Scalar''
|<code>5u</code>
|
|Slow forward movement speed (in m/s)
|-
|
===== Speed Erect Slow Backward =====
|''Scalar''
|<code>5u</code>
|
|Slow backward movement speed (in m/s)
|-
|
===== Speed Erect Slow Strafe =====
|''Scalar''
|<code>5u</code>
|
|Slow side movement speed (in m/s)
|-
|
===== Speed Erect Normal Forward =====
|''Scalar''
|<code>5u</code>
|
|Normal forward movement speed (in m/s)
|-
|
===== Speed Erect Normal Backward =====
|''Scalar''
|<code>5u</code>
|
|Normal backward movement speed (in m/s)
|-
|
===== Speed Erect Normal Strafe =====
|''Scalar''
|<code>5u</code>
|
|Normal side movement speed (in m/s)
|-
|
===== Speed Erect Fast Forward =====
|''Scalar''
|<code>5u</code>
|
|Fast forward movement speed (in m/s)
|-
|
===== Speed Erect Fast Strafe =====
|''Scalar''
|<code>5u</code>
|
|Fast side movement speed (in m/s)
|-
|
===== Speed Crouch Slow Forward =====
|''Scalar''
|<code>5u</code>
|
|Slow forward movement speed (in m/s)
|-
|
===== Speed Crouch Slow Backward =====
|''Scalar''
|<code>5u</code>
|
|Slow backward movement speed (in m/s)
|-
|
===== Speed Crouch Slow Strafe =====
|''Scalar''
|<code>5u</code>
|
|Slow side movement speed (in m/s)
|-
|
===== Speed Crouch Normal Forward =====
|''Scalar''
|<code>5u</code>
|
|Normal forward movement speed (in m/s)
|-
|
===== Speed Crouch Normal Backward =====
|''Scalar''
|<code>5u</code>
|
|Normal backward movement speed (in m/s)
|-
|
===== Speed Crouch Normal Strafe =====
|''Scalar''
|<code>5u</code>
|
|Normal side movement speed (in m/s)
|-
|
===== Speed Crouch Fast Forward =====
|''Scalar''
|<code>5u</code>
|
|Fast forward movement speed (in m/s)
|-
|
===== Speed Crouch Fast Strafe =====
|''Scalar''
|<code>5u</code>
|
|Fast side movement speed (in m/s)
|-
|
===== Speed Prone Slow Forward =====
|''Scalar''
|<code>5u</code>
|
|Slow forward movement speed (in m/s)
|-
|
===== Speed Prone Slow Backward =====
|''Scalar''
|<code>5u</code>
|
|Slow backward movement speed (in m/s)
|-
|
===== Speed Prone Slow Strafe =====
|''Scalar''
|<code>5u</code>
|
|Slow side movement speed (in m/s)
|-
|
===== Speed Prone Normal Forward =====
|''Scalar''
|<code>5u</code>
|
|Normal forward movement speed (in m/s)
|-
|
===== Speed Prone Normal Backward =====
|''Scalar''
|<code>5u</code>
|
|Normal backward movement speed (in m/s)
|-
|
===== Speed Prone Normal Strafe =====
|''Scalar''
|<code>5u</code>
|
|Normal side movement speed (in m/s)
|-
|
===== Speed Prone Fast Forward =====
|''Scalar''
|<code>5u</code>
|
|Fast forward movement speed (in m/s)
|-
|
===== Speed Prone Fast Strafe =====
|''Scalar''
|<code>5u</code>
|
|Fast side movement speed (in m/s)
|-
|
===== Speed Erect Slope Slow Forward =====
|''Scalar''
|<code>5u</code>
|
|Slow forward movement speed (in m/s)
|-
|
===== Speed Erect Slope Slow Backward =====
|''Scalar''
|<code>5u</code>
|
|Slow backward movement speed (in m/s)
|-
|
===== Speed Erect Slope Slow Strafe =====
|''Scalar''
|<code>5u</code>
|
|Slow side movement speed (in m/s)
|-
|
===== Speed Erect Slope Normal Forward =====
|''Scalar''
|<code>5u</code>
|
|Normal forward movement speed (in m/s)
|-
|
===== Speed Erect Slope Normal Backward =====
|''Scalar''
|<code>5u</code>
|
|Normal backward movement speed (in m/s)
|-
|
===== Speed Erect Slope Normal Strafe =====
|''Scalar''
|<code>5u</code>
|
|Normal side movement speed (in m/s)
|-
|
===== Speed Erect Slope Fast Forward =====
|''Scalar''
|<code>5u</code>
|
|Fast forward movement speed (in m/s)
|-
|
===== Speed Erect Slope Fast Strafe =====
|''Scalar''
|<code>5u</code>
|
|Fast side movement speed (in m/s)
|-
|
===== Speed Crouch Slope Slow Forward =====
|''Scalar''
|<code>5u</code>
|
|Slow forward movement speed (in m/s)
|-
|
===== Speed Crouch Slope Slow Backward =====
|''Scalar''
|<code>5u</code>
|
|Slow backward movement speed (in m/s)
|-
|
===== Speed Crouch Slope Slow Strafe =====
|''Scalar''
|<code>5u</code>
|
|Slow side movement speed (in m/s)
|-
|
===== Speed Crouch Slope Normal Forward =====
|''Scalar''
|<code>5u</code>
|
|Normal forward movement speed (in m/s)
|-
|
===== Speed Crouch Slope Normal Backward =====
|''Scalar''
|<code>5u</code>
|
|Normal backward movement speed (in m/s)
|-
|
===== Speed Crouch Slope Normal Strafe =====
|''Scalar''
|<code>5u</code>
|
|Normal side movement speed (in m/s)
|-
|
===== Speed Crouch Slope Fast Forward =====
|''Scalar''
|<code>5u</code>
|
|Fast forward movement speed (in m/s)
|-
|
===== Speed Crouch Slope Fast Strafe =====
|''Scalar''
|<code>5u</code>
|
|Fast side movement speed (in m/s)
|-
|
===== Speed Prone Slope Slow Forward =====
|''Scalar''
|<code>5u</code>
|
|Slow forward movement speed (in m/s)
|-
|
===== Speed Prone Slope Slow Backward =====
|''Scalar''
|<code>5u</code>
|
|Slow backward movement speed (in m/s)
|-
|
===== Speed Prone Slope Slow Strafe =====
|''Scalar''
|<code>5u</code>
|
|Slow side movement speed (in m/s)
|-
|
===== Speed Prone Slope Normal Forward =====
|''Scalar''
|<code>5u</code>
|
|Normal forward movement speed (in m/s)
|-
|
===== Speed Prone Slope Normal Backward =====
|''Scalar''
|<code>5u</code>
|
|Normal backward movement speed (in m/s)
|-
|
===== Speed Prone Slope Normal Strafe =====
|''Scalar''
|<code>5u</code>
|
|Normal side movement speed (in m/s)
|-
|
===== Speed Prone Slope Fast Forward =====
|''Scalar''
|<code>5u</code>
|
|Fast forward movement speed (in m/s)
|-
|
===== Speed Prone Slope Fast Strafe =====
|''Scalar''
|<code>5u</code>
|
|Fast side movement speed (in m/s)
|-
|
===== Dynamic Speed Erect Min =====
|''Scalar''
|<code>5u</code>
|
|Minimum erect dynamic speed multiplier.
|-
|
===== Dynamic Speed Crouch Min =====
|''Scalar''
|<code>5u</code>
|
|Minimum crouch dynamic speed multiplier.
|-
|
===== Dynamic Speed Prone Min =====
|''Scalar''
|<code>5u</code>
|
|Minimum prone dynamic speed multiplier.
|-
|
===== Speed Multiplier ADS =====
|''Scalar''
|<code>5u</code>
|
|Proportion of ADS speed to normal speed
|-
|
===== Speed Air Control =====
|''Scalar''
|<code>5u</code>
|
|speed of air control m/s
|-
|
===== Slope Locomotion =====
|''Boolean''
|<code>0</code>
|
|Allow slope locomotion
|-
|
===== Velocity To Jump Force Delta =====
|''Scalar''
|<code>5u</code>
|
|negative force scaler applied to initial velocity before jumping (in other words - how much of movement velocity will be transfered to jump translation vector), lower value will reduce the length of jump, higher will increase it
|-
|
===== Air Time Before Fall =====
|''Scalar''
|<code>5u</code>
|
|Air time in seconds before transition to fall command
|-
|
===== Max Prone Slope Angle =====
|''Scalar''
|<code>5u</code>
|
|Max allowed slope angle for prone before automatically switching to crouch
|-
|
===== Max Crouch Slope Angle =====
|''Scalar''
|<code>5u</code>
|
|Max allowed slope angle for crouch before automatically switching to prone
|-
|
===== Slope Based Stance =====
|''Boolean''
|<code>0</code>
|
|Should stance be changed based on slope angle?
|-
|
===== Innertia Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Acceleration alpha for different movement states (t0 - idle; t1 - sprint)
|-
|
===== Curve Keys Tangential Tension =====
|''Scalar''
|<code>3</code>
|
|Tension to be used for curve key control points
|-
|
===== Heading Change Speed Min =====
|''Scalar''
|<code>3</code>
|
|Heading change speed lower bound deg/s
|-
|
===== Heading Change Speed Max =====
|''Scalar''
|<code>3</code>
|
|Heading change speed upper bound deg/s
|-
|
===== Heading Adjustment Speed Reduction =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Heading adjustment upper bound speed reduction X (t0 - idle; t1 - sprint) Y (t0 - no reduction; t1 - full reduction)
|-
|
===== Initiate Turn Minimal Angle Threshold =====
|''Scalar''
|<code>3</code>
|
|In deg. Aim Offset from heading after which auto alignment timer would kick off (player *has* to stop adjusting aiming for the turn to start within this range).
|-
|
===== Initiate Turn Minimal Angle Time =====
|''Scalar''
|<code>3</code>
|
|In seconds. If character aim heading offset is above specified limit, it should take at least this amount of character idle time in order to start turn animation.
|-
|
===== Initiate Turn Non Idle Angle Threshold =====
|''Scalar''
|<code>3</code>
|
|In deg. Aim Offset from heading after which auto alignment timer would kick off (player *does not have* to stop adjusting aiming for the turn to start within this range).
|-
|
===== Initiate Turn Non Idle Angle Time =====
|''Scalar''
|<code>3</code>
|
|In seconds. If character aim heading offset is above specified limit, it should take at least this amount of time in order to start turn animation.
|-
|
===== Max Allowed Turns Angle Offset =====
|''Scalar''
|<code>3</code>
|
|In deg. Aim Offset from heading after which auto alignment triggers immediately.
|-
|
===== Override Idle Turns Limits In Prone =====
|''Boolean''
|<code>0</code>
|
|Allows to set separate idle turns limits for the prone stance.
|-
|
===== Prone Initiate Turn Minimal Angle Threshold =====
|''Scalar''
|<code>3</code>
|
|In deg. Aim Offset from heading after which auto alignment timer would kick off (player *has* to stop adjusting aiming for the turn to start within this range).
|-
|
===== Prone Initiate Turn Minimal Angle Time =====
|''Scalar''
|<code>3</code>
|
|In seconds. If character aim heading offset is above specified limit, it should take at least this amount of character idle time in order to start turn animation.
|-
|
===== Prone Initiate Turn Non Idle Angle Threshold =====
|''Scalar''
|<code>3</code>
|
|In deg. Aim Offset from heading after which auto alignment timer would kick off (player *does not have* to stop adjusting aiming for the turn to start within this range).
|-
|
===== Prone Initiate Turn Non Idle Angle Time =====
|''Scalar''
|<code>3</code>
|
|In seconds. If character aim heading offset is above specified limit, it should take at least this amount of time in order to start turn animation.
|-
|
===== Prone Max Allowed Turns Angle Offset =====
|''Scalar''
|<code>3</code>
|
|In deg. Aim Offset from heading after which auto alignment triggers immediately.
|-
|
===== Climbing Animations Thresholds =====
|''Array of Scalars''
|<code>3</code>
|
|Thresholds (in centimeters) for climbing types. Heights smaller than 1st element will trigger climbing type 1, with each successive brackter triggering climbing type higher by one. Climbing higher than the last value will not be allowed.
|-
|}
 
=== CharacterAimingComponent ===
Inherits from: [[#AimingComponent|AimingComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Crouch Limits Horizontal =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Yaw aiming limits of held weapon relative to body direction in crouch stance (in deg)
|-
|
===== Crouch Limits Vertical =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Pitch aiming limits of held weapon relative to body direction in crouch stance (in deg)
|-
|
===== Prone Limits Horizontal =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Yaw aiming limits of held weapon relative to body direction in prone stance (in deg)
|-
|
===== Prone Limits Vertical =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Yaw aiming limits of held weapon relative to body direction in prone stance (in deg)
|-
|
===== Deployed Sensitivity Scaler =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Aim sensitivity scaler when weapon is deployed
|-
|
===== Aim Modifiers =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Zeroing Interpolation Speed =====
|''Scalar''
|<code>5u</code>
|
|Rate at which interpolation of zeroing across different muzzles of a weapon works.
|-
|
===== Shoulder =====
|''Object''
|<code>0</code>
|
|
|-
|}
 
=== PhysAgentCollisionShapeItem ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Shape =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Size =====
|''Vector with 3 elements''
|<code>3</code>
|
|Full size for box shape \t diameter from x component for sphere/capsule/cylinder \t height from y component for capsule/cylinder
|-
|
===== Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Collision offset from center of mass
|-
|
===== Dynamic Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Additive Collision offset from center of mass towards movement direction
|-
|
===== Step Height =====
|''Scalar''
|<code>3</code>
|
|
|-
|}
 
=== CharacterAnimationComponent ===
Inherits from: [[#BaseAnimPhysComponent|BaseAnimPhysComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Layers =====
|''Flags''
|<code>0</code>
|
|Interaction layers we belong to
|-
|
===== Default Shape Layer =====
|''Flags''
|<code>0</code>
|
|Default shape interaction layer
|-
|
===== Freshwater Layer =====
|''Flags''
|<code>0</code>
|
|Freshwater layer
|-
|
===== Layer Preset =====
|''String''
|<code>0</code>
|
|Presets of layer definitions
|-
|
===== Dynamic BBox =====
|''Boolean''
|<code>0</code>
|
|Dynamic bbox is generated from bones positions, if not it will use static defined capsule
|-
|
===== Apply Recoil Anim =====
|''Boolean''
|<code>0</code>
|
|Apply recoil anim on character
|-
|
===== Use Simple Physics Controller =====
|''Boolean''
|<code>0</code>
|
|Use simplified physics controller
|-
|
===== Ragdoll Disable Timer =====
|''Scalar''
|<code>3</code>
|
|How long ragdoll state should have active physics (s)/nIn case ragdoll would go to sleep - timer would be interrupted and physics deactivated
|-
|
===== Ik Pose Bones Blend =====
|''Array of Strings''
|<code>0</code>
|
|Bones to be included into hands IK pose blend (usually represents WeaponIK node change for left hand, as it is being driven by ik pose from animation)
|-
|
===== Unarmed Ik Pose =====
|''Resource Name''
|<code>0</code>
|
|Hand IK Pose when unarmed
|-
|
===== Collider Stand =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Crouch =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Prone =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Jump =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Swim =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Ladder =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Vehicle =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Weapon Deployment Stand =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Weapon Deployment Crouch =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Collider Weapon Deployment Prone =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Ragdoll Layer =====
|''Flags''
|<code>0</code>
|
|Ragdoll interaction layer
|-
|
===== Definition =====
|''Resource Name''
|<code>0</code>
|
|Ragdoll definition
|-
|
===== Max Ragdoll Effectors =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Ragdoll Effector Linear Scale =====
|''Scalar''
|<code>3</code>
|
|Overall linear effector scaler when applied to ragdoll
|-
|
===== Ragdoll Effector Angular Scale =====
|''Scalar''
|<code>3</code>
|
|Overall angular effector scaler when applied to ragdoll
|-
|
===== Ragdoll Hips Max Speed =====
|''Scalar''
|<code>3</code>
|
|Max possible speed of ragdoll (m/s)
|-
|
===== Ragdoll Hips Max Spin =====
|''Scalar''
|<code>3</code>
|
|Max possible spin of ragdoll (m/s)
|-
|
===== Special Handling Layer =====
|''Flags''
|<code>0</code>
|
|Special handling layer
|-
|
===== Animate Ragdoll Replay Final Pose =====
|''Boolean''
|<code>0</code>
|
|Either final state of ragdoll should be animated over time or simply applied when not visible by player
|-
|}
 
=== CharacterCommandHandlerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Static Layer =====
|''Flags''
|<code>0</code>
|
|Interaction layer of static objects
|-
|
===== Vehicles Layers =====
|''Flags''
|<code>0</code>
|
|Interaction layers for vehicles
|-
|
===== Ladders Layers =====
|''Flags''
|<code>0</code>
|
|Interaction layers for ladder detection
|-
|
===== Ladder Detect Max Dist =====
|''Scalar''
|<code>3</code>
|
|Max distance from character location to ladder step to detect it
|-
|
===== Fall Landtype None =====
|''Scalar''
|<code>3</code>
|
|Falling distance until which the landing is considered None
|-
|
===== Fall Landtype Light =====
|''Scalar''
|<code>3</code>
|
|Falling distance until which the landing is considered Light
|-
|
===== Fall Landtype Medium =====
|''Scalar''
|<code>3</code>
|
|Falling distance until which the landing is considered Medium
|-
|
===== Body Offset Reference Point =====
|''Object''
|<code>0</code>
|
|point which is used as an offset for obstruction test
|-
|
===== Obstruction Layers =====
|''Flags''
|<code>0</code>
|
|Layers which should be obstructing weapon
|-
|
===== Obstruction Interpolation Speed =====
|''Scalar''
|<code>3</code>
|
|Speed of interpolation as n * delta time. 0 to disable.
|-
|
===== Move Settings =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Climb Settings =====
|''Object''
|<code>0</code>
|
|
|-
|}
 
=== CharacterControllerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Left Hand Position =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Right Hand Position =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Action Delay Time Stance Change =====
|''Scalar''
|<code>5u</code>
|
|Delay time between stance changes that the character cannot perform certain actions (in s)
|-
|
===== Sprint Interrupt Duration =====
|''Scalar''
|<code>5u</code>
|
|How much time should pass before we can return to sprint after it is being interrupted and sprint is not blocked anymore (in seconds)
|-
|
===== Jump Up Velocity =====
|''Scalar''
|<code>5u</code>
|
|Jump acceleration in Y axis (in m/s)
|-
|
===== Aiming Speed =====
|''Scalar''
|<code>2u</code>
|
|Aiming change speed relative to input (deg/s)
|-
|
===== Wait For Throw Reset Action =====
|''Boolean''
|<code>0</code>
|
|Should user release action button before next attempt to throw when previous throwing was canceled
|-
|
===== Change Weapon When No Grenades =====
|''Boolean''
|<code>0</code>
|
|Should character change weapon to previously selected when there's no grenades left in inventory after throw
|-
|
===== Lock Down Aim In Adjusted Stance =====
|''Boolean''
|<code>0</code>
|
|Should down aim should be locked when in adjusted stance
|-
|
===== Input Aim Limits =====
|''Vector with 2 elements''
|<code>3</code>
|
|Input aim limits in deg/sec, 0 for unlimited, applied before aiming speed scaler
|-
|
===== Legs Damage Can Move Threshold =====
|''Scalar''
|<code>3</code>
|
|Above what scaled damage (0-1) character cannot jog, sprint or jump
|-
|
===== Death Timer =====
|''Scalar''
|<code>1u</code>
|
|For how long we should be dying
|-
|
===== Vehicle Ragdoll Speed =====
|''Scalar''
|<code>2u</code>
|
|When character exits vehicle moving above this speed, it ragdolls.(km/h)
|-
|
===== Water Movement Limits =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Curve representing the limits where X axis represents no depth up to swimming depth alpha and Y axis represents speed limit from none to full stop
|-
|
===== Allow Light Impact Anim =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Aiming PID =====
|''Vector with 3 elements''
|<code>3</code>
|
|Aiming PID values for AIs
|-
|
===== Aiming PIDMax Error Integral =====
|''Scalar''
|<code>2u</code>
|
|Max value of integral component of PID controller for aiming
|-
|
===== Aiming PIDClose Multiplier =====
|''Scalar''
|<code>2u</code>
|
|Value to multiply PID controller numbers when close enough to target (distance defined by AimingPIDTargetCLoseDistance)
|-
|
===== Aiming PIDCTarget Close Distance =====
|''Scalar''
|<code>2u</code>
|
|Distance in which the PID values should be multiplied by AimingPIDCloseMultiplier
|-
|
===== Lean Speed =====
|''Scalar''
|<code>3u</code>
|
|Lean speed. Value multiplied by timeslice (s)
|-
|
===== Lean Velocity =====
|''Scalar''
|<code>3u</code>
|
|How much is added to every frame to target lean. Higher will mean harder to lean precisely. Lower will mean very long to lean fully. Only used with keyboard.
|-
|
===== Lean Nearest Limit =====
|''Scalar''
|<code>5u</code>
|
|If the leaning value is > -value and < value, the leaning value will be snapped to 0. This is how variable leaning is deactivated.
|-
|
===== Allow Roll Animation =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Hold Input For Roll =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Allow Ragdoll Effectors From Damage =====
|''Boolean''
|<code>0</code>
|
|
|-
|}
 
=== CharacterHeadAimingComponent ===
Inherits from: [[#AimingComponent|AimingComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Aim Pivot =====
|''Object''
|<code>0</code>
|
|Pivot point around which head should be rotating
|-
|
===== Absolute Look Limits Du =====
|''Vector with 2 elements''
|<code>3</code>
|
|Absolute vertical limits of combined angles (head + aim direction)
|-
|
===== Absolute Look Limits Lr =====
|''Vector with 2 elements''
|<code>3</code>
|
|Absolute horizontal limits of combined angles (head + aim direction)
|-
|
===== Pitch Reduction =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Pitch reduction curve, where x represents current alpha of yaw side limit and y represents interpolation alpha between minimum and maximum limits of the pitch
|-
|
===== Absolute Look Limits Du Unconscious =====
|''Vector with 2 elements''
|<code>3</code>
|
|Absolute vertical limits of combined angles (head + aim direction) while unconscious
|-
|
===== Absolute Look Limits Lr Unconscious =====
|''Vector with 2 elements''
|<code>3</code>
|
|Absolute horizontal limits of combined angles (head + aim direction) while unconscious
|-
|}
 
=== CharacterIdentityComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Override =====
|''Boolean''
|<code>0</code>
|
|Override global config with local version
|-
|
===== Identity =====
|''Object''
|<code>0</code>
|
|
|-
|}
 
=== CharacterSoundComponent ===
Inherits from: [[#SoundComponent|SoundComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Foliage Collision Layer =====
|''String''
|<code>0</code>
|
|Layer used for foliage collision
|-
|
===== Foliage Collision Radius =====
|''Scalar''
|<code>2u</code>
|
|Radius [m] for foliage detection
|-
|
===== Impulse Threshold =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Velocity Threshold =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Obstruction Threshold =====
|''Scalar''
|<code>3</code>
|
|
|-
|}
 
=== CharacterStaminaComponent ===
Inherits from: [[#BaseStaminaComponent|BaseStaminaComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Stamina Regain Per S =====
|''Scalar''
|<code>4</code>
|
|How fast stamina recovers
|-
|
===== Stamina Drain Run =====
|''Scalar''
|<code>4</code>
|
|How fast stamina is used when running
|-
|
===== Stamina Drain Sprint =====
|''Scalar''
|<code>4</code>
|
|How fast stamina is used when sprinting
|-
|
===== Default Character Mass =====
|''Scalar''
|<code>2</code>
|
|Mass of empty/naked character in kg
|-
|
===== Encumbrance Mass Min =====
|''Scalar''
|<code>2</code>
|
|Mass in kg, above which encumbrance starts to influence stamina
|-
|
===== Encumbrance Mass Max =====
|''Scalar''
|<code>2</code>
|
|Mass in kg, at which encumbrance has the biggest effect
|-
|
===== Encumbrance Drain Max =====
|''Scalar''
|<code>4</code>
|
|Maximum possible stamina drain caused by max encumbrance
|-
|
===== Breath Normal Frequency =====
|''Scalar''
|<code>4</code>
|
|Amount of breath ins and outs taken per second
|-
|
===== Breath Normal Magnitude =====
|''Scalar''
|<code>4</code>
|
|The magnitude of each breath
|-
|
===== Breath Exhausted Frequency =====
|''Scalar''
|<code>4</code>
|
|Amount of breath ins and outs taken per second
|-
|
===== Breath Exhausted Magnitude =====
|''Scalar''
|<code>4</code>
|
|The magnitude of each breath
|-
|
===== Weapon Partial Lowering Times =====
|''Vector with 2 elements''
|<code>2</code>
|
|Min and Max timer of weapon partial lowering
|-
|}
 
=== CharacterWeaponSlotComponent ===
Inherits from: [[#WeaponSlotComponent|WeaponSlotComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Holstered Hidden =====
|''Boolean''
|<code>0</code>
|
|Should be hidden when holstered
|-
|
===== Smoothing Speed =====
|''Scalar''
|<code>3</code>
|
|Speed of smoothing animation of weapons
|-
|}
 
=== CompartmentAccessComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Compartment Layer Preset =====
|''String''
|<code>0</code>
|
|Physics preset when in compartment
|-
|
===== Teleport When Blocked =====
|''Boolean''
|<code>0</code>
|
|Should we teleport occupant outside the vehicle, when all exits are blocked?
|-
|
===== Teleport Direction =====
|''Integer''
|<code>0</code>
|
|Prefered telport direction when vehicle is turned around or teleporting from blocked state.
|-
|}
 
=== FactionIdentity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Visual Identity Array =====
|''Array of Objects''
|<code>0</code>
|
|List of possible visual identities
|-
|
===== Sound Identity Array =====
|''Array of Objects''
|<code>0</code>
|
|List of possible sound identities
|-
|
===== Social Identity =====
|''Object''
|<code>0</code>
|
|Social identity of faction
|-
|}
 
=== Identity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Visual Identity =====
|''Object''
|<code>0</code>
|
|Visual identity config
|-
|
===== Sound Identity =====
|''Object''
|<code>0</code>
|
|Sound identity config
|-
|
===== Name =====
|''String''
|<code>0</code>
|
|Name of this character.
|-
|
===== Alias =====
|''String''
|<code>0</code>
|
|Alias of this character.
|-
|
===== Surname =====
|''String''
|<code>0</code>
|
|Surname of this character.
|-
|}
 
=== IdentityBodyMesh ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Part Type =====
|''String''
|<code>0</code>
|
|Name of the part of body.
|-
|
===== Healthy Version =====
|''String''
|<code>0</code>
|
|Name of healthy version
|-
|
===== Wound Version =====
|''String''
|<code>0</code>
|
|Name of wounded version
|-
|}
 
=== MeshConfig ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Submeshes Of Body =====
|''Array of Objects''
|<code>0</code>
|
|Submeshes of body.
|-
|}
 
=== SocialIdentity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Names Config =====
|''Array of Strings''
|<code>0</code>
|
|List of possible names.
|-
|
===== Aliases Config =====
|''Array of Strings''
|<code>0</code>
|
|List of possible aliases.
|-
|
===== Surnames Config =====
|''Array of Strings''
|<code>0</code>
|
|List of possible surnames.
|-
|}
 
=== SoundIdentity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Voice ID =====
|''Integer''
|<code>0</code>
|
|Type of the voice
|-
|
===== Voice Pitch =====
|''Scalar''
|<code>3</code>
|
|Pitch of the voice
|-
|}
 
=== VisualIdentity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Head =====
|''Resource Name''
|<code>0</code>
|
|Head of the character.
|-
|
===== Body =====
|''Resource Name''
|<code>0</code>
|
|Body of the character.
|-
|
===== Body Meshes Config =====
|''Object''
|<code>0</code>
|
|List of meshes of body.
|-
|}
 
=== BaseEffectComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attach To Parent =====
|''Boolean''
|<code>0</code>
|
|Should be attached to parent entity
|-
|
===== Emitter Entity Class =====
|''String''
|<code>0</code>
|
|Entity class to be spawned, it will have particle effect as visual object
|-
|
===== Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Particle effect
|-
|
===== Effect Orient Up =====
|''Boolean''
|<code>0</code>
|
|Should effect be oriented Y up (true) or using parent entity normal (false)?
|-
|
===== Enabled On Dedicated Server =====
|''Boolean''
|<code>0</code>
|
|Should the effect works on a dedicated server?
|-
|}
 
=== CaseEjectingEffectComponent ===
Inherits from: [[#MuzzleEffectComponent|MuzzleEffectComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Water Surface =====
|''Scalar''
|<code>3</code>
|
|Surface value for water.
|-
|
===== Has Sound =====
|''Boolean''
|<code>0</code>
|
|Should the effect trigger sound?
|-
|}
 
=== HitEffectComponent ===
Inherits from: [[#BaseEffectComponent|BaseEffectComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Stop Sound With Particles =====
|''Boolean''
|<code>0</code>
|
|Whether sound should stop playing along particles or it should keep playing after particles end.
|-
|
===== Sound Stop Offset =====
|''Integer''
|<code>0</code>
|
|Time (in ms) before the particles end to stop the sound.
|-
|}
 
=== MotorExhaustEffectComponent ===
Inherits from: [[#BaseEffectComponent|BaseEffectComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== RPMSignal =====
|''String''
|<code>0</code>
|
|Name of signal which holds RPM of engine.
|-
|
===== Thrust Signal =====
|''String''
|<code>0</code>
|
|Name of signal which holds thrust of engine.
|-
|
===== Max RPM =====
|''Scalar''
|<code>3</code>
|
|Simple rate of effect will be proportion between current RPM and max RPM
|-
|
===== Effect Position =====
|''Object''
|<code>0</code>
|
|
|-
|}
 
=== MultiBarrelMuzzleEffectComponent ===
Inherits from: [[#BaseEffectComponent|BaseEffectComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Effect Positions =====
|''Array of Objects''
|<code>0</code>
|
|Effect position for each barrel. Ideally, there is one effect position for each barrel of the muzzle component, but if not, the effect position can wrap around or ignore any higher barrel. See Warp Barrel Index below
|-
|
===== Reset On Fire =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Override By Attachment =====
|''Boolean''
|<code>0</code>
|
|If set, any attachment on the muzzle behind this entity (including the weapon entity itself) that overrides muzzle effect will prevent this effect from playing. Used for example to have different muzzle flashes with suppressors
|-
|
===== Wrap Barrel Index =====
|''Boolean''
|<code>0</code>
|
|If the muzzle component has more barrels than defined in Effect Positions, barrel index is wrapped back into the range if this is true. Otherwise, barrels with a number above the number of defined effect positions will not play any effect at all.
|-
|}
 
=== MuzzleEffectComponent ===
Inherits from: [[#BaseEffectComponent|BaseEffectComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Effect Position =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Reset On Fire =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Override By Attachment =====
|''Boolean''
|<code>0</code>
|
|
|-
|}
 
=== ElectricityComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Node Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Radius =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Dynamic =====
|''Boolean''
|<code>0</code>
|
|
|-
|}
 
=== Faction ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Faction Key =====
|''String''
|<code>0</code>
|
|Unique identifier for this faction.
|-
|
===== Faction Color =====
|''Color''
|<code>4</code>
|
|Color representation of this faction.
|-
|
===== UIInfo =====
|''Object''
|<code>0</code>
|
|Data for displaying in user interface.
|-
|
===== Identity of soldiers =====
|''Object''
|<code>0</code>
|
|Identity of faction soldiers.
|-
|}
 
=== FactionAffiliationComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== faction affiliation =====
|''String''
|<code>0</code>
|
|faction affiliation
|-
|}
 
=== FactionManager ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Factions =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}
 
=== BaseGameMode ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Player Controller Prefab =====
|''Resource Name''
|<code>0</code>
|
|Prefab that will be used for connection players.
|-
|}
 
=== GamepadEffect ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Name =====
|''String''
|<code>0</code>
|
|Name used to identity the effect.
|-
|
===== Context Name =====
|''String''
|<code>0</code>
|
|GamepadEffectContext (defined in GamepadEffectsManagerComponent) to which this effect belongs to.
|-
|
===== Priority =====
|''Integer''
|<code>0</code>
|
|Effects with higher priority are selected.
|-
|
===== Auto Disable Timeout =====
|''Scalar''
|<code>3</code>
|
|Seconds after which the effect will be auto-disabled. Zero means never.
|-
|}
 
=== GamepadEffectContext ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Name =====
|''String''
|<code>0</code>
|
|The unique identifier of this context which will be used for GamepadEffects registration and hashmap searches.
|-
|}
 
=== GamepadEffectsManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Effect Contexts =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Owned Effects =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}
 
=== GamepadLightEffect ===
Inherits from: [[#GamepadEffect|GamepadEffect]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Light Color =====
|''Color''
|<code>4</code>
|
|Gamepad light color to be used.
|-
|
===== Time Period =====
|''Scalar''
|<code>3</code>
|
|Time period of the light animation (in seconds).
|-
|}
 
=== GamepadRumbleEffect ===
Inherits from: [[#GamepadEffect|GamepadEffect]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Rumble Impact =====
|''Integer''
|<code>0</code>
|
|Strength of the rumble effect.
|-
|
===== Rumble Interval =====
|''Integer''
|<code>0</code>
|
|Duration of the rumble effect.
|-
|
===== Loop Times =====
|''Integer''
|<code>0</code>
|
|How many times the effect will loop. 0 means no looping.
|-
|
===== Start Delay =====
|''Scalar''
|<code>3</code>
|
|Start delay (in seconds).
|-
|}
 
=== GamepadTriggerEffect ===
Inherits from: [[#GamepadEffect|GamepadEffect]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Trigger Type =====
|''Integer''
|<code>0</code>
|
|Gamepad trigger (Left/Right)
|-
|
===== Trigger Effect Type =====
|''Integer''
|<code>0</code>
|
|Gamepad trigger effect type
|-
|
===== Trigger Effect Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Feedback-Strength/Rumble-Amplitude curve for the gamepad trigger effect.\nHorizontal axis range [0, 10).\nVertical axis range [0, 9).
|-
|
===== Trigger Effect Frequency =====
|''Integer''
|<code>0</code>
|
|Vibration frequency in range [0-255] Hertz, when Trigger Effect Type is set to 'Rumble'.
|-
|
===== Variable Frequency =====
|''Boolean''
|<code>0</code>
|
|Is frequency variable?
|-
|
===== Frequency Delta =====
|''Integer''
|<code>0</code>
|
|Range [-255, 255]. How much of this is taken into account depends on SetFrequencyDeltaAmount().
|-
|
===== Variable Amplitude =====
|''Boolean''
|<code>0</code>
|
|Is curve amplitude variable?
|-
|
===== Amplitude Delta =====
|''Integer''
|<code>0</code>
|
|Range [-8, 8]. How much of this is taken into account depends on SetAmplitudeDeltaAmount().
|-
|}
 
=== GamepadVibrationEffect ===
Inherits from: [[#GamepadEffect|GamepadEffect]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Filename =====
|''Resource Name''
|<code>0</code>
|
|
|-
|}
 
=== WeaponGamepadEffectsManagerComponent ===
Inherits from: [[#GamepadEffectsManagerComponent|GamepadEffectsManagerComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Default Chambered Trigger effect =====
|''Object''
|<code>0</code>
|
|Default Chambered Fire Trigger effect used when FireMode doesn't have one.
|-
|
===== Default ADS Trigger effect =====
|''Object''
|<code>0</code>
|
|Default Chambered Trigger effect used when BaseMuzzleComponent doesn't have one.
|-
|
===== Default Deployment effect =====
|''Object''
|<code>0</code>
|
|Default Deployment Trigger effect used when BaseWeaponComponent doesn't have one.
|-
|
===== Default Empty Fire Trigger effect =====
|''Object''
|<code>0</code>
|
|Default Empty Fire Trigger effect used when FireMode doesn't have one.
|-
|
===== Default Firing Trigger effect =====
|''Object''
|<code>0</code>
|
|Default Firing Trigger effect used when FireMode doesn't have one.
|-
|}
 
=== BaseHUDComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Info Displays =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}
 
=== BaseInfoDisplay ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Visible At Parent =====
|''Boolean''
|<code>0</code>
|
|
|-
|}
 
=== GroupInfoDisplay ===
Inherits from: [[#BaseInfoDisplay|BaseInfoDisplay]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Info Displays =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}
 
=== UIInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Name =====
|''String''
|<code>0</code>
|
|Name to be displayed in player UI.
|-
|
===== Description =====
|''String''
|<code>0</code>
|
|Description text to be displayed in player UI.
|-
|
===== Icon =====
|''Resource Name''
|<code>0</code>
|
|Resource for icon to be displayed in player UI.
|-
|}
 
=== BaseInventoryStorageComponent ===
Inherits from: [[#InventoryItemComponent|InventoryItemComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Priority =====
|''Integer''
|<code>0</code>
|
|Storage priority
|-
|
===== Storage Purpose =====
|''Flags''
|<code>0</code>
|
|Storage usage purpose
|-
|
===== Use Capacity Coefficient =====
|''Boolean''
|<code>0</code>
|
|Base the item storage capacity on its physical dimensions (volume).
|-
|
===== Capacity Coefficient =====
|''Scalar''
|<code>3</code>
|
|Amount of item volume to be considered as allowed cumulative capacity.
|-
|
===== Max Cumulative Volume =====
|''Scalar''
|<code>3</code>
|
|Maximum cumulative volume capacity in cm^3
|-
|
===== Max Item Size =====
|''Vector with 3 elements''
|<code>3</code>
|
|Maximum allowed item size (item can be rotated) cm
|-
|
===== Save In Loadout =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Use Virtual Inventory Replication =====
|''Boolean''
|<code>0</code>
|
|Should this storage has a virtual inventory
|-
|
===== Virtual Inventory Prefab =====
|''Resource Name''
|<code>0</code>
|
|Prefab that will be used for replication of the inventory.
|-
|}
 
=== CharacterInventoryStorageComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Character Preview Prefab =====
|''Resource Name''
|<code>0</code>
|
|Character preview Prefab
|-
|}
 
=== CharacterVicinityComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Discovery Radius =====
|''Scalar''
|<code>3</code>
|
|Vicinity discovery radius in meters
|-
|
===== Discovery Interval =====
|''Scalar''
|<code>3</code>
|
|Vicinity refresh interval in seconds
|-
|}
 
=== EquipmentStorageSlot ===
Inherits from: [[#InventoryStorageSlot|InventoryStorageSlot]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Allowed Item Types =====
|''Array of Strings''
|<code>0</code>
|
|Item types that are allowed to be attached to current slot (see ECommonItemType enum for possible values)
|-
|
===== Affected By Ocluders =====
|''Array of Strings''
|<code>0</code>
|
|Loadout ocluder types that disable item in this slot
|-
|
===== Animated Mesh Refference =====
|''Resource Name''
|<code>0</code>
|
|In case of entity owner have changeable mesh at runtime, setting animated mesh reference allows you to configure alternative state of slot transformation
|-
|
===== Debug Anim Mesh Slotting =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Resting Offset =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Alternative Offset from the origin for mesh item without skeleton
|-
|
===== Resting Angles =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Alternative Orientation around axes for mesh item without skeleton
|-
|}
 
=== InventoryItemComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attributes =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Wb Placement From Attributes =====
|''Boolean''
|<code>0</code>
|
|When placing item in world editor, respect properties specified in ItemAttributeCollection
|-
|}
 
=== InventoryMagazineComponent ===
Inherits from: [[#InventoryItemComponent|InventoryItemComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Weight Per Ammo =====
|''Scalar''
|<code>3</code>
|
|
|-
|}
 
=== ItemsInitConfigurationItem ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Target Storage =====
|''String''
|<code>0</code>
|
|
|-
|
===== Target Purpose =====
|''Integer''
|<code>0</code>
|
|Locate storage on prefab with set purpose
|-
|
===== Prefabs To Spawn =====
|''Array of Resource Names''
|<code>0</code>
|
|Prefabs to spawn at target storage
|-
|}
 
=== InventoryStorageManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Initial Inventory Items =====
|''Array of Objects''
|<code>0</code>
|
|Configuration list of initial items in inventory
|-
|}
 
=== InventoryStorageSlot ===
Inherits from: [[#EntitySlotInfo|EntitySlotInfo]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Inspection Widget Offset =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Offset from the origin
|-
|}
 
=== ItemPreviewManagerEntity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Preview World =====
|''Resource Name''
|<code>0</code>
|
|Preview world prefab
|-
|
===== Default Render Attributes =====
|''Object''
|<code>0</code>
|
|
|-
|}
 
=== MultiSlotConfiguration ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Slot Template =====
|''Object''
|<code>0</code>
|
|Storage slot template
|-
|
===== Num Slots =====
|''Integer''
|<code>0</code>
|
|
|-
|}
 
=== PreviewAnimationComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Weapon Attachment Info =====
|''Object''
|<code>0</code>
|
|Weapon attachment for anim instance
|-
|}
 
=== UniversalInventoryStorageComponent ===
Inherits from: [[#BaseInventoryStorageComponent|BaseInventoryStorageComponent]]
 
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Initial Storage Slots =====
|''Array of Objects''
|<code>0</code>
|
|List of initial slots in storage
|-
|
===== Multi Slots =====
|''Array of Objects''
|<code>0</code>
|
|List of slots used for multiple items spawn
|-
|}
 
=== AimingModifierAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Erect Limits Horizontal =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Yaw (horizontal) aiming limits of held weapon relative to body direction in erect stance (in deg)
|-
|
===== Erect Limits Vertical =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Pitch (vertical) aiming limits of held weapon relative to body direction in erect stance (in deg)
|-
|
===== Crouch Limits Horizontal =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Yaw (horizontal) aiming limits of held weapon relative to body direction in crouch stance (in deg)
|-
|
===== Crouch Limits Vertical =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Pitch (vertical) aiming limits of held weapon relative to body direction in crouch stance (in deg)
|-
|
===== Prone Limits Horizontal =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Yaw (horizontal) aiming limits of held weapon relative to body direction in prone stance (in deg)
|-
|
===== Prone Limits Vertical =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Pitch (vertical) aiming limits of held weapon relative to body direction in prone stance (in deg)
|-
|
===== Deployment ADSLimits Horizontal =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Yaw (horizontal) ADS limits (transition from ADS to 1pv) of held weapon relative to body direction while deployed (in deg)
|-
|
===== Deployment ADSLimits Vertical =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Pitch (vertical) ADS limits (transition from ADS to 1pv) of held weapon relative to body direction while deployed (in deg)
|-
|
===== Deployment ADSLimits Distance =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Maximum distance of eye to sights of held weapon while deployed (in meters). Range between two values is used to prevent constant disengagement/reengagement as a threshold.
|-
|
===== Prone Deployment Vertical Aim Limits =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Vertical aim angle limits of weapon deployment relative to starting deploying direction (in deg)
|-
|
===== Prone Deployment Horizontal Aim Limits =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Horizontal Aim angle limits of weapon deployment relative to body direction (in deg)
|-
|
===== Deploying Height Limits =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Min and Max height for deploying a weapon. Distance is relative to character position.
|-
|
===== Deployment Aim Speed Multiplier =====
|''Vector with 2 elements''
|<code>5u</code>
|
|Aim sensitivity multiplier while deployed
|-
|
===== Deployment Horizontal Aim Sensitivity Max =====
|''Scalar''
|<code>5u</code>
|
|Maximum horizontal aim speed while deployed (in deg/s)
|-
|
===== Max Distance Above Head =====
|''Scalar''
|<code>5u</code>
|
|Maximum distance between character's head and buttstock of weapon in weapon deployment.
|-
|
===== Left Gun Collision Distance =====
|''Scalar''
|<code>5u</code>
|
|distance left of character's right hand, where collision should be checked in weapon deployment.
|-
|
===== Right Gun Collision Distance =====
|''Scalar''
|<code>5u</code>
|
|distance right of character's right hand, where collision should be checked in weapon deployment.
|-
|
===== Upper Gun Collision Distance =====
|''Scalar''
|<code>5u</code>
|
|distance up of character's right hand, where collision should be checked in weapon deployment.
|-
|
===== Lower Gun Collision Distance =====
|''Scalar''
|<code>5u</code>
|
|distance down of character's right hand, where collision should be checked in weapon deployment.
|-
|
===== Deployment Points =====
|''Array of Objects''
|<code>0</code>
|
|Set of pivot points to use with deployment, clear array to disable deployment
|-
|}
 
=== AttachmentAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attachment Type =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility.
|-
|}
 
=== CharacterModifierAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Stance Limits =====
|''Vector with 2 elements''
|<code>3</code>
|
|What is the stances range in which the weapon can be equipped.
|-
|
===== Speed Limit =====
|''Scalar''
|<code>3</code>
|
|When holding item with current attribute - \nLimit character's speed to current value
|-
|
===== ADSSpeed Limit =====
|''Scalar''
|<code>3</code>
|
|When holding item with current attribute - \nLimit character's speed to current value when in ads
|-
|
===== Speed Limit Item Primary Action =====
|''Scalar''
|<code>3</code>
|
|When holding item with current attribute - \nLimit character's speed to current value when performing priamry action
|-
|
===== Speed Limit Highready =====
|''Scalar''
|<code>3</code>
|
|When having weapon ready to fire - \nLimit character's speed to current value when performing priamry action
|-
|
===== Turn Limit =====
|''Integer''
|<code>0</code>
|
|When holding item with current attribute - \nLimit character max incremental turn angle
|-
|
===== Default ADSSpeed Modifier =====
|''Boolean''
|<code>0</code>
|
|When holding item with current attribute - \nDefault apply ads speed multiplier (even when not in ads)
|-
|
===== Supress1h Shooting =====
|''Boolean''
|<code>0</code>
|
|When holding item with current attribute - \nSupress one handed shooting
|-
|
===== Allow Gadget Use =====
|''Boolean''
|<code>0</code>
|
|When holding item with current attribute - \nAllow use of gadgets in the other hand
|-
|
===== Can Be Equipped In Vehicle =====
|''Boolean''
|<code>0</code>
|
|Allow equip action when character is in compartment
|-
|
===== Allow Reloading With Roll =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Allow Jumping =====
|''Boolean''
|<code>0</code>
|
|Allow jump when item is equipped
|-
|}
 
=== HolsteredItemAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Linear Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|yaw pitch roll
|-
|
===== Hidden Holstered =====
|''Boolean''
|<code>0</code>
|
|Is hidden holstered?
|-
|}
 
=== ItemActionAnimAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Animation Graph Template =====
|''Resource Name''
|<code>0</code>
|
|Animation graph of action performer (usually character's main animation graph).
|-
|
===== Action Animation Command Name =====
|''String''
|<code>0</code>
|
|Animation command to call
|-
|
===== Action Anim Duration =====
|''Scalar''
|<code>3</code>
|
|Item Acion Duration
|-
|
===== Action Int Param =====
|''Integer''
|<code>0</code>
|
|Item Acion Int Param
|-
|
===== Allow Movement During Action =====
|''Boolean''
|<code>0</code>
|
|Can the character move during the action?
|-
|}
 
=== ItemAnimationAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Ik Settings =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Animation Instance =====
|''Resource Name''
|<code>0</code>
|
|Anim graph instance
|-
|
===== Anim Instance Blend Duration =====
|''Scalar''
|<code>3</code>
|
|Pose blend duration when switching to provided anim instance
|-
|
===== Exclude Bones Blend =====
|''Array of Strings''
|<code>0</code>
|
|List of bones to be excluded when blending to current anim instance
|-
|
===== Animation IKPose =====
|''Resource Name''
|<code>0</code>
|
|IK Pose for this specific weapon
|-
|
===== Anim IKPose Stand Override =====
|''Resource Name''
|<code>0</code>
|
|IK Pose override when standing with this weapon.
|-
|
===== Anim IKPose Crouch Override =====
|''Resource Name''
|<code>0</code>
|
|IK Pose override when crouching with this weapon.
|-
|
===== Anim IKPose Prone Override =====
|''Resource Name''
|<code>0</code>
|
|IK Pose override when in prone with this weapon.
|-
|
===== Override Default Ik Bones Blend =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Include Bones In Ik Blend =====
|''Array of Strings''
|<code>0</code>
|
|Overrides default list of bones to be included when blending to IK Pose
|-
|
===== Anim Ikpose Blend Duration =====
|''Scalar''
|<code>3</code>
|
|Blend duration when switching to provided IKPose
|-
|
===== Animation Attachments =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Hand Additive Rotation =====
|''Vector with 3 elements''
|<code>3</code>
|
|Additive rotation when item is held in hands
|-
|
===== Hand Additive Translation =====
|''Vector with 3 elements''
|<code>3</code>
|
|Additive translation when item is held in hands
|-
|
===== Anim Injection Priority =====
|''Integer''
|<code>0</code>
|
|Animation injection priority (applicable when weapon with different attachments requires different IK poses or graph attachments)
|-
|
===== Anim Recoil Limit =====
|''Scalar''
|<code>3</code>
|
|Magnitude of maximum applied recoil animation.
|-
|
===== Anim Recoil Recovery Time =====
|''Scalar''
|<code>3</code>
|
|Recovery time of recoil animation.
|-
|
===== Anim Recoil Buildup Time =====
|''Scalar''
|<code>3</code>
|
|Build up time of recoil animation.
|-
|
===== Allow Inspection =====
|''Boolean''
|<code>0</code>
|
|Can this item be inspected by the user?
|-
|}
 
=== ItemAttributeCollection ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Item Display Name =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Item Phys Attributes =====
|''Object''
|<code>0</code>
|
|Physical attributes
|-
|
===== Item Animation Attributes =====
|''Object''
|<code>0</code>
|
|Animation attributes
|-
|
===== Custom Attributes =====
|''Array of Objects''
|<code>0</code>
|
|Item specific attributes can be set here
|-
|
===== Common Item Type =====
|''String''
|<code>0</code>
|
|Common item type identifier
|-
|}
 
=== ItemIKSettings ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Jumping =====
|''Boolean''
|<code>0</code>
|
|Should these be applied during a jump
|-
|
===== Lowered =====
|''Boolean''
|<code>0</code>
|
|Should these be applied when lowered
|-
|
===== Prone Turn =====
|''Boolean''
|<code>0</code>
|
|Should these be applied when turning in prone
|-
|
===== In Ads =====
|''Boolean''
|<code>0</code>
|
|Should these be applied when in ADS
|-
|
===== Out Ads =====
|''Boolean''
|<code>0</code>
|
|Should these be applied when out of ADS
|-
|
===== Movement Speed Range =====
|''Vector with 2 elements''
|<code>3</code>
|
|In what speed range those settings are valid
|-
|
===== Ik Settings Stand =====
|''Flags''
|<code>0</code>
|
|
|-
|
===== Ik Settings Crouch =====
|''Flags''
|<code>0</code>
|
|
|-
|
===== Ik Settings Prone =====
|''Flags''
|<code>0</code>
|
|
|-
|}
 
=== ItemMovementSwayAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Bob Spring =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Spring coefficient per axis [0,1]
|-
|
===== Bob Damper =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Spring damping per axis [0,1]
|-
|
===== Bob Magnitude Linear =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Translation multiplier per axis
|-
|
===== Bob Magnitude Angular =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Rotation multiplier per axis
|-
|
===== Bob Limits =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Max change ratio to which delta is clamped
|-
|
===== Bob Speed =====
|''Scalar''
|<code>5u</code>
|
|Interpolation rate
|-
|
===== Min Magnitude =====
|''Scalar''
|<code>3u</code>
|
|Min magnitude at min character speed
|-
|
===== Max Magnitude =====
|''Scalar''
|<code>3u</code>
|
|Max magnitude at max character speed
|-
|
===== Default Magnitude Linear =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Default Magnitude Angular =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Lowered Magnitude Linear =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Lowered Magnitude Angular =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== One Hand Magnitude Linear =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== One Hand Magnitude Angular =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== ADSMagnitude Linear =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== ADSMagnitude Angular =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Injured Magnitude Linear =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Injured Magnitude Angular =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Target Velocity =====
|''Scalar''
|<code>5u</code>
|
|Maximum speed in m/s to which magnitude is scaled.
|-
|
===== Target Velocity Steepness =====
|''Scalar''
|<code>5u</code>
|
|Exponent value of velocity scaling, defines steepness.
|-
|
===== Target Velocity Limit =====
|''Scalar''
|<code>5u</code>
|
|Maximum velocity at which curve is clamped to 1.
|-
|
===== Smooth Time =====
|''Scalar''
|<code>5u</code>
|
|Amount (time) of smoothing applied to initial inptut signal. Higher = slower
|-
|
===== Max Velocity =====
|''Scalar''
|<code>5u</code>
|
|Maximum smoothing velocity.
|-
|}
 
=== ItemOneHandAnimAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Erect Linear Offset Upper =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Linear transform offset when one handed (aiming up).
|-
|
===== Erect Linear Offset =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Linear transform offset when one handed.
|-
|
===== Erect Linear Offset Lower =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Linear transform offset when one handed (aiming down).
|-
|
===== Erect Angular Offset =====
|''Vector with 3 elements''
|<code>3u</code>
|
|Angular transform offset when one handed.
|-
|
===== Crouch Linear Offset Upper =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Linear transform offset when one handed and crouched (aiming up).
|-
|
===== Crouch Linear Offset =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Linear transform offset when one handed and crouched.
|-
|
===== Crouch Linear Offset Lower =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Linear transform offset when one handed and crouched (aiming down).
|-
|
===== Crouch Angular Offset =====
|''Vector with 3 elements''
|<code>3u</code>
|
|Angular transform offset when one handed and crouched.
|-
|
===== Interpolation Speed =====
|''Scalar''
|<code>3u</code>
|
|Speed of blending, higher values = faster blend
|-
|
===== Stance Interpolation Speed =====
|''Scalar''
|<code>3u</code>
|
|Speed of stance blending, higher values = faster blend
|-
|
===== Spring Coefficient =====
|''Scalar''
|<code>3u</code>
|
|Blend spring coefficient
|-
|
===== Damper Coefficient =====
|''Scalar''
|<code>3u</code>
|
|Blend damper coefficient
|-
|
===== Obstruction Multiplier =====
|''Scalar''
|<code>3u</code>
|
|How much influence (or priority) obstruction has over one handed modifier. 1.0 for default. Greater values mean that obstruction will take over this modifier faster.
|-
|}
 
=== ItemPhysicalAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Weight =====
|''Scalar''
|<code>3</code>
|
|Item weight in kg
|-
|
===== Size Setup Strategy =====
|''Integer''
|<code>0</code>
|
|How to setup size
|-
|
===== Item Dimensions =====
|''Vector with 3 elements''
|<code>3</code>
|
|Manually set Item dimensions in cm
|-
|
===== Item Volume =====
|''Scalar''
|<code>8u</code>
|
|Manually set Item volume in cm3
|-
|
===== Dimension Scaler =====
|''Scalar''
|<code>6u</code>
|
|Adjust item dimension using scaler
|-
|
===== Resting UP =====
|''Integer''
|<code>0</code>
|
|Vector to be considered as up when item rest in world
|-
|
===== Resting Additive Rotation LS =====
|''Vector with 3 elements''
|<code>3</code>
|
|Additive rotation (deg) to be applied for resting item in local space.\nWill be applied after placement transform was estimated.
|-
|
===== Pivot Bone Name =====
|''String''
|<code>0</code>
|
|Rotation pivot bone name
|-
|
===== Resting Additive Offset LS =====
|''Vector with 3 elements''
|<code>3</code>
|
|Additive offset (m) to be applied for resting item in local space.\nWill be applied after placement transform was estimated.
|-
|
===== Active Physical Simulation =====
|''Integer''
|<code>0</code>
|
|Physical simulation state when physics is enabled for item
|-
|}
 
=== PreviewRenderAttributes ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Camera Preset =====
|''Integer''
|<code>0</code>
|
|Camera preset
|-
|
===== Camera Orbit Angles =====
|''Vector with 3 elements''
|<code>3</code>
|
|Camera render orbit angles (relative to preset)
|-
|
===== Camera Distance To Item =====
|''Scalar''
|<code>3</code>
|
|Camera distance to item's BB
|-
|
===== Camera Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Camera render offset (relative to preset)
|-
|
===== Item Render Rotation =====
|''Vector with 3 elements''
|<code>3</code>
|
|Item render rotation
|-
|
===== Is Perspective Camera =====
|''Boolean''
|<code>0</code>
|
|Camera perspective mode
|-
|
===== FOV =====
|''Scalar''
|<code>3</code>
|
|Camera FOV in degrees... for perspective camera  - assumes Vertical FOV, for orthographic - lens height
|-
|
===== Aspect Ratio =====
|''Scalar''
|<code>5u</code>
|
|Camera view frustum aspect ratio width/height
|-
|
===== Is Dynamic Object =====
|''Boolean''
|<code>0</code>
|
|Is object suppose to be animated
|-
|
===== Preview Worn Model =====
|''Boolean''
|<code>0</code>
|
|Is the preview should be the worn model?
|-
|
===== Preview Model =====
|''Resource Name''
|<code>0</code>
|
|Model to be used when previewing this item (if different than default model set in MeshObject)
|-
|
===== Preview Prefab =====
|''Resource Name''
|<code>0</code>
|
|Optional prefab to be used when previewing this item
|-
|
===== Animation Instance =====
|''Resource Name''
|<code>0</code>
|
|Anim graph instance for preview pose
|-
|
===== Lod Model =====
|''Integer''
|<code>0</code>
|
|LOD used for the preview render
|-
|
===== Show All Childrens =====
|''Boolean''
|<code>0</code>
|
|Should we show all childrens attached to the parent entity? By default slots are taken into account already. This is only needed if you want to show EVERY childrens
|-
|
===== Take Visibility Into Account =====
|''Boolean''
|<code>0</code>
|
|Should we take into account the current visibility of the children. Should inventory shows also hidden childrens?
|-
|}
 
=== HidingCloth ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Prefab =====
|''Resource Name''
|<code>0</code>
|
|Prefab to be used for hiding.
|-
|
===== Area Type =====
|''Object''
|<code>0</code>
|
|Specify which loadout area type where the prefab should be.
|-
|}
 
=== BaseLoadoutClothComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Area Type =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility with the current slot.
|-
|
===== Animate =====
|''Boolean''
|<code>0</code>
|
|Should this item be animated along with character
|-
|
===== Slots =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Worn Model =====
|''Resource Name''
|<code>0</code>
|
|Model to be used when wearing this cloth (if different than default model set in MeshObject)
|-
|
===== Worn Materials Override =====
|''Array of Resource Names''
|<code>0</code>
|
|Material assignments (applied for xob worn model extension)
|-
|
===== Item Model =====
|''Resource Name''
|<code>0</code>
|
|Model to be used when this cloth is on the ground (if different than default model set in MeshObject)
|-
|
===== Item Materials Override =====
|''Array of Resource Names''
|<code>0</code>
|
|Material assignments (applied for xob item model extension)
|-
|
===== Visible In Vehicle =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Physics On Wear Enabled =====
|''Boolean''
|<code>0</code>
|
|Should this item have physics interactions while on character
|-
|
===== Animate Colliders On Wear =====
|''Boolean''
|<code>0</code>
|
|Should the item colliders be animated while worn?
|-
|
===== Sound Int =====
|''Integer''
|<code>0</code>
|
|Value of corresponding sound signal when this item is worn
|-
|
===== Force LOD0 =====
|''Boolean''
|<code>0</code>
|
|Force clothes to be shown always in LOD 0
|-
|
===== Override Meshes To Hide =====
|''Array of Strings''
|<code>0</code>
|
|
|-
|
===== Debug Worn Model =====
|''Boolean''
|<code>0</code>
|
|Set's mesh object model to worn for debug purposes outside of play mode
|-
|
===== Depth Front =====
|''Scalar''
|<code>3</code>
|
|Forward Z offset of a slinged and held weapon when the cloth is equipped.
|-
|
===== Depth Back =====
|''Scalar''
|<code>3</code>
|
|Backward Z offset of weapons on shoulder when the cloth is equipped.
|-
|
===== Depth Left =====
|''Scalar''
|<code>3</code>
|
|Left X offset of elbows when the cloth is equipped.
|-
|
===== Depth Right =====
|''Scalar''
|<code>3</code>
|
|Right X offset of elbows when the cloth is equipped.
|-
|
===== Offset Shoulder Left =====
|''Scalar''
|<code>3</code>
|
|Additional X offset of the weapon on character's left shoulder.
|-
|
===== Offset Shoulder Right =====
|''Scalar''
|<code>3</code>
|
|Additional X offset of the weapon on character's right shoulder.
|-
|
===== Area Ocludders =====
|''Array of Strings''
|<code>0</code>
|
|Areas that we can consider occluded when used
|-
|
===== Deflated Model =====
|''Resource Name''
|<code>0</code>
|
|Model to be used for deflated model
|-
|
===== Area Type When Model Change =====
|''Array of Objects''
|<code>0</code>
|
|Specify which loadout area type should influence model swithching between worn and deflated model
|-
|
===== Ignore Cloth =====
|''Boolean''
|<code>0</code>
|
|Should this cloth be ignored when calculating deflated/inflated state?
|-
|
===== Debug Deflated Model =====
|''Boolean''
|<code>0</code>
|
|Set's mesh object model to deflated for debug purposes outside of play mode
|-
|
===== Hiding Array =====
|''Array of Objects''
|<code>0</code>
|
|Specify which loadout area and prefab, makes this cloth hides
|-
|
===== Blocked Slots =====
|''Array of Objects''
|<code>0</code>
|
|Specify which loadout area type should be blocked when this cloth is being put on
|-
|}


* '''PortableDesk_01_wing_base.et'''
=== BaseLoadoutManagerComponent ===
** '''PortableDesk_01_wing_Black.et'''
{| class="wikitable"
** '''PortableDesk_01_wing_Olive.et'''
|+
** '''PortableDesk_01_wing_Sand.et'''
!Param
* '''PortableDesk_01_lid_base.et'''
!Type
** '''PortableDesk_01_lid_Black.et'''
!Default value
** '''PortableDesk_01_lid_Olive.et'''
!Unit
** '''PortableDesk_01_lid_Sand.et'''
!Description
|-
|
===== Slots =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


=== LoadoutSlotInfo ===
Inherits from: [[#InventoryStorageSlot|InventoryStorageSlot]]


{{Clear}}
{| class="wikitable"
== Creating prop variants ==
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Area Type =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility with the current slot.
|-
|
===== Meshes To Hide =====
|''Array of Strings''
|<code>0</code>
|
|
|-
|
===== Enable Deflated Offset =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Deflated Offset =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Offset from the origin
|-
|
===== Deflated Angles =====
|''Vector with 3 elements''
|<code>5u</code>
|
|Orientation around axes
|-
|}


In order to create a variant of Portable Rugged Desk with for instance both wings and lids attached, it is possible to utilize '''SlotManagerComponent''' to attach additional elements. Before going any further though, it is recommend to start with creating a new base prefab - '''PortableDesk_01_Base_Full.et''' - which will serve as a base asset  with all additions attached. Since the core of the desk remains the same, this new base prefab should inherit from '''PortableDesk_01_Base.et'''
=== MapDescriptorComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Display Name =====
|''String''
|<code>0</code>
|
|
|-
|
===== Imageset Quad Element =====
|''String''
|<code>0</code>
|
|Name of the Quad Element in the Imageset
|-
|
===== Visible On Map =====
|''Boolean''
|<code>0</code>
|
|Default visibility on map
|-
|
===== Show Terrain Elevation =====
|''Boolean''
|<code>0</code>
|
|Show elevation
|-
|
===== Map Item Descriptor =====
|''Boolean''
|<code>0</code>
|
|Uses MapItem's properties over the layer.
|-
|
===== Main Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Unit Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Scale =====
|''Scalar''
|<code>3</code>
|
|Scale factor (radio signal for example)
|-
|
===== Faction =====
|''Integer''
|<code>0</code>
|
|Faction index
|-
|
===== Force Rotation Angle =====
|''Scalar''
|<code>2</code>
|
|Overrides the rotation angle
|-
|
===== Force Group Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Force Group Scale =====
|''Scalar''
|<code>2</code>
|
|Overrides the group scale
|-
|
===== Priority =====
|''Integer''
|<code>0</code>
|
|Priority in displaying the Descriptor
|-
|}


Once base prefab is there, follow below steps to :
=== MapEntity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Map Geometry Data =====
|''Resource Name''
|<code>0</code>
|
|Exported geometry data (roads, buildings, etc.) for the map.
|-
|
===== Satellite background image =====
|''Resource Name''
|<code>0</code>
|
|Image used as a background.
|-
|}


* Add new '''SlotManagerComponent''' via '''[[Arma_Reforger:Prefabs_Basics#Adding_new_components_to_entity_instance|+ Add Component]]''' button
=== MapWidget ===
* Select '''SlotManagerComponent''' and add new element to '''Slots''' array by clicking on plus sign on the right side of that property
{| class="wikitable"
** Select '''EntitySlotInfo''' from the list that appeared
|+
** Type new name of that slot. For instance slot for wing can be called '''Wing_L'''
!Param
** In '''Wing_L''' element, locate '''Pivot ID''' property and select '''socket_wing_01''' from the list
!Type
** In '''Child Pivot ID''' type name of the snap point which is located in the mesh - in this case it is called '''snap_wing'''
!Default value
** In '''Prefab''' property, assign prefab which you want to use - in this case it will be '''PortableDesk_01_Base_Wing.et'''
!Unit
!Description
|-
|
===== Imagesets =====
|''Array of Resource Names''
|<code>0</code>
|
|Imageset list in use. Be sure indices here match indices you refer.
|-
|
===== Overlay Texture =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Texture Dashed Line =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Texture Dotted Line =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Default Font =====
|''Resource Name''
|<code>0</code>
|
|Default font used in MapWidget.
|-
|}


This procedure should be repeated for the rest of the slots - '''Wing_R, Lid_1''' & '''Lid2'''. In case the prefabs from the slots are incorrectly attached, please make sure that orientation of sockets and snap points is correct. Otherwise, the new '''PortableDesk_01_Base_Full.et''' should look like that:
=== BuoyancyComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Buoyancy =====
|''Scalar''
|<code>3</code>
|
|Buoyancy of the object. Use higher values to adjust for volume (-1 = sinks, 0 = neutral, 1 = floats)
|-
|
===== Buoyancy Apply Distance Scale =====
|''Scalar''
|<code>3</code>
|
|Buoyancy force application point distance scale
|-
|
===== Buoyancy Depth Offset =====
|''Scalar''
|<code>3</code>
|
|Buoyancy force depth boost for submerged points
|-
|
===== Hydrodynamic Scale Linear =====
|''Vector with 3 elements''
|<code>3</code>
|
|Scaling of linear water friction forces in model space (right/up/forward)
|-
|
===== Hydrodynamic Scale Angular =====
|''Vector with 3 elements''
|<code>3</code>
|
|Scaling of angular water friction forces in model space (pitch/yaw/roll)
|-
|
===== Use Bounding Box =====
|''Boolean''
|<code>0</code>
|
|Use bounding box wall centers as buyoancy points
|-
|
===== Bounding Box Scale =====
|''Vector with 3 elements''
|<code>3</code>
|
|Scaling of the automated bounding box buoyancy (right/up/forward)
|-
|
===== Bounding Box Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Offset of the automated bounding box buoyancy (right/up/forward)
|-
|
===== Draw Debug =====
|''Boolean''
|<code>0</code>
|
|Draw debug
|-
|}


[[Image:armareforger-new-prop-prefab-slot-manager.png]]
=== DampingComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Linear Damping =====
|''Vector with 3 elements''
|<code>3</code>
|
|Additional damping of linear velocity (in local space, per axis)
|-
|
===== Angular Damping =====
|''Vector with 3 elements''
|<code>3</code>
|
|Additional damping of angular velocity (in local space, per axis)
|-
|}


Beside using '''SlotManagerComponent''', it is also possible to utilize hierarchy. This is especially useful when you for instance want to create a mini composition out of prefab, like add a telephone, some notebooks or ashtrays to it. After adding '''Hierarchy''' component to both parent and children prefab, it is even possible to utilize '''Pivot ID''' to snap prefabs to desired place. There is no way to define '''Child Pivot ID''' using that method though and thats why '''SlotManagerComponent''' was used here.
=== VehicleBuoyancyComponent ===
Inherits from: [[#BuoyancyComponent|BuoyancyComponent]]


Principles of adding entity to prefab are described on [[Arma_Reforger:Prefabs_Basics#Adding_entities_to_prefab|Prefabs Basics page]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Thrust Points =====
|''Array of Vectors with 3 elements''
|<code>3</code>
|
|Water jet positions in model space
|-
|
===== Thurst Forward =====
|''Scalar''
|<code>3</code>
|
|Forward thrust of the vehicle in water (in m/s^2)
|-
|
===== Thurst Reverse =====
|''Scalar''
|<code>3</code>
|
|Reverse thrust of the vehicle in water (in m/s^2)
|-
|
===== Thurst Steering =====
|''Scalar''
|<code>3</code>
|
|Steering thrust of the vehicle in water (in deg/s^2), this is applied even on the spot
|-
|
===== Speed To Steering =====
|''Scalar''
|<code>3</code>
|
|Vehicle forward/backward speed to steering thrust (in m/s to deg/s^2)
|-
|
===== Buoyancy Loss =====
|''Scalar''
|<code>3</code>
|
|How much buoyancy the vehicle loses per second of being in the water down to a minimum of -1
|-
|
===== Buoyancy Loss Destroyed =====
|''Scalar''
|<code>3</code>
|
|How much buoyancy the vehicle loses per second of being in the water down to a minimum of -1 - when vehicle hull is destroyed
|-
|
===== Buoyancy Loss Threshold =====
|''Scalar''
|<code>3</code>
|
|Health at which buyoancy loss starts
|-
|
===== Buoyancy Gain =====
|''Scalar''
|<code>3</code>
|
|How much buoyancy the vehicle gains per second of being out of the water up to maximum of initial buoyancy value
|-
|}


[[Image:armareforger-new-prop-prefab-add-hierarchy.gif]]
=== Aerodynamics ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Reference Area =====
|''Scalar''
|<code>3</code>
|
|Unit: m^2\n Total frontal area of a vehicle
|-
|
===== Drag Coefficient =====
|''Scalar''
|<code>3</code>
|
|Drag coefficient
|-
|}


=== Pivot ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Bone =====
|''String''
|<code>0</code>
|
|
|-
|
===== Position =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Rotation =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|}


= Adding procedural animation =
=== Axle ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Torque Share =====
|''Scalar''
|<code>3</code>
|
|The ratio of the torque received from engine
|-
|
===== Has Handbrake =====
|''Boolean''
|<code>0</code>
|
|Indicates if handbrake affects this axle
|-
|
===== Differential =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Suspension =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Wheel =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Tyre =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Swaybar =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Wheel Positions =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


{{Messagebox|'''Overview'''
=== Clutch ===
Following topics will be covered in this paragraph
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max Clutch Torque =====
|''Scalar''
|<code>3</code>
|
|[N.m] ADD DESCRIPTION
|-
|
===== Output =====
|''String''
|<code>0</code>
|
|ADD DESCRIPTION
|-
|}


* Creating basic procedural animation
=== Differential ===
* Applying animation to the asset|💬|#CDF}}  
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Type =====
|''Integer''
|<code>0</code>
|
|Type
|-
|
===== Ratio =====
|''Scalar''
|<code>3</code>
|
|gear ratio of the differential
|-
|
===== Strength =====
|''Scalar''
|<code>3</code>
|
|determines the magnitude of the extra force that is applied to the gripping wheel
|-
|
===== Anti slip =====
|''Scalar''
|<code>3</code>
|
|maximum torque that will be applied
|-
|
===== Anti slip torque =====
|''Scalar''
|<code>3</code>
|
|anti slip dependence on torque
|-
|
===== Output0 =====
|''String''
|<code>0</code>
|
|ADD DESCRIPTION
|-
|
===== Output1 =====
|''String''
|<code>0</code>
|
|ADD DESCRIPTION
|-
|}


{{Feature|informative|Before proceeding further it is recommend to make yourself familiar with [[Arma_Reforger:Procedural_Animation_Editor|Procedural Animation Editor documentation]] & [[Arma_Reforger:Procedural_Animation_Editor_Basics_Tutorial|Procedural Animation Editor tutorial]].}}
=== TripleDifferential ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Ratio =====
|''Scalar''
|<code>3</code>
|
|gear ratio of the differential
|-
|}


== Creating new procedural animation project ==
=== Engine ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Inertia =====
|''Scalar''
|<code>3</code>
|
|Unit: kg.m^2
|-
|
===== Max Power =====
|''Scalar''
|<code>3</code>
|
|Unit: kW\n Maximum power that the engine can provide.
|-
|
===== Max Torque =====
|''Scalar''
|<code>3</code>
|
|Unit: N.m\n Maximum torque that engine can provide.
|-
|
===== Rpm Max Power =====
|''Scalar''
|<code>3</code>
|
|Unit: RPM (revolutions per minute)\n RPM where engine outputs maximum power.
|-
|
===== Rpm Max Torque =====
|''Scalar''
|<code>3</code>
|
|Unit: RPM (revolutions per minute)\n RPM where maximum torque is produced.
|-
|
===== Steepness =====
|''Scalar''
|<code>3</code>
|
|Controls how steep is torque curve from 0 RPM to max torque RPM.
|-
|
===== Friction =====
|''Scalar''
|<code>3</code>
|
|Unit: Nm\n Engine's braking torque
|-
|
===== Rpm Idle =====
|''Scalar''
|<code>3</code>
|
|Unit: RPM (revolutions per minute)\n RPM when engine is not under any load.
|-
|
===== Rpm Redline =====
|''Scalar''
|<code>3</code>
|
|Unit: RPM (revolutions per minute)\n Maximal working rpm without causing damage to the engine.
|-
|
===== Rpm Max =====
|''Scalar''
|<code>3</code>
|
|Unit: RPM (revolutions per minute)\n Maximal RPM that engine can handle.\n In reality when engine exceeds this RPM it will blow up.
|-
|
===== Output =====
|''String''
|<code>0</code>
|
|Powertrain part driven by the engine.
|-
|}


[[Image:armareforger-new-prop-procedural-animation-new-project.png]]
=== Gearbox ===
[[Image:armareforger-new-prop-procedural-animation-create-project.png|left]]
{| class="wikitable"
First step in creation of new procedural animation project would be launching of '''Procedural Animation Editor'''. After that, new project can be created by navigating to '''File → New → Project..'''. ( ''alternatively, {{Controls|Ctrl|Shift|N}} shortcut can be used'') in order to create new '''Procedural Animation Project'''. '''Procedural Animation Project''' is quite similar in purpose to animation definitions in '''Real Virtuality''' '''Model Config''' but with '''much better signal processing''' ''(more about it next chapter)''.
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Forward =====
|''Array of Scalars''
|<code>3</code>
|
|Forward gear ratios
|-
|
===== Reverse =====
|''Scalar''
|<code>3</code>
|
|Reverse gear ratio
|-
|
===== Efficiency =====
|''Scalar''
|<code>3</code>
|
|Transmission efficiency
|-
|
===== Output =====
|''String''
|<code>0</code>
|
|ADD DESCRIPTION
|-
|}


Once that step is completed, a new pop up window will appear asking for save location. In '''Arma Reforger''', asset specific procedural animations are stored next to the model somewhere in inside '''Asset''' folder structure. Common animations, like turrets or wheel animations which are used by multiple vehicles, are located in '''Anims/Proc''' folder.
=== HelicopterEngine ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== RPMMax =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== RPMIdle =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Start Up Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Shutdown Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Twin Engine =====
|''Boolean''
|<code>0</code>
|
|Emulation of a twin-engine signals
|-
|}


Here, situation is quite simplified and '''Rugged Desk''' animations are assumed to be specific to this asset and are placed in '''Assets/Props/Military/Camps/PortableDesk_01/Anims/''' folder.
=== HelicopterHull ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Tail Stabilization X =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Tail Stabilization Y =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Tail Stabilization Force X =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Tail Stabilization Force Y =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Tail Stabilization Speed Coef =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Friction Coefs X =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Friction Coefs Y =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Friction Coefs Z =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Friction Force X =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Friction Force Y =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Friction Force Z =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Angular Friction X =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Friction Y =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Friction Z =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Friction Speed X =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Friction Speed Y =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Friction Speed Z =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Friction Force X =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Angular Friction Force Y =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Angular Friction Force Z =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Bank Turn Force =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Bank Speed Effect =====
|''Vector with 2 elements''
|<code>3</code>
|
|
|-
|
===== Override Inertia =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Inertia =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|}


=== HelicopterRotor ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Pivot =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Force =====
|''Vector with 2 elements''
|<code>3</code>
|
|
|-
|
===== Target RPM =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Rotor Diameter =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Clockwise =====
|''Boolean''
|<code>0</code>
|
|Clockwise rotor movement
|-
|}


{{Clear}}
=== HelicopterRotorMain ===
== Creating new procedural animation signal ==
Inherits from: [[#HelicopterRotor|HelicopterRotor]]


Once new '''Procedural Animation Project''' is created, it is possible to populate it with actual data. First step towards this goal would be creating new '''signal'''. To differentiate it from '''Audio Editor''' signals, '''Procedural Animation Editor signals have .siga''' extension.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Force Speed Coefs =====
|''Vector with 2 elements''
|<code>3</code>
|
|
|-
|
===== Torque Force =====
|''Vector with 2 elements''
|<code>3</code>
|
|
|-
|
===== Alt Full Force =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Alt No Force =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Lift Max Speed MS =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Lift Speed Force =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Cyclic Forward Force =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Cyclic Aside Force =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Cyclic Torque Min =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Cyclic Forward Speed Coef =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Cyclic Aside Speed Coef =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Collective Speed Coef =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


Signals are quite essential part of procedural animation since they are controlling how signals from scripted or engine events are processed. For those familiar with '''Real Virtuality Engine''', '''signals''' are somewhat similar in their purpose to '''source''' parameter in '''Model Config -''' this time though it is possible to do much more complex processing of signals like mixing values, non linear movement and mixing two or more '''signals''' together.
=== HelicopterRotorTail ===
Inherits from: [[#HelicopterRotor|HelicopterRotor]]


{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Anti Torque Speed Coef =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Force Max Speed MS =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


== Setting  up signal ==
=== LandingGearWheel ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Pivot =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Suspension =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Wheel =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Tyre =====
|''Object''
|<code>0</code>
|
|
|-
|}


To create '''new signal''', click with '''{{Controls|LMB}}''' on [[Arma_Reforger:Procedural_Animation_Editor:_Nodes#Signal|'''Signal''']] button located in the top bar of '''Procedural Animation Editor'''. After clicking on that, a new pop up window should appear, asking for a location and name of '''new signal'''. By default, that '''Create Signal''' window should suggest same name (different extension is used - ''siga)'' and folder as '''Procedural Animation Project''' is using and in case of simple animations like this one, this is a '''correct solution'''.
=== LandingGearSkid ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Pivot =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Suspension =====
|''Object''
|<code>0</code>
|
|
|-
|}


After confirming filename and location, new signal should be created on drive. This new '''signal file''' should be also automatically '''added to current Procedural Animation''' project - if not, then it might be necessary to drag that new signal to the main window.
=== LandingGear ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Configuration =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-procedural-animation-create-signal.gif]]
=== Suspension ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max Steering Angle =====
|''Scalar''
|<code>3</code>
|
|Unit: degrees\n Maximal angle that wheel can be rotated.\n For non steering wheels just leave it at 0.
|-
|
===== Spring Rate =====
|''Scalar''
|<code>3</code>
|
|Unit: N/mm\n Spring force per mm\n Tells how much force is needed to compress the spring by one mm.
|-
|
===== Compression Damper =====
|''Scalar''
|<code>3</code>
|
|Unit: N.s/m\n Compression damper force per 1 m/s\n Used when suspension is compressing.
|-
|
===== Relaxation Damper =====
|''Scalar''
|<code>3</code>
|
|Unit: N.s/m\n Relaxation damper force per 1 m/s\n Used when suspension is decompressing.
|-
|
===== Max Travel Up =====
|''Scalar''
|<code>3</code>
|
|Unit: m\n How much can spring compress its natural length.\n It's the distance that the suspension can be compressed from modeled position.
|-
|
===== Max Travel Down =====
|''Scalar''
|<code>3</code>
|
|Unit: m\n How much can spring stretch its natural length.\n It's the distance that the suspension can be expanded from modeled position.
|-
|
===== Ray Start Offset Up =====
|''Scalar''
|<code>3</code>
|
|Unit: m\n Extension of raycast start above top position of suspension.\n Suspension total length is not affected.
|-
|}


At minimum, '''signal''' should contain [[Arma_Reforger:Procedural_Animation_Editor:_Nodes#Input|'''Input''']] and [[Arma_Reforger:Procedural_Animation_Editor:_Nodes#Output|'''Output''']] node and those can be added by clicking with {{Controls|LMB}} on '''Input''' and '''Output''' buttons respectively in the '''top section of main window'''. At this point, it is possible to simply connect '''Out''' connector from '''Input''' node to '''In''' connector from '''Output''' node and such signal would already work. However, beauty of '''Procedural Animator Editor''' lies in nodes that can be used to process the signal and therefore, [[Arma_Reforger:Procedural_Animation_Editor:_Nodes#Smoother|'''Smoother''']] node will be added in this signal project to, as name suggest, smooth the signal.
=== Swaybar ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Stiffness =====
|''Scalar''
|<code>3</code>
|
|[N/m] ADD DESCRIPTION
|-
|}


Same as with the '''Input''' and '''Output''' nodes, '''Smoother''' can be simply added by clicking on '''Smoother''' button in top section of main window.
=== TrackWheel ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Suspension =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Mass =====
|''Scalar''
|<code>3</code>
|
|Unit: kg\n Mass of the wheel.
|-
|
===== Radius =====
|''Scalar''
|<code>3</code>
|
|Unit: m\n Radius of the wheel.
|-
|
===== Brake Torque =====
|''Scalar''
|<code>3</code>
|
|Unit: N.m\n Maximal torque that brake can produce.
|-
|}


Once that newly created node is present in the window, it is possible to connect '''Out''' from '''Input''' node with '''In''' from '''Smoother''' node''''''. Similar thing should be done with '''Output''' node where its '''In''' connector should be linked with '''Out''' connector of '''Smoother''' node.
=== Track ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Wheel Positions =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-procedural-animation-adding-smoother.gif]]
=== Tyre ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Roughness =====
|''Scalar''
|<code>3</code>
|
|Roughness of tyre surface. Modifies interaction with ground surface.
|-
|
===== Longitudinal Friction =====
|''Scalar''
|<code>3</code>
|
|Directly affects tyre grip in longitudinal direction.
|-
|
===== Lateral Friction =====
|''Scalar''
|<code>3</code>
|
|Directly affects tyre grip in lateral direction.
|-
|
===== Rolling Resistance =====
|''Scalar''
|<code>3</code>
|
|NOT USED ATM!\nLinearly proportional to speed. Acts against the wheel torque.\nFor limiting acceleration in addition to surface property.
|-
|
===== Rolling Drag =====
|''Scalar''
|<code>3</code>
|
|NOT USED ATM!\nProportional to speed squared.\nFor limiting high speeds in addition to surface property.
|-
|
===== Tread =====
|''Scalar''
|<code>3</code>
|
|NOT USED ATM!\nRatio of the \"Tyre tread\" - related to how well wheel performs on specific surface.
|-
|}


[[Image:armareforger-new-prop-procedural-animation-smoother-settings.png|left]]
=== Wheel ===
With those nodes being properly connected, now it's time to adjust behavior of '''Smoother''' node itself. To do so, click on it and navigate to '''Item detail''' window and go to '''Data''' section over there.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Radius =====
|''Scalar''
|<code>3</code>
|
|Unit: m\n Radius of the wheel.
|-
|
===== Mass =====
|''Scalar''
|<code>3</code>
|
|Unit: kg\n Mass of the wheel.
|-
|
===== Ratio =====
|''Scalar''
|<code>3</code>
|
|Wheel reduction ratio.
|-
|
===== Brake Torque =====
|''Scalar''
|<code>3</code>
|
|Unit: N.m\n Maximal torque that brake can produce.
|-
|}


'''Fade In Time & Type''' will correspond to '''opening of drawer''' and '''Fade Out Time & Type''' to '''closing of drawer'''. In this case, '''Fade In Time''' was set to 700 and '''Type''' was set to '''S-curve''' (See {{Wikipedia|Sigmoid function) - this should give it quite nice & natural motion. Closing of the drawer should behave more like you slam it so that's why '''Power of 2''' was selected in '''Fade Out Type''' drop-down list.
=== Helicopter ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Engine =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Hull =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Rotors =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Landing Gear =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Landing Gear Layer =====
|''String''
|<code>0</code>
|
|Landing gear raycast physics layer preset
|-
|
===== Terrain Detection Mask =====
|''Flags''
|<code>0</code>
|
|Terrain detection raycast target mask
|-
|}


At later stage, '''once scripted user action are configured''', it might be wise to '''play with those parameters in-game''' and observe what kind of results you can get by changing time or type of fade effect.
=== Tracked ===
{{Clear}}
{| class="wikitable"
Once first set of '''Input, Smoother & Output''' nodes is completed, it is now possible to create rest of the signals for all separate drawers. This could be achieved in two ways:
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Solver Substeps =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Engine =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Clutch =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Gearbox =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Differential =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Is Fwd =====
|''Boolean''
|<code>0</code>
|
|Is the vehicle front wheel drive?
|-
|
===== Friction Curve Longitudinal =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Friction Curve Lateral =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Idler =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Sprocket =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Wheel =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Tracks =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Inertia Override Enabled =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Inertia Override =====
|''Vector with 3 elements''
|<code>3</code>
|
|[kg.m^2] ADD DESCRIPTION
|-
|
===== Aerodynamics =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Raycast Layer =====
|''String''
|<code>0</code>
|
|Wheel raycast physics layer preset
|-
|
===== Liquids Layers =====
|''String''
|<code>0</code>
|
|Layer preset for liquids (used by wheel interactions)
|-
|}


# By '''repeating whole procedure''' and manually adding '''Input, Smoother & Output''' nodes and then, adjusting content of '''Smoother''' node
=== Wheeled ===
# By using '''copy and paste procedure'''
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Solver Update Rate =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Engine =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Clutch =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Gearbox =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Differentials =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Axles =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Inertia Override Enabled =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Inertia Override =====
|''Vector with 3 elements''
|<code>3</code>
|
|[kg.m^2] ADD DESCRIPTION
|-
|
===== Aerodynamics =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Pacejka =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Raycast Layer =====
|''String''
|<code>0</code>
|
|Wheel raycast physics layer preset
|-
|
===== Liquids Layers =====
|''String''
|<code>0</code>
|
|Layer preset for liquids (used by wheel interactions)
|-
|
===== Response Index =====
|''String''
|<code>0</code>
|
|Wheel response index
|-
|
===== Noise Steer Sensitivity =====
|''Scalar''
|<code>3</code>
|
|Sensitivity to surface's noise steer
|-
|
===== Roughness Sensitivity =====
|''Scalar''
|<code>3</code>
|
|Sensitivity to surface's roughness
|-
|}


Naturally, since all those signals are supposed to work almost exactly the same, using '''copy paste procedure is recommend''' way of dealing with rest of the signal.
=== PacejkaLongitudinal ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== b0 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b1 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b2 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b3 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b4 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b5 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b6 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b7 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b8 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b9 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== b10 =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


To copy paste nodes, simply click and then hold '''{{Controls|LMB}}''' and select all nodes that you want copy. If everything was done correctly, nodes should have now '''golden stroke''' around them. After that, use '''{{Controls|Ctrl|C}}''' combination to copy files and then use '''{{Controls|Ctrl|V}}''' combo to paste those nodes under the cursor. Voila, now this action has to be repeated till '''signal project has 6 sets of Input, Smoother & Output''' nodes.
=== PacejkaLateral ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== a0 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a1 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a2 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a3 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a4 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a5 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a6 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a7 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a8 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a9 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a10 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a11 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a12 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a13 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== a14 =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


=== Aligning and grouping nodes ===
=== PacejkaAligning ===
{{Feature|informative|Both '''Procedural Animation Editor''' and [[Arma_Reforger:Audio_Editor|'''Audio Editor''']] offers way to adjust position of the nodes making it look more pleasant and aesthetical. This is done by '''selecting multiple nodes''' and then '''clicking on of them with RMB''' and then, selecting '''one of the alignment options from the context menu'''. It is also possible to catch few nodes in a single group by selecting '''Group''' option but again - this option has purely aesthetical function.
{| class="wikitable"
[[Image:armareforger-new-prop-procedural-animation-align-nodes.gif|center]]}}
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== c0 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c1 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c2 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c3 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c4 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c5 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c6 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c7 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c8 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c9 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c10 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c11 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c12 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c13 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c14 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c16 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c17 =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== c18 =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


Last step in setting up signal will be changing of '''Name''' property in all '''Signal''' nodes. This '''Name''' property will be later used to '''link script source to signal''', therefore, some reasonable name should be picked - in case of that project all '''Input''' nodes were named '''Drawer 1''' to '''Drawer 6'''. Names of rest of the nodes is not important but it is usually quite helpful to maintain some reasonable names - especially with '''Output''' nodes - since it helps with navigation and understanding of project that you are working on.
=== Pacejka ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Longitudinal =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Lateral =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Aligning =====
|''Object''
|<code>0</code>
|
|
|-
|}


In the end, you should end up with following setup in '''Procedural Animation Signal'''
=== Cable ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Start Point =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== End Point =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|}


[[Image:armareforger-new-prop-procedural-animation-signal-ready.png|center]]
=== PowerlineEntity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Material =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Cables =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


== Setting up Procedural Animation Project ==
=== PowerPoleEntity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Power Source =====
|''Boolean''
|<code>0</code>
|
|Should this pole be considered as power source?
|-
|
===== Inside Grid Network =====
|''Boolean''
|<code>0</code>
|
|Should this be considered in the electrical grid network?
|-
|}


After '''signal''' is configured, it is possible to proceed further with '''Procedural Animation Project''' itself. To put in motion things, '''nodes''' are required. 
=== BallisticTable ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Init Speed Coefficient =====
|''Scalar''
|<code>3</code>
|
|Table is generated with init speed multiplied by this coefficient
|-
|
===== Table data =====
|''Array of Vectors with 3 elements''
|<code>3</code>
|
|Array of distances, aim heights and times which describe a trajectory of projectile
|-
|}


The goal here would be to '''make drawers move'''. To achieve that goal, let's take a look   Motion of the drawer is quite simple and simple '''translation''' could be used. In '''Procedural Animation Editor''', this translates into following procedure:
=== BallisticTableArray ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Table data =====
|''Array of Objects''
|<code>6</code>
|
|Array of distances, aim heights and times which describe a trajectory of projectile for direct fire
|-
|
===== Indirect fire Table data =====
|''Array of Objects''
|<code>6</code>
|
|Array of distances, aim heights and times which describe a trajectory of projectile for indirect fire
|-
|}


* Add [[Arma_Reforger:Procedural_Animation_Editor:_Nodes#TranslateMake|'''TranslateMake''']] node and connect signal from '''Signal''' node to '''Z axis''' of that newly created item
=== BallisticGenerationConfig ===
** Select '''TranslateMake''' node that was just created and in '''Item detail''' window, navigate to '''Z ''' '''axis''' parameter in '''Data''' section - over there change the value to -0.5 ''(meters)-'' that will be the maximal movement of the bone.
{| class="wikitable"
* Create [[Arma_Reforger:Procedural_Animation_Editor:_Nodes#TranslateSet|'''TranslateSet''']] node and connect '''TranslateMake''' node to translation input on '''TranslateSet'''
|+
* Create [[Arma_Reforger:Procedural_Animation_Editor:_Nodes#Bone|'''Bone''']] node and connect it to '''In''' input in '''TranslateSet'''
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Precise Init Speed Coefficients =====
|''Array of Scalars''
|<code>3</code>
|
|Ballistic tables will be computed precisely for init speed coefficients in this array, the rest of speed coefficients are interpolated. This can be used, if you know a bullet is used by a weapon with specific init speed coefficient, so its values will be more precise.
|-
|
===== Generate Direct Fire Tables =====
|''Boolean''
|<code>0</code>
|
|If true, ballistic tables will be generated for angles between 0-45deg(0 meaning looking horizontally), if false, they will be generated for angles between 45-90deg.  !Changing this property can affect in major way size and generation time of ballistic tables!
|-
|
===== Vertical Precision Of Direct Fire =====
|''Boolean''
|<code>0</code>
|
|If true, ballistic tables for direct fire will be generated to hit with a threshold in height(vertical) error. That is most usable for bullets, because we want it to be used to hit a head of a character. If false, the ballistic tables will be generated to hit with a threshold in horizontal error. That is most usable for explosives, where we care about hitting near target and not hitting the target into the head. !Changing this property can affect in major way size and generation time of ballistic tables!
|-
|
===== Precision Error Threshold Of Direct Fire =====
|''Scalar''
|<code>3</code>
|
|Ballistic tables don't generate more data if the interpolation has lower vertical/horizontal error than is given by this property for direct fire ballistic tables. !Changing this property can affect in major way size and generation time of ballistic tables!
|-
|
===== Generate Indirect Fire Tables =====
|''Boolean''
|<code>0</code>
|
|If true, ballistic tables will be generated for angles between 0-45deg(0 meaning looking horizontally), if false, they will be generated for angles between 45-90deg.  !Changing this property can affect in major way size and generation time of ballistic tables!
|-
|
===== Vertical Precision Of Indirect Fire =====
|''Boolean''
|<code>0</code>
|
|If true, ballistic tables for indirect fire will be generated to hit with a threshold in height(vertical) error. That is most usable for bullets, because we want it to be used to hit a head of a character. If false, the ballistic tables will be generated to hit with a threshold in horizontal error. That is most usable for explosives, where we care about hitting near target and not hitting the target into the head. !Changing this property can affect in major way size and generation time of ballistic tables!
|-
|
===== Precision Error Threshold Of Indirect Fire =====
|''Scalar''
|<code>3</code>
|
|Ballistic tables don't generate more data if the interpolation has lower vertical/horizontal error than is given by this property for indirect fire ballistic tables. !Changing this property can affect in major way size and generation time of ballistic tables!
|-
|}


[[Image:armareforger-new-prop-procedural-animation-setting-pap.gif]]
=== EjectableProjectile ===
Inherits from: [[#Projectile|Projectile]]


Those actions should be repeated for all 6 drawers present in that model -  '''similar to signal setup''', it is possible to utilize '''copy paste process''' to speed up whole procedure. In the end, Procedural Animation Project should look like that:
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Ejector Interface =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility with rocket/projectile types.
|-
|}


[[Image:armareforger-new-prop-procedural-animation-pap-ready.png]]
=== Projectile ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Spawn As Cartridge =====
|''Boolean''
|<code>0</code>
|
|When Projectile object is created, it will show using cartridge model
|-
|
===== Projectile Visible Time Scale =====
|''Scalar''
|<code>3</code>
|
|Below this value shell will start being visible. For always visible use 2, for never 0
|-
|
===== Projectile Model =====
|''Resource Name''
|<code>0</code>
|
|Model of shell to render
|-
|
===== Cartridge Model =====
|''Resource Name''
|<code>0</code>
|
|Model of full projectile, as being loaded
|-
|
===== Cartridge Layers =====
|''Flags''
|<code>0</code>
|
|Interaction layers we belong to
|-
|
===== Cartridge Layer Preset =====
|''String''
|<code>0</code>
|
|Presets of layer definitions
|-
|}


=== TracerProjectile ===
Inherits from: [[#Projectile|Projectile]]


== Previewing animation ==
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Tracer Burn Start After =====
|''Scalar''
|<code>3</code>
|
|Time after which projectile ignites
|-
|
===== Tracer Burn Time =====
|''Scalar''
|<code>3</code>
|
|Time of burning
|-
|}


After adding nodes, drawer animations should be already in working state but without any means to test it, it is rather hard to verify if the motion is fully correct. To preview those animations, it will be necessary to set up few things.
=== FlareMoveComponent ===
Inherits from: [[#ShellMoveComponent|ShellMoveComponent]]


{{Feature|warning|Previewing animations which have smoother node is only  working in 0.9.6 version of Workbench and beyond}}
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Deploy Time =====
|''Scalar''
|<code>3</code>
|
|Time that it takes in seconds to fully deploy the flare.
|-
|
===== Rotation Speed =====
|''Scalar''
|<code>3</code>
|
|Rotation [deg/s].
|-
|
===== Smoke Particle Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Particle offset of the entity.
|-
|
===== Smoke Particle Direction =====
|''Vector with 3 elements''
|<code>3</code>
|
|Particle direction of the entity.
|-
|
===== Smoke Particle =====
|''Resource Name''
|<code>0</code>
|
|Prefab for the smoke particles of the flare.
|-
|}


In '''View''' window, located by default in right section of '''Procedural Animation Editor''', it is possible to quickly preview animation that is currently developed. To do so, follow below steps:
=== GrenadeMoveComponent ===
Inherits from: [[#ProjectileMoveComponent|ProjectileMoveComponent]]


[[Image:armareforger-new-prop-procedural-animation-setting-preview.gif]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Minimal Speed Scale =====
|''Scalar''
|<code>3</code>
|
|Entity minimal launch speed scale (MinimalSpeedScale * InitSpeed)
|-
|
===== Single Safety =====
|''Boolean''
|<code>0</code>
|
|True if the throwable should trigger its effect the moment the pin is removed
|-
|
===== Is Dangerous =====
|''Boolean''
|<code>0</code>
|
|True if the throwable can cause damage
|-
|}


* Click on '''Select Model''' button (''in 0.96 version this button is replaced by icon'') and in pop up window select preview model (in this case it will be '''PortableDesk_01.xob''')
=== MissileMoveComponent ===
* On all '''Bone''' nodes that were previously created, go to Item detail window and over there, pick from '''Bone name''' list correct bone for particular signal
Inherits from: [[#ProjectileMoveComponent|ProjectileMoveComponent]]
** For example '''Drawer''' '''1''' signal should use '''Drawer_1''' bone
* Select '''signal''' node in the '''main window'''
* In '''Item detail''' window, expand one of the '''inputs''' (''f.e. Input1'') in '''Inputs''' section and try to manipulate '''ValRT -''' either with mouse or by typing the value


= Adding scripted action =
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max Control Range =====
|''Scalar''
|<code>3</code>
|
|Not used
|-
|
===== Maneuvrability =====
|''Scalar''
|<code>3</code>
|
|Not used
|-
|
===== Track Oversteer =====
|''Scalar''
|<code>3</code>
|
|Not used
|-
|
===== Track Lead =====
|''Scalar''
|<code>3</code>
|
|Not used
|-
|
===== Thrust Init Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Thrust Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Thrust Force =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Forward Air Friction =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Side Air Friction =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Align Torque =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Distance Enable Gravitation =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


{{Feature|informative|Please note that it might be necessary to '''save & close project after selecting model''' in order to have those changes being correctly applied.}}
=== ProjectileMoveComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Init Speed =====
|''Scalar''
|<code>3</code>
|
|Projectile initial speed [m/s]
|-
|
===== Init Speed Variation =====
|''Scalar''
|<code>3</code>
|
|Projectile initial speed variation [m/s]
|-
|
===== Parent Speed Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier applied to parent velocity.
|-
|
===== Dispersion Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier applied to muzzle dispersion.
|-
|
===== Mass =====
|''Scalar''
|<code>5</code>
|
|Entity mass
|-
|
===== Wind Influence Multiplier =====
|''Scalar''
|<code>3</code>
|
|How much influence can wind have on the projectile.
|-
|
===== Time To Live =====
|''Scalar''
|<code>3</code>
|
|Time to live
|-
|
===== Delete When Stop =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Trigger When Stop =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Trigger When Timeout =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Layers =====
|''Flags''
|<code>0</code>
|
|Interaction layers we belong to
|-
|
===== Layer Preset =====
|''String''
|<code>0</code>
|
|Preset of layer definition
|-
|
===== Collision Enabled =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Projectile Effects =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Ballistic Table Config =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Ballistic Table Generation Config =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Sonic Cracks =====
|''Resource Name''
|<code>0</code>
|
|File containing sonic crack sounds
|-
|
===== Subsonic Flybys =====
|''Resource Name''
|<code>0</code>
|
|File containing subsonic flyby sounds
|-
|}


With that knowledge, previewing animations in '''View''' window should not longer be a problem
=== ShellMoveComponent ===
Inherits from: [[#ProjectileMoveComponent|ProjectileMoveComponent]]


[[Image:armareforger-new-prop-procedural-animation-preview.gif|center]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Air Drag =====
|''Scalar''
|<code>7</code>
|
|
|-
|
===== Diameter =====
|''Scalar''
|<code>3</code>
|
|Scales the base damage dealt by the projectile \n[mm]
|-
|
===== Length =====
|''Scalar''
|<code>3</code>
|
|Length of projectile \n[mm]
|-
|
===== Move With Parent =====
|''Boolean''
|<code>0</code>
|
|Will the projectile move with the parent when OnTransformReset is called.
|-
|
===== Mushrooming Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier for mushrooming ability. When set, the diameter of this projectile will multiply by this value upon colliding.
|-
|
===== Tumbling Damage Threshold =====
|''Scalar''
|<code>3</code>
|
|Speed loss from which this projectile will be capable of tumbling. If speed loss upon penetration is higher than this value, tumbling damage will increase. \nTumbling damage increase scales to max tumbling damage at a gradualness determined by the Impact Speed Falloff Rate \n[m/s]
|-
|
===== Tumbling Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier for tumbling ability. When higher than 0, this bullet will increase its diameter on impact by tumbling
|-
|
===== Penetration Damage Model =====
|''Boolean''
|<code>0</code>
|
|Allow penetration damage model\nENABLED (Material and Projectile):\n SpeedLoss * PenetrationDepth * PenetrationDensity / PenetrationSpeed\nDISABLED (Material or Projectile):\n InitSpeed * Mass
|-
|
===== Deflection Critical Angle =====
|''Scalar''
|<code>3</code>
|
|[deg] Critical impact angle
|-
|
===== Deflection Dir Distribution =====
|''Scalar''
|<code>3</code>
|
|[] Deflection direction distribution (Gauss)
|-
|
===== Deflection Slowdown =====
|''Scalar''
|<code>3</code>
|
|[] Deflection slowdown
|-
|
===== Penetrator Type =====
|''Integer''
|<code>0</code>
|
|[] Penetrator type
|-
|
===== Penetration Depth =====
|''Scalar''
|<code>3</code>
|
|[mm]
|-
|
===== Penetration Density =====
|''Scalar''
|<code>3</code>
|
|[g/cm^3]
|-
|
===== Penetration Speed =====
|''Scalar''
|<code>3</code>
|
|[m/s]
|-
|
===== Penetration Dir Distribution =====
|''Scalar''
|<code>3</code>
|
|[] (Post)penetration direction distribution (Gauss)
|-
|
===== Water Impact Deceleration =====
|''Scalar''
|<code>3</code>
|
|[] Water impact decelaration factor
|-
|
===== Water Drag =====
|''Scalar''
|<code>7</code>
|
|
|-
|
===== Water Drag Type =====
|''Integer''
|<code>0</code>
|
|[] Water drag type
|-
|}


== Applying procedural animation to prefab ==
=== BallisticsConfig ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Damage Modifier =====
|''Scalar''
|<code>3</code>
|
|Kinetic damage normalization modifier (exponent)
|-
|
===== Impact Speed Falloff Rate =====
|''Scalar''
|<code>3</code>
|
|Increases onset steepness of tumbling damage. Higher means tumbling damage will increase more suddenly when passing Tumbling Damage Threshold \n[m/s]
|-
|
===== Deceleration Falloff Rate =====
|''Scalar''
|<code>3</code>
|
|Deceleration falloff multiplier. Higher means more speed needs to be lost on projectile for the tumbling to start applying damage.
|-
|
===== Cavitation Constant =====
|''Scalar''
|<code>3</code>
|
|How intensely deceleration increases cavitation damage. Lower is more damage. \n(Mass/2) * ((VImpact^2 - VExit^2) / C^2)
|-
|}


At this stage, it is finally possible to plug in animation to rugged desk prefab. It will be still not possible to animate it in game via some user action but it will be good  base for further endeavors.
=== BaseMissileGuidanceComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== use Aiming Type =====
|''Integer''
|<code>0</code>
|
|defines whing aimning component will be used
|-
|}


First step towards it would be adding two new components to '''Rugged Desk''' base prefab
=== AIActivateEffect ===
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


* '''ProcAnimComponent -''' links Procedural Animation Projects to prefab and defines which bones are linked to PAP file
{| class="wikitable"
* '''SignalsManagerComponent -''' enables usage of signals which are either provided by game code or scripts
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Range =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Keep Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


Those components can be added via '''Add Component +''' button located in bottom section of '''Object Properties''' window - whole process of adding new components is described in detail on [[Arma_Reforger:Prefabs_Basics#Adding_new_components_to_entity_instance|'''Prefabs Basics''']] page.
=== BaseProjectileEffect ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Trigger Once =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Enabled =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-procedural-adding-component.gif|center]]
=== BaseExplosionDamage ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Damage Value =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Damage Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Perform Traces =====
|''Boolean''
|<code>0</code>
|
|Explosion checks for LOS to deal damage. Will impact performance. Disable for large effects.
|-
|
===== Damage Distance =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Explosion Effect Speed =====
|''Scalar''
|<code>3</code>
|
|Speed of the explosion effect\n0: instant\n[m/s]
|-
|
===== Damage Falloff Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Damage Effect =====
|''Array of Objects''
|<code>0</code>
|
|Only store 1 DamageEffect in this array, otherwise only the last one of the array will be used.
|-
|
===== Explosion Damage Power =====
|''Scalar''
|<code>5</code>
|
|Damage Value *= (Charge Weight * Relative Effectiveness) ^ Explosion Damage Power\n< 0: Damage Value unaffected\n[^]
|-
|
===== Explosion Range Power =====
|''Scalar''
|<code>5</code>
|
|Damage Distance *= (Charge Weight * Relative Effectiveness) ^ Explosion Range Power\n< 0: Damage Distance unaffected\n[^]
|-
|}


While '''SignalsManagerComponent''' basically doesn't need any further tweaking, '''ProcAnimComponent''' needs some configuration. In this component, locate '''Parameters''' array and add new element by clicking on '''plus symbol''' on the right side of that parameter. This should add new element to the array of  '''ProcAnimParams''' type. Over there, there are two new parameters available:
=== ExplosionDamageContainer ===
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


* '''Resource Name''' - this parameter is used to link '''Procedural Animation Project (.pap)''' to the prefab. In this case '''drawer_move.pap''' should be selected.
{| class="wikitable"
* '''Bone Names''' - array of bones (list is filled automatically if '''MeshObject''' has bones/pivots available) which should be animated. This list should match bones order (the stored in .pap file itself!) and sometimes it might be necessary to verify in game which entry in array corresponds to '''Bone''' node in '''Procedural Animation Project.'''
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Explosion Effects =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Charge Weight =====
|''Scalar''
|<code>1</code>
|
|Charge Weight\n 0: Explosion scale disabled\n[g]
|-
|
===== Tnt Equivalent =====
|''Scalar''
|<code>5</code>
|
|Relative Effectiveness\n 0: Explosion scale disabled\n
|-
|
===== Explosion Scale =====
|''Scalar''
|<code>5</code>
|
|(Charge Weight * Relative Effectiveness) ^ (1/3)\n
|-
|
===== Interaction Layer =====
|''Flags''
|<code>0</code>
|
|Interaction layer used for the traces created by explosions
|-
|
===== Layer Preset =====
|''String''
|<code>0</code>
|
|Presets of layer definitions used for the traces created by explosions
|-
|}


If components were added to entity instance of '''Rugged Desk base prefab''', then don't forget to use '''Apply to prefab''' button and then remember to '''save current world''' to store previously made changes '''permanently on the drive'''. After that, initial implementation of procedural animations should be completed.
=== ExplosionEffect ===
Inherits from: [[#SpawnPrefabEffect|SpawnPrefabEffect]]


{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Overriden Material Props =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Override effect inside prefab with this particle effects
|-
|
===== Sound Event =====
|''String''
|<code>0</code>
|
|Name of sound event to be raised when triggered
|-
|
===== Exit Effect Prefab =====
|''Resource Name''
|<code>0</code>
|
|Entity prefab to spawn
|-
|}


=== ExplosionFragmentationEffect ===
Inherits from: [[#BaseExplosionDamage|BaseExplosionDamage]]


{{Messagebox|'''Overview'''
{| class="wikitable"
Following topics will be covered in this paragraph
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Damage Fragment Count =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Gurney Shape =====
|''Integer''
|<code>0</code>
|
|CYLINDER: 0.5\nSPHERE: 0.6
|-
|
===== Gurney Constant =====
|''Scalar''
|<code>3</code>
|
|Gurney Frag Speed = 0.8 * Gurney Constant * (Case Weight / (Charge Weight * TNT Equivalent) + Gurney Shape) ^ -0.5\n 0: automation disabled\n
|-
|
===== Case Weight =====
|''Scalar''
|<code>3</code>
|
|Frag Mass = Frag Mass Scale * Case Weight / Frag Count\n 0: automation disabled\n[g]
|-
|
===== Frag Mass Scale =====
|''Scalar''
|<code>3</code>
|
|Frag Mass Scale\n 0: automation disabled\n[%]
|-
|
===== Frag Range Scale =====
|''Scalar''
|<code>3</code>
|
|Damage Distance *= (Frag Mass * Frag Range Scale * Gurney Speed) ^ Frag Range Power\n 0: Damage Distance unaffected\n[%]
|-
|
===== Frag Speed Scale =====
|''Scalar''
|<code>3</code>
|
|Explosion Effect Speed *= Gurney Frag Speed * Frag Speed Scale\n 0: Explosion Effect Speed unaffected\n[%]
|-
|
===== Frag Damage Power =====
|''Scalar''
|<code>3</code>
|
|Damage Value *= (Frag Mass * Frag Mass Scale * Frag Speed) ^ Frag Damage Power\n 0: Damage Value unaffected\n[^]
|-
|
===== Frag Range Power =====
|''Scalar''
|<code>3</code>
|
|Damage Distance *= (Frag Mass * Frag Mass Scale * Frag Range Scale * Frag Speed) ^ Frag Range Power\n 0: Damage Distance unaffected\n[^]
|-
|}


* Creating user action for drawer
=== ExplosionImpulseEffect ===
* Adding new user action to prefab|💬|#CDF}}
Inherits from: [[#BaseExplosionDamage|BaseExplosionDamage]]


{{Feature|informative|Before proceeding further it is recommend to make yourself familiar with [[Arma_Reforger:Object_Oriented_Programming_Basics|scripting basics]] & [[Arma_Reforger:Scripting_Example|example]] or [[Arma_Reforger:Scripting_Modding|tutorial]].}}
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Explosion Impulse Multiplier =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


=== HitSoundEffect ===
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


To add new scripted action for opening and closing of drawers following elements are needed:
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Filename =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Min Distance =====
|''Scalar''
|<code>3</code>
|
|Minimum Distance in meters for a bullet sound to be played
|-
|}


* '''New script''' for drawer action
=== ProjectileDamage ===
* Properly configured '''Action Contexts''' and '''Additional Actions''' in '''ActionsManagerComponent'''
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


Before going any further, first step towards adding new user action would be '''adding of ActionsManagerComponent''' to '''PortableDesk_01_Base.et''' prefab. Similar as in [[#Applying_procedural_animation_to_prefab|'''applying procedural animation to prefab''']] segment, this can be done in few ways and all those methods are described on [[Arma_Reforger:Prefabs_Basics|'''Prefabs Basics''']] page.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Damage Value =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Damage Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Damage Effects =====
|''Array of Objects''
|<code>0</code>
|
|Only store 1 DamageEffect in this array, otherwise only the last one of the array will be used.
|-
|}


In this tutorial, it is assumed that user have already some experience with scripts in general. If not, a good starting point might be {{GameCategory|armaR|Modding|Guidelines|Scripting}} and then checking one of the scripting tutorials [[Arma Reforger:Scripting Example|Scripting Example]] or  [[Arma Reforger:Scripting Modding|Scripting Modding]].
=== SpawnDecalEffect ===
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


In [[Arma_Reforger:Script_Editor|'''Script Editor''']], in [[Arma_Reforger:Script_Editor#Projects|'''Projects''']] tab, it is possible to check some of the already existing '''User Actions''' in '''Game('Scripts/Game')''' →  '''Scripts → Game → UserActions.'''  A good candidate for inspiration might be '''[enfusion://ScriptEditor/Scripts/Game/UserActions/SCR_DoorUserAction.c SCR_DoorUserAction]'''  which has some of parts, which could be potentially reused for '''drawer open/close''' action.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Far Plane =====
|''Scalar''
|<code>3</code>
|
|Far plane - maximum distance for decal projection box
|-
|
===== Stretch =====
|''Scalar''
|<code>3</code>
|
|Stretch of decal
|-
|
===== Scale =====
|''Scalar''
|<code>3</code>
|
|Scale
|-
|
===== Lifetime =====
|''Scalar''
|<code>3</code>
|
|Decal lifetime(seconds), value <= 0 is infinite.
|-
|
===== Material =====
|''Resource Name''
|<code>0</code>
|
|Decal material
|-
|}


=== SpawnParticleEffect ===
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


== Creating new user action ==
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attach To Parent =====
|''Boolean''
|<code>0</code>
|
|Should attach the effects to parent entity
|-
|
===== Follow Parent =====
|''Boolean''
|<code>0</code>
|
|Should attach the effects to parent entity
|-
|
===== Should Replicate =====
|''Boolean''
|<code>0</code>
|
|Should particle be spawned when streamed in on clients
|-
|
===== Use Frame Event =====
|''Boolean''
|<code>0</code>
|
|Should particle use FRAME or VISIBLE event
|-
|
===== Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Particle to spawn
|-
|
===== Sound Event =====
|''String''
|<code>0</code>
|
|Name of sound event to be raised when particle is spawned
|-
|
===== Trigger Name =====
|''String''
|<code>0</code>
|
|Name of trigger to be set to 1 when particle is spawned
|-
|
===== Stop Sound With Particles =====
|''Boolean''
|<code>0</code>
|
|Whether sound should stop playing along particles or it should keep playing after particles end.
|-
|
===== Sound Stop Offset =====
|''Integer''
|<code>0</code>
|
|Time (in ms) before the particles end to stop the sound.
|-
|}


Starting with creation of new scripted user action, it will be necessary to prepare correct folder structure first. In this case, new script should be created in '''Scripts → Game → UserActions''' folder.
=== SpawnPrefabEffect ===
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


By default, game is evaluating scripts located in few predefined locations (''which are defined in [[Arma_Reforger:Resource_Manager:_Options#Modules|'''Resource Manager options''' in '''Modules''' section'']]), so '''Scripts → Game''' part of the structure is extremely important - script outside of that folder would not be compiled otherwise. '''UserActions ''' folder is recommendation though since all other vanilla user actions are located over there.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attach To Parent =====
|''Boolean''
|<code>0</code>
|
|Should attach the effects to parent entity
|-
|
===== Effect Prefab =====
|''Resource Name''
|<code>0</code>
|
|Entity prefab to spawn
|-
|}


[[Image:armareforger-new-prop-script-structure.png|900px]]
=== SubmunitionEffect ===
Inherits from: [[#BaseProjectileEffect|BaseProjectileEffect]]


[[Image:armareforger-new-prop-script-rb.png|right]]
{| class="wikitable"
When folder structure is ready, it is time to create a new script called '''SCR_DrawerUserAction.c'''. In general, it can be done in at least three ways:
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Prefab =====
|''Resource Name''
|<code>0</code>
|
|Projectile prefab to spawn
|-
|
===== Count =====
|''Integer''
|<code>0</code>
|
|Number of projectiles to spawn
|-
|
===== Dispersion =====
|''Scalar''
|<code>3</code>
|
|[deg] Dispersion angle centered around original direction (minimum value). Represents whole sphere at maximum value.
|-
|
===== Init Speed Coef =====
|''Scalar''
|<code>3</code>
|
|How much is changed initial speed of bullet.
|-
|
===== Sound Event =====
|''String''
|<code>0</code>
|
|Name of sound event to be raised when triggered
|-
|}


# Via '''Create''' button in '''Resource Browser''' (doesn't matter if its attached to which editor it is attached, '''Resource Manager''' will work fine though)
=== DistanceParticleEffect ===
## To use this method, navigate to '''Scripts → Game → UserActions''' folder and then either click on '''Create''' button or use RMB on file list. In both cases, a new menu will appear from which you can select '''Script''' option. This will
{| class="wikitable"
# Via '''Add New Script..'''. context menu in '''Projects''' window
|+
# Via '''Script Wizard'''
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Particle to spawn
|-
|
===== Min Dist =====
|''Scalar''
|<code>3</code>
|
|Minimum distance between effects
|-
|
===== Sub Effects =====
|''Array of Objects''
|<code>0</code>
|
|List of sub effects
|-
|}


In principle, to make your new user action selectable in '''Additional Actions''' inside '''ActionsManagerComponent''', you have to inherit from '''ScriptedUserAction''' class - just like '''SCR_DoorUserACtion''' does. This can be simply achieved by writing following code in '''SCR_DrawerUserAction.c'''
=== SpawnDistanceParticleEffect ===
<enforce>
Inherits from: [[#SpawnParticleEffect|SpawnParticleEffect]]
class SCR_DrawerUserAction : ScriptedUserAction
{
}
</enforce>
Next step would be getting reference to '''SingalsManagerComponent'''. It is done once in init and reference to it is cached in memory.
<enforce>
class SCR_DrawerUserAction : ScriptedUserAction
{
//! Signal manager to pass signals into procedural animation
private SignalsManagerComponent m_SignalsManager;


//------------------------------------------------------------------------------------------------
{| class="wikitable"
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
|+
{
!Param
m_SignalsManager = SignalsManagerComponent.Cast(pOwnerEntity.FindComponent(SignalsManagerComponent));
!Type
}
!Default value
}
!Unit
</enforce>
!Description
{{Clear}}
|-
Once that is set, it is a proper moment to add new attribute to the action itself. To do so, add {{Link|enfusion://ScriptEditor/scripts/Core/attributes.c;221|[Attribute()] }} tag above variable that you want to expose. Attributes can be provided in two ways:
|
===== Sub Effects =====
|''Array of Objects''
|<code>0</code>
|
|List of sub effects
|-
|}


* Without parameters names, just values are typed, separated by coma. Example: ''[Attribute("hello", UIWidgets.EditBox)]''
=== SubDistanceParticleEffect ===
* With parameter names, list of parameters can be checked in Script Editor [enfusion://ScriptEditor/scripts/Core/attributes.c;231 over there].
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Modulo Spawned =====
|''Integer''
|<code>0</code>
|
|When the particle should be spawned
|-
|
===== Particle Effect =====
|''Resource Name''
|<code>0</code>
|
|Particle to spawn
|-
|}


In this tutorial, the 2nd method was used.
=== BaseTriggerComponent ===
<enforce>
{| class="wikitable"
class SCR_DrawerUserAction : ScriptedUserAction
|+
{
!Param
[Attribute( defvalue: "Drawer 1", uiwidget: UIWidgets.EditBox, desc: "Signal index of drawer" )]
!Type
private string m_sSignalName; // string for pairing with the user action
!Default value
}
!Unit
</enforce>
!Description
Above code should translate to parameter being visible in '''SCR_DrawerUserAction''' as on picture below. This part is detailed more in detail later, so for now we can continue with writing script.
|-
|
===== PROJECTILE EFFECTS =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== DELETE ON TRIGGER =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== TRIGGER ALIVE =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Trigger Offset =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Arming Time =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Safety Distance =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== HAS VALID DIRECTION =====
|''Boolean''
|<code>0</code>
|
|Set true if we can trust the value of m_vHitDirection in ProjectileEffectContext
|-
|}


[[Image:armareforger-new-prop-script-action-parameter.png]]
=== ProximityTriggerComponent ===
Inherits from: [[#BaseTriggerComponent|BaseTriggerComponent]]


Further step is finding of signal index in '''SingalsManagerComponent''' using name provided by attribute exposed before. To do so, it is necessary to override two methods:
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== DISTANCE =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


* '''CanBeShownScript''' - controls if this action can be performed by the provided user entity
=== TimerTriggerComponent ===
* '''CanBePerformedScript''' - controls if this action can be shown in the UI by the provided user entity
Inherits from: [[#BaseTriggerComponent|BaseTriggerComponent]]


In case of '''CanBeShownScript''', work is quite simple since it is assumed that action should be always visible if it can be performed.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== TIMER =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


'''CanBePerformedScript''' does some simple validation of input and verifies if '''SingalsManagerComponent''' is present on entity, if not, then the script will exit. Afterwards, code is validating  '''m_iSignalIndex''' variable. By default it is set to -1 and in such case, code will try to find '''m_sSignalName''' in '''SingalsManagerComponent ''' and return correct index. If its not found, then action won't be visible.
=== GyroSettings ===
<enforce>
{| class="wikitable"
class SCR_DrawerUserAction : ScriptedUserAction
|+
{
!Param
[...]
!Type
private int m_iSignalIndex = -1;
!Default value
!Unit
!Description
|-
|
===== Gyro Precision Speed =====
|''Scalar''
|<code>3</code>
|
|Rotation speed below which precision aiming is applied\n[deg/s]
|-
|
===== Gyro Acceleration Speed Min =====
|''Scalar''
|<code>3</code>
|
|Rotation speed at which Acceleration sensitivity starts being applied\n[deg/s]
|-
|
===== Gyro Acceleration Speed Max =====
|''Scalar''
|<code>3</code>
|
|Rotation speed at which Acceleration sensitivity is fully applied\n[deg/s]
|-
|
===== Gyro Acceleration Sensitivity =====
|''Scalar''
|<code>3</code>
|
|Acceleration sensitivity\n[*]
|-
|
===== Gyro Smoothing Speed =====
|''Scalar''
|<code>3</code>
|
|Rotation speed below which smooth aiming is applied\n[deg/s]
|-
|
===== Gyro Smoothing Rate =====
|''Scalar''
|<code>3</code>
|
|Percentage of previous angularVelocity that stays when dt is equal to smoothing time\n[%]
|-
|
===== Gyro Smoothing Fps =====
|''Scalar''
|<code>3</code>
|
|Reference frames per second for smoothing rate\n[Hz]
|-
|
===== Gravity Smoothed Half Time =====
|''Scalar''
|<code>3</code>
|
|Time for acceleration smoothing to reach half way of raw value\n[s]
|-
|
===== Gravity Smoothed Delta Steady =====
|''Scalar''
|<code>3</code>
|
|Angle between raw and smooth acceleration over which controller is fully steady\n[deg]
|-
|
===== Gravity Smoothed Delta Shaking =====
|''Scalar''
|<code>3</code>
|
|Angle between raw and smooth accelerometer over which controller is fully shaking\n[deg]
|-
|
===== Gravity Alignment Steady =====
|''Scalar''
|<code>3</code>
|
|Speed of gravity aligment with accelerometer while controller is fully steady\n[alignment / s]
|-
|
===== Gravity Alignment Shaking =====
|''Scalar''
|<code>3</code>
|
|Speed of gravity aligment with accelerometer while controller is fully shaking\n[alignment / s]
|-
|
===== Gravity Alignment Speed To Limit =====
|''Scalar''
|<code>3</code>
|
|Angular speed to limit of speed of gravity aligment with accelerometer\n[alignment / deg/s]
|-
|
===== Gravity Alignment Delta Min =====
|''Scalar''
|<code>3</code>
|
|Angle between gravity and accelerometer, below which alignment limit is fully enforced\n[deg]
|-
|
===== Gravity Alignment Delta Max =====
|''Scalar''
|<code>3</code>
|
|Angle between gravity and accelerometer, over which alignment limit is fully ignored\n[deg]
|-
|
===== Gravity Alignment Guaranteed =====
|''Scalar''
|<code>3</code>
|
|Speed of gravity alignment with accelerometer, guaranteed regardless of other conditions\n[alignment / s]
|-
|
===== Gyro Aiming Space =====
|''Integer''
|<code>0</code>
|
|Gyro aiming space. Player space = local pitch, world yaw
|-
|
===== Player Space Local Yaw Preference =====
|''Scalar''
|<code>3</code>
|
|Half angle of cone in which local yaw and roll speed will be preferred for player space yaw speed\n[deg]
|-
|
===== World Space Side Pitch Restriction =====
|''Scalar''
|<code>3</code>
|
|Half angle of cone in which pitch is restricted, when controller is rolled and pitched perpendicularly to gravity\n[deg]
|-
|}


//------------------------------------------------------------------------------------------------
=== GarbageSystem ===
override bool CanBeShownScript(IEntity user)
{| class="wikitable"
{
|+
return CanBePerformedScript(user);
!Param
}
!Type
!Default value
!Unit
!Description
|-
|
===== Processing Interval =====
|''Scalar''
|<code>3</code>
|
|Interval in seconds at which the garbage collection passes occur.
|-
|
===== Processing Iterations Max =====
|''Integer''
|<code>0</code>
|
|Maximum number of entities processed during a single frame. Low values avoid performace drops.
|-
|
===== Rules =====
|''Array of Objects''
|<code>0</code>
|
|Rules to select the appropriate configuration.
|-
|}


//------------------------------------------------------------------------------------------------
=== GarbageSystemConfig ===
override bool CanBePerformedScript(IEntity user)
{| class="wikitable"
{
|+
if(!m_SignalsManager) // Do nothing if there is no signal manager
!Param
return false;
!Type
!Default value
!Unit
!Description
|-
|
===== Processing Interval =====
|''Scalar''
|<code>3</code>
|
|Interval in seconds at which the garbage collection passes occur.
|-
|
===== Processing Iterations Max =====
|''Integer''
|<code>0</code>
|
|Maximum number of entities processed during a single frame. Low values avoid performace drops.
|-
|
===== Rules =====
|''Array of Objects''
|<code>0</code>
|
|Rules to select the appropriate configuration.
|-
|}


if (m_iSignalIndex < 0) // Check if signal index is valid
=== BaseGarbageRule ===
{
{| class="wikitable"
m_iSignalIndex = m_SignalsManager.FindSignal(m_sSignalName);
|+
return false;
!Param
}
!Type
!Default value
!Unit
!Description
|-
|
===== Priority =====
|''Integer''
|<code>0</code>
|
|If mutliple rules match the highest priority wins.
|-
|
===== Filter =====
|''String''
|<code>0</code>
|
|
|-
|
===== Collect =====
|''Boolean''
|<code>0</code>
|
|Enable garbage collection these entities.
|-
|
===== Only Destroyed =====
|''Boolean''
|<code>0</code>
|
|Only remove entities that are in the damage state DESTORYED. Only applies if the entity can be damaged.
|-
|
===== Lifetime =====
|''Scalar''
|<code>3</code>
|
|Entity lifetime in seconds after which it will be garbage collected.
|-
|
===== Check Player Distance =====
|''Boolean''
|<code>0</code>
|
|Configure if nearby players affect the lifetime processing.
|-
|
===== Player Distance =====
|''Scalar''
|<code>3</code>
|
|Distance in meter at which a player will affect entity lifetimes.
|-
|
===== Player Lifetime Effect =====
|''Integer''
|<code>0</code>
|
|How does a nearby player affect the lifetime.
|-
|
===== Lifetime Reset Percentage =====
|''Integer''
|<code>0</code>
|
|Percentage of inserted lifetime to which to return to.
|-
|}


return true;
=== GarbageSystemConfigComponent ===
}
{| class="wikitable"
[...]
|+
}
!Param
</enforce>
!Type
After that, code for sending signal to '''Procedural Animation Project''' can be added. This is done by finding signal (''via [enfusion://ScriptEditor/Scripts/Game/generated/Components/SignalsManagerComponent.c;35 FindSignal] method'') in '''SignalManagerComponent''', which was automatically registered by linked procedural animation in '''ProcAnimComponent'''.  
!Default value
!Unit
!Description
|-
|
===== Config =====
|''Resource Name''
|<code>0</code>
|
|Optional override of the global garbage system configuration for gamemode specific needs.
|-
|}


Since setting '''ValRT''' in '''Procedural Animation Projects''' do a full movement of the drawer, '''targetValue''' variable  switches between 0 and '''MAX_SIGNAL_VALUE''' constants, so the drawer is not fully opened. Of course, this can be changed/optimized and this is mainly a '''showcase how to work with signals'''. Value of '''targetValue''' is then passed to '''SignalsManagerComponent''' through [enfusion://ScriptEditor/Scripts/Game/generated/Components/SignalsManagerComponent.c;37 '''SetSignalValue'''] method, which is finally passed to procedural animation.
=== InventoryStreamingSystem ===
<enforce>
{| class="wikitable"
class SCR_DrawerUserAction : ScriptedUserAction
|+
{
!Param
[...]
!Type
const float MAX_SIGNAL_VALUE = 0.25;
!Default value
[...]
!Unit
//---------------------------------------------------------
!Description
override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
|-
{
|
float targetValue = Math.AbsFloat((m_SignalsManager.GetSignalValue(m_iSignalIndex)) - MAX_SIGNAL_VALUE);
===== Stream Out Delay =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


m_SignalsManager.SetSignalValue(m_iSignalIndex, targetValue);
=== PerceptionSystem ===
}
{| class="wikitable"
[...]
|+
}
!Param
</enforce>
!Type
Last step will be handling of UI part and changing name of the action depending whether drawer is going to be closed or opened. This is done by '''overriding GetActionNameScript''' method and changing '''outName''' string. If signal connected to that particular drawer is '''equal to 0''', then we can assume that '''drawer is closed''' and action that should be visible by player should be called "'''Open'''". Otherwise, '''"Close"''' action should be presented to player.<enforce>
!Default value
class SCR_DrawerUserAction : ScriptedUserAction
!Unit
{
!Description
[...]
|-
//------------------------------------------------------------------------------------------------
|
override bool GetActionNameScript(out string outName)
===== Update Intervals =====
{
|''Array of Scalars''
if((m_SignalsManager.GetSignalValue(m_iSignalIndex)) == 0)
|<code>3</code>
{
|
outName = "Open";
|Update interval for each LOD value, in seconds. The system will try to update components according to those intervals, but actual timing might be different.
} else
|-
{
|
outName = "Close";
===== Max Components Per Second =====
}
|''Integer''
return true;
|<code>0</code>
}
|
[...]
|Maximum amount of components updated per second. The system will try to update components according to desired update intervals, as long as this limit is not reached. Note that at lowest system will still update one component per frame, which will bypass this setting. This setting works best for big values.
}
|-
</enforce>
|
If all described above steps were done correctly, then new, '''SCR_DrawerUserAction''' action should be ready to use in '''ActionsManagerComponent'''. Below you can find full script code.
===== Vision Trace Layer =====
|''Flags''
|<code>0</code>
|
|Layer used for vision trace checks
|-
|}


Full code
=== DamageManagerComponent ===
<spoiler>
Inherits from: [[#HitZoneContainerComponent|HitZoneContainerComponent]]
<enforce>
class SCR_DrawerUserAction : ScriptedUserAction
{
[Attribute( defvalue: "Drawer 1", uiwidget: UIWidgets.EditBox, desc: "Signal index of drawer" )]
private string m_sSignalName; // for pairing with the user action


private int m_iSignalIndex;
{| class="wikitable"
const float MAX_SIGNAL_VALUE = 0.25;
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Fall damage min speed =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Fall damage max speed =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Collision Velocity Threshold =====
|''Scalar''
|<code>3</code>
|
|Relative speed below threshold does not cause damage
|-
|
===== Heavy damage threshold =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Enable Damage =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


//! Signal manager to pass signals into procedural animation
=== ExtendedDamageManagerComponent ===
private SignalsManagerComponent m_SignalsManager;
Inherits from: [[#DamageManagerComponent|DamageManagerComponent]]


//------------------------------------------------------------------------------------------------
{| class="wikitable"
override bool CanBeShownScript(IEntity user)
|+
{
!Param
return CanBePerformedScript(user);
!Type
}
!Default value
!Unit
!Description
|-
|
===== Damage Effect Evaluator =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Allowed Damage Effects =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Blacklisted Damage Effects =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


//------------------------------------------------------------------------------------------------
=== ParentHitZone ===
override bool CanBePerformedScript(IEntity user)
{| class="wikitable"
{
|+
if(!m_SignalsManager) // Do nothing if there is no signal manager
!Param
return false;
!Type
!Default value
!Unit
!Description
|-
|
===== Parent =====
|''String''
|<code>0</code>
|
|Parent hitzone
|-
|
===== Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier for damage passed to parent
|-
|
===== Healing Multiplier =====
|''Scalar''
|<code>3</code>
|
|Multiplier for healing passed to parent
|-
|
===== Overkill =====
|''Boolean''
|<code>0</code>
|
|When transmitting damage, excess damage is taken into account
|-
|
===== Overheal =====
|''Boolean''
|<code>0</code>
|
|When transmitting healing, excess healing is taken into account
|-
|}


if (m_iSignalIndex < 0) // Check if signal index is valid
=== HitZone ===
{
{| class="wikitable"
m_iSignalIndex = m_SignalsManager.FindSignal(m_sSignalName);
|+
return false;
!Param
}
!Type
!Default value
!Unit
!Description
|-
|
===== Collider Names =====
|''Array of Strings''
|<code>0</code>
|
|Assigned geometry colliders
|-
|
===== Parent HZs =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== HZDefault =====
|''Boolean''
|<code>0</code>
|
|One number representation of the overall entity state
|-
|
===== Ignore Explosions =====
|''Boolean''
|<code>0</code>
|
|If true, explosion effects will not deal damage to this hitzone
|-
|
===== Base Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|This damage multiplier will always apply except for true damage
|-
|
===== Max Health =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Critical Damage =====
|''Scalar''
|<code>3</code>
|
|Threshold when the damage taken at once by the hitzone is considered to be critical
|-
|
===== Damage Reduction =====
|''Scalar''
|<code>3</code>
|
|Incoming damage to this hitzone will be reduced by this flat amount
|-
|
===== Damage Threshold =====
|''Scalar''
|<code>3</code>
|
|If incoming damage < Damage threshold, no damage is dealt
|-
|
===== Area Override =====
|''Scalar''
|<code>3</code>
|
|If >= 0, use this as the area of the hitzone and do not compute area of colliders
|-
|
===== Collision multiplier =====
|''Scalar''
|<code>3</code>
|
|Collision damage multiplier
|-
|
===== Melee multiplier =====
|''Scalar''
|<code>3</code>
|
|Melee damage multiplier
|-
|
===== Kinetic multiplier =====
|''Scalar''
|<code>3</code>
|
|Kinetic damage multiplier
|-
|
===== Fragmentation multiplier =====
|''Scalar''
|<code>3</code>
|
|Fragmentation damage multiplier
|-
|
===== Explosive multiplier =====
|''Scalar''
|<code>3</code>
|
|Explosive damage multiplier
|-
|
===== Incendiary multiplier =====
|''Scalar''
|<code>3</code>
|
|Incendiary damage multiplier
|-
|
===== Fire multiplier =====
|''Scalar''
|<code>3</code>
|
|Fire damage multiplier
|-
|
===== Damage State threshold =====
|''Array of Scalars''
|<code>3</code>
|
|Health% for the hitzone to enter this custom damage state. Keep this value > 0 and different to 0 and 1. Extra damage states should be sorted descending.
|-
|}


return true;
=== HitZoneContainerComponent ===
}
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Additional hit zones =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


//---------------------------------------------------------
=== DestructibleEntity ===
override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
{| class="wikitable"
{
|+
float targetValue = Math.AbsFloat((m_SignalsManager.GetSignalValue(m_iSignalIndex)) - MAX_SIGNAL_VALUE);
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Enabled =====
|''Boolean''
|<code>0</code>
|
|True to enable destruction in all instances of this prefab
|-
|
===== Max Health =====
|''Scalar''
|<code>3</code>
|
|Max health of this destructible
|-
|
===== Collision multiplier =====
|''Scalar''
|<code>3</code>
|
|Collision damage multiplier
|-
|
===== Melee multiplier =====
|''Scalar''
|<code>3</code>
|
|Melee damage multiplier
|-
|
===== Kinetic multiplier =====
|''Scalar''
|<code>3</code>
|
|Kinetic damage multiplier
|-
|
===== Fragmentation multiplier =====
|''Scalar''
|<code>3</code>
|
|Fragmentation damage multiplier
|-
|
===== Explosive multiplier =====
|''Scalar''
|<code>3</code>
|
|Explosive damage multiplier
|-
|
===== Incendiary multiplier =====
|''Scalar''
|<code>3</code>
|
|Incendiary damage multiplier
|-
|
===== Base Damage Multiplier =====
|''Scalar''
|<code>3</code>
|
|Base damage multiplier of this destructible
|-
|
===== Damage Reduction =====
|''Scalar''
|<code>3</code>
|
|Incoming damage to this hitzone will be reduced by this flat amount
|-
|
===== Damage Threshold =====
|''Scalar''
|<code>3</code>
|
|If incoming damage < Damage threshold, no damage is dealt
|-
|
===== Destroy At No Health =====
|''Boolean''
|<code>0</code>
|
|If the entity will be destroyed when its health reaches 0
|-
|
===== First Destruction Phase =====
|''Object''
|<code>0</code>
|
|Keep the threshold value at 1
|-
|
===== Damage Phases =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Last Destruction Phase =====
|''Object''
|<code>0</code>
|
|Keep the threshold value at 0
|-
|
===== Permanent debris offsets =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Array of offset points to spawn the permanent debris  (respect to the destructible)
|-
|
===== Permanent Debris =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


m_SignalsManager.SetSignalValue(m_iSignalIndex, targetValue);
=== BaseDestructionPhase ===
}
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Threshold =====
|''Scalar''
|<code>3</code>
|
|Destructible will be in this phase if(health % <= current phase && health% > next phase). [0, 1]
|-
|}


//------------------------------------------------------------------------------------------------
=== DestructibleDebris ===
override bool GetActionNameScript(out string outName)
{| class="wikitable"
{
|+
if((m_SignalsManager.GetSignalValue(m_iSignalIndex)) == 0)
!Param
{
!Type
outName = "Open";
!Default value
} else
!Unit
{
!Description
outName = "Close";
|-
}
|
return true;
===== Debris Prototype =====
}
|''Resource Name''
|<code>0</code>
|
|Debris prefab to spawn
|-
|
===== Debris count =====
|''Integer''
|<code>0</code>
|
|Number of times to spawn this debris. Be reasonable, they are permanent.
|-
|}


//------------------------------------------------------------------------------------------------
=== DestructionManager ===
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
{| class="wikitable"
{
|+
m_SignalsManager = SignalsManagerComponent.Cast(pOwnerEntity.FindComponent(SignalsManagerComponent));
!Param
}
!Type
}
!Default value
</enforce>
!Unit
</spoiler>
!Description
|-
|
===== Regional Destruction Manager Prefab =====
|''Resource Name''
|<code>0</code>
|
|Regional destruction manager prefab to spawn
|-
|}


== Adding action contexts ==
=== LongRangeSoundComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Signal Event =====
|''String''
|<code>0</code>
|
|Name of the event to bind the sound trigger to.
|-
|
===== Sound Data Index =====
|''Integer''
|<code>0</code>
|
|Index of entry in the SoundData array in the system.
|-
|}


[[Image:armareforger-new-prop-script-action-manager.png|right]]
=== LongRangeSoundSystem ===
With '''SCR_DrawerUserAction''' being properly setup, it is possible to move forward and start adding new '''Action Contexts''' in '''ActionsManagerComponent.'''
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sound Data =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


'''Action Contexts''' serves as a sort of list of interactable places , where other systems requiring user input can use them.
=== LongRangeSoundData ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sound Project =====
|''Resource Name''
|<code>0</code>
|
|Sound project to play the sound from.
|-
|
===== Sound Event =====
|''String''
|<code>0</code>
|
|Sound event to trigger in the sound project.
|-
|}


Each '''action context''' have following properties:
=== AimPoint ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Aim Point Type =====
|''Integer''
|<code>0</code>
|
|
|-
|}


* '''Context Name''' - used by other systems to distinguish this action from the rest of action contexts
=== CharacterPerceivableComponent ===
* '''Position -''' defines position of the action. Using '''PointInfo''' class, it is possible to define following things
Inherits from: [[#PerceivableComponent|PerceivableComponent]]
** '''Pivot ID -''' in this drop-down list box it is possible to attach '''action context''' to '''selected bone'''. Action will follow the bone if its animated
** '''Offset''' - offset from the center of model or (''Pivot ID has some valid bone selected'') from center of the '''Pivot ID'''
** '''Angles -''' orientation of the action - it is especially important when '''Omnidirectional''' property is set to false
* '''Radius''' - this parameter defines how far, from the origin defined by '''Position''' parameter,  action context is visible.
* '''Omnidirectional -''' defines if context is available from both sides or not.


{{Feature|informative|Some of the extra details can be found on [[Arma_Reforger:Action_Context_Setup]] page}}
{| class="wikitable"
{{Clear}}
|+
New '''Action Contexts''' can be added to '''ActionsManagerComponent''' by clicking on '''plus + sign (1)''' located to the right of the parameter. '''ActionsManagerComponent''' component has also some interesting options available '''which can speed up process of debug and setup of new actions.'''
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Visual Factor Stance Prone =====
|''Scalar''
|<code>3</code>
|
|Value of this character's stance visual recognition factor when prone
|-
|
===== Visual Factor Stance Crouch =====
|''Scalar''
|<code>3</code>
|
|Value of this character's stance visual recognition factor when crouching
|-
|
===== Visual Factor Stance Stand =====
|''Scalar''
|<code>3</code>
|
|Value of this character's stance visual recognition factor when standing up
|-
|
===== Sound Power Max Db =====
|''Scalar''
|<code>3</code>
|
|Produced sound power when running at max speed (in dB ref 1pW)
|-
|}


After clicking with RMB on '''ActionsManagerComponent''' in '''Object Properties''' windows, a new context menu should appear containing various options for debuging and one action for '''assisted creation of new action contexts''' - '''Create user action context(s) from bones.'''
=== PerceivableComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Additional aim points =====
|''Array of Objects''
|<code>0</code>
|
|Additional points on object which should be tested for line of sight
|-
|
===== Illumination Lv Per Light =====
|''Scalar''
|<code>3</code>
|
|How much LV (logarithmic) is added to illumination per each light attached to owner
|-
|
===== Unit Type =====
|''Integer''
|<code>0</code>
|
|Defines how AI will recognize this unit as target. Used for target and weapon seleciton.
|-
|}


After clicking '''Create user action context(s) from bones''' option, a new window will appear listing all bones that '''don't have action context defined yet'''. By clicking on '''drawer_1 with {{Controls|LMB}}''' and clicking on '''drawer_6''' with {{Controls|LMB}} while holding left {{Controls|Shift}}, you can select multiple entries at once. It is also possible to select multiple elements by holding left control and then clicking with {{Controls|LMB}}. Once all drawer related bones (from 1 to 6) are selected, it is possible to confirm selection by clicking on '''OK''' button.
=== PerceptionComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Forget Enemy Time =====
|''Integer''
|<code>0</code>
|
|How long it takes till a target in Enemy category is forgotten, in seconds
|-
|
===== Forget Detected Time =====
|''Integer''
|<code>0</code>
|
|How long it takes till a target in Detected category is forgotten, in seconds
|-
|
===== Position Info =====
|''Object''
|<code>0</code>
|
|Position of perception, usually head or eyes
|-
|
===== Sensors List =====
|''Array of Objects''
|<code>0</code>
|
|List of sensors
|-
|
===== Vehicle Threat Max Dist =====
|''Scalar''
|<code>3</code>
|
|Maximum threatening distance of a vehicle
|-
|
===== Vehicle Threat Max Angle =====
|''Scalar''
|<code>3</code>
|
|Maximum threatening angle of approach of a vehicle
|-
|
===== Vehicle Threat Min Speed =====
|''Scalar''
|<code>3</code>
|
|Minimum threatening speed of a vehicle
|-
|
===== Vehicle Threat Collision Time =====
|''Scalar''
|<code>3</code>
|
|Maximum estimated time before a vehicle collides into us. If collision time is more than this value, we don't receive a danger event.
|-
|
===== Safe Aim Distance Friendly =====
|''Scalar''
|<code>3</code>
|
|Minimum distance which is considered safe while shouting close to an ally.
|-
|}


[[Image:armareforger-new-prop-script-action-manager-create-actions-bones.gif]]
=== PerceptionManager ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sun Direct Light Elev Curve =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Sun Ambient Light Elev Curve =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Moon Direct Light Elev Curve =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Moon Ambient Light Elev Curve =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Direct Light Cloud Attenuation =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Ambient Light Cloud Attenuation =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Illumination Factor Curve =====
|''Array of Objects''
|<code>0</code>
|
|Translates LV to Illumination Factor value
|-
|}


It's also worth to mention that this context menu has few other options, which are quite useful for setting up & debugging of context actions. Below you can see in action transform gizmos (activated via ''Toggle context(s) transform gizmo visualization'' ) and radius visualization (activated via ''Toggle context(s) radius visualization'' option). ''Toggle context(s) visibility angle visualization'' is also quite handy in setting non '''Omnidirectional''' actions.
=== VehiclePerceivableComponent ===
Inherits from: [[#PerceivableComponent|PerceivableComponent]]


[[Image:armareforger-new-prop-script-action-manager-context-menu.png]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sound Power Rpm Multiplier Db =====
|''Scalar''
|<code>3</code>
|
|How much sound power (in dB ref 1pW) the engine produces per RPM
|-
|
===== Horn Sound Power Db =====
|''Scalar''
|<code>3</code>
|
|Sound power of horn (in dB ref 1pW)
|-
|}


Position of the action context can be further tweaked by changing '''Offset''' values in '''Position''' object.
=== BaseSensor ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max Range =====
|''Scalar''
|<code>3</code>
|
|Max range of sensor
|-
|}


[[Image:armareforger-new-prop-script-action-adjustments.gif]]
=== EarsSensor ===
Inherits from: [[#BaseSensor|BaseSensor]]


== Adding additional actions ==
{| class="wikitable"
[[Image:armareforger-new-prop-script-action-manager-additional-actions.gif|right]]
|+
Additional actions are actions, which are scripted. Some of the actions like get in, '''switch seat or opening of doors are handled''' by respective components like '''DoorComponent''' or '''SCR_BaseCompartmentComponent'''. Other more specific actions, which don't necessarily need a whole component to be handled, are handled via '''Additional Actions''' array. In vanilla game, '''flushing toilet''' or '''opening hatches in BTR-70''' are handled via this kind of actions and '''drawer open/close action is also a good candidate to use this method'''.
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sound Intensity Min db =====
|''Scalar''
|<code>3</code>
|
|Minimal detectible sound intensity (in dB ref 1pW/m^2)
|-
|}


New '''additional actions''' can be added to the asset by clicking on plus icon to the right of '''Additional Actions''' property inside '''ActionsManagerComponent'''. Once that plus sign is clicked, a new menu pops up asking for a type of action which should be added to the asset. In this case '''SCR_DrawerUserAction ''' should be selected from the list.
=== EyesSensor ===
Inherits from: [[#BaseSensor|BaseSensor]]


After adding first '''SCR_DrawerUserAction''' element to the array'''''', there are '''few things that need to be adjusted over there'''. First task will be configuring '''Parent Context List''' parameter. This array contain list of contexts where this action will be visible. It is possible to use multiple contexts for such action but in this case, only single context - '''previously created drawer_1 -''' should be present in '''Parent Context List''' array.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== FOVNormal =====
|''Scalar''
|<code>3</code>
|
|Angle of visibility(in degrees)
|-
|
===== FOVPeripheral =====
|''Scalar''
|<code>3</code>
|
|Angle of peripherial visibility (in degrees)
|-
|
===== Min Illumination Factor =====
|''Scalar''
|<code>3</code>
|
|Minimal value of target's illumination factor. If target illumination factor is lower than this, it can not be seen at all.
|-
|
===== Recognition Detect Decay =====
|''Scalar''
|<code>3</code>
|
|Decay speed of target detection recognition value when we don't see the target
|-
|
===== Recognition Identify Decay =====
|''Scalar''
|<code>3</code>
|
|Decay speed of target identification recognition value when we don't see the target
|-
|
===== Angular Size Factor a =====
|''Scalar''
|<code>3</code>
|
|Angular size factor is calculated internally as: f = 1 / max((a * targetDistance/targetSize) + b, c)
|-
|
===== Angular Size Factor b =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Angular Size Factor c =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Angular Velocity Factor a =====
|''Scalar''
|<code>3</code>
|
|Angular velocity factor is calculated internally as: f = min( a * ((targetVelocity/targetDistance)^2) + 1.0, b )
|-
|
===== Angular Velocity Factor b =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


Next thing will be defining of '''Signal Name''' parameter. This is custom property which was added by '''SCR_DrawerUserAction''' and, as it was mentioned before, it should contain name of the '''signal''' defined in '''Input''' node of '''Procedural Animation Editor Signal''' (.''siga file''). In this case it will be '''Drawer 1'''
=== BaseRadioComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Encryption key =====
|''String''
|<code>0</code>
|
|Key used for encryption. Matching encryption is required for encrypted transmissions to be received.
|-
|
===== Turned on =====
|''Boolean''
|<code>0</code>
|
|Is radio turned on by default?
|-
|
===== Transceivers =====
|''Array of Objects''
|<code>0</code>
|
|Transceiver defines one receive/transmit channel.
|-
|}


If all steps were properly followed, then it should be already possible to test it in-game and verify if the user action is visible & usable. If action is not visible, verify if bone used as '''Pivot ID''' is correctly rotated and that radius of action is correct.
=== BaseTransceiver ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Channel Frequency =====
|''Integer''
|<code>0</code>
|
|Radio frequency in kHz
|-
|
===== Transmitting Range =====
|''Scalar''
|<code>3</code>
|
|Maximum transmitting distance in meters.
|-
|
===== Min tunable frequency =====
|''Integer''
|<code>0</code>
|
|Frequency in kHz
|-
|
===== Max tunable frequency =====
|''Integer''
|<code>0</code>
|
|Frequency in kHz
|-
|
===== Frequency resolution =====
|''Integer''
|<code>0</code>
|
|Tunning step in kHz
|-
|}


{{Clear}}
=== RelayTransceiver ===
= Adding sounds =
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Any frequency =====
|''Boolean''
|<code>0</code>
|
|Relay only set frequency if false.
|-
|}


{{Messagebox|'''Overview'''
=== RadioBroadcastComponent ===
Following topics will be covered in this paragraph
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Turn On Action =====
|''Object''
|<code>0</code>
|
|
|-
|}


* Creating audio project
=== RadioBroadcastManager ===
* Assigning it to object|💬|#CDF}}  
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Broadcast Acp =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Regenerate Times =====
|''Boolean''
|<code>0</code>
|
|Will regenerate times of banks when checked
|-
|
===== Start Music =====
|''Boolean''
|<code>0</code>
|
|Checked: The music bank will start - Unchecked: The DJ bank will start
|-
|
===== Music Bank Name =====
|''String''
|<code>0</code>
|
|This name should exactly match with the bank used for the music in the linked ACP
|-
|
===== Music Times =====
|''Array of Integers''
|<code>0</code>
|
|Time in milliseconds for the samples in the music bank of the ACP
|-
|
===== Dj Bank Name =====
|''String''
|<code>0</code>
|
|This name should exactly match with the bank used for the DJ in the linked ACP
|-
|
===== Dj Times =====
|''Array of Integers''
|<code>0</code>
|
|Time in milliseconds for the samples in the DJ bank of the ACP
|-
|}


{{Feature|informative|Before proceeding further, it is recommended to make yourself familiar with the [[Arma Reforger:Audio Editor|Audio Editor]] documentation and the [[Arma Reforger:Audio Editor: Getting Started Tutorial|Audio Editor: Getting Started Tutorial]].}}
=== TagComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Tag categories =====
|''Flags''
|<code>0</code>
|
|Specifies categories for this tag.
|-
|
===== Is Dynamic =====
|''Boolean''
|<code>0</code>
|
|Should this entity be considered dynamic in the grid map?
|-
|}


== Creating new audio project ==
=== TagSystem ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Cell Size =====
|''Scalar''
|<code>3</code>
|
|Resolution of underlying spatial container.
|-
|
===== Number Of Static Entities Updated Per Update =====
|''Integer''
|<code>0</code>
|
|
|-
|}


New '''audio project''' can be created quite easily inside '''Audio Editor'''. To do so, open '''Audio Editor''' and either select from '''File → New → Project..'''. option or use '''{{Controls|Ctrl|Shift|N}}''' shortcut.
=== ActionsManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Action Contexts =====
|''Array of Objects''
|<code>0</code>
|
|List of context definitions for user actions to be registered into
|-
|
===== additional Actions =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Allow Cross Hierarchy =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Is Ghost Entity =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-sound-new-project.png|center]]
=== BaseInteractionHandlerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Global Visibility Range =====
|''Scalar''
|<code>3</code>
|
|Global actions visibility range used by default
|-
|}


== Setting nodes in audio project ==
=== BaseUserAction ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Parent Context List =====
|''Array of Strings''
|<code>0</code>
|
|List of identifiers used to find contexts into which this action should be registered. These should be defined in the parent ActionsManagerComponent.
|-
|
===== UIInfo =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Action Title =====
|''String''
|<code>0</code>
|
|Editor-Only display string used as title in properties editor. If this is empty, action's classname is used as title.
|-
|
===== Visibility Range =====
|''Scalar''
|<code>3</code>
|
|The visibility range in metres. If set to negative value, global range provided by InteractionHandlerComponent is used instead.
|-
|
===== Duration =====
|''Scalar''
|<code>3</code>
|
|Time in seconds of how long action should take. 0 for instant.
|-
|
===== Can Aggregate =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Perform Per Frame =====
|''Boolean''
|<code>0</code>
|
|If true, the PerformAction function will be called every frame interaction key is pressed down.
|-
|
===== Sort Priority =====
|''Integer''
|<code>0</code>
|
|Order for sorting. The lower the value, the higher the priority.
|-
|
===== Inventory action =====
|''Boolean''
|<code>0</code>
|
|Can action be performed from the inventory
|-
|}


For drawer open/close action following things will be required in audio project:
=== InteractionHandlerComponent ===
Inherits from: [[#BaseInteractionHandlerComponent|BaseInteractionHandlerComponent]]


* '''2 [[Arma_Reforger:Audio_Editor:_Nodes#BankLocal|BankLocal nodes]]''' (''aka Bank node)'' - one for opening and another for closing of drawer
{| class="wikitable"
* '''2 [[Arma_Reforger:Audio_Editor:_Nodes#Shader|Shader nodes]]''' - separate for opening and drawer. Applies panning and attenuation based on the spatial relation between the in-game listener and emitter
|+
* '''2 [[Arma_Reforger:Audio_Editor:_Nodes#Sound |Sound nodes]]''' - same as above. The root node of a signal chain. Must be present in every chain in order for sound to be playable. Name of the '''Sound''' node can be later to trigger '''Sound Event''' via scripts
!Param
* '''[[Arma_Reforger:Audio_Editor:_Nodes#Amplitude|Amplitude node]]''' - controls amplitude attenuation that is applied by the '''Shader -''' shared with both '''Shader nodes'''
!Type
* '''[[Arma_Reforger:Audio_Editor:_Nodes#Frequency |Frequency node]]''' - controls frequency attenuation that is applied by the '''Shader -''' shared with both '''Shader nodes'''
!Default value
* '''[[Arma_Reforger:Audio_Editor:_Nodes#Spatiality |Spatiality node]]''' - controls spatiality that is applied by the '''Shader''' '''-''' shared with both '''Shader nodes'''
!Unit
* '''[[Arma_Reforger:Audio_Editor:_Nodes#Mixer|OutputState node]]''' ''(aka Mixer or [enfusion://ResourceManager/~ArmaReforger:Sounds/FinalMix.afm FinalMix.afm])'' - This node serves as a way to group sounds based on type so that they can be processed as a unit before being sent to the final output(s). As with the Signal node, this node contains some internal logic that defines how each sound group is processed. This internal logic can be edited by double-clicking on the node.
!Description
|-
|
===== Sphere Trace Radius =====
|''Scalar''
|<code>3</code>
|
|Radius of sphere trace done from reference point forward.
|-
|
===== Sphere Query Radius =====
|''Scalar''
|<code>3</code>
|
|Radius of sphere query done at the end of sphere trace to collect entities.
|-
|
===== Reference Bone Name =====
|''String''
|<code>0</code>
|
|Reference bone name of controlled entity used as the origin of our physical traces. Leave empty for default origin.
|-
|
===== Nearby Sphere Radius =====
|''Scalar''
|<code>3</code>
|
|Radius of sphere that will collect nearby contexts.
|-
|
===== Layers =====
|''Flags''
|<code>0</code>
|
|Interaction layers we trace using
|-
|}


=== Adding audio banks ===
=== ScriptedSignalUserAction ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Signal name =====
|''String''
|<code>0</code>
|
|
|-
|
===== Max value =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Min value =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


Starting configuration of '''audio project''' with creation of '''audio banks''', new '''Bank nodes''' can be easily added by following below steps:
=== UserActionContext ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== UIInfo =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Context Name =====
|''String''
|<code>0</code>
|
|The unique identifier of this context which will be used for actions registration and hashmap searches.
|-
|
===== Position =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Radius =====
|''Scalar''
|<code>3</code>
|
|Radius of this context used in simplified checks.
|-
|
===== Height =====
|''Scalar''
|<code>3</code>
|
|Height of this context's capsule shape. Value of 0.0 implies a spherical shape.
|-
|
===== Omnidirectional =====
|''Boolean''
|<code>0</code>
|
|Whether this context is accessible from all directions (true) or not (false)
|-
|
===== Visibility Angle =====
|''Scalar''
|<code>3</code>
|
|If not omni-directional, this angle is the angle from which this context can be accessed. 180 degrees is all around, value is projected to both sides.
|-
|
===== Filter Actions Using Cache =====
|''Boolean''
|<code>0</code>
|
|If the context uses ActionManagerComponents's predicate cache when filtering the actions.
|-
|
===== Line Of Sight Check =====
|''Boolean''
|<code>0</code>
|
|Should visibility depend on line-of-sight.
|-
|
===== Display UI At Reference Point =====
|''Boolean''
|<code>0</code>
|
|Should the actions UI be displayed at the interaction reference point.
|-
|
===== Skip Culling Plane Detection =====
|''Boolean''
|<code>0</code>
|
|Should the interaction trace hit point plane be used for backface culling this context.
|-
|}


* Click on '''BankLocal''' button in the upper section of the editor
=== PrefabFilter ===
* Click on that new '''Bank''' node and navigate to '''Unsorted section''' in '''Item Detail''' window
{| class="wikitable"
* Fill in '''Samples''' array with audio files (''start with Sfx_RuggedDesk_Drawer_Open_01.wav)'' that should be played when this audio bank is used. This can be done in two ways:
|+
** By drag and dropping registered audio file in wav format on '''Bank''' node
!Param
** By adding new element to '''Samples''' array via plus button and then assigning wav file in '''Filename''' field
!Type
!Default value
!Unit
!Description
|-
|
===== Prefab =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Check Prefab Hierarchy =====
|''Boolean''
|<code>0</code>
|
|Should it go over prefab hierarchy to check if the prefab name is valid
|-
|}


This should be enough to have it in working state. Additionally, following steps can be performed to make it more pleasant to look at:
=== BaseGameTriggerEntity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Trigger Shape Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Sphere Radius =====
|''Scalar''
|<code>3</code>
|
|Sphere radius
|-
|
===== Box Mins =====
|''Vector with 3 elements''
|<code>3</code>
|
|Box minimal bounds
|-
|
===== Box Maxs =====
|''Vector with 3 elements''
|<code>3</code>
|
|Box maximal bounds
|-
|
===== Box Angles =====
|''Vector with 3 elements''
|<code>3</code>
|
|Box orientation angles
|-
|
===== Polyline Height =====
|''Scalar''
|<code>3</code>
|
|Polyline height
|-
|
===== Draw Shape =====
|''Boolean''
|<code>0</code>
|
|Draw trigger shape
|-
|
===== Shape Color =====
|''Color''
|<code>4</code>
|
|
|-
|
===== Trigger Activation Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Periodic Queries =====
|''Boolean''
|<code>0</code>
|
|Enable periodic Queries
|-
|
===== Update Period =====
|''Scalar''
|<code>3</code>
|
|Seconds between query updates
|-
|
===== Names Filter =====
|''Array of Strings''
|<code>0</code>
|
|Names of objects to be detected inside the Trigger
|-
|
===== Classes Filter =====
|''Array of Strings''
|<code>0</code>
|
|Classes of objects to be detected inside the Trigger
|-
|
===== Prefabs Filter =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


* Rename '''Bank''' node to f.e. ''"Open"'' by changing '''Name''' parameter in '''Item Detail''' window
=== ScriptedGameTriggerEntity ===
* Reposition '''Bank''' node to make space for another '''Bank''' node
Inherits from: [[#BaseGameTriggerEntity|BaseGameTriggerEntity]]


After that, above steps  can be repeated to create ''Close'' '''Bank''' node, which would contain ''Sfx_RuggedDesk_Drawer_Close_01.wav'' sample. With two bank nodes in place, it is also possible to already start process of beautification of the audio project by aligning and then grouping those nodes in '''Audio Bank'''s group.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Run Default Query First =====
|''Boolean''
|<code>0</code>
|
|Run default query before scripted query. The default query is run in C++, if it is filtering by Name/Class and runs first, it can thin the results and prevent script method calls on invalid entities.
|-
|}


[[Image:armareforger-new-prop-sound-audio-bank.gif]]
=== Tree ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Collision Velocity Threshold =====
|''Scalar''
|<code>3</code>
|
|Relative speed below threshold does not cause damage
|-
|
===== Occlusion =====
|''Scalar''
|<code>3</code>
|
|Visibility check occlusion. In Percent per meter
|-
|}


=== Adding shaders ===
=== Vehicle ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Tilt Threshold =====
|''Scalar''
|<code>3</code>
|
|Tilt threshold to consider vehicle inacsessable from -1 to 1.\nWhere 1 is default vehicle state (0 deg tilt) and -1 vehicle is turned upside down (+/- 180 deg tilt).\nDefault value of 0 - means we will consider vehicle inaccessible when it is on it's side (+- 90 deg tilt)
|-
|
===== Teleport Offset =====
|''Scalar''
|<code>3</code>
|
|Teleport offset, adds an offset in meters to the teleported vehicle if under terrain
|-
|}


Process of adding '''new shaders''' to '''audio project''' is quite similar, if not even simpler, to explained above procedure of adding audio banks.
=== VehicleAnimation ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Anim Graph =====
|''Resource Name''
|<code>0</code>
|
|Anim graph name
|-
|
===== Anim Instance =====
|''Resource Name''
|<code>0</code>
|
|Anim graph instance
|-
|
===== Vehicle Parts =====
|''Array of Objects''
|<code>0</code>
|
|List of animated vehicle parts
|-
|
===== Anim Variables =====
|''Array of Objects''
|<code>0</code>
|
|Bindings of anim variables and signals
|-
|
===== Wake Command =====
|''Object''
|<code>0</code>
|
|Command used to wake a sleep node
|-
|}


In principle, those two steps have to be done for both '''Close''' and '''Open''' variants:
=== VehiclePartAnimation ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Part Type =====
|''Integer''
|<code>0</code>
|
|Type of vehicle part (internal refers to a vehicle entity)
|-
|
===== Slot Name =====
|''String''
|<code>0</code>
|
|Name of a slot in slot manager representing vehicle part
|-
|
===== Start Node =====
|''String''
|<code>0</code>
|
|Node where to start from
|-
|}


* Click on '''Shader''' button in top section of the main window
=== VehiclePartRotor ===
* Connect '''Out''' port on '''Bank node''' with '''In port on Shader node'''
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Axis =====
|''Integer''
|<code>0</code>
|
|Local space axis the rotor axis is best aligned with.
|-
|}


Once again, it is also recommended to '''change names''' of the nodes and then '''group''' them improve readability of the audio project.
=== BaseCompartmentManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Door Info List =====
|''Array of Objects''
|<code>0</code>
|
|List of doors which can be used to access this compartment. Recommended maximum number of door infos is 64.
|-
|
===== Compartment Slots =====
|''Array of Objects''
|<code>0</code>
|
|List of compartments definitions for slot to be registered into
|-
|}


[[Image:armareforger-new-prop-sound-adding-shader.gif]]
=== BaseCompartmentDoor ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Anim Door Index =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Open Close Door Anim Graph =====
|''Resource Name''
|<code>0</code>
|
|Animation graph to be used for opening and closing door. Must be the same as on one of the entity ancestors.
|-
|}


=== Adding special nodes ===
=== BaseCompartmentSlot ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Default Occupant Name =====
|''String''
|<code>0</code>
|
|Entity to find (by name) to set as occupant for this compartment
|-
|
===== Compartment Unique Name =====
|''String''
|<code>0</code>
|
|Unique name for identification of multiple compartments with same type/class
|-
|
===== Compartment Action =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Get Out Action =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Jump Out Action =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Switch Seat Action =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Additional Actions =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Passenger Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Forced Free Look =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Mouse Steering =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Skip Character Door Animations From Seat =====
|''Boolean''
|<code>0</code>
|
|The door closing animation (while getting in) and the door opening animation (while getting out) will not play on the character.
|-
|
===== Eject Unconscious And Dead Characters =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Characters Can Fall Out On Flip =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Characters Fall Out Vector Seat Space =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Seat Type =====
|''Integer''
|<code>0</code>
|
|Seat type for animation instance identification
|-
|
===== Door Info List =====
|''Array of Integers''
|<code>0</code>
|
|List of doors which can be used to access this compartment.
|-
|
===== Override Entry Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Override Exit Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== UIInfo =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Base Coverage =====
|''Scalar''
|<code>3</code>
|
|Defines how 'Covered' the compartment sounds by default. 1 = fully covered, 0 = open
|-
|
===== Can Occupant Equip Gadget =====
|''Boolean''
|<code>0</code>
|
|Speciffies either gadget can be equiped by occupant?
|-
|
===== Restricted Item Types =====
|''Array of Strings''
|<code>0</code>
|
|Item types that cannot be used in the compartment(see ECommonItemType enum for possible values)
|-
|
===== Auto Connect To Turret =====
|''String''
|<code>0</code>
|
|Automatically take over the turret with the given name when entering the compartment
|-
|
===== Auto Connect Context Indices =====
|''Flags''
|<code>0</code>
|
|ContextIDs that should be made active when auto-connecting to a turret
|-
|
===== Can Turn Out =====
|''Boolean''
|<code>0</code>
|
|Can character perform turn out from this compartment?
|-
|
===== Turn Out Door Idx =====
|''Integer''
|<code>0</code>
|
|When turning out/in, which door do we open/close?
|-
|}


Next in audio project configuration will be adding of '''Amplitude, Frequency & Spatiality''' nodes to the working file. Adding of those nodes should be at this point quite straightforward so in this chapter we will focus more on '''configuration of new nodes'''.
=== BaseSlotMapping ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Slot Name =====
|''String''
|<code>0</code>
|
|Assigned slot
|-
|}


Beginning with '''Amplitude''' node, here are few things that has be done in order to have it working correctly:
=== CargoCompartmentSlot ===
Inherits from: [[#BaseCompartmentSlot|BaseCompartmentSlot]]


* In '''Item Detail''' window, change '''Curve''' parameter from '''None''' to '''Logarithm'''. This action will enable '''attenuation of the sound''' or in other words, sound will be more '''silent the further away you are from the sound source'''.
{| class="wikitable"
** After changing '''Curve''' parameter to '''Logarithm''', two new parameters should appear''':'''
|+
*** '''Inner Range''' - this parameter define distance in meters below no attenuation is applied. By default it is set to 1 and for this asset we can leave it as it is
!Param
*** '''Outer Range''' - this parameter define distance in meters beyond sound is muted. For such small drawer as this, '''5 meters''' would be a sensible number
!Type
* '''Amplitude Out''' port should be connected to '''Amplitude''' port on both '''Close & Open''' shaders.
!Default value
!Unit
!Description
|-
|
===== Context Name =====
|''String''
|<code>0</code>
|
|The unique identifier of this context which will be used for cargo compartment registration and hashmap searches.
|-
|}


Second on the list is '''Frequency''' node, which also affects attenuation of the sound & similar to '''Amplitude''' node, following things have to be adjusted on that node
=== CompartmentAccessibilityContext ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== BBHalf Extents =====
|''Vector with 3 elements''
|<code>3</code>
|
|Trace Bounding Box half extents
|-
|
===== Trace Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Trace offset from reffrence Point info
|-
|
===== Trace Length =====
|''Scalar''
|<code>3</code>
|
|Trace Length (change sign to change trace direction).
|-
|
===== Use Entry Points As Refference =====
|''Boolean''
|<code>0</code>
|
|Should door entry point info should be used as refference
|-
|
===== Test Layer =====
|''Flags''
|<code>0</code>
|
|Perform test in this phys layers
|-
|
===== Exclude Physics Layer =====
|''Flags''
|<code>0</code>
|
|Ignore bodies with this layers when performing test
|-
|}


* In '''Item Detail''' window, enable '''Enable Distance Att''' parameter
=== CompartmentDoorInfo ===
** Default values should be fine for this rugged desk - for more information see Audio Editor nodes documentation
Inherits from: [[#BaseCompartmentDoor|BaseCompartmentDoor]]
* '''Frequency Out''' port should be connected to '''Frequency''' port on both '''Close & Open''' shaders.


Last but not least it is time to configure '''Spatiality''' node, which controls 3D sound perception.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Context Name =====
|''String''
|<code>0</code>
|
|The unique identifier of this context which will be used for compartment door registration and hashmap searches.
|-
|
===== Coverage =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Open Door Action =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Close Door Action =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Entry Position Info =====
|''Object''
|<code>0</code>
|
|Point that is used for prediction while opening and closing door, as well as while getting in the vehicle (unless we are already aligning to the seat, if the seat prediction is active).
|-
|
===== AIEntry Position Info =====
|''Object''
|<code>0</code>
|
|Point that is used for AI when getting into vehicle. Should be set only when AI cannot get into vehicle from EntryPointInfo
|-
|
===== AIJump Target Position Info =====
|''Object''
|<code>0</code>
|
|Point that is used for AI when getting into vehicle and need to jump. Should be set only when AI cannot get into vehicle from EntryPointInfo
|-
|
===== Exit Position Info =====
|''Object''
|<code>0</code>
|
|Point that is used for prediction while exiting vehicle, should be close to the doors.
|-
|
===== Get In Teleport =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Get Out Teleport =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Portal Position Info =====
|''Object''
|<code>0</code>
|
|Point that is used for locating the light portal. If not provided and the door is not fake, fetching light portal position is attempted by matching this door's context name with the context name on ActionManagerComponent. If a match is found, the pivot ID from the action is used.
|-
|
===== Portal Signal Name =====
|''String''
|<code>0</code>
|
|Signal for controlling the portal. Only used is Fake Door is set. Usefull when there's no physical door present yet we still want to register a light portal (e.g. small window openings on armored vehicles). If left empty and the context name is given, an attempt to fetch the signal name via ActionManagerComponent is made among its ScriptedSignalUserActions.
|-
|
===== Align During Get Out =====
|''Boolean''
|<code>0</code>
|
|If true, character can align from the seat to the door during get out. Otherwise they stay at the seat.
|-
|
===== Get In Aligning Teleport =====
|''Boolean''
|<code>0</code>
|
|If true, aligning of character to seat will be immediate (teleport). If false, aligning will be gradual over the course of next few frames.
|-
|
===== Get Out Aligning Teleport =====
|''Boolean''
|<code>0</code>
|
|If true, aligning of character to exit point will be immediate (teleport). If false, aligning will be gradual over the course of next few frames.
|-
|
===== Get In Seat Aligning On Event =====
|''Boolean''
|<code>0</code>
|
|If true, aligning of character to seat will wait until Event_GetOutAlignToExitPoint event. Otherwise it will be performed immediately on vehicle entering.
|-
|
===== Get Out Aligning On Event =====
|''Boolean''
|<code>0</code>
|
|If true, aligning of character to exit point will wait until Event_GetOutAlignToExitPoint event. Otherwise it will be performed immediately on vehicle exiting.
|-
|
===== Fake Door =====
|''Boolean''
|<code>0</code>
|
|Set to true if the door are not physically present
|-
|
===== Activate Physics =====
|''Boolean''
|<code>0</code>
|
|If true, character physics will activate during door opening/closing action after it has lerped to entry point.
|-
|
===== Stance Change On Exit =====
|''Integer''
|<code>0</code>
|
|Sets into which stance will character go upon exit. No change keeps the stance since entering the vehicle.
|-
|
===== Accessibility Settings =====
|''Object''
|<code>0</code>
|
|
|-
|}


* In '''Item Detail''' window, change '''Spatial Factor''' parameter '''to 1.0 -''' this will enable 3D like perception of the sound.
=== CompartmentToSlotMapping ===
* '''Spatiality Out''' port should be connected to '''Spatiality''' port on both '''Close & Open''' shaders.
Inherits from: [[#BaseSlotMapping|BaseSlotMapping]]


[[Image:armareforger-new-prop-sound-adding-special-nodes.gif]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Coverage =====
|''Scalar''
|<code>3</code>
|
|Defines how 'Covered' the slot is. 1 = fully covered, 0 = open
|-
|
===== Compartments =====
|''Array of Strings''
|<code>0</code>
|
|Compartments connected to this slot
|-
|}


=== Adding sound nodes ===
=== TurretCompartmentSlot ===
Inherits from: [[#BaseCompartmentSlot|BaseCompartmentSlot]]


With shaders being properly configured, it is time to move to '''Sound''' nodes. In this case, '''name of the Sound node is important''', since it will be later used in script to trigger '''playing of the sound event'''. Sound nodes can be added by clicking on '''Sound''' button in top section of the main window. Both '''close and open action need a separate Sound node''', so two '''Sound''' nodes are necessary.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Direct Aim Mode =====
|''Boolean''
|<code>0</code>
|
|Is aiming uses direct mode? (BTR...)
|-
|
===== Allow Aiming =====
|''Boolean''
|<code>0</code>
|
|Should aiming be allowed when in compartment
|-
|
===== Procedural Sidestepping And Height Adjustment =====
|''Boolean''
|<code>0</code>
|
|Allow procedural sidestepping and height adjustment - walking around a turret is not a part of the animation poses, but done using commands.
|-
|
===== Sidestep Angle =====
|''Scalar''
|<code>3</code>
|
|The change in angle if the character performs a sidestep, in degrees.
|-
|
===== Sidestep Margin =====
|''Scalar''
|<code>3</code>
|
|How much the character can turn before a sidestep is triggered, in degrees.
|-
|
===== Height Adjustment Limits =====
|''Vector with 2 elements''
|<code>3</code>
|
|Min and max height between the weapon handles and the floor that the animations graph can handle. X=Min, Y=Max, both in centimeters.
|-
|
===== Sidestep Ray ZOffset =====
|''Scalar''
|<code>3</code>
|
|Offset of the ray determining whether the character can move left or right. Defined in centimeters in character space. Negative value moves the ray to the back.
|-
|
===== Height Adjustment Ray ZOffset =====
|''Scalar''
|<code>3</code>
|
|Offset of the ray determining the standing height from the root of the character. Defined in centimeters in character space. Negative value moves the ray to the back.
|-
|
===== Character Weapon Handling =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


Once both nodes are present in work board, change their name to '''SOUND_DRAWER_CLOSE''' and '''SOUND_DRAWER_OPEN''' and then connect it to respective shaders.
=== BaseFuelNode ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Fuel Type =====
|''Integer''
|<code>0</code>
|
|Fuel type
|-
|
===== Max Fuel =====
|''Scalar''
|<code>3</code>
|
|Maximum amount of fuel this component can hold
|-
|
===== Fuel Cap Position =====
|''Object''
|<code>0</code>
|
|Fuel cap point representation.
|-
|}


'''Sound''' nodes have quite a lot of parameters which can be tweaked so at later stage, when whole asset is configured, it is recommended to play with parameters that are available over there.
=== FuelManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Fuel Nodes =====
|''Array of Objects''
|<code>0</code>
|
|List of context definitions for user actions to be registered into
|-
|}


[[Image:armareforger-new-prop-sound-adding-sound-node.gif]]
=== BaseLightManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Lights Enabled =====
|''Boolean''
|<code>0</code>
|
|Are lights enabled?
|-
|
===== High Beam Turns Off Head Lights =====
|''Boolean''
|<code>0</code>
|
|Do high beam lights turn off headlights
|-
|
===== Light Slots =====
|''Array of Objects''
|<code>0</code>
|
|List of lights definitions for slot to be registered into
|-
|
===== Emissive Surface Slots =====
|''Array of Objects''
|<code>0</code>
|
|List of emissive surface parts
|-
|
===== Light Action =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


=== Adding final mix ===
=== BaseLightSlot ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Light Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Light Functional =====
|''Boolean''
|<code>0</code>
|
|Is light functional?
|-
|
===== Light State =====
|''Boolean''
|<code>0</code>
|
|Is light on?
|-
|
===== Light Position Info =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Light Prefab =====
|''Resource Name''
|<code>0</code>
|
|Prefab to spawn in that slot.
|-
|
===== Light Radius Override =====
|''Scalar''
|<code>3</code>
|
|Overrides the prefab radius if above 0
|-
|
===== Light Cone Angle Override =====
|''Scalar''
|<code>3</code>
|
|Overrides the prefab radius if above 0
|-
|
===== Light Cast Shadows Override =====
|''Integer''
|<code>0</code>
|
|Overrides the prefab radius if above -1
|-
|
===== Light Should Tick =====
|''Boolean''
|<code>0</code>
|
|Should light tick?
|-
|
===== Light Side =====
|''Integer''
|<code>0</code>
|
|Which side of the vehicle is the light on?
|-
|
===== Light Phase Time =====
|''Scalar''
|<code>3</code>
|
|Time for each Light Phase
|-
|
===== Is Presence Light =====
|''Boolean''
|<code>0</code>
|
|Should be considered a presence light?
|-
|
===== Parent Surface =====
|''String''
|<code>0</code>
|
|
|-
|}


Final step will be adding of [enfusion://ResourceManager/~ArmaReforger:Sounds/FinalMix.afm FinalMix.afm] (''also known as [[Arma_Reforger:Audio_Editor:_Nodes#Mixer|Mixer]]'') to the audio project and then connecting outputs of '''Sound''' nodes to '''ENV_Objects''' port on '''OutputState''' node.
=== SurfaceLightConfigItem ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== For Light Type =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Priority =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Emissive Multiplier =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Emissive Color Tint =====
|''Color''
|<code>4</code>
|
|
|-
|}


[[Image:armareforger-new-prop-sound-final-mix.gif]]
=== EmissiveLightSurfaceSlot ===
Inherits from: [[#RegisteringComponentSlotInfo|RegisteringComponentSlotInfo]]


=== Result ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Light Type =====
|''Flags''
|<code>0</code>
|
|
|-
|
===== Light Side =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Emissive On Multiplier =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Emissive Off Multiplier =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Configurations Override =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


In the end, audio project should look somewhat similar to the picture below. Since '''Procedural Animation Editor''' & '''Audio Editor''' are sharing a lot of code, it is also possible to [[#Aligning_and_grouping_nodes|'''align & group nodes''']] here too.
=== VehicleWheelSound ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Filename =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Min step =====
|''Scalar''
|<code>3</code>
|
|Minimum distance for repeating trace
|-
|
===== Sound Point =====
|''Object''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-sound-audio-project-result.png|center]]
=== VehicleSoundComponent ===
{{Clear}}
Inherits from: [[#SoundComponent|SoundComponent]]
It is also possible to check playback of the sounds inside '''Audio Editor''' - without switching to play mode - by selecting node and then hitting '''space''' button. Example of using sound debug can be found on [[Arma_Reforger:Weapon_Modding#Audio_Bank_Content_Change|Weapon Modding]] tutorial page.


== Applying sound to prefab ==
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Wheels =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-sound-adding-component.png|left]]
=== TurretComponent ===
Inherits from: [[#AimingComponent|AimingComponent]]


In order to apply sounds to prefab, first step towards would be '''adding of SoundComponent''' to it. As described before, this can be achieved by using '''[[Arma_Reforger:Prefabs_Basics#Adding_new_components_to_entity_instance|+ Add Component]]''' button and selecting '''SoundComponent''' from list.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== aim Direction =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Camera Ads Attachment =====
|''Object''
|<code>0</code>
|
|ADS Camera attachment reference
|-
|
===== Turret Init Stabilization =====
|''Integer''
|<code>0</code>
|
|Turret init stabilization
|-
|
===== Turret Enabled Stabilization =====
|''Integer''
|<code>0</code>
|
|Turret enabled stabilization
|-
|
===== missile Weapon Link =====
|''Object''
|<code>0</code>
|
|
|-
|
===== ik Targets =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== aim Rotation Bones =====
|''Array of Strings''
|<code>0</code>
|
|Name of bones that rotate during turret aiming.
|-
|
===== Turret Speed =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret Speed [deg/s]
|-
|
===== Turret Acceleration =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret Acceleration [deg/s^2]
|-
|
===== Turret Deceleration =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret Deceleration [deg/s^2]
|-
|
===== Turret Interpolation Max Speed =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret Interpolation Max Speed. Used only for interpolation on non owner player.
|-
|
===== Turret Interpolation Speed Control =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret Interpolation Speed Controls. Used only for interpolation on non owner player.
|-
|
===== Turret Crank Ratio =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret to crank ratio for hand-cranked turrets. Only used for animation purposes
|-
|
===== Turret Parts =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== Turret Part Signals =====
|''Array of Strings''
|<code>0</code>
|
|Turret signals forwarded all turret parts
|-
|
===== Base Speed =====
|''Scalar''
|<code>3</code>
|
|Base Speed [deg/s]
|-
|
===== Base Acceleration =====
|''Scalar''
|<code>3</code>
|
|Base Acceleration [deg/s^2]
|-
|
===== Base Deceleration =====
|''Scalar''
|<code>3</code>
|
|Base Deceleration [deg/s^2]
|-
|
===== Base Interpolation Max Speed =====
|''Scalar''
|<code>3</code>
|
|Base Interpolation Max Speed. Used only for interpolation on non owner player.
|-
|
===== Base Interpolation Speed Control =====
|''Scalar''
|<code>3</code>
|
|Base Interpolation Speed Controls. Used only for interpolation on non owner player.
|-
|
===== Use Weapon Sights =====
|''Boolean''
|<code>0</code>
|
|Allow turret to use weapon sights
|-
|}


Once that component is present and selected, it is possible to add new element to '''Filenames''' array. Since in this tutorial only single '''.acp''' file was created, one element in this array should be enough.
=== TurretPart ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Slot Name =====
|''String''
|<code>0</code>
|
|Name of a slot in slot manager representing turret part
|-
|}


After new element in array is present, it is possible to fill that property either by drag and dropping '''audio project file''' on that resource field or by clicking on button with two dots and the selecting '''Rugged Desk .acp file.'''
=== TurretSlotComponent ===
{{Clear}}
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attach Type =====
|''Object''
|<code>0</code>
|
|EntitySlotInfo
|-
|
===== Turret Template =====
|''Resource Name''
|<code>0</code>
|
|TURRET_TEMPLATE
|-
|}


== Playing sound in script ==
=== VehicleBaseSimulation ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Signals Source Access =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Animation =====
|''Object''
|<code>0</code>
|
|
|-
|}


First step towards triggering a sound from the script will be fetching of '''SoundComponent''' in '''SCR_DrawerUserAction script'''. Similar to '''SignalManagerComponent''', this can done by using [enfusion://ScriptEditor/scripts/Core/generated/Entities/IEntity.c;536 '''FindComponent'''] method.
=== VehicleFixedWingSimulation ===
<enforce>
Inherits from: [[#VehicleBaseSimulation|VehicleBaseSimulation]]
class SCR_DrawerUserAction : ScriptedUserAction
{
[...]
//! Sound component
private SoundComponent m_SoundComponent;


//------------------------------------------------------------------------------------------------
{| class="wikitable"
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
|+
{
!Param
[...]
!Type
// get Sound component
!Default value
m_SoundComponent = SoundComponent.Cast(pOwnerEntity.FindComponent(SoundComponent));
!Unit
}
!Description
}
|-
</enforce>
|
Next, at the bottom of '''PerformAction''' method, code for triggering sounds can be added. This is done by calling '''SoundEvent''' method and passing name of the '''Sound''' node, which was previously defined in '''audio project''', as a parameter.
===== Simulation =====
<enforce>
|''Object''
class SCR_DrawerUserAction : ScriptedUserAction
|<code>0</code>
{
|
//---------------------------------------------------------
|
override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
|-
{
|}
[...]
// Check if sound component exist
if (m_SoundComponent)
{
// If target value is above 0, then trigger SOUND_DRAWER_OPEN event, which will play sound of drawer opening
// Otherwise drawer closing sound will be played via SOUND_DRAWER_CLOSE sound event
if(targetValue > 0)
{
m_SoundComponent.SoundEvent("SOUND_DRAWER_OPEN");
}
else
{
m_SoundComponent.SoundEvent("SOUND_DRAWER_CLOSE");
}
}
}
}
</enforce>
Once those changes are saved and compiled, this desk should be already in state where closing and opening of drawers plays some sounds! Below you can find full code in case you had some troubles with implementing those extra bits of code


Full code
=== HelicopterRotorConfig ===
<spoiler>
{| class="wikitable"
<enforce>
|+
class SCR_DrawerUserAction : ScriptedUserAction
!Param
{
!Type
[Attribute( defvalue: "Drawer 1", uiwidget: UIWidgets.EditBox, desc: "Signal index of drawer" )]
!Default value
private string m_sSignalName; // for pairing with the user action
!Unit
!Description
|-
|
===== Simulation Index =====
|''Integer''
|<code>0</code>
|
|Links to rotor in simulation config
|-
|
===== Animation Index =====
|''Integer''
|<code>0</code>
|
|Links to vehicle part in animation config
|-
|
===== Static Model =====
|''Resource Name''
|<code>0</code>
|
|Model representing non-spinning rotor blades
|-
|
===== Spinning Model =====
|''Resource Name''
|<code>0</code>
|
|Model representing spinning rotor blades
|-
|
===== Destroyed Model =====
|''Resource Name''
|<code>0</code>
|
|Model representing destroyed rotor blades
|-
|}


private int m_iSignalIndex;
=== VehicleHelicopterSimulation ===
const float MAX_SIGNAL_VALUE = 0.25;
Inherits from: [[#VehicleBaseSimulation|VehicleBaseSimulation]]


//! Signal manager to pass signals into procedural animation
{| class="wikitable"
private SignalsManagerComponent m_SignalsManager;
|+
//! Sound component
!Param
private SoundComponent m_SoundComponent;
!Type
!Default value
!Unit
!Description
|-
|
===== Simulation =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Rotor Configs =====
|''Array of Objects''
|<code>0</code>
|
|Configuration of helicopter rotors
|-
|}


//------------------------------------------------------------------------------------------------
=== VehicleTrackedSimulation ===
override bool CanBeShownScript(IEntity user)
Inherits from: [[#VehicleBaseSimulation|VehicleBaseSimulation]]
{
return CanBePerformedScript(user);
}


//------------------------------------------------------------------------------------------------
{| class="wikitable"
override bool CanBePerformedScript(IEntity user)
|+
{
!Param
if(!m_SignalsManager) // Do nothing if there is no signal manager
!Type
return false;
!Default value
!Unit
!Description
|-
|
===== Simulation =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Track Positions =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Track Length =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Track Thickness =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Track Offset1 =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Track Offset2 =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Track Segment =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Track Sprocket Axle =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Track Idler Axle =====
|''Integer''
|<code>0</code>
|
|
|-
|}


if (m_iSignalIndex < 0) // Check if signal index is valid
=== VehicleWheeledSimulation ===
{
Inherits from: [[#VehicleBaseSimulation|VehicleBaseSimulation]]
m_iSignalIndex = m_SignalsManager.FindSignal(m_sSignalName);
return false;
}


return true;
{| class="wikitable"
}
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Simulation =====
|''Object''
|<code>0</code>
|
|
|-
|}


//---------------------------------------------------------
=== VehicleWheeledSimulation_SA_B ===
override void PerformAction(IEntity pOwnerEntity, IEntity pUserEntity)
Inherits from: [[#VehicleBaseSimulation|VehicleBaseSimulation]]
{
float targetValue = Math.AbsFloat((m_SignalsManager.GetSignalValue(m_iSignalIndex)) - MAX_SIGNAL_VALUE);


m_SignalsManager.SetSignalValue(m_iSignalIndex, targetValue);
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Simulation =====
|''Object''
|<code>0</code>
|
|
|-
|}


// Check if sound component exist
=== CarControllerComponent ===
if (m_SoundComponent)
Inherits from: [[#VehicleControllerComponent|VehicleControllerComponent]]
{
// If target value is above 0, then trigger SOUND_DRAWER_OPEN event, which will play sound of drawer opening
// Otherwise drawer closing sound will be played via SOUND_DRAWER_CLOSE sound event
if(targetValue > 0)
{
m_SoundComponent.SoundEvent("SOUND_DRAWER_OPEN");
}
else
{
m_SoundComponent.SoundEvent("SOUND_DRAWER_CLOSE");
}
}
}


//------------------------------------------------------------------------------------------------
{| class="wikitable"
override bool GetActionNameScript(out string outName)
|+
{
!Param
if((m_SignalsManager.GetSignalValue(m_iSignalIndex)) == 0)
!Type
{
!Default value
outName = "Open";
!Unit
} else
!Description
{
|-
outName = "Close";
|
}
===== Type =====
return true;
|''Integer''
}
|<code>0</code>
|
|Controls type
|-
|
===== Transmission RND =====
|''Boolean''
|<code>0</code>
|
|Transmission has three settings: reverse, neutral and drive
|-
|
===== Steering Forward Speed =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Steering speed when actively steering away from center [km/h, deg/s]
|-
|
===== Steering Backward Speed =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Steering speed when actively steering towards center [km/h, deg/s]
|-
|
===== Steering Center Speed =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Steering speed when no steering is applied [km/h, deg/s]
|-
|
===== Throttle Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Throttle application with respect to engine's RPM [rpm, %]
|-
|
===== Reverse Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Throttle application with respect to engine's RPM while in reverse [rpm, %]
|-
|
===== Throttle Reaction Time =====
|''Scalar''
|<code>3</code>
|
|Time to reach wanted value of throttle [s]
|-
|
===== Throttle Turbo Time =====
|''Scalar''
|<code>3</code>
|
|Time to reach wanted value of throttle in turbo mode [s]
|-
|
===== Throttle Turbo =====
|''Scalar''
|<code>3</code>
|
|Amount of throttle depending on turbo mode
|-
|
===== Throttle Effect =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Throttle Effect Reverse =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Braking Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Brake application over time [%, s]
|-
|
===== Brake Turbo Time =====
|''Scalar''
|<code>3</code>
|
|Time to reach wanted value of brake in turbo mode [s]
|-
|
===== Brake Effect =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Brake Effect Reverse =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Clutch Uncouple Time =====
|''Scalar''
|<code>3</code>
|
|Time to uncouple clutch [s]
|-
|
===== Clutch Couple Time =====
|''Scalar''
|<code>3</code>
|
|Time to couple clutch [s]
|-
|
===== Clutch Feedback Rpm =====
|''Scalar''
|<code>3</code>
|
|Feedback RPM at which moving off is disabled\nUses Idle RPM if set to 0\n[RPM]
|-
|
===== Clutch Uncouple Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM at which clutch is fully uncoupled while moving off
|-
|
===== Clutch Couple Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM at which clutch is fully coupled while moving off
|-
|
===== Clutch Feedback Factor =====
|''Scalar''
|<code>3</code>
|
|Clutch feedback RPM factor while moving off uphill or downhill
|-
|
===== Clutch Uncouple Factor =====
|''Scalar''
|<code>3</code>
|
|Clutch uncouple RPM factor while moving off uphill or downhill
|-
|
===== Clutch Couple Factor =====
|''Scalar''
|<code>3</code>
|
|Clutch couple RPM factor while moving off uphill or downhill
|-
|
===== Clutch Minimum Position =====
|''Scalar''
|<code>3</code>
|
|Minimum clutch position while moving off
|-
|
===== Clutch Minimum Factor =====
|''Scalar''
|<code>3</code>
|
|Minimum clutch position factor while moving off uphill or downhill
|-
|
===== Clutch Maximum Position =====
|''Scalar''
|<code>3</code>
|
|Maximum clutch position while moving off
|-
|
===== Clutch Maximum Factor =====
|''Scalar''
|<code>3</code>
|
|Maximum clutch position factor while moving off uphill or downhill
|-
|
===== Slope Smoothing =====
|''Scalar''
|<code>3</code>
|
|Factor of filter that smooths out upshift and downshift RPMs
|-
|
===== Latency =====
|''Scalar''
|<code>3</code>
|
|Minimum time between gear switches [s]
|-
|
===== Up Shift Factor =====
|''Scalar''
|<code>3</code>
|
|Upshift RPM factor while going uphill or downhill
|-
|
===== Up Shift Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM required for upshifting
|-
|
===== Down Shift Factor =====
|''Scalar''
|<code>3</code>
|
|Downshift RPM factor while going uphill or downhill
|-
|
===== Down Shift Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM required for downshifting
|-
|
===== Turbo Shift Factor =====
|''Scalar''
|<code>3</code>
|
|Upshifting and downshifting RPM ratio in Turbo mode
|-
|}


//------------------------------------------------------------------------------------------------
=== CarControllerComponent_B ===
override void Init(IEntity pOwnerEntity, GenericComponent pManagerComponent)
Inherits from: [[#VehicleControllerComponent|VehicleControllerComponent]]
{
m_SignalsManager = SignalsManagerComponent.Cast(pOwnerEntity.FindComponent(SignalsManagerComponent));
m_SoundComponent = SoundComponent.Cast(pOwnerEntity.FindComponent(SoundComponent));
}
}
</enforce></spoiler>


= Editor integration =
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Type =====
|''Integer''
|<code>0</code>
|
|Controls type
|-
|
===== Transmission RND =====
|''Boolean''
|<code>0</code>
|
|Transmission has three settings: reverse, neutral and drive
|-
|
===== Steering Forward Speed =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Steering speed when actively steering away from center [km/h, deg/s]
|-
|
===== Steering Backward Speed =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Steering speed when actively steering towards center [km/h, deg/s]
|-
|
===== Steering Center Speed =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Steering speed when no steering is applied [km/h, deg/s]
|-
|
===== Throttle Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Throttle application with respect to engine's RPM [rpm, %]
|-
|
===== Reverse Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Throttle application with respect to engine's RPM while in reverse [rpm, %]
|-
|
===== Throttle Reaction Time =====
|''Scalar''
|<code>3</code>
|
|Time to reach wanted value of throttle [s]
|-
|
===== Throttle Turbo Time =====
|''Scalar''
|<code>3</code>
|
|Time to reach wanted value of throttle in turbo mode [s]
|-
|
===== Throttle Turbo =====
|''Scalar''
|<code>3</code>
|
|Amount of throttle depending on turbo mode
|-
|
===== Braking Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|Brake application over time [%, s]
|-
|
===== Brake Turbo Time =====
|''Scalar''
|<code>3</code>
|
|Time to reach wanted value of brake in turbo mode [s]
|-
|
===== Clutch Uncouple Time =====
|''Scalar''
|<code>3</code>
|
|Time to uncouple clutch [s]
|-
|
===== Clutch Couple Time =====
|''Scalar''
|<code>3</code>
|
|Time to couple clutch [s]
|-
|
===== Clutch Uncouple Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM at which clutch is fully uncoupled while moving off
|-
|
===== Clutch Couple Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM at which clutch is fully coupled while moving off
|-
|
===== Clutch Uncouple Factor =====
|''Scalar''
|<code>3</code>
|
|Clutch uncouple RPM factor while moving off uphill or downhill
|-
|
===== Clutch Couple Factor =====
|''Scalar''
|<code>3</code>
|
|Clutch couple RPM factor while moving off uphill or downhill
|-
|
===== Clutch Minimum Position =====
|''Scalar''
|<code>3</code>
|
|Minimum clutch position while moving off
|-
|
===== Clutch Minimum Factor =====
|''Scalar''
|<code>3</code>
|
|Minimum clutch position factor while moving off uphill or downhill
|-
|
===== Slope Smoothing =====
|''Scalar''
|<code>3</code>
|
|Factor of filter that smooths out upshift and downshift RPMs
|-
|
===== Latency =====
|''Scalar''
|<code>3</code>
|
|Minimum time between gear switches [s]
|-
|
===== Up Shift Factor =====
|''Scalar''
|<code>3</code>
|
|Upshift RPM factor while going uphill or downhill
|-
|
===== Up Shift Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM required for upshifting
|-
|
===== Down Shift Factor =====
|''Scalar''
|<code>3</code>
|
|Downshift RPM factor while going uphill or downhill
|-
|
===== Down Shift Rpm =====
|''Scalar''
|<code>3</code>
|
|Engine RPM required for downshifting
|-
|
===== Turbo Shift Factor =====
|''Scalar''
|<code>3</code>
|
|Upshifting and downshifting RPM ratio in Turbo mode
|-
|}


{{Messagebox|'''Overview'''
=== HelicopterControllerComponent ===
Following topics will be covered in this paragraph
Inherits from: [[#VehicleControllerComponent|VehicleControllerComponent]]


* Creating placeable entities for in-game editor
{| class="wikitable"
* Configuring placeable entities appearance in entity browser|💬|#CDF}}  
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Ground Assist Disable Time =====
|''Scalar''
|<code>3</code>
|
|Time required to disable ground assist. Collective limit is removed.
|-
|
===== Ground Assist Enable Time =====
|''Scalar''
|<code>3</code>
|
|Time required to enable ground assist. Collective limit is applied.
|-
|
===== Ground Assist Collective Limit =====
|''Scalar''
|<code>3</code>
|
|Maximum collective value available while ground assist is active
|-
|}


{{Feature|informative|Recommended pages to familirize with: [[Arma_Reforger:Game_Master:_Editable_Entities_Configuration]], [[Arma_Reforger:Game_Master:_Image_Generation_Tutorial]], [[Arma_Reforger:Mod_Localisation]], [[Arma_Reforger:Asset_Browser_Mod_Integration]] }}
=== TurretControllerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Can Aim Only In ADS =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Has Moveable Base =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Limits Horiz =====
|''Vector with 2 elements''
|<code>3</code>
|
|Override aiming horizontal limits of turret (standing stance) if different than 0 (turn)
|-
|
===== Limits Vert =====
|''Vector with 2 elements''
|<code>3</code>
|
|Override aiming vertical limits of turret if (standing stance) different than 0 (elevation)
|-
|
===== Limits Horiz Prone =====
|''Vector with 2 elements''
|<code>3</code>
|
|Override aiming horizontal limits of turret (prone/sitting stance) if different than 0 (turn)
|-
|
===== Limits Vert Prone =====
|''Vector with 2 elements''
|<code>3</code>
|
|Override aiming vertical limits of turret if (prone/sitting stance) different than 0 (elevation)
|-
|
===== Ads Sound Bone Name =====
|''String''
|<code>0</code>
|
|Name of the bone where to play the ads in and out sound
|-
|
===== Should Aim In World Space =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Turret Reload Position =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret Reload Position. Use a value greater than 360 to disable one axis. [deg]
|-
|
===== Turret Unconscious Position =====
|''Vector with 2 elements''
|<code>3</code>
|
|Turret unconscious Position. [deg]
|-
|
===== Return To Position Before Reload =====
|''Boolean''
|<code>0</code>
|
|Should return back to the position before reloading after the reload
|-
|
===== Get Update Events When Empty =====
|''Boolean''
|<code>0</code>
|
|If checked, turret will received EV_FIXEDFRAME even when not occupied
|-
|
===== Can Be Overridden =====
|''Boolean''
|<code>0</code>
|
|If true, can be overridden to receive input from outside of the turret (for commander override or pilot/copilot controlled weapons
|-
|
===== Unique Turret Name =====
|''String''
|<code>0</code>
|
|Name of the turret, used to connect a remote turret to a compartment slot
|-
|}


=== VehicleControllerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max Startup Time =====
|''Scalar''
|<code>3</code>
|
|Maximum amount of time the engine startup should take per attempt (or if there are no animations)
|-
|
===== Max Startup Attempts =====
|''Integer''
|<code>0</code>
|
|Maximum number of attempts needed to start the engine
|-
|
===== Engine Startup Chance =====
|''Scalar''
|<code>3</code>
|
|Probability that each startup attempt has to succeed from 0 to 100
|-
|
===== Max Wants To Start Time =====
|''Scalar''
|<code>3</code>
|
|Maximum amount of time the turning of the engine key should logically take
|-
|
===== Air Intakes =====
|''Array of Objects''
|<code>0</code>
|
|air intake positions in local space of vehicle
|-
|
===== Max Lights Time =====
|''Scalar''
|<code>3</code>
|
|Maximum amount of time the light toggle should take (or if there are no animations)
|-
|
===== Shutdown Time =====
|''Scalar''
|<code>3</code>
|
|Amount of time (some) vehicle systems automatically toggle off after the shutdown
|-
|
===== Drowning Time =====
|''Scalar''
|<code>3</code>
|
|Amount of time needed to completely drown the engine when all air intakes are underwater
|-
|}


== Generating placeable entity ==
=== BaseWeaponManagerComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Default Weapon Index =====
|''Integer''
|<code>0</code>
|
|Default weapon index to be selected (WeaponSlotComponent->Weapon Slot Index)
|-
|
===== Sling Position =====
|''Object''
|<code>0</code>
|
|Where weapon should be if it would be hanging on the sling
|-
|}


Once the configuration of the prefab is done, it is possible to use one of the editor plugins to prepare '''Editable Entities'''. This can be done by using '''Create/Update Selected Editable Prefabs''' plugin, which will create '''new, editable prefabs''' for assets which usually are not replicated (''like props)'' and don't have one of the ''Editable Components'' attached to it.
=== BaseWeaponComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Signals Source Access =====
|''Object''
|<code>0</code>
|
|
|-
|
===== use Aiming Type =====
|''Integer''
|<code>0</code>
|
|defines which aiming component will be used
|-
|
===== is Throwable =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== is Fired From Script =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Weapon Type =====
|''Integer''
|<code>0</code>
|
|Defines how AI will recognize this weapon
|-
|
===== Allowed Raise =====
|''Integer''
|<code>0</code>
|
|Is the weapon limited to raise/lowered state?
|-
|
===== Shared Shot Span Index =====
|''Integer''
|<code>0</code>
|
|If set to a value other than -1, weapons or weapon slots in BaseWeaponManagerComponent with the same value will share the same last shot time (their RPM will be synchronized). This is useful for a double-feed system.
|-
|
===== should Handle Obstruction =====
|''Boolean''
|<code>0</code>
|
|Should weapon obstruction be handled with current weapon in hands?
|-
|
===== obstruction Test Character Offset =====
|''Vector with 3 elements''
|<code>3u</code>
|
|Offset from character obstruction reffrence point (neck), to weapon handling point
|-
|
===== obstruction Test Added Length =====
|''Scalar''
|<code>3u</code>
|
|Offset from trace endpoint (character refference point + character offset + weapon length) that will be include in obstruction test.
|-
|
===== obstruction Max Torso ZOffset =====
|''Scalar''
|<code>3u</code>
|
|How much does character move back his body when in significant or full obstruction. In Slight obstruction body will get lerped into this position.
|-
|
===== sign Obstr Weapon Constant Offset =====
|''Vector with 3 elements''
|<code>3u</code>
|
|Base offset for weapon move IK when in signficant obstruction.
|-
|
===== slight Obstr Weapon Max ZOffset =====
|''Scalar''
|<code>3u</code>
|
|How much does character move back his weapon via weapon move IK when in max slight obstruction.
|-
|
===== signi Obstr Weapon Max ZOffset =====
|''Scalar''
|<code>3u</code>
|
|How much does character move back his weapon via weapon move IK when in max significant obstruction.
|-
|
===== can Go To Full Obstruction =====
|''Boolean''
|<code>0</code>
|
|If false the weapon doesn't go to full obstruction no matter how it's clipping.
|-
|
===== obstruction Test BBScale =====
|''Vector with 3 elements''
|<code>3u</code>
|
|Scale to apply to weapon bounding box when performing obstruction
|-
|
===== sights Camera Roll Scaler =====
|''Scalar''
|<code>3u</code>
|
|Recoil Roll (angular Z rotation) camera scaler, 0 allowed
|-
|
===== Sound Int =====
|''Integer''
|<code>0</code>
|
|Value of corresponding sound signal when weapon is hold
|-
|
===== Deployment Trigger Effect =====
|''Object''
|<code>0</code>
|
|
|-
|}


Usage of that plugin is quite well explained on [[Arma_Reforger:Game_Master:_Editable_Entities_Configuration#Existing_Prefab|Game Master Existing Prefab Configuration]] page and therefore some of the details are skipped here. In case of that set of rugged desk props following steps were performed:
=== WeaponComponent ===
Inherits from: [[#BaseWeaponComponent|BaseWeaponComponent]]


* In '''Resource Browser''' (''main one, it doesn't work with Resource Browser 2!'')  attached to '''Resource Manager''', all prefabs in '''PrefabsEditable → Military → Camps ''' folder were selected. Assets with '''_base,_Base,_dst,_Dst or_DST suffix are automatically omitted''' by the plugin so they can be also selected without any issues - this behavior can be tweaked in [enfusion://ResourceManager/~ArmaReforger:Configs/Workbench/EditablePrefabs/EditablePrefabsConfig.conf '''EditablePrefabsConfig.conf'''].
{| class="wikitable"
* From '''Plugins→ Editor''' menu '''Create/Update Selected Editable Prefabs''' plugin was selected. Alternatively '''{{Controls|Ctrl|Shift|U}}''' shortcut can be used
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== UIInfo =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Weapon Slot Type =====
|''String''
|<code>0</code>
|
|Weapon slot type
|-
|
===== Weapon Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|Linear offset of weapon when held
|-
|
===== Weapon Offset ADS =====
|''Vector with 3 elements''
|<code>3</code>
|
|Linear offset of weapon when aiming
|-
|
===== Can Be On Sling =====
|''Boolean''
|<code>0</code>
|
|Should current weapon be allowed to be placed on sling?
|-
|
===== Be Active When Dropped =====
|''Boolean''
|<code>0</code>
|
|Should the weapon be active when it is dropped?
|-
|
===== Be Active When Init Without Parent =====
|''Boolean''
|<code>0</code>
|
|Should the weapon be active when it is spawned without parent?
|-
|
===== Weapon Index =====
|''Integer''
|<code>0</code>
|
|Numeric index of weapon, used for ordering in weapon manager copmonent
|-
|}


After that, new prefabs should be automatically generated. Those new '''editable prefabs''' created by the plugin are stored in '''Auto''' folder of filesystem ''(aka addon/mod)'' they belong to. Over there, new inherited prefabs with '''E_''' prefix are present, which are '''inheriting from original, non editable prefabs''' and they are '''mimicking file structure of the original prefab'''. In this case, it means that all editable prefabs should be located in '''PrefabsEditable → Auto → Military → Camps''' folder.
=== WeaponSlotComponent ===
Inherits from: [[#BaseWeaponComponent|BaseWeaponComponent]]


Additionally, plugin also prepares '''placeholder preview images''' for all assets - without it, it is impossible to go through next step which is generation of proper preview images.
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attach Type =====
|''Object''
|<code>0</code>
|
|Relative transformation of weapon when its held in hands
|-
|
===== Weapon Template =====
|''Resource Name''
|<code>0</code>
|
|Weapon template to spawn by default in this slot
|-
|
===== Weapon Slot Type =====
|''String''
|<code>0</code>
|
|Weapon type that can be accepted in this weapon slot
|-
|
===== Weapon Slot Index =====
|''Integer''
|<code>0</code>
|
|Numeric index of slot, used for ordering
|-
|
===== Holstered Index =====
|''Integer''
|<code>0</code>
|
|Numeric index of holster variable, used for animation
|-
|}


[[Image:armareforger-new-prop-editor-placeable-entities.gif]]
=== BaseWeaponAimModifier ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Name =====
|''String''
|<code>0</code>
|
|
|-
|
===== Is Enabled =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


== Generating preview images ==
=== RecoilData ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Curve X =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Curve Y =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Curve Z =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Curve Time Scale =====
|''Scalar''
|<code>3</code>
|
|Time multiplier of recoil progress
|-
|
===== Curve Magnitudes =====
|''Vector with 3 elements''
|<code>3</code>
|
|Curve magnitudes per curve axis
|-
|
===== Curve Mins =====
|''Vector with 3 elements''
|<code>3</code>
|
|Calculated progress value is clamped between min and max.
|-
|
===== Curve Maxs =====
|''Vector with 3 elements''
|<code>3</code>
|
|Calculated progress value is clamped between min and max.
|-
|
===== Base Recoil Scale =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Move Recoil Scale =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== One Hand Scale =====
|''Scalar''
|<code>3</code>
|
|Extra scale that is additively added when weapon is held in one hand.
|-
|
===== Deployment Multiplier =====
|''Vector with 3 elements''
|<code>3</code>
|
|Deployment multiplier per axis (no bipod)
|-
|
===== Bipod Deployment Multiplier =====
|''Vector with 3 elements''
|<code>3</code>
|
|Deployment multiplier per axis (with bipod)
|-
|}


New, proper preview images can be created using special world located within Arma Reforger data ({{Link|enfusion://WorldEditor/worlds/Editor/Slots/AssetImages/Eden_AssetImages.ent;6454.71,171.752,6435.05;-27.5997,25.4986,0|link}}) . Instructions about usage of that special world can be found on [[Arma Reforger:Game Master: Image Generation Tutorial|Game Master: Image Generation Tutorial]] and here you can find a short instruction on how it was done for '''Sample New Prop''' addon:
=== RecoilWeaponAimModifier ===
Inherits from: [[#BaseWeaponAimModifier|BaseWeaponAimModifier]]


* Load {{Link|enfusion://WorldEditor/worlds/Editor/Slots/AssetImages/Eden_AssetImages.ent;6454.71,171.752,6435.05;-27.5997,25.4986,0|Eden_AssetImages.ent}}
{| class="wikitable"
* Select '''SCR_EditorImageGeneratorEntity''' from Hierarchy window
|+
* Adjust viewport to 400x300
!Param
* In diagnostic menu, set ''Game > Compressed format in WB'' to ''true''
!Type
* Select prefabs in '''Resource Browser''' attached to '''World Editor''' which should be '''subject of preview image generation'''. In this case all '''prefabs in PrefabsEditable → Auto → Military → Camps folder were selected'''
!Default value
* Switch to '''Play''' mode
!Unit
!Description
|-
|
===== Linear Data =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Angular Data =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Turn Offset Data =====
|''Object''
|<code>0</code>
|
|
|-
|}


If editable prefabs were correctly generated in previous step, then new pictures should be ready to use. If not, check '''Console Log''' for hints about what went wrong.
=== SwayWeaponAimModifier ===
Inherits from: [[#BaseWeaponAimModifier|BaseWeaponAimModifier]]


{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Linear Damping =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Linear Magnitude =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Angular Damping =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Angular Magnitude =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== ADS Multiplier =====
|''Scalar''
|<code>3</code>
|
|Breath sway ADS multiplier
|-
|
===== Focus Multiplier =====
|''Scalar''
|<code>3</code>
|
|Breath sway focus mode multiplier (ADS only), overrides ADS mult
|-
|
===== Stamina Magnitude Curve =====
|''Array of Vectors with 2 elements''
|<code>3</code>
|
|
|-
|
===== Stamina Scale Mins =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Stamina Scale Maxs =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Linear Inertia Magnitude =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Angular Inertia Magnitude =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Angular Inertia Magnitude ADS =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Linear Inertia Decay Speed =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Angular Inertia Decay Speed =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Lower Translation =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Lower Rotation =====
|''Vector with 3 elements''
|<code>5u</code>
|
|
|-
|
===== Lower Speed =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Damage To Sway =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== One Hand Multiplier =====
|''Scalar''
|<code>3</code>
|
|Additive scale added on top of default scale when weapon is held in one hand.
|-
|
===== Deployment Multiplier =====
|''Scalar''
|<code>3</code>
|
|Scale multiplier when weapon is deployed.
|-
|}


== Changing display name ==
=== WeaponAimModifier ===
Inherits from: [[#BaseWeaponAimModifier|BaseWeaponAimModifier]]


[[Image:armareforger-new-prop-editor-display-name.png|left]]
{| class="wikitable"
Display name of the prefab can be changed in prefabs located in '''PrefabsEditable''' folder inside '''Auto''' subfolder which was described in paragraph about generating placeable entities.
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== AIM X COEF =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== AIM Y COEF =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== TURN X COEF =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== TURN Y COEF =====
|''Scalar''
|<code>3</code>
|
|
|-
|}


Once those editable prefabs are located and present in World Editor (either by placing them or using Edit prefab button), it is time to change their configuration. Bunch of editor related configuration is located in '''SCR_EditableEntityComponent''' and among parameters that you can change there you can find '''Name''' parameter in '''Visualization''' section of that component.
=== ZeroingWeaponAimModifier ===
Inherits from: [[#BaseWeaponAimModifier|BaseWeaponAimModifier]]


Over here, change '''Name''' parameter so it reflects desired display name of that asset in [[Arma_Reforger:Game_Master#Entity_Browser|'''Entity Browser''']] - in this case ''Sand Rugged Desk'' was picked, and it was made inline with [[Arma_Reforger:Editor_Entity_Naming_Conventions]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Rotation Interpolation Speed =====
|''Scalar''
|<code>3</code>
|
|Speed of rotation interpolation, multiplier of time delta
|-
|
===== Translation Interpolation Speed =====
|''Scalar''
|<code>3</code>
|
|Speed of translation interpolation, multiplier of time delta
|-
|}


{{Clear}}
=== AttachmentSlotComponent ===
=== Setting up localization table ===
{| class="wikitable"
{{Feature|warning|Currently, non localized entities cannot be searched in Entity Browser, therefore it is '''highly recommend to localize editable prefabs!'''}}
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Attachment Slot =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Attachment Type =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility.
|-
|
===== Attachment Obstructs =====
|''Boolean''
|<code>0</code>
|
|Whether attachment obstructs other attachments.
|-
|
===== Show In Inspection =====
|''Boolean''
|<code>0</code>
|
|The slot should be displayed while doing the inspection?
|-
|}


After changing the strings in the prefab, it is possible to use '''localization plugin''' to add string to localization table. It is also worth to note, that in some case it might be faster to first '''localize placeholder strings''' and then '''change those strings inside''' '''String Editor -''' in any case, both workflows have their advantages and its matter of preference which one to use.
=== BaseFireMode ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Max Burst =====
|''Scalar''
|<code>3</code>
|
|Number of projectiles spawned  in time (-1 for full auto)
|-
|
===== Burst Type =====
|''Integer''
|<code>0</code>
|
|How the weapon reacts to trigger release during a burst
|-
|
===== Max Salvo =====
|''Scalar''
|<code>3</code>
|
|Number of projectiles spawned in one simultaneously, should be <= to MaxBurst and <= number of muzzles (-1 to use all muzzles)
|-
|
===== Rounds Per Minute =====
|''Scalar''
|<code>3</code>
|
|Rounds per minute
|-
|
===== UIName =====
|''String''
|<code>0</code>
|
|How this firemode is visible for player on HUD
|-
|
===== Manual Action =====
|''Boolean''
|<code>0</code>
|
|If true, weapon has manual action (bolt/pump etc)
|-
|
===== Gamepad Trigger effect =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Empty Trigger effect =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Firing Trigger effect =====
|''Object''
|<code>0</code>
|
|
|-
|}


In this example, first method was used - adjusting display names in prefab and then putting those strings to '''localization table (.st)''' via '''Localize Selected Assets''' plugin. Before that, it is necessary to create localization table and runtime variant of it and the register those elements in game project. Whole process is described in detail on [[Arma Reforger:Mod Localisation|Mod Localisation]] so here is short version of that procedure:
=== BaseMagazineComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Magazine Well =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility with magazine types.
|-
|
===== Custom Animation Attributes =====
|''Object''
|<code>0</code>
|
|Custom character animation attributes override when character using weapon with this magazine.
|-
|}


* Create "'''Language'''" folder in the root addon file system
=== MagazineAnimationComponent ===
* Inside of that folder, following files have to be created:
Inherits from: [[#BaseItemAnimationComponent|BaseItemAnimationComponent]]
** '''GUI string table''' - this is main file which is used by '''String Editor'''. It is important to assign to it unique name so it doesn't clash with other mods - in this case file was called ''samplenewprop_localization.st''
*** ''After  samplenewprop_localization.st'' was created, click on it with {{Controls|RMB}} and select '''Open File in New Tab''' option from '''Context Menu''' and set parameters to '''following values'':'''''
**** ''Target Prefix'': '''Target_'''
**** ''Item Class Name'': '''CustomStringTableItem'''
** '''StringTableRuntime -''' version of localization table used by the game - it is stripped from all '''String Editor''' related content. Each language needs separate config file. In this tutorial, ''samplenewprop_localization.en_us.conf'' was created


[[Image:armareforger-new-prop-editor-creating-localization.gif]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Animated Mesh =====
|''Resource Name''
|<code>0</code>
|
|Animated mesh, that will be used when magazine is active
|-
|
===== Bullet Meshes To Hide =====
|''Array of Strings''
|<code>0</code>
|
|
|-
|
===== Empty State Meshes To Hide =====
|''Array of Strings''
|<code>0</code>
|
|
|-
|}


Once files are created, it is time to plug them into game project:
=== MagazineComponent ===
Inherits from: [[#BaseMagazineComponent|BaseMagazineComponent]]


* Open '''Workbench options''' by clicking on '''Options''' from '''Workbench''' top menu.
{| class="wikitable"
* Navigate to '''Widget Manager Settings → String Tables'''
|+
* Added new '''StringTableDefinition'''
!Param
* Assign ''samplenewprop_localization.st'' to '''String Table Source''' property
!Type
* Add new element to '''Languages''' array
!Default value
** Change '''Code''' property to '''en_us'''
!Unit
** Assign ''samplenewprop_localization.en_us.conf'' to '''String Table Runtime''' property
!Description
* Save changes by clicking on '''OK''' button
|-
|
===== UIInfo =====
|''Object''
|<code>0</code>
|
|Data container for UI info for this magazine
|-
|
===== Item Model =====
|''Resource Name''
|<code>0</code>
|
|Item model
|-
|
===== Max Ammo =====
|''Integer''
|<code>0</code>
|
|The amount of ammo in the magazine.
|-
|
===== Ammo Config =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Ammo Mapping =====
|''Array of Integers''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-editor-configuring-localization.gif]]
=== MagazineConfig ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Ammo Resource Array =====
|''Array of Resource Names''
|<code>0</code>
|
|
|-
|}


=== Adding strings to localization table ===
=== BaseMuzzleComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Muzzle Type =====
|''Integer''
|<code>0</code>
|
|defines which Muzzle Type it is
|-
|
===== Muzzle End Positions =====
|''Array of Objects''
|<code>0</code>
|
|For each barrel, position muzzle ends
|-
|
===== Projectile Spawn Positions =====
|''Array of Objects''
|<code>0</code>
|
|For each barrel, position where projectile should be spawned
|-
|
===== Chambered Ammo =====
|''Boolean''
|<code>0</code>
|
|Can muzzle be chambered
|-
|
===== Fire Modes =====
|''Array of Objects''
|<code>0</code>
|
|Fire modes given by this muzzle
|-
|
===== Missile Weapon Link =====
|''Object''
|<code>0</code>
|
|Object which links projectile with weapon, fe. missile guidance.
|-
|
===== Magazine Well =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility with magazine types.
|-
|
===== Bullet Init Speed Coef =====
|''Scalar''
|<code>3</code>
|
|How much this muzzle changes initial speed of bullet. Fe. longer barrels achieve higher velocity.
|-
|
===== Dispersion Diameter =====
|''Scalar''
|<code>3</code>
|
|Diameter of dispersion cone at DispersionRange. [m]
|-
|
===== Dispersion Range =====
|''Scalar''
|<code>3</code>
|
|Distance from target where DispersionDiameter is being measured. [m]
|-
|
===== Weapon Aim Modifiers =====
|''Array of Objects''
|<code>0</code>
|
|
|-
|
===== UIInfo =====
|''Object''
|<code>0</code>
|
|UI Information for that object
|-
|
===== Disposable =====
|''Boolean''
|<code>0</code>
|
|Is this barrel disposable?
|-
|
===== Needs Setup =====
|''Boolean''
|<code>0</code>
|
|Does this barrel need setup to be used?
|-
|
===== Initial Setup =====
|''Boolean''
|<code>0</code>
|
|What is the initial setup of the barrel?
|-
|
===== Custom Animation Attributes =====
|''Object''
|<code>0</code>
|
|Custom character animation attributes override when character using weapon with this muzzle selected
|-
|
===== Supports Lowered =====
|''Boolean''
|<code>0</code>
|
|Do previously set attributes support lowered stance
|-
|
===== Reload Duration =====
|''Scalar''
|<code>3</code>
|
|Currently used for weapons without animation like a turret. [s]
|-
|
===== Out Of ADSWhile Reloading =====
|''Boolean''
|<code>0</code>
|
|Get out of ADS while reloading the turret.
|-
|
===== Allow Weapon Deployment =====
|''Boolean''
|<code>0</code>
|
|Allow weapon deployment when this muzzle is active.
|-
|
===== LEFT HAND TARGET =====
|''Object''
|<code>0</code>
|
|Left hand IK position for weapon deployment
|-
|
===== RIGHT HAND TARGET =====
|''Object''
|<code>0</code>
|
|Right hand IK position for weapon deployment
|-
|
===== BUTSTOCK TRANSFORMATION =====
|''Object''
|<code>0</code>
|
|Butstock position
|-
|
===== Gamepad Effect Context =====
|''String''
|<code>0</code>
|
|GamepadEffectContext (defined in GamepadEffectsManagerComponent) which gets enabled/disabled when this Muzzle is active/inactive.
|-
|
===== ADS Gamepad Trigger effect =====
|''Object''
|<code>0</code>
|
|
|-
|}


With string table in place, it is possible to actually fill it with data. This can be done by following below steps (see [[Arma Reforger:Mod Localisation|Mod Localisation]] for more details):
=== MortarMuzzleComponent ===
Inherits from: [[#MuzzleInMagComponent|MuzzleInMagComponent]]


* Select all prefabs inside '''PrefabsEditable → Auto → Military → Camps''' folder in '''Resource Browser''' (it can be either '''Resource Browser''' attached to '''Resource Manager''' or '''World Editor''')
{| class="wikitable"
* Click on '''Localize Selected Assets''' in '''Plugins''' tab or use {{Controls|Ctrl|Shift|L}} shortcut
|+
* In window that appeard make following adjustment:
!Param
** Change '''Config Path''' config and use
!Type
** Assign ''samplenewprop_localization.st'' in '''String Table Override''' property
!Default value
** Type '''SampleMod-''' in '''Prefix Override''' property
!Unit
** Click on '''Localize''' button
!Description
|-
|
===== Fire Delay =====
|''Scalar''
|<code>3</code>
|
|Delays the firing of the mortar in seconds when the firemode is set to automatic.
|-
|}


Plugin now should open ''samplenewprop_localization.st '' in '''String Editor''' and fill all the detected strings. If file is empty, then make sure that '''String Table Override''' property is correctly assigned and check '''Console Log''' for errors or warnings.
=== MuzzleComponent ===
Inherits from: [[#BaseMuzzleComponent|BaseMuzzleComponent]]


[[Image:armareforger-new-prop-editor-localizing-assets.gif]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Magazine Position =====
|''Object''
|<code>0</code>
|
|Position of magazine
|-
|
===== Magazine Template =====
|''Resource Name''
|<code>0</code>
|
|Magazine prefab to spawn
|-
|}


== Adjusting labels ==
=== MuzzleInMagComponent ===
Inherits from: [[#BaseMuzzleComponent|BaseMuzzleComponent]]


[[Image:armareforger-new-prop-editor-labels.png|left]]
{| class="wikitable"
Entity labels are used by in-game Editor Entity Browser to [[Arma_Reforger:Game_Master#Filters|filter]] content. By default, some of those labels are automatically assigned by '''Create/Update Selected Editable Prefabs''' plugin base on their '''type ('''''is it GenericEntity or Vehicle class?),'' '''folder in which they are located''' (''Prefabs in Prefabs/Military folder will get Theme_Military'' ''label)'', '''parameters in their prefabs''' (''Mass in RigidBody, size of the group by counting elements in Unit Prefab Slots, etc),'' '''size of bounding box''' and so on. Most of those rules can be checked by opening [enfusion://ResourceManager/~ArmaReforger:Configs/Workbench/EditablePrefabs/EditablePrefabsConfig.conf '''EditablePrefabsConfig.conf''']. It is also possible to add some custom rules as it was for instance described in the [[Arma Reforger:Faction Creation#Adjusting generators configs|Faction creation guide]].
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Projectile Position =====
|''Object''
|<code>0</code>
|
|Position of the projectile on the weapon
|-
|
===== Ammo Template =====
|''Resource Name''
|<code>0</code>
|
|Ammo type
|-
|
===== Max Ammo =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Allow Detaching Projectile =====
|''Boolean''
|<code>0</code>
|
|
|-
|
===== Initial Ammo =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Projectile Visible =====
|''Boolean''
|<code>0</code>
|
|Should projectile be visible in muzzle, when loaded
|-
|
===== Is Attachment =====
|''Boolean''
|<code>0</code>
|
|Is this muzzle an attachment on the weapon?
|-
|
===== Reload UGL =====
|''Boolean''
|<code>0</code>
|
|Should reloading of Under Barell should be used?
|-
|}


Beside that, it is also possible to manually add extra labels or even custom ones by changing content of '''Authored Labels''' array in '''SCR_EditableEntityComponent''' . In case of that prop, it is recommended to add '''CONTENT_MODDED''' label to '''Authored Labels''' array (''Auto Labels array shouldn't be touched by the user since content of that array might get overridden by editor plugin!)'' for each asset prefab in '''PrefabsEditable → Auto → Military → Camps''' folder. This can be done by clicking on '''button with plus sign''' on the right side of the '''Authored Labels''' property and then select from that new element in array '''CONTENT_MODDED''' label from drop down menu.
=== RocketEjectorMuzzleComponent ===
{{Clear}}
Inherits from: [[#BaseMuzzleComponent|BaseMuzzleComponent]]


== Registering asset ==
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Projectiles Visible =====
|''Boolean''
|<code>0</code>
|
|Should projectiles be visible in muzzle, when loaded
|-
|
===== Projectile Positions =====
|''Array of Objects''
|<code>0</code>
|
|Positions of the projectiles on the weapon
|-
|
===== Pod Weapon Skip Empty =====
|''Boolean''
|<code>0</code>
|
|Does the pod skip empty tubes? If true, uninterrupted fire is possible until the pod is empty
|-
|
===== Ejector Interface =====
|''Object''
|<code>0</code>
|
|Object which specifies compatibility with rocket/projectile types.
|-
|}


The final step in editor integration is adding editable props to register of placeable assets. Whole process is described in detail on [[Arma Reforger:Asset Browser Mod Integration|Asset Browser Mod Integration]] page so here is simplified list of steps that had to be done:
=== BaseCollimatorReticleColor ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Reticle Color =====
|''Color''
|<code>4</code>
|
|Reticle inner color
|-
|
===== Glow Color =====
|''Color''
|<code>4</code>
|
|Reticle glow color
|-
|}


* Create new '''SCR_PlaceableEntitiesRegistry'''  register in ''SampleMod_NewProp\Configs\Editor\PlaceableEntities'' called '''NewProp_Props.conf'''
=== BaseCollimatorReticleInfo ===
* Override in addon [enfusion://ResourceManager/~ArmaReforger:Prefabs/Editor/Modes/EditorModeEdit.et '''EditorModeEdit.et''']
{| class="wikitable"
* Open [enfusion://ResourceManager/~ArmaReforger:Prefabs/Editor/Modes/EditorModeEdit.et '''EditorModeEdit.et'''] and in '''SCR_PlacingEditorComponent, add new entry to Registries''' array by i.e. drag and dropping '''NewProp_Props.conf'''
|+
* Save changes in [enfusion://ResourceManager/~ArmaReforger:Prefabs/Editor/Modes/EditorModeEdit.et '''EditorModeEdit.et''']
!Param
* Open'''NewProp_Props.conf''', select all prefabs in '''PrefabsEditable → Auto → Military → Camps ''' inside '''Resource Browser''' attached to '''Resource Manager''' and then drop that selection onto '''Prefabs''' array inside of that config
!Type
** Furthermore, you can also change '''Addon''' & '''Source Directory''' property so plugin can in future '''semi-automatically fill or update''' that '''Prefabs''' array
!Default value
!Unit
!Description
|-
|
===== Reticle Index =====
|''Integer''
|<code>0</code>
|
|Reticle index in the emat texture array
|-
|
===== Do Override =====
|''Boolean''
|<code>0</code>
|
|If checked, use given angular size and reticle portion. If no, use defaults
|-
|
===== Reticle Default Angular Size =====
|''Scalar''
|<code>5u</code>
|
|Reticle's default angular size, in degrees. 0 to disable constant angluar size.
|-
|
===== Reticle Default Texture Portion =====
|''Scalar''
|<code>5u</code>
|
|Reticle's default procetage of texture coverage, i.e. how big the reticle is compared to the complete texture, from 0 to 1. 0 to disable constant angluar size.
|-
|}


[[Image:armareforger-new-prop-editor-register.png]]
=== BaseCollimatorSightsComponent ===
Inherits from: [[#BaseSightsComponent|BaseSightsComponent]]


{{Feature|informative|Please note that GUID of any new file is '''generated from filesystem path + file name'''. In order to avoid conflicts with other mods, it is recommended to use '''unique name for registers by i.e. adding tag as prefix'''.}}
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Collimator Top Left =====
|''Object''
|<code>0</code>
|
|Top Left point of the Collimator projection plane
|-
|
===== Collimator Bottom Right =====
|''Object''
|<code>0</code>
|
|Bottom Right point of the Collimator projection plane
|-
|
===== Collimator Center =====
|''Object''
|<code>0</code>
|
|Center point of the Collimator projection plane. May be left blank to take the average of Top Right and Bottom Left points
|-
|
===== Collimator Aspect Ratio =====
|''Boolean''
|<code>0</code>
|
|Reticle has 1:1 Aspect ratio (if false, it is assumed that the reticle uses the entire UV range in either direction)
|-
|
===== Reticle Default Angular Size =====
|''Scalar''
|<code>5u</code>
|
|Reticle's default angular size, in degrees. 0 to disable constant angluar size.
|-
|
===== Reticle Default Texture Portion =====
|''Scalar''
|<code>5u</code>
|
|Reticle's default procetage of texture coverage, i.e. how big the reticle is compared to the complete texture, from 0 to 1. 0 to disable constant angluar size.
|-
|
===== ADSActivation Percentage =====
|''Scalar''
|<code>3</code>
|
|Percentage between 0 (immediately) and 1 (after full blend) when the ADS sights activates
|-
|
===== ADSDeactivation Percentage =====
|''Scalar''
|<code>3</code>
|
|Percentage between 0 (after full blend out) and 1 (immediately) when the ADS sights deactivates
|-
|
===== Default Reticle Color =====
|''Integer''
|<code>0</code>
|
|Default color index for reticle from the color array.
|-
|
===== Reticle Colors =====
|''Array of Objects''
|<code>0</code>
|
|Definition for different reticle colors
|-
|
===== Default Reticle Index =====
|''Integer''
|<code>0</code>
|
|Default Reticle Index from reticle Infos array (or from emat if array is empty)
|-
|
===== Reticle Infos =====
|''Array of Objects''
|<code>0</code>
|
|Definition for different reticles
|-
|
===== Initial Horziontal Angular Correction =====
|''Scalar''
|<code>3</code>
|
|Initial horizontal (windage) adjustment angle, in Mils
|-
|
===== Initial Vertical Angular Correction =====
|''Scalar''
|<code>3</code>
|
|Initial vertical (drop compensation) adjustment angle, in Mils
|-
|
===== Collimator Can Be Animated =====
|''Boolean''
|<code>0</code>
|
|Set to true if the sight can be animated/change position. An example would be the XM60 sights of the UH-1 which can be deployed and retracted
|-
|
===== Reticle Auto Bright =====
|''Boolean''
|<code>0</code>
|
|Ambient light sensor can automatically adjust reticle brightness
|-
|
===== Reticle Auto Bright Flip =====
|''Boolean''
|<code>0</code>
|
|If true, sight gets brighter in darkness
|-
|
===== Reticle Auto Upper =====
|''Scalar''
|<code>5u</code>
|
|Upper value at which the reticle has maximum brightness
|-
|
===== Reticle Auto Lower =====
|''Scalar''
|<code>5u</code>
|
|Lower value at which the reticle disappears
|-
|
===== Reticle Auto Clamp Day Night =====
|''Boolean''
|<code>0</code>
|
|If true, reticle brightness is between day and night brightness. If false, brightness is between day brightness and completely off
|-
|
===== Reticle Auto Toggle =====
|''Boolean''
|<code>0</code>
|
|If true, can toggle between automatic and fixed brightness. If false, only supports automatic brightness
|-
|
===== Collimator Is Vehicle Sight =====
|''Boolean''
|<code>0</code>
|
|If true, the sight is part of a HUD or vehicle sight and is always active
|-
|
===== Collimator Compartment Name =====
|''String''
|<code>0</code>
|
|Name of the compartment that this sight is connected to.
|-
|}


After all those steps, assets should be available in in-game [[Arma_Reforger:Game_Master#Entity_Browser|'''Entity Browser!''']]
=== SightRangeInfo ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Range =====
|''Vector with 2 elements''
|<code>6</code>
|
|Range information (x = animation value, y = range in meters)
|-
|
===== Weapon Position =====
|''Object''
|<code>0</code>
|
|Weapon position adjustments for this Range
|-
|}


= Testing result =
=== BaseSightsComponent ===
{{Messagebox|'''Overview'''
{| class="wikitable"
In this paragraph you can read about:
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Sights Position =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Sights Ranges =====
|''Array of Objects''
|<code>0</code>
|
|Zeroing Range, Rotation and Translation
|-
|
===== Sights Ranges Default Index =====
|''Integer''
|<code>0</code>
|
|Default sight range index selected from sight ranges array.
|-
|
===== Sights FOVInfo =====
|''Object''
|<code>0</code>
|
|Field of View defining info object.
|-
|
===== Sights Point Front =====
|''Object''
|<code>0</code>
|
|The sight point further from the character's eye
|-
|
===== Sights Point Rear =====
|''Object''
|<code>0</code>
|
|The sight point closer to the character's eye
|-
|
===== ADSTime =====
|''Scalar''
|<code>3</code>
|
|Time to ADS in seconds
|-
|
===== Camera Recoil Amount =====
|''Scalar''
|<code>3</code>
|
|Percentage of recoil applied to camera (0-300%).
|-
|
===== Sights Priority =====
|''Boolean''
|<code>0</code>
|
|If set, these sights are preferred when automatically selecting a new sights.
|-
|
===== Sights Switch Skip =====
|''Boolean''
|<code>0</code>
|
|If set, these sights are skipped when cylcing through multiple sights, and are only considered if they are the only ones
|-
|
===== Zeroing Generator =====
|''Object''
|<code>0</code>
|
|Class to generate Zeroing information
|-
|
===== Sound Int =====
|''Integer''
|<code>0</code>
|
|Value of corresponding sound signal when sight is used.
|-
|
===== Sights Partial Hide ADS =====
|''Boolean''
|<code>0</code>
|
|If true, use alpha test to partially hide sights on ADS
|-
|
===== Sights Partial Freelook Factor =====
|''Scalar''
|<code>3</code>
|
|Factor for making the hidden part reappear on freelook. 0 to disable (always hide on ADS)
|-
|}


* Testing your creation in Game Master
=== ZeroingMarkInfo ===
* Testing your creation in new world|💬|#CDF}}  
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Range =====
|''Integer''
|<code>6</code>
|
|Zeroing Range Information
|-
|
===== Marker Position =====
|''Object''
|<code>0</code>
|
|Position of marker for this range
|-
|}


In '''Workbench''', new prop can be tested either by '''launching  [[Arma_Reforger:Game_Master|Game Master scenario]]''' and then placing new assets through '''Asset Browser''' or by '''simply creating a new sub-world in World Editor''' and then placing asset in game
=== BaseZeroingGenerator ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Zero Raise To Eye =====
|''Boolean''
|<code>0</code>
|
|Add offset to raise sight line to eye
|-
|
===== Zero Use Sight STo Eye Line =====
|''Boolean''
|<code>0</code>
|
|Use the eye to sights line instead Z delta for animation
|-
|}


=== FrontSightGLZeroingGenerator ===
Inherits from: [[#BaseZeroingGenerator|BaseZeroingGenerator]]


== Testing in Game Master ==
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Default Weapon Template =====
|''Resource Name''
|<code>0</code>
|
|Weapon that the sight would be attached to
|-
|
===== Zeroing Marks =====
|''Array of Objects''
|<code>0</code>
|
|Zeroing Range, Rotation and Translation
|-
|}


To test new prop in '''Game Master''', load [enfusion://WorldEditor/worlds/GameMaster/GM_Eden.ent;4657.23,50.7969,10727.1;-33.3344,23.4751,0;1385091 '''GM_Eden.ent '''] world in [[Arma_Reforger:World_Editor|'''World Editor''']] and once it's ready, switch to [[Arma_Reforger:World_Editor#Play_Game|'''Play mode''']] by either pressing on green arrow or via '''F5 shortcut''' (''furthermore, that option is also available in '''Game''' tab''). This should initiate loading of scenario and once it's completed, regular Game Master interface should be present.
=== RearSightZeroingGenerator ===
Inherits from: [[#BaseZeroingGenerator|BaseZeroingGenerator]]


[[Image:armareforger-new-prop-testing-playmode.png]]
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Pivot Position =====
|''Object''
|<code>0</code>
|
|Position of the center of rotation when held in hand.
|-
|
===== Zeroing Marks =====
|''Array of Objects''
|<code>0</code>
|
|Zeroing Range, Rotation and Translation
|-
|}


Now, by bringing up [[Arma_Reforger:Game_Master#Entity_Browser|'''Entity Browser''']] either by pressing '''Tab''' or by clicking on '''Place entities''' button in bottom right section of the interface
=== PivotPointInfoItem ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Point info =====
|''Object''
|<code>0</code>
|
|Pivot point position
|-
|
===== System Identifier =====
|''Integer''
|<code>0</code>
|
|Used internally to identify specific usage of a point (eg Aiming would use pivot point with identifier 2 in order to select pivot for Bipod)
|-
|
===== Aim Limits Deployed Yaw =====
|''Vector with 2 elements''
|<code>5u</code>
|
|
|-
|
===== Aim Limits Deployed Pitch =====
|''Vector with 2 elements''
|<code>5u</code>
|
|
|-
|
===== Stabilization Points =====
|''Array of Objects''
|<code>0</code>
|
|Set of points on weapon that should be touching surface in order to consider weapon stable, if left empty pivot point will be considered as single stabilization point
|-
|
===== Stabilization Size =====
|''Vector with 3 elements''
|<code>3</code>
|
|Size of stabilization endpoints
|-
|}


[[Image:armareforger-new-prop-testing-gamemaster.png]]
=== VolumeDataProviderComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Size =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Offset =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|
===== Rotation =====
|''Vector with 3 elements''
|<code>3</code>
|
|
|-
|}


== Testing in new world ==
=== MissionHeader ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== World =====
|''Resource Name''
|<code>0</code>
|
|
|-
|}


Simplest & fastest way to do it might be loading [enfusion://WorldEditor/worlds/MP/MpTest.ent;110.145,5.1562,100.424;-35.2569,46.3466,0 '''MpTest'''] world and then creating a new subworld of it. To do so, follow this instruction:
=== NwkMovementComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Interpolation =====
|''Integer''
|<code>0</code>
|
|Type of interpolation used.
|-
|
===== Hierarchy Sync =====
|''Boolean''
|<code>0</code>
|
|Sync transform even in hierarchy. Not necessary if handled by different means.
|-
|}


[[Image:armareforger-new-prop-testing-subworld.png]]
=== BaseChatChannel ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Channel name =====
|''String''
|<code>0</code>
|
|
|-
|
===== Style =====
|''Object''
|<code>0</code>
|
|
|-
|}


* Click on '''File → New World''' ('''''{{Controls|Ctrl|N}} shortcut''''') or on '''New World''' icon in the toolbar
=== BaseChatEntity ===
* Select '''Sub-scene (of current world)''' option and confirm it with '''OK''' button
{| class="wikitable"
* Save current world by selecting '''File → Save World''' option ('''{{Controls|Ctrl|S}} shortcut''') and save it somewhere inside your addon
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Base style =====
|''Object''
|<code>0</code>
|
|
|-
|
===== Channels =====
|''Array of Objects''
|<code>0</code>
|
|Defines chat channels
|-
|
===== Whisper channel =====
|''Object''
|<code>0</code>
|
|Channel for private messages
|-
|
===== Default channel =====
|''String''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-testing-subworld-creation.gif]]
=== RplComponent ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Auto Hierarchy =====
|''Boolean''
|<code>0</code>
|
|Hierarchy updates handled automatically by replication.
|-
|}


After that, you can place prop prefab - i.e. ''PortableDesk_01_Sand.et'' - into the world and switch to '''Play mode'''. Once in play mode, you should be able to interact with the prop!
=== GameplaySettings ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Crossplay Enabled =====
|''Boolean''
|<code>0</code>
|
|
|-
|}


[[Image:armareforger-new-prop-testing-subworld-result.png]]
=== SoundWorld ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Soundmap =====
|''Resource Name''
|<code>0</code>
|
|
|-
|
===== Trees Num =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Houses Num =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Query Mult =====
|''Scalar''
|<code>3</code>
|
|
|-
|
===== Filter Forest =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Filter City =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Filter Sea =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Coast Width =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Filter Coast =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Lake Width =====
|''Integer''
|<code>0</code>
|
|
|-
|
===== Lake Min Area =====
|''Integer''
|<code>0</code>
|
|
|-
|}


{{GameCategory|armaR|Modding|Tutorials|Assets}}
=== TimeAndWeatherManagerEntity ===
{| class="wikitable"
|+
!Param
!Type
!Default value
!Unit
!Description
|-
|
===== Day Time Synchronization Rate =====
|''Scalar''
|<code>3</code>
|
|Time of the day synchronization interval in seconds. Server only.
|-
|
===== Sunrise signal Offset =====
|''Scalar''
|<code>3</code>
|
|Offset from the time of sunrise to send signals
|-
|
===== Sunset signal Offset =====
|''Scalar''
|<code>3</code>
|
|Offset from the time of sunset to send signals
|-
|
===== Time events Periodicity =====
|''Integer''
|<code>0</code>
|
|Periodicity with which time events are checked (0 = never, 1 = per hour, 2 = per minute, 3 = per second)
|-
|}

Latest revision as of 14:30, 3 April 2025

AIAnimalAimingComponent

Param Type Default value Unit Description
Aiming PID
Vector with 3 elements 3
Origin Offset
Vector with 3 elements 3

AICharacterAimingComponent

Param Type Default value Unit Description
Aiming PID
Vector with 3 elements 3
Use PID
Boolean 0
Time ADSOff
Scalar 3 How long ADS should be enabled

AITurretAimingComponent

Param Type Default value Unit Description
Aiming PID
Vector with 3 elements 3 Coefficients of main PID controller for aiming of turret
Aiming PIDMax Error Integral
Scalar 3 Max value of integral component of main PID controller
Aiming Base PID
Vector with 3 elements 3 Coefficients of PID controller for aiming turret base. Only for turrets with movable base.
Aiming Base PIDMax Error Integral
Scalar 3 Max value of integral component of PID controller for aiming turret base.

AIAnimal

Param Type Default value Unit Description
Dead Reaction Radius
Scalar 3 Will not react to danger closer than the dead zone

AIAnimalData

Param Type Default value Unit Description
Prefab To Use
Resource Name 0
Tags
Array of Integers 0 Which tile tags should this animal spawn at (ie: Soundmap tile tags are: Sea = 0, Forest = 1, City = 2)
Weight
Scalar 3 Weight of this animal among the other ones in its tile type. The higher it is compared to the other weights the more likely it is to appear

AIAnimalManagerComponent

Param Type Default value Unit Description
Animal Activation Mode
Integer 0 Animal activation mode
Max Active Animals
Integer 0 Maximum ammount of simultaneous active animals. More animals could be spawned, but would not be activated
Animal Prefabs To Use
Array of Objects 0
Animal Spawn Cooldown
Scalar 3 Distance from every other agent so animal despawns
Animal Despawn Range
Scalar 3 Distance from every other agent so animal despawns
Animal To Animal Spawn Range
Scalar 3 When spawning animals, how far should it be from other animals to do spawn
Check Animal Time
Scalar 3 How often to check to spawn / despawn animals

AIBirdManagerComponent

Param Type Default value Unit Description
Tree Height Threshold
Scalar 3 Any tree with a Y scale less than this will be ignored (bushes)
Cells To Check
Integer 0 How many cells to check to each side using Manhatan distance)
Coast Percentage
Scalar 3 From the soundmap, if the soundmap tile value is above the coast percentage, the first prefab will always be used
Rain Threshold
Scalar 3 Rain intensity limit for spawning birds

BirdAnimationComponent

Param Type Default value Unit Description
Max Bird Takeoff Speed Modifier
Scalar 3 When taking off, each bird has a small time offest. This is the max it can be
Min Bird Takeoff Speed Modifier
Scalar 3 When taking off, each bird has a small time offest. This is the min it can be
Curve XOffset
Scalar 3 Offset for the X values of the curve
Curve TOffset
Scalar 3 Offset for the Y values of the curve
Curve YModifier
Scalar 3 Modifier for the Y values of the takeoff / landing curves

ChimeraCoverManagerComponent

Param Type Default value Unit Description
Filter Visibility
Boolean 0 Filters out non visible threats from cover point. Expensive
Filter Cover To Enemy Angle
Boolean 0 Filters out cover that are out of a given angle from cover to threat
Filter Cover Height
Boolean 0 Filters out covers that anre not in the height limits
Filter Cover Is Occupied
Boolean 0 Filters out covers that are occupied
Visibility Check Vertical Offset
Scalar 3 Vertical offset from cover top position, used for visibility checks
Visibility Check Layers
Flags 0 Physics layers for visibility check
Score Distance
Boolean 0 Scores cover points by inverse distance to the querier
Query Max Nodes
Integer 0 Maximum number of nodes that will be used for cover queries.

AIFlock

Param Type Default value Unit Description
Lod Threshold
Integer 0 The LOD threshold to simulate the flocking or just have the particle many birds in the flock
Reaction Cooldown
Scalar 3 How many seconds to wait before reacting to danger again
Chance To Create Cell
Scalar 3 When creating the posible original positions of the birds, chance to delete a particular cell for it not to be used
Number Of Birds
Vector with 2 elements 3 How many birds min/max in the flock
Flock Dist
Vector with 2 elements 3 When creating a new position for each bird, the min/max distance from the center of the flock
Max Flock Visible Distance
Scalar 3 Distance within the flock will be visible
Visibility Cooldown
Scalar 3 How many seconds to wait before checking visibility again
Bird Prefab
Resource Name 0 Prefab of the birds
Takeoff Time
Scalar 3 For how long the flock is taking off
Takeoff Speed
Scalar 3 Speed of movement at start of take off
Max Wind Speed
Scalar 3 Max speed the wind can have
Wind Factor
Scalar 3 How much the wind affect us
Movement Speed
Vector with 2 elements 3 Min/max speed while flying. It is used to define the Amplitude the speed curve: Y = YOffset + Amplitude * sin((X - XOffset) * Period)
Speed Curve XOffset
Scalar 3 Offset of the X in the speed curve: Y = YOffset + Amplitude * sin((X - XOffset) * Period)
Speed Curve Period
Scalar 3 Period of the speed curve: Y = YOffset + Amplitude * sin((X - XOffset) * Period
Nodes For Flight Speed
Integer 0 How many nodes to use in the flight for speed calculations
Nodes To Land
Integer 0 How many nodes before the end of the path should the birds start the landing animation
Wind Speed Threshold
Scalar 3 Below this threshold, back wind and front wind will not affect the annimations
Wind Angle Threshold
Scalar 3 How big is the angle in which we have back-wind or are against it
Altitude Threshold
Vector with 2 elements 3 Min/max At how much absolute vertical movement, the Animation Score Min, Mid and Max Level are reached. Below the first threshold, MIN. Between the thresholds, Mid. Above the last threshold, Max
Animation Score Max Level
Scalar 3 Score added to the animation (Glide if moving down, Flap if moving up) while in the Max vertical movement threshold
Animation Score Mid Level
Scalar 3 Score added to the animation (Glide if moving down, Flap if moving up) while in the Mid vertical movement threshold
Animation Score Min Level
Scalar 3 Score added to the animation (Glide if moving down, Flap if moving up) while in the Min vertical movement threshold
Animation Score Back Wind
Scalar 3 Score added to the Glide animation when flying with back wind
Animation Score Against Wind
Scalar 3 Score added to the Flap animation when flying with back wind
Animation Score Decelerating
Scalar 3 Score added to the Glide animation while decelerating
Animation Score Accelerating
Scalar 3 Score added to the Flap animation while accelerating
Take Off To Fly Threshold
Scalar 3 In the direction of the movement, the needed vertical proportion to stop the Take off animation and to start the Flying animations
Bird Time Offset
Vector with 2 elements 3 Min/max When checking the accelerate function for the animations, the min/max offset a bird can have
Bird Takeoff Speed
Vector with 2 elements 3 Min/max When taking off, the min/max speed of the animation
Max Bird Radius
Scalar 3 Radius of the movement possible positions of each bird from its center
Bird Lerp Factor
Vector with 2 elements 3 Min/max for the initial lerping factor number. This are the limits for how they will flock
Bird Lerp Factor Change
Vector with 2 elements 3 Min/max for how much the lerp factor number can change each time a new target is created.
Bird Time
Vector with 2 elements 3 Min/max When creating a new position for each bird, the min/max time to get there
Bird Pitch Angle
Vector with 2 elements 3 Min/max In degrees, how much a bird pitches at least/most while turning
Max Bird Roll Angle
Scalar 3 In degrees, how much can a bird roll while turning
Min Bird Roll Angle
Scalar 3 In degrees, how much the angle difference must be for the bird to roll
Bird Degrees Per Second
Scalar 3 In degrees, how fast a bird can roll while turning
Nodes For Turning
Integer 0 How many nodes ahead in the path do we consider for the bird tilting
Local Movement At Turning Percentage
Scalar 3 How the local movement of the bird and the flock are related for the calculation of the turning

ChimeraAIWorld

Param Type Default value Unit Description
Initialize Road Network
Boolean 0
Allowed Link Navmesh Types
Array of Strings 0 Only navlinks declared for these Navmesh Types will be built into the road network
Navmesh For Off Roads
String 0 Navmesh where to search for off roads when a road is blocked
Off Road Flags
Flags 0 Flags used to find off roads on navmesh
Price of crossroad on Road network
Scalar 3
Price of roadnetwork paths
Scalar 3
Accepted Road Types
Flags 0 Road types
Collision detection layers
Flags 0 What layers are used when doing road rebuilding
Actual road width percentage
Scalar 3 Percentage of the road width that is afected by obstacles
Min Road Width
Scalar 3 Minimum width a road can have after rebuilding
Road Width Change Step
Scalar 3 Minimum size change unit (in meters) for road width changes when rebuilding

AICarMovementComponent

Param Type Default value Unit Description
Cruise Vehicle Speed Kmh
Scalar 3 Typical (cruise) speed of vehicle in km/h
Reverse Vehicle Speed Kmh
Scalar 3 Reverse speed of vehicle in km/h (should be negative)
Friction Coefficient
Scalar 3 How good is this car at braking (usually in range 0.5 to 1.0)
Stop Distance Coefficient
Scalar 3 Used for approximation how long it takes to stop the vehicle. Higher val - shorter distance. Used for speed predictions.
Max Reverse Travel Distance
Scalar 3 Max distance a vehicle will traverse reversing.
Break Treshold
Scalar 3 Use break when speed is higher than desired in km/h
Max Break At
Scalar 3 Use full break when speed is higher than this in km/h
Max Bump Speed
Scalar 3 Speed in which it should be safe to bump a static vehicle (km/h).
Max Steering Change S
Scalar 3 Max change in steering per second in radians
Steering PIDOn Water
Vector with 3 elements 3
Steering PID
Vector with 3 elements 3
Throttle PID
Vector with 3 elements 3
Use navmesh for pathfinding
Boolean 0 If unchecked, road network will be used. Navmesh, otherwise.
Collision rays origin height from pivot
Scalar 3 The Y difference between the object pivot and the desired origin of collision detection rays
Collision detection layers
Flags 0 What layers are used when doing reversing collision detection (if preset not set)
Collision detection layers preset
String 0 Preset of layer definition
AILOD level
Integer 0 Level of LOD at which speed is reduced
Max AILOD
Integer 0 Level of LOD max for drivers
LOD speed coeficient
Scalar 3 How much reduce reduce speed in higher AILODs
Obstacle Avoidance Timer
Scalar 3
Obstacle Avoidance Check Dist
Scalar 3
Detection Angle
Scalar 3 Angle of the circle sector for detection in degrees
Min Range Detection Angle
Scalar 3 Angle of the circle sector in proximity
Min Detection Range
Scalar 3 Min range
Min Horn Time S
Scalar 3 Min time for performing the horn in seconds
Max Horn Time S
Scalar 3 Max time for performing the horn in seconds
Min Horn Pause S
Scalar 3 Min time between horns in seconds
Max Horn Pause S
Scalar 3 Max pause between horns in seconds

AICharacterMovementComponent

Param Type Default value Unit Description
Orientation PID
Vector with 3 elements 3
Obstacle Avoidance Timer
Scalar 3
Obstacle Avoidance Check Dist
Scalar 3

AIFlockMovementComponent

Param Type Default value Unit Description
Possible Splines To Use
Array of Resource Names 0
Wind Factor
Scalar 3 How much the wind speed affects the path
Distance Factor
Scalar 3 The farther from the origin of the spline in the y, the more the wind affets the path
Max Wind Skew Factor
Scalar 3 Maximum ammount that the wind can displace the points from their origin
Force Above Terrain
Boolean 0 Force the path to always be above the point the bird spawned in reference to terrain
Enable Random Path Orientation
Boolean 0 Randomly rotate the spline for movement or use the one in the prefab

AIFlyingMovementComponent

Param Type Default value Unit Description
Direct Flight
Boolean 0 Avoid pathfinding and fly directly in the direction of the target location.

AIGroupMovementComponent

Param Type Default value Unit Description
Leader movement history size
Integer 0 Maximum number of recent leader positions recorded in history buffer.
Leader movement distance threshold
Scalar 3 Minimum distance the leader needs to travel before a new position is recorded in history buffer.
Default Formation
String 0

AIHelicopterMovementComponent

Inherits from: AIFlyingMovementComponent

Param Type Default value Unit Description
Prediction Time
Scalar 3 Time to predict future position.
Max Pitch
Scalar 3 Max pitch of the Helicopter, in radians.
Max Roll
Scalar 3 Max roll of the Helicopter, in radians.

AIRocketMovementComponent

Param Type Default value Unit Description
Prediction Time
Scalar 3 Time to predict future position.
Max Pitch
Scalar 3 Velocity damper.
Max Head Change
Scalar 3 Max heading change.
Forward Thrust
Scalar 3 Forward thrust.
Rotation Thrust
Scalar 3 Rotation thrust.

InsectFlyMovementComponent

Param Type Default value Unit Description
Max height
Scalar 3 Maximum prefered height of flight
Min height
Scalar 3 Minimum prefered height of flight
Max radius
Scalar 3 Maximum prefered radius
Rest time min
Scalar 3 Rest period after landing
Rest time max
Scalar 3 Rest period after landing
Takeoff delay
Scalar 3 Delay between sending take-off command to animation graph and entity starting to move
Direction change period min
Scalar 3 in seconds, how often direction is changed
Direction change period max
Scalar 3 in seconds, how often direction is changed
Direction change delta min
Scalar 3 degrees, rotation around Y axis, only positive values, value is mirrored on both sides
Direction change delta max
Scalar 3 degrees, rotation around Y axis, only positive values, value is mirrored on both sides
Direction change interpolation
Scalar 3 in seconds, length of interpolation
Forward speed period min
Scalar 3 in seconds, how often forward speed is changed
Forward speed period max
Scalar 3 in seconds, how often forward speed is changed
Forward speed duration min
Scalar 3 in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
Forward speed duration max
Scalar 3 in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
Forward speed range min
Scalar 3
Forward speed range max
Scalar 3
Forward speed interpolation
Scalar 3 in seconds, length of interpolation
Side speed period min
Scalar 3 in seconds, how often side speed is changed
Side speed period max
Scalar 3 in seconds, how often side speed is changed
Side speed duration min
Scalar 3 in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
Side speed duration max
Scalar 3 in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
Side speed range min
Scalar 3 only positive values, value is mirrored on both sides
Side speed range max
Scalar 3 only positive values, value is mirrored on both sides
Side speed interpolation
Scalar 3 in seconds, length of interpolation
Up speed period min
Scalar 3 in seconds, how often up speed is changed
Up speed period max
Scalar 3 in seconds, how often up speed is changed
Up speed duration min
Scalar 3 in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
Up speed duration max
Scalar 3 in seconds, how long should speed be applied, if duration expires and no change has happened speed goes to 0
Up speed range min
Scalar 3 only positive values, value is mirrored on both sides
Up speed range max
Scalar 3 only positive values, value is mirrored on both sides
Up speed interpolation
Scalar 3 in seconds, length of interpolation
Pitch limit min
Scalar 3 degrees, minimum attainable pitch, applied only if speed that affects pitch is not 0
Pitch limit max
Scalar 3 degrees, maximum attainable pitch
Max pitch at forward acceleration
Scalar 3 at what acceleration pitch is maximum
Max pitch at upward acceleration
Scalar 3 at what acceleration pitch is maximum
Pitch interpolation
Scalar 3 in seconds, length of interpolation
Roll limit min
Scalar 3 degrees, minimum attainable roll, applied only if speed that affects roll is not 0
Roll limit max
Scalar 3 degrees, maximum attainable roll
Turn speed max roll
Scalar 3 at what turn speed roll is maximum
Max roll at side acceleration
Scalar 3 at what acceleration roll is maximum
Roll interpolation
Scalar 3 in seconds, length of interpolation

ChimeraAIPathfindingComponent

Param Type Default value Unit Description
Use Road Network
Boolean 0 Enforces the use of Road Network when pathfinding if it's available.
Turn radius
Scalar 3 Turn radius for path smoothing.

ChimeraNavmeshWorld

Param Type Default value Unit Description
Destructible Area Type
String 0 Area type for destructibles

PathVisualizer

Param Type Default value Unit Description
End Position
Vector with 3 elements 3 End position wanted in world coordinates
Start Obj Name
String 0 Name of the entity that will be used for determining the start position.
End Obj Name
String 0 Name of the entity that will be used for determining the end position.
Precision
Scalar 3 Minimum position change required for recalculating a new path.
Navmesh Project
String 0 Navmesh that will be used to get navmesh world.
Use Road Network
Boolean 0 Enables the use of Road Network when pathfinding.

RoadNetworkBridgeComponent

Param Type Default value Unit Description
Points
Array of Vectors with 3 elements 3
Bridge Width
Scalar 3

AISmartActionComponent

Param Type Default value Unit Description
AIBehavior Tree
Resource Name 0
Tags
Array of Strings 0 tags of smart action
Action Offset
Vector with 3 elements 3 Action position offset

AITaskPerformObjectAction

Param Type Default value Unit Description
In Action Entity
Integer 0

AIAnimalManagerReactToCloseEntitiesMovement

Param Type Default value Unit Description
Walk Speed Limit
Scalar 3 Until what speed it is considered Walking
Run Speed Limit
Scalar 3 Until what speed it is considered Running
Car Speed Limit
Scalar 3 When the top max achieved. Going faster would not increase the chance
Walk Trigger Chance
Scalar 3 Base chance, while walking, of triggering
Run Trigger Chance
Scalar 3 Base chance, while running, of triggering
Car Trigger Chance
Scalar 3 Base chance, while going faster than running, of triggering
Min Distance
Scalar 3 If closer than this, the chance will not be fading out
Max Distance
Scalar 3 If farther than this, the chance will be faded out

AITaskPlayGesture

Param Type Default value Unit Description
Gesture
Integer 0 Pick gesture type from the list
Play
Boolean 0 Play gesture if TRUE; Stop gesture if FALSE

AITaskSetADS

Param Type Default value Unit Description
Use ADS
Boolean 0

AITaskChangeStance

Param Type Default value Unit Description
Stance
Integer 0 Wanted Stance
In Stance
Integer 0

AITaskCharacterAim

Param Type Default value Unit Description
Aim Type
Integer 0
Use ADS
Boolean 0

AITaskCharacterRaiseWeapon

Param Type Default value Unit Description
Raise
Boolean 0 Raise weapon

AITaskCharacterSetMovementSpeed

Param Type Default value Unit Description
Movement speed
Integer 0 Wanted movement speed
Input Movement speed
Integer 0

AITaskCharacterStop

Param Type Default value Unit Description
Aim Type
Integer 0

DecoAiming

Param Type Default value Unit Description
Test Type
Integer 0 What test to run
Aim Threshold
Scalar 6u Value for testing
In Aim Threshold
Integer 0
Aim Type
Integer 0

DecoCheckLOD

Param Type Default value Unit Description
Check LOD
Integer 0

DecoDangerEvent

Param Type Default value Unit Description
Has Any
Boolean 0 Check for any type of danger event
Danger Event Type
Integer 0 Pick type of danger event to check
Distance Threshold
Scalar 3 TLimit search for danger events to a certain radius. Default 0 = range not limited

DecoIsInVehicle

Param Type Default value Unit Description
Entity In
Integer 0
Vehicle Out
Integer 0
Compartment Type Out
Integer 0

DecoTestOrder

Param Type Default value Unit Description
Has Any
Boolean 0 Check for any type of order
Order Type
Integer 0 Pick a type of order to check
In Agent
Integer 0

AITaskGetFormationOffset

Param Type Default value Unit Description
Out Offset
Integer 0
Out Default World Pos
Integer 0
Out Projected World Pos
Integer 0
In Leader
Integer 0
In Scale
Integer 0
Scale
Scalar 3 Scale applied to default formation

AITaskGroupSetMovementSpeed

Param Type Default value Unit Description
Movement speed
Integer 0 Wanted movement speed
Input Movement speed
Integer 0

AITaskGroupMove

Param Type Default value Unit Description
In Group Move Completion Type
Integer 0 Group movement will complete based on which set of move handlers completes movement.
Group Move Completion Type
Integer 0 Group movement will complete based on which set of move handlers completes movement.
Failed Handler Id
Integer 0

AITaskGroupMoveToEntity

Param Type Default value Unit Description
In Group Move Completion Type
Integer 0 Group movement will complete based on which set of move handlers completes movement.
Group Move Completion Type
Integer 0 Group movement will complete based on which set of move handlers completes movement.
Failed Handler Id
Integer 0

AITaskMoveInFormation

Param Type Default value Unit Description
In Scale
Integer 0 Scale input applied to formation.
Scale
Scalar 3 Scale applied to default formation.
In Max Dist To Formation Pos
Integer 0 Input Maximum distance an agent can have from it's default formation position.
Max Dist To Formation Position
Scalar 3 Maximum distance an agent can have from it's default formation position.
In Projected Distance
Integer 0 Input distance to project the formation on the leader's path
Projected Distance
Scalar 3 Distance to project the formation on the leader's path

AITaskMoveToWaypoint

Inherits from: AITaskGroupMove

Param Type Default value Unit Description
In Waypoint Entity
Integer 0

AITaskCurrentOrder

Param Type Default value Unit Description
Out Order Object
Integer 0
Out Order Position
Integer 0
Out Order Type
Integer 0
Out Order
Integer 0

AITaskSendOrder

Param Type Default value Unit Description
In Agent Sender
Integer 0
In Agent Receiver
Integer 0
Order Type
Integer 0 Order type to send
In Order Position
Integer 0
In Order Entity
Integer 0
In Order Type
Integer 0
In Order
Integer 0
Highest Priority
Boolean 0 If true, order will be first one in queue. If false will be queued.
Order Object
String 0 Class name with base class of AIOrder

AITaskPickTarget

Param Type Default value Unit Description
Out Entity
Integer 0
Out Count Enemies
Integer 0
Last Seen Max
Scalar 3 Filter target by how long ago it was seen
Enemy
Integer 0 Wanted Target

AITaskFindSmartAction

Param Type Default value Unit Description
Radius
Scalar 3 The radius to search for actions within
Out Smart Action
Integer 0
In Position
Integer 0
In Radius
Integer 0
Tags
Array of Strings 0 Tags of smart action
Tags Test
Integer 0 Way of testing tags
In Tags
Integer 0

AITaskGetCurrentSmartAction

Param Type Default value Unit Description
Out Smart Action
Integer 0

AITaskGetSmartActionParams

Param Type Default value Unit Description
In Smart Action
Integer 0
Out Behavior
Integer 0
Out Pos
Integer 0
Out Smart Action Entity
Integer 0

AITaskPerformSmartAction

Param Type Default value Unit Description
In Smart Action
Integer 0

AITaskGetInVehicle

Param Type Default value Unit Description
Position
Integer 0 Wanted Position
Vehicle Name
String 0 Select vehicle by name
In Vehicle
Integer 0
In Compartment Type
Integer 0
In Compartment Slot
Integer 0

AITaskFire

Param Type Default value Unit Description
Period
Scalar 3 For how long to idle
Keep Firing
Boolean 0 Keep firing during whole period (will work only with auto firemodes)
Period Key
Integer 0

AICombatPropertiesComponent

Param Type Default value Unit Description
Priority
Scalar 3 Priority affecting which magazine AI prefer to use against a target
Priority Against Vehicles
Scalar 3 Overrides priority against vehicles. If not specified, same priority is used.
Used Against
Flags 0 Against what unit types AI will use this magazine
Indirectly Used Against
Flags 0 Against what unit types AI will use this magazine when can't see target directly
Traits
Flags 0 Flags of traits, to aid finding of magazines by traits

AnimationAttachmentInfo

Param Type Default value Unit Description
Anim Graph
Resource Name 0 Anim graph name
Anim Instance
Resource Name 0 Anim graph instance
Start Node
String 0 Node where to start from
Binding Name
String 0 Binding name in root graph

AnimationIKTargetInfo

Param Type Default value Unit Description
Binding Name
String 0 Binding name in accessor (e.g character) graph
Position Info
Object 0 Position of target

ProcAnimComponent

Param Type Default value Unit Description
On Frame Update
Boolean 0 Enable/disable on-frame updating of the component

ChimeraGlobalConfig

Param Type Default value Unit Description
Default Player Controller
Resource Name 0 Default player controller to be spawned if world does not have one already.
Maximum View Distance
Scalar 3 Hard limit of maximum view distance in meters.
Minimum View Distance
Scalar 3 Hard limit of minimum view distance in meters.
Minimum Scaled Explosion Distance
Scalar 3 Minimum scaled limit of distance from explosion for damage calculation.
Maximum Scaled Explosion Distance
Scalar 3 Maximum scaled limit of distance from explosion for damage calculation.
Ballistics
Object 0
Input Button Layout Config
Resource Name 0

BaseEventHandler

Param Type Default value Unit Description
Event Name
String 0 Event which will be handled

EventHandlerManagerComponent

Param Type Default value Unit Description
Event Handlers
Array of Objects 0 List of event handler definitions for events to be registered into

SoundInfo

Param Type Default value Unit Description
Surface Signal Value
Integer 0

HitEffectInfo

Param Type Default value Unit Description
Particle Effect
Resource Name 0 Default particle effect
Decal Material
Resource Name 0 Decal(s) to be spawned on that material
Bayonet Hit Particle Effect
Resource Name 0 Particle effect for bayonets
Decal Scale
Scalar 3 Scale - multiplier applied to decal size (based on projectile diameter)
Decal Far Plane
Scalar 3 Far plane - maximum distance for decal projection box
Decal Offset
Scalar 3 Offset - distance of a projection start away from impact point

CollisionInfo

Param Type Default value Unit Description
Particle Effect
Resource Name 0 Default particle effect

BallisticInfo

Param Type Default value Unit Description
Density
Scalar 3 [g/cm^3]
Kinetic Penetration Resistance
Scalar 3 [] Kinetic penetrator resistance multiplier
Chemical Penetration Resistance
Scalar 3 [] Chemical penetrator resistance multiplier
Thickness Override
Integer 0 Select type of thickness override
Thickness
Scalar 3 [mm]
Thickness Max
Scalar 3 [mm]
Allow Deflection
Boolean 0
Stop Explosion Trace
Boolean 0
Penetration Dir Distribution
Scalar 3 []
Penetration Dir Combine
Integer 0
Water Surface
Boolean 0
Glass Surface
Boolean 0
Mushrooming Damage Multiplier
Scalar 3 Multiplier for mushrooming damage. When set to 0, the mushrooming ability of the projectile will not affect the damage outcome on this material.
Tumbling Damage Multiplier
Scalar 3 Multiplier for tumbling damage. When set to 0, the tumbling ability of the projectile will not affect the damage outcome on this material.
Cavitation Damage Multiplier
Scalar 3 Multiplier for cavitation damage. When set to 0, the cavitation ability of the projectile will not affect the damage outcome on this material.
Penetration Damage Model
Boolean 0 Allow penetration damage model\nENABLED (Material and Projectile):\n SpeedLoss * PenetrationDepth * PenetrationDensity / PenetrationSpeed\nDISABLED (Material or Projectile):\n InitSpeed * Mass

ParticleEffectInfo

Param Type Default value Unit Description
Vehicle Dust
Array of Resource Names 0 Vehicle dust particle effects
Blast
Array of Resource Names 0 Blast particle effects

GameMaterial

Param Type Default value Unit Description
Sound Info
Object 0
Hit Effect Info
Object 0
Collision Info
Object 0
Ballistic Info
Object 0
Particle Effect Info
Object 0

HierarchicalParametricMaterialInstanceComponent

Inherits from: ParametricMaterialInstanceComponent

Param Type Default value Unit Description
Hierarchy Propagation
Flags 0 If the property value should be propagate to hierarchy.

ParametricMaterialInstanceComponent

Param Type Default value Unit Description
Accept Hierarchy Properties
Flags 0 If the property value should be accepted from hierarchy.
Color Albedo
Color 4
Color Emissive
Color 4
Emissive Multiplier
Integer 0
Use User Param One
Boolean 0 If user User Parameter One should be used
User Param One
Integer 0 Usually mud
Use User Param Two
Boolean 0 If user User Parameter Two should be used
User Param Two
Integer 0 Usually dirt
Use User Param Three
Boolean 0 If user User Parameter Three should be used
User Param Three
Integer 0
Use User Param Four
Boolean 0 If user User Parameter Four should be used
User Param Four
Integer 0
Use User Param Alpha
Boolean 0 If user User Parameter Alpha should be used
User Param Alpha
Integer 0
Custom Wetness Enabled
Boolean 0 If custom wetness is enabled. Custom wetness value itslef is then set in User Param Three
Sliding Drops Enabled
Boolean 0 If sliding rain drops are enabled.
Apply Properties When Mesh Changed
Boolean 0 If set to true same properties would be applied to mesh that was changed at runtime on entity

DecalSlotInfo

Param Type Default value Unit Description
Projection Offset
Scalar 3 Projection offset from PointInfo target transform
Projection Rotation
Vector with 3 elements 3 Projection rotation around PointInfo target transform
Far Plane
Scalar 3 Far plane - maximum distance for decal projection box
Stretch
Scalar 3 Stretch of decal
Scale
Scalar 3 Scale
Lifetime
Scalar 3 Decal lifetime, value <= 0 is indeffinite.
Create On Init
Boolean 0
Debug Draw
Boolean 0
Material
Resource Name 0 Decal material

DecalZoneConfigurationItem

Param Type Default value Unit Description
Show Threshold
Scalar 3 Show decal when hitzone accumulated at least provided damage alpha value (damage/maxDamage)
Decal Slot
Object 0

EntitySlotInfo

Param Type Default value Unit Description
Auto Transform
Boolean 0 auto transform
Merge Physics
Boolean 0 merge physics
Child Pivot ID
String 0 offset defined by child node
Enabled
Boolean 0 Should the prefab be spawned.
Prefab
Resource Name 0 Prefab to spawn
Disable Physics Interaction
Boolean 0 Should attached object not collide with any parent
Inherit Parent Skeleton
Boolean 0 Should attached object inherit parent skeleton
Activate Physics On Detaching
Boolean 0 Should physics be activated when entity is detached from slot?
Deactivate Physics On Ataching
Boolean 0 Should physics be deactivated when entity is atached to slot?
Update Replication Parent
Boolean 0 The slot takes care of (un)registering the replication parent. Used only for entities with RplComponent that has \"Parent Node From Parent Entity\" disabled. Helpful in situations where some component complains that it's not compatible with the RplComponent's setting enabled or when nothing else handles setting the replication parent

RegisteringComponentSlotInfo

Inherits from: EntitySlotInfo

Param Type Default value Unit Description
Register Actions
Boolean 0 register action to parent
Register Damage
Boolean 0 register damage to parent
Register Controllers
Boolean 0 register controllers to parent
Register Weapons
Boolean 0 register weapons to parent
Register Compartments
Boolean 0 register compartments to parent
Register Lights
Boolean 0 register lights to parent
Register Action Signals
Boolean 0 register action signals to nearest parent
Count As Parent For Explosions
Boolean 0 If true, this entity will count as hitting the parent on traced explosions, and will not block traces to it.

SlotManagerComponent

Param Type Default value Unit Description
Slots
Array of Objects 0 List of Entity slots
Slot Mappers
Array of Objects 0

PlayerController

Param Type Default value Unit Description
Player Entity Name
String 0 Player entity
Self Register
Boolean 0 Registers itself to Game as local controller.
Default Controlled Entity
Resource Name 0 Default entity to spawn if player controlled entity name is not set.
Default Player Camera
Resource Name 0 Default player camera to spawn after spawning default entity.

SignalsComponent

Param Type Default value Unit Description
On Frame Update
Boolean 0 Enable/disable on-frame updating of the component
Filenames
Resource Name 0

SignalsSourceAccess

Param Type Default value Unit Description
signals Suffix
String 0 Signals suffix

CommunicationSoundComponent

Inherits from: SoundComponent

Param Type Default value Unit Description
Stamina Threshold
Scalar 4 Threshold to start breathing
Stamina Threshold Minimum
Scalar 4 Minimum Threshold to start breathing heavily

ProjectileSoundsManager

Param Type Default value Unit Description
Filenames
Array of Resource Names 0
Exclusion Radius
Scalar 2u Projectiles spawned within this radius [m] relative to the listener are ignored
Subsonic
Scalar 2u Maximum audible distance for subsonic projectiles [m]
Supersonic
Scalar 2u Maximum audible distance for supersonic projectiles [m]

SimpleSoundComponent

Param Type Default value Unit Description
On Frame Update
Boolean 0 Enable/disable on-frame updating of the component
Script Callbacks
Boolean 0 Callbacks for scripted methods
Distance Management
Boolean 0 Updating sounds and ability to play them automatically enabled or disabled based on their distance from camera
Include Inactive
Boolean 0 Distance management for inactive component

SoundComponent

Inherits from: SimpleSoundComponent

Param Type Default value Unit Description
Sound Points
Array of Objects 0

VoNComponent

Param Type Default value Unit Description
Speaking Range
Scalar 3 Speaking range in meters
Filename
Resource Name 0

Music

Param Type Default value Unit Description
Acp
Resource Name 0 .acp path where the music to play resides
Music Name
String 0 Name of the sound node of the music you want to play
Priority
Integer 0 Priority is used when shouldplay is evaluated
Interruptible
Boolean 0 Whether a interruption can stop the music from playing
Time between repeats
Scalar 3 Time (in seconds) of rest between repeating music (0 = Allow Repeat Directly)
Categories
Flags 0 Categories this sound belongs in

MusicManager

Param Type Default value Unit Description
Fade out time interruption
Scalar 3 Time to use to fade out when an interruption happens (ms)
Fade out time force play
Scalar 3 Time to use to fade out when another music track is played (ms)
Time between music
Scalar 3 Time (in seconds) of rest between music ending and the next one playing
Min interruption volume
Scalar 3 Minimum volume for an interruption to stop the music that's currently playing
Music
Array of Objects 0 List of Music structures to include.

AnimalAnimationComponent

Inherits from: BaseAnimPhysComponent

Param Type Default value Unit Description
Layers
Flags 0 Interaction layers we belong to
Layer Preset
String 0 Presets of layer definitions
Collision Mass
Scalar 3 Collision mass
Collision Min
Vector with 3 elements 3 Min vector of collision shape
Collision Max
Vector with 3 elements 3 Max vector of collision shape

AnimalControllerComponent

Inherits from: BaseControllerComponent

Param Type Default value Unit Description
Use speed mapping
Boolean 0
Speed mapping
Array of Scalars 3

AimingComponent

Param Type Default value Unit Description
Signals Source Access
Object 0
Provide Aiming Type
Integer 0 defines which aimning component will be used
Limits Horiz
Vector with 2 elements 3 Aiming horizontal limits (turn)
Limits Vert
Vector with 2 elements 3 Aiming vertical limits (elevation)
Init Aiming
Vector with 2 elements 3 Initial aiming
Aiming Max Speed
Vector with 2 elements 3 Aiming Max Speed
Aiming Speed Controls
Vector with 2 elements 3 Aiming Speed Controls

BaseAnimPhysComponent

Param Type Default value Unit Description
Anim Graph
Resource Name 0 Anim graph name
Anim Instance
Resource Name 0 Anim graph instance
Start Node
String 0 Node where to start from
Collision bone
String 0 Bone which is used as an offset for collision shape
Server LOD
Integer 0 Animation LOD on dedicated server

BaseControllerComponent

Param Type Default value Unit Description
Draw Debug Info
Boolean 0
Apply Controls
Boolean 0 Should the controller be able to create inputs

FlattenGrassParametersObject

Param Type Default value Unit Description
Side X
Scalar 3
Side Z
Scalar 3
Offset
Scalar 3
Center Lerp
Scalar 3
Time Down
Scalar 3
Max Height
Scalar 3
Shape Of Grass Flattening
String 0 Shape which is going to be used for grass flattening

BaseFlattenGrassComponent

Param Type Default value Unit Description
Parameters Collection
Array of Objects 0 Available configurations for grass flattening
Default Collection
Integer 0 Configuration to use by default from predefined parameters collection
Offset From Com
Scalar 3 How much the object should be high enough to disable the flattening of grass. (Only works with helicopter for now)

MeshesVisibilitySwitchConfig

Param Type Default value Unit Description
Event
String 0 When change should be applied?
Meshes
Array of Strings 0 To which submeshes should be applied?
Hide Mesh
Boolean 0 Should we hide or show mesh when event arrives?

BaseItemAnimationComponent

Param Type Default value Unit Description
Always Active
Boolean 0 Should component be always active? Otherwise will be active only when synced with Character.
Anim Injection
Object 0 Character animation injection to be set to character's anim graph attachment node
Bind With Injection
Boolean 0 Bind commands only when character injection is setup
Auto Command Bind
Boolean 0 Automatically Bind all commands from template
Anim Commands To Bind
Array of Strings 0 Animation commands to be synchronized with character graph
Auto Variables Bind
Boolean 0 Automatically Bind all variables from template
Anim Variables To Bind
Array of Strings 0 Animation variables to be synchronized with character graph
Mesh Visibility Configurations
Array of Objects 0
Reset On Deactivation
Boolean 0 On component deactivation, should the internal animation state be reset and the base pose applied?
Simulate On Headless
Boolean 0 Should we simulate current animations on headless builds?
Deactivation Delay
Scalar 3 Delay before animations go to sleep when inactive state was requested

PreloadEntry

Param Type Default value Unit Description
Prefab
Resource Name 0
Fully Preload
Boolean 0 Should the prefab be fully preloaded by spawning it in a world?

BasePreloadManager

Param Type Default value Unit Description
Prefabs To Preload
Array of Objects 0 Prefabs to preload

BaseStaminaComponent

Param Type Default value Unit Description
Signals Source Access
Object 0

BaseVehicleNodeComponent

Param Type Default value Unit Description
Default Node
Boolean 0

BaseBuilding

Param Type Default value Unit Description
House Number
Integer 0 The unique number given to the building.

BaseSlotComponent

Param Type Default value Unit Description
Attach Type
Object 0
Entity Prefab
Resource Name 0 Prefab to spawn in that slot.
Disable Physics Interaction
Boolean 0 Should attached object not collide with any parent
Inherit Parent Skeleton
Boolean 0 Should attached object inherit parent skeleton

SlotBoneMappingObject

Param Type Default value Unit Description
Bone Prefix
String 0 Bone prefix to find
Prefab
Resource Name 0 What entity to spawn

Building

Inherits from: BaseBuilding

Param Type Default value Unit Description
Is Building
Boolean 0 Mark this entity as a building
Slot Bone Mappings
Array of Objects 0
Adjust Height Map
Boolean 0 Modify terrain under building
Adjust Height Map Prio
Integer 0 Priority of terrain heightmap adjust
Falloff Start Width
Scalar 3
Falloff Width
Scalar 3
Underground Structure
Boolean 0 Tunnel, cellar etc.

ClimbingDataComponent

Param Type Default value Unit Description
Can Climb Over
Boolean 0 If false, this object cannot be climbed over by player - the jumping animation will be used instead.

SoundPointEventInfo

Param Type Default value Unit Description
Event
Integer 0

DoorComponent

Param Type Default value Unit Description
Door Action
Object 0
Pivot ID
String 0
Open Both Ways
Boolean 0 Should the door open both ways
Door Width Is XYZ
Integer 0 Which dimension of the door's bounds is used for door width: X Y or Z
Angle Range
Scalar 3 Maximum angle of rotation of the Door hinge
Closed Angle
Scalar 3 Angle in which the Door is considered to be closed (must be lower or equal to the range)
Initial Angle
Scalar 3 Angle of the Door upon initialization
Open Time
Scalar 3
Door Animation Type
Integer 0
Max Impulse
Scalar 3
Softness
Scalar 3
Bias Factor
Scalar 3
Relaxation Factor
Scalar 3
Sound Filename
Resource Name 0
Sound Points
Array of Objects 0
Direction Change Angle Threshold
Scalar 4u Alpha value to consider open and closed door as complete and allowed to change direction on next interaction.\n0 will mean blocked door at any time can change open/close state;\n1 will mean that only when the door is completed it's open/close angle it will be allowed to change open/close state
Test Contacts
Boolean 0 Should this door component perform contact tests
Test Collider
String 0 Collider that will be tested for contacts

DoorSlotComponent

Inherits from: BaseSlotComponent

Param Type Default value Unit Description
Door Mirrored
Boolean 0 Should door open the other way
Door Open Both Ways
Boolean 0 Should the door open both ways
Door Angle Range Override
Scalar 3 Change max angle (in degrees) for spawned door (-1 to disable).
Door Closed Angle Override
Scalar 3 Change closed angle (in degrees) for spawned door (-1 to disable).
Door Initial Angle Override
Scalar 3 Change initial angle (in degrees) for spawned door (-1 to disable).

LadderExitPointInfo

Param Type Default value Unit Description
Final Transform
Object 0
Apply Orientation
Boolean 0
Use As Entry Alignment
Boolean 0

LadderComponent

Param Type Default value Unit Description
Bottom Front Position Info
Object 0
Top Front Position Info
Object 0
Top Left Position Info
Object 0
Top Right Position Info
Object 0
Enable Top Front Entry
Boolean 0 Should top front entry be allowed by default
Top Variant
Integer 0 Top front entry animation variant
Middle Lefts Position Info
Array of Objects 0
Middle Rights Position Info
Array of Objects 0
Ladder Step Length
Scalar 3
Visible in editor
Boolean 0 Visible in editor

StreetLampComponent

Param Type Default value Unit Description
Emissive Color
Color 4 Default emmisive color.
Use Electricity
Boolean 0 Should it use the electricity

CameraBase

Param Type Default value Unit Description
FOV
Scalar 3 Camera field of view
near Plane
Scalar 3 Camera near plane clipping
far Plane
Scalar 3 Camera far plane clipping
projection Type
Integer 0 Type of projection
camera Flags
Flags 0 Camera usage flags
lens Flare Set Type
Integer 0 Type of lens flare set
lens Flare Set User Name
String 0 Name for user lens flare set.

CameraHandlerComponent

Param Type Default value Unit Description
Camera entity prefab
Resource Name 0 Camera prefab to spawn
Camera Set name
String 0 Name of camera set

CameraManager

Param Type Default value Unit Description
Default Cam Name
String 0 Default camera name
Fov Mininum
Scalar 3 Minimum field of view
Fov Maximum
Scalar 3 Maximum field of view
Fov Firstperson
Scalar 3 First person field of view
Fov Thirdperson
Scalar 3 Third person field of view
Fov Vehicle
Scalar 3 Vehicle field of view
Default View Position
Vector with 3 elements 3 Default view position (meters), if no camera is present.
Default View Angles
Vector with 3 elements 3 Default view rotation (pitch,yaw,roll in degrees), if no camera is present.
Default View Fov
Scalar 3 Default view field of view, if no camera is present.
Default View Nearplane
Scalar 3 Default view near plane (in meters), if no camera is present.
Default View Farplane
Scalar 3 Default view far plane (in meters), if no camera is present.

PlayerCamera

Inherits from: CameraBase

Param Type Default value Unit Description
Focus Mode FOV
Scalar 3 Camera field of view when in focus mode

ScriptCharacterCommandMoveSettings

Param Type Default value Unit Description
Movement Filter Max Change
Scalar 6u
Movement Speed Anim Threshold
Scalar 6u Speed threshold to start movement animation for no root motion target
Speed Variable Interpolation
Scalar 3 Speed at which we interpolate speed animation variable (units/s eg at value of 10 one unit of speed change will be interpolated over 100ms)
Max Slope
Scalar 3 Max slope angle of surface that character can move againsts.
Overencumberance Worst Speed Multiplier
Scalar 3 Speed multiplier applied to character movement when carrying 70+kg of gear.
Sample Slope Factor Smoothing Time
Scalar 3 Smoothing of slope sample factor (effectively angle player is moving against). Higher values mean more smoothing but slower reaction to changes.
Slope Slowdown Curve
Array of Vectors with 2 elements 3 How much will character max speed gets slowed down when moving against a slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be slowdown factor of max speed.
Slope Speedup Curve
Array of Vectors with 2 elements 3 How much will character max speed gets sped up down when moving down a slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be speedup factor of max speed.
Slope Stamina Penalty Curve
Array of Vectors with 2 elements 3 Describes the stamina regen penalty when moving against the slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be used as stamina regen penalty.
Slope Stamina Bonus Curve
Array of Vectors with 2 elements 3 Describes the stamina regen bonus when moving down the slope. Curve gets sampled with fraction of (player movement angle) / (max slope angle) and the result will be used as stamina regen bonus.
Run Spring Timeout
Scalar 6u
Run Spring Max Change
Scalar 6u
Dir Filter Timeout
Scalar 6u
Dir Filter Speed
Scalar 6u
Max Sprint Angle
Scalar 6u
Rotation Change Blend
Scalar 6u
On Turn Speed Reduc Factor
Scalar 6u
On Turn No Reduc Angle
Scalar 6u
Turn Angle
Scalar 3
Turn End Update NTime
Scalar 6u
Turn Next NTime
Scalar 6u
Banking Strength
Scalar 3 Just a multiplier of how strongly the mouse movement transforms to banking. Higher value fills the max delta easier.
Banking Max Angle
Scalar 3
Banking Max Delta Growth
Scalar 3 Max change in the angle per second when the banking is increasing.
Banking Max Delta Decay
Scalar 3 Max change in the angle per second when returning from banking to 0.
Banking Max Delta Switching
Scalar 3 Max change in the angle per second when banking one side, but turning the other.
Banking Decay Delay
Scalar 3 After the peak in mouse movement speed, the character stays banked for *this time period* before returning to normal. Also smooths out any noise in input.
Banking Delta Early Decay Multiplier
Scalar 3 The multiplier of banking during the BankingDecayDelay period.
Banking Angle Curve
Array of Vectors with 2 elements 3 Describes the translation of final banking (after smoothing and clamping) into the angle - input is the fraction of the max angle, output is a multiplier of the result.
Sliding Pose Angle
Scalar 1u
Sliding Speed Lower
Scalar 4u
Sliding Friction
Scalar 4u
Allow Jump When Sliding
Boolean 0
Sliding Pose Track Time
Scalar 3
Sliding Pose Rep Time
Scalar 3
Heading Change Limiter Idle
Scalar 3
Heading Change Limiter Walk
Scalar 3
Heading Change Limiter Run
Scalar 3
Leaning Speed
Scalar 3
Lean Collision Test Distance
Scalar 3
Adjusted Stance Change Time
Scalar 3
Adjusted Stance Change Max Speed
Scalar 3
Weapon Deployment Adjusted Stance Change Time
Scalar 3 Time of dynamic adjust stance change 0->1 or 1->0 when stance is changed
Adjusted Stance Trace Length
Scalar 3
Adjusted Stance Upper Threshold
Scalar 3
Adjusted Stance Lower Threshold
Scalar 3
Detect Ladders
Boolean 0 enable ladder detection
Fall Time Ladder Detection
Scalar 3 Time of falling when ladder detection can start, any negative value will cancel detection during fall
Limit Fall Time Ladder Detection
Scalar 3 Limit previously set time to forbid automatic detection when fall time above this limit
Max Enter Ladder Angle
Scalar 3 max allowed angle between character and ladder for entering (deg)
Min Ladder Tangent Angle
Scalar 3 min angle of ladder allowed for climbing (deg)
Max Ladder Tangent Angle
Scalar 3 max angle of ladder allowed for climbing (deg)
Speed Erect Slow Forward
Scalar 5u Slow forward movement speed (in m/s)
Speed Erect Slow Backward
Scalar 5u Slow backward movement speed (in m/s)
Speed Erect Slow Strafe
Scalar 5u Slow side movement speed (in m/s)
Speed Erect Normal Forward
Scalar 5u Normal forward movement speed (in m/s)
Speed Erect Normal Backward
Scalar 5u Normal backward movement speed (in m/s)
Speed Erect Normal Strafe
Scalar 5u Normal side movement speed (in m/s)
Speed Erect Fast Forward
Scalar 5u Fast forward movement speed (in m/s)
Speed Erect Fast Strafe
Scalar 5u Fast side movement speed (in m/s)
Speed Crouch Slow Forward
Scalar 5u Slow forward movement speed (in m/s)
Speed Crouch Slow Backward
Scalar 5u Slow backward movement speed (in m/s)
Speed Crouch Slow Strafe
Scalar 5u Slow side movement speed (in m/s)
Speed Crouch Normal Forward
Scalar 5u Normal forward movement speed (in m/s)
Speed Crouch Normal Backward
Scalar 5u Normal backward movement speed (in m/s)
Speed Crouch Normal Strafe
Scalar 5u Normal side movement speed (in m/s)
Speed Crouch Fast Forward
Scalar 5u Fast forward movement speed (in m/s)
Speed Crouch Fast Strafe
Scalar 5u Fast side movement speed (in m/s)
Speed Prone Slow Forward
Scalar 5u Slow forward movement speed (in m/s)
Speed Prone Slow Backward
Scalar 5u Slow backward movement speed (in m/s)
Speed Prone Slow Strafe
Scalar 5u Slow side movement speed (in m/s)
Speed Prone Normal Forward
Scalar 5u Normal forward movement speed (in m/s)
Speed Prone Normal Backward
Scalar 5u Normal backward movement speed (in m/s)
Speed Prone Normal Strafe
Scalar 5u Normal side movement speed (in m/s)
Speed Prone Fast Forward
Scalar 5u Fast forward movement speed (in m/s)
Speed Prone Fast Strafe
Scalar 5u Fast side movement speed (in m/s)
Speed Erect Slope Slow Forward
Scalar 5u Slow forward movement speed (in m/s)
Speed Erect Slope Slow Backward
Scalar 5u Slow backward movement speed (in m/s)
Speed Erect Slope Slow Strafe
Scalar 5u Slow side movement speed (in m/s)
Speed Erect Slope Normal Forward
Scalar 5u Normal forward movement speed (in m/s)
Speed Erect Slope Normal Backward
Scalar 5u Normal backward movement speed (in m/s)
Speed Erect Slope Normal Strafe
Scalar 5u Normal side movement speed (in m/s)
Speed Erect Slope Fast Forward
Scalar 5u Fast forward movement speed (in m/s)
Speed Erect Slope Fast Strafe
Scalar 5u Fast side movement speed (in m/s)
Speed Crouch Slope Slow Forward
Scalar 5u Slow forward movement speed (in m/s)
Speed Crouch Slope Slow Backward
Scalar 5u Slow backward movement speed (in m/s)
Speed Crouch Slope Slow Strafe
Scalar 5u Slow side movement speed (in m/s)
Speed Crouch Slope Normal Forward
Scalar 5u Normal forward movement speed (in m/s)
Speed Crouch Slope Normal Backward
Scalar 5u Normal backward movement speed (in m/s)
Speed Crouch Slope Normal Strafe
Scalar 5u Normal side movement speed (in m/s)
Speed Crouch Slope Fast Forward
Scalar 5u Fast forward movement speed (in m/s)
Speed Crouch Slope Fast Strafe
Scalar 5u Fast side movement speed (in m/s)
Speed Prone Slope Slow Forward
Scalar 5u Slow forward movement speed (in m/s)
Speed Prone Slope Slow Backward
Scalar 5u Slow backward movement speed (in m/s)
Speed Prone Slope Slow Strafe
Scalar 5u Slow side movement speed (in m/s)
Speed Prone Slope Normal Forward
Scalar 5u Normal forward movement speed (in m/s)
Speed Prone Slope Normal Backward
Scalar 5u Normal backward movement speed (in m/s)
Speed Prone Slope Normal Strafe
Scalar 5u Normal side movement speed (in m/s)
Speed Prone Slope Fast Forward
Scalar 5u Fast forward movement speed (in m/s)
Speed Prone Slope Fast Strafe
Scalar 5u Fast side movement speed (in m/s)
Dynamic Speed Erect Min
Scalar 5u Minimum erect dynamic speed multiplier.
Dynamic Speed Crouch Min
Scalar 5u Minimum crouch dynamic speed multiplier.
Dynamic Speed Prone Min
Scalar 5u Minimum prone dynamic speed multiplier.
Speed Multiplier ADS
Scalar 5u Proportion of ADS speed to normal speed
Speed Air Control
Scalar 5u speed of air control m/s
Slope Locomotion
Boolean 0 Allow slope locomotion
Velocity To Jump Force Delta
Scalar 5u negative force scaler applied to initial velocity before jumping (in other words - how much of movement velocity will be transfered to jump translation vector), lower value will reduce the length of jump, higher will increase it
Air Time Before Fall
Scalar 5u Air time in seconds before transition to fall command
Max Prone Slope Angle
Scalar 5u Max allowed slope angle for prone before automatically switching to crouch
Max Crouch Slope Angle
Scalar 5u Max allowed slope angle for crouch before automatically switching to prone
Slope Based Stance
Boolean 0 Should stance be changed based on slope angle?
Innertia Curve
Array of Vectors with 2 elements 3 Acceleration alpha for different movement states (t0 - idle; t1 - sprint)
Curve Keys Tangential Tension
Scalar 3 Tension to be used for curve key control points
Heading Change Speed Min
Scalar 3 Heading change speed lower bound deg/s
Heading Change Speed Max
Scalar 3 Heading change speed upper bound deg/s
Heading Adjustment Speed Reduction
Array of Vectors with 2 elements 3 Heading adjustment upper bound speed reduction X (t0 - idle; t1 - sprint) Y (t0 - no reduction; t1 - full reduction)
Initiate Turn Minimal Angle Threshold
Scalar 3 In deg. Aim Offset from heading after which auto alignment timer would kick off (player *has* to stop adjusting aiming for the turn to start within this range).
Initiate Turn Minimal Angle Time
Scalar 3 In seconds. If character aim heading offset is above specified limit, it should take at least this amount of character idle time in order to start turn animation.
Initiate Turn Non Idle Angle Threshold
Scalar 3 In deg. Aim Offset from heading after which auto alignment timer would kick off (player *does not have* to stop adjusting aiming for the turn to start within this range).
Initiate Turn Non Idle Angle Time
Scalar 3 In seconds. If character aim heading offset is above specified limit, it should take at least this amount of time in order to start turn animation.
Max Allowed Turns Angle Offset
Scalar 3 In deg. Aim Offset from heading after which auto alignment triggers immediately.
Override Idle Turns Limits In Prone
Boolean 0 Allows to set separate idle turns limits for the prone stance.
Prone Initiate Turn Minimal Angle Threshold
Scalar 3 In deg. Aim Offset from heading after which auto alignment timer would kick off (player *has* to stop adjusting aiming for the turn to start within this range).
Prone Initiate Turn Minimal Angle Time
Scalar 3 In seconds. If character aim heading offset is above specified limit, it should take at least this amount of character idle time in order to start turn animation.
Prone Initiate Turn Non Idle Angle Threshold
Scalar 3 In deg. Aim Offset from heading after which auto alignment timer would kick off (player *does not have* to stop adjusting aiming for the turn to start within this range).
Prone Initiate Turn Non Idle Angle Time
Scalar 3 In seconds. If character aim heading offset is above specified limit, it should take at least this amount of time in order to start turn animation.
Prone Max Allowed Turns Angle Offset
Scalar 3 In deg. Aim Offset from heading after which auto alignment triggers immediately.
Climbing Animations Thresholds
Array of Scalars 3 Thresholds (in centimeters) for climbing types. Heights smaller than 1st element will trigger climbing type 1, with each successive brackter triggering climbing type higher by one. Climbing higher than the last value will not be allowed.

CharacterAimingComponent

Inherits from: AimingComponent

Param Type Default value Unit Description
Crouch Limits Horizontal
Vector with 2 elements 5u Yaw aiming limits of held weapon relative to body direction in crouch stance (in deg)
Crouch Limits Vertical
Vector with 2 elements 5u Pitch aiming limits of held weapon relative to body direction in crouch stance (in deg)
Prone Limits Horizontal
Vector with 2 elements 5u Yaw aiming limits of held weapon relative to body direction in prone stance (in deg)
Prone Limits Vertical
Vector with 2 elements 5u Yaw aiming limits of held weapon relative to body direction in prone stance (in deg)
Deployed Sensitivity Scaler
Vector with 2 elements 5u Aim sensitivity scaler when weapon is deployed
Aim Modifiers
Array of Objects 0
Zeroing Interpolation Speed
Scalar 5u Rate at which interpolation of zeroing across different muzzles of a weapon works.
Shoulder
Object 0

PhysAgentCollisionShapeItem

Param Type Default value Unit Description
Shape
Integer 0
Size
Vector with 3 elements 3 Full size for box shape \t diameter from x component for sphere/capsule/cylinder \t height from y component for capsule/cylinder
Offset
Vector with 3 elements 3 Collision offset from center of mass
Dynamic Offset
Vector with 3 elements 3 Additive Collision offset from center of mass towards movement direction
Step Height
Scalar 3

CharacterAnimationComponent

Inherits from: BaseAnimPhysComponent

Param Type Default value Unit Description
Layers
Flags 0 Interaction layers we belong to
Default Shape Layer
Flags 0 Default shape interaction layer
Freshwater Layer
Flags 0 Freshwater layer
Layer Preset
String 0 Presets of layer definitions
Dynamic BBox
Boolean 0 Dynamic bbox is generated from bones positions, if not it will use static defined capsule
Apply Recoil Anim
Boolean 0 Apply recoil anim on character
Use Simple Physics Controller
Boolean 0 Use simplified physics controller
Ragdoll Disable Timer
Scalar 3 How long ragdoll state should have active physics (s)/nIn case ragdoll would go to sleep - timer would be interrupted and physics deactivated
Ik Pose Bones Blend
Array of Strings 0 Bones to be included into hands IK pose blend (usually represents WeaponIK node change for left hand, as it is being driven by ik pose from animation)
Unarmed Ik Pose
Resource Name 0 Hand IK Pose when unarmed
Collider Stand
Object 0
Collider Crouch
Object 0
Collider Prone
Object 0
Collider Jump
Object 0
Collider Swim
Object 0
Collider Ladder
Object 0
Collider Vehicle
Object 0
Collider Weapon Deployment Stand
Object 0
Collider Weapon Deployment Crouch
Object 0
Collider Weapon Deployment Prone
Object 0
Ragdoll Layer
Flags 0 Ragdoll interaction layer
Definition
Resource Name 0 Ragdoll definition
Max Ragdoll Effectors
Integer 0
Ragdoll Effector Linear Scale
Scalar 3 Overall linear effector scaler when applied to ragdoll
Ragdoll Effector Angular Scale
Scalar 3 Overall angular effector scaler when applied to ragdoll
Ragdoll Hips Max Speed
Scalar 3 Max possible speed of ragdoll (m/s)
Ragdoll Hips Max Spin
Scalar 3 Max possible spin of ragdoll (m/s)
Special Handling Layer
Flags 0 Special handling layer
Animate Ragdoll Replay Final Pose
Boolean 0 Either final state of ragdoll should be animated over time or simply applied when not visible by player

CharacterCommandHandlerComponent

Param Type Default value Unit Description
Static Layer
Flags 0 Interaction layer of static objects
Vehicles Layers
Flags 0 Interaction layers for vehicles
Ladders Layers
Flags 0 Interaction layers for ladder detection
Ladder Detect Max Dist
Scalar 3 Max distance from character location to ladder step to detect it
Fall Landtype None
Scalar 3 Falling distance until which the landing is considered None
Fall Landtype Light
Scalar 3 Falling distance until which the landing is considered Light
Fall Landtype Medium
Scalar 3 Falling distance until which the landing is considered Medium
Body Offset Reference Point
Object 0 point which is used as an offset for obstruction test
Obstruction Layers
Flags 0 Layers which should be obstructing weapon
Obstruction Interpolation Speed
Scalar 3 Speed of interpolation as n * delta time. 0 to disable.
Move Settings
Object 0
Climb Settings
Object 0

CharacterControllerComponent

Param Type Default value Unit Description
Left Hand Position
Object 0
Right Hand Position
Object 0
Action Delay Time Stance Change
Scalar 5u Delay time between stance changes that the character cannot perform certain actions (in s)
Sprint Interrupt Duration
Scalar 5u How much time should pass before we can return to sprint after it is being interrupted and sprint is not blocked anymore (in seconds)
Jump Up Velocity
Scalar 5u Jump acceleration in Y axis (in m/s)
Aiming Speed
Scalar 2u Aiming change speed relative to input (deg/s)
Wait For Throw Reset Action
Boolean 0 Should user release action button before next attempt to throw when previous throwing was canceled
Change Weapon When No Grenades
Boolean 0 Should character change weapon to previously selected when there's no grenades left in inventory after throw
Lock Down Aim In Adjusted Stance
Boolean 0 Should down aim should be locked when in adjusted stance
Input Aim Limits
Vector with 2 elements 3 Input aim limits in deg/sec, 0 for unlimited, applied before aiming speed scaler
Legs Damage Can Move Threshold
Scalar 3 Above what scaled damage (0-1) character cannot jog, sprint or jump
Death Timer
Scalar 1u For how long we should be dying
Vehicle Ragdoll Speed
Scalar 2u When character exits vehicle moving above this speed, it ragdolls.(km/h)
Water Movement Limits
Array of Vectors with 2 elements 3 Curve representing the limits where X axis represents no depth up to swimming depth alpha and Y axis represents speed limit from none to full stop
Allow Light Impact Anim
Boolean 0
Aiming PID
Vector with 3 elements 3 Aiming PID values for AIs
Aiming PIDMax Error Integral
Scalar 2u Max value of integral component of PID controller for aiming
Aiming PIDClose Multiplier
Scalar 2u Value to multiply PID controller numbers when close enough to target (distance defined by AimingPIDTargetCLoseDistance)
Aiming PIDCTarget Close Distance
Scalar 2u Distance in which the PID values should be multiplied by AimingPIDCloseMultiplier
Lean Speed
Scalar 3u Lean speed. Value multiplied by timeslice (s)
Lean Velocity
Scalar 3u How much is added to every frame to target lean. Higher will mean harder to lean precisely. Lower will mean very long to lean fully. Only used with keyboard.
Lean Nearest Limit
Scalar 5u If the leaning value is > -value and < value, the leaning value will be snapped to 0. This is how variable leaning is deactivated.
Allow Roll Animation
Boolean 0
Hold Input For Roll
Boolean 0
Allow Ragdoll Effectors From Damage
Boolean 0

CharacterHeadAimingComponent

Inherits from: AimingComponent

Param Type Default value Unit Description
Aim Pivot
Object 0 Pivot point around which head should be rotating
Absolute Look Limits Du
Vector with 2 elements 3 Absolute vertical limits of combined angles (head + aim direction)
Absolute Look Limits Lr
Vector with 2 elements 3 Absolute horizontal limits of combined angles (head + aim direction)
Pitch Reduction
Array of Vectors with 2 elements 3 Pitch reduction curve, where x represents current alpha of yaw side limit and y represents interpolation alpha between minimum and maximum limits of the pitch
Absolute Look Limits Du Unconscious
Vector with 2 elements 3 Absolute vertical limits of combined angles (head + aim direction) while unconscious
Absolute Look Limits Lr Unconscious
Vector with 2 elements 3 Absolute horizontal limits of combined angles (head + aim direction) while unconscious

CharacterIdentityComponent

Param Type Default value Unit Description
Override
Boolean 0 Override global config with local version
Identity
Object 0

CharacterSoundComponent

Inherits from: SoundComponent

Param Type Default value Unit Description
Foliage Collision Layer
String 0 Layer used for foliage collision
Foliage Collision Radius
Scalar 2u Radius [m] for foliage detection
Impulse Threshold
Scalar 3
Velocity Threshold
Scalar 3
Obstruction Threshold
Scalar 3

CharacterStaminaComponent

Inherits from: BaseStaminaComponent

Param Type Default value Unit Description
Stamina Regain Per S
Scalar 4 How fast stamina recovers
Stamina Drain Run
Scalar 4 How fast stamina is used when running
Stamina Drain Sprint
Scalar 4 How fast stamina is used when sprinting
Default Character Mass
Scalar 2 Mass of empty/naked character in kg
Encumbrance Mass Min
Scalar 2 Mass in kg, above which encumbrance starts to influence stamina
Encumbrance Mass Max
Scalar 2 Mass in kg, at which encumbrance has the biggest effect
Encumbrance Drain Max
Scalar 4 Maximum possible stamina drain caused by max encumbrance
Breath Normal Frequency
Scalar 4 Amount of breath ins and outs taken per second
Breath Normal Magnitude
Scalar 4 The magnitude of each breath
Breath Exhausted Frequency
Scalar 4 Amount of breath ins and outs taken per second
Breath Exhausted Magnitude
Scalar 4 The magnitude of each breath
Weapon Partial Lowering Times
Vector with 2 elements 2 Min and Max timer of weapon partial lowering

CharacterWeaponSlotComponent

Inherits from: WeaponSlotComponent

Param Type Default value Unit Description
Holstered Hidden
Boolean 0 Should be hidden when holstered
Smoothing Speed
Scalar 3 Speed of smoothing animation of weapons

CompartmentAccessComponent

Param Type Default value Unit Description
Compartment Layer Preset
String 0 Physics preset when in compartment
Teleport When Blocked
Boolean 0 Should we teleport occupant outside the vehicle, when all exits are blocked?
Teleport Direction
Integer 0 Prefered telport direction when vehicle is turned around or teleporting from blocked state.

FactionIdentity

Param Type Default value Unit Description
Visual Identity Array
Array of Objects 0 List of possible visual identities
Sound Identity Array
Array of Objects 0 List of possible sound identities
Social Identity
Object 0 Social identity of faction

Identity

Param Type Default value Unit Description
Visual Identity
Object 0 Visual identity config
Sound Identity
Object 0 Sound identity config
Name
String 0 Name of this character.
Alias
String 0 Alias of this character.
Surname
String 0 Surname of this character.

IdentityBodyMesh

Param Type Default value Unit Description
Part Type
String 0 Name of the part of body.
Healthy Version
String 0 Name of healthy version
Wound Version
String 0 Name of wounded version

MeshConfig

Param Type Default value Unit Description
Submeshes Of Body
Array of Objects 0 Submeshes of body.

SocialIdentity

Param Type Default value Unit Description
Names Config
Array of Strings 0 List of possible names.
Aliases Config
Array of Strings 0 List of possible aliases.
Surnames Config
Array of Strings 0 List of possible surnames.

SoundIdentity

Param Type Default value Unit Description
Voice ID
Integer 0 Type of the voice
Voice Pitch
Scalar 3 Pitch of the voice

VisualIdentity

Param Type Default value Unit Description
Head
Resource Name 0 Head of the character.
Body
Resource Name 0 Body of the character.
Body Meshes Config
Object 0 List of meshes of body.

BaseEffectComponent

Param Type Default value Unit Description
Attach To Parent
Boolean 0 Should be attached to parent entity
Emitter Entity Class
String 0 Entity class to be spawned, it will have particle effect as visual object
Particle Effect
Resource Name 0 Particle effect
Effect Orient Up
Boolean 0 Should effect be oriented Y up (true) or using parent entity normal (false)?
Enabled On Dedicated Server
Boolean 0 Should the effect works on a dedicated server?

CaseEjectingEffectComponent

Inherits from: MuzzleEffectComponent

Param Type Default value Unit Description
Water Surface
Scalar 3 Surface value for water.
Has Sound
Boolean 0 Should the effect trigger sound?

HitEffectComponent

Inherits from: BaseEffectComponent

Param Type Default value Unit Description
Stop Sound With Particles
Boolean 0 Whether sound should stop playing along particles or it should keep playing after particles end.
Sound Stop Offset
Integer 0 Time (in ms) before the particles end to stop the sound.

MotorExhaustEffectComponent

Inherits from: BaseEffectComponent

Param Type Default value Unit Description
RPMSignal
String 0 Name of signal which holds RPM of engine.
Thrust Signal
String 0 Name of signal which holds thrust of engine.
Max RPM
Scalar 3 Simple rate of effect will be proportion between current RPM and max RPM
Effect Position
Object 0

MultiBarrelMuzzleEffectComponent

Inherits from: BaseEffectComponent

Param Type Default value Unit Description
Effect Positions
Array of Objects 0 Effect position for each barrel. Ideally, there is one effect position for each barrel of the muzzle component, but if not, the effect position can wrap around or ignore any higher barrel. See Warp Barrel Index below
Reset On Fire
Boolean 0
Override By Attachment
Boolean 0 If set, any attachment on the muzzle behind this entity (including the weapon entity itself) that overrides muzzle effect will prevent this effect from playing. Used for example to have different muzzle flashes with suppressors
Wrap Barrel Index
Boolean 0 If the muzzle component has more barrels than defined in Effect Positions, barrel index is wrapped back into the range if this is true. Otherwise, barrels with a number above the number of defined effect positions will not play any effect at all.

MuzzleEffectComponent

Inherits from: BaseEffectComponent

Param Type Default value Unit Description
Effect Position
Object 0
Reset On Fire
Boolean 0
Override By Attachment
Boolean 0

ElectricityComponent

Param Type Default value Unit Description
Node Type
Integer 0
Radius
Scalar 3
Dynamic
Boolean 0

Faction

Param Type Default value Unit Description
Faction Key
String 0 Unique identifier for this faction.
Faction Color
Color 4 Color representation of this faction.
UIInfo
Object 0 Data for displaying in user interface.
Identity of soldiers
Object 0 Identity of faction soldiers.

FactionAffiliationComponent

Param Type Default value Unit Description
faction affiliation
String 0 faction affiliation

FactionManager

Param Type Default value Unit Description
Factions
Array of Objects 0

BaseGameMode

Param Type Default value Unit Description
Player Controller Prefab
Resource Name 0 Prefab that will be used for connection players.

GamepadEffect

Param Type Default value Unit Description
Name
String 0 Name used to identity the effect.
Context Name
String 0 GamepadEffectContext (defined in GamepadEffectsManagerComponent) to which this effect belongs to.
Priority
Integer 0 Effects with higher priority are selected.
Auto Disable Timeout
Scalar 3 Seconds after which the effect will be auto-disabled. Zero means never.

GamepadEffectContext

Param Type Default value Unit Description
Name
String 0 The unique identifier of this context which will be used for GamepadEffects registration and hashmap searches.

GamepadEffectsManagerComponent

Param Type Default value Unit Description
Effect Contexts
Array of Objects 0
Owned Effects
Array of Objects 0

GamepadLightEffect

Inherits from: GamepadEffect

Param Type Default value Unit Description
Light Color
Color 4 Gamepad light color to be used.
Time Period
Scalar 3 Time period of the light animation (in seconds).

GamepadRumbleEffect

Inherits from: GamepadEffect

Param Type Default value Unit Description
Rumble Impact
Integer 0 Strength of the rumble effect.
Rumble Interval
Integer 0 Duration of the rumble effect.
Loop Times
Integer 0 How many times the effect will loop. 0 means no looping.
Start Delay
Scalar 3 Start delay (in seconds).

GamepadTriggerEffect

Inherits from: GamepadEffect

Param Type Default value Unit Description
Trigger Type
Integer 0 Gamepad trigger (Left/Right)
Trigger Effect Type
Integer 0 Gamepad trigger effect type
Trigger Effect Curve
Array of Vectors with 2 elements 3 Feedback-Strength/Rumble-Amplitude curve for the gamepad trigger effect.\nHorizontal axis range [0, 10).\nVertical axis range [0, 9).
Trigger Effect Frequency
Integer 0 Vibration frequency in range [0-255] Hertz, when Trigger Effect Type is set to 'Rumble'.
Variable Frequency
Boolean 0 Is frequency variable?
Frequency Delta
Integer 0 Range [-255, 255]. How much of this is taken into account depends on SetFrequencyDeltaAmount().
Variable Amplitude
Boolean 0 Is curve amplitude variable?
Amplitude Delta
Integer 0 Range [-8, 8]. How much of this is taken into account depends on SetAmplitudeDeltaAmount().

GamepadVibrationEffect

Inherits from: GamepadEffect

Param Type Default value Unit Description
Filename
Resource Name 0

WeaponGamepadEffectsManagerComponent

Inherits from: GamepadEffectsManagerComponent

Param Type Default value Unit Description
Default Chambered Trigger effect
Object 0 Default Chambered Fire Trigger effect used when FireMode doesn't have one.
Default ADS Trigger effect
Object 0 Default Chambered Trigger effect used when BaseMuzzleComponent doesn't have one.
Default Deployment effect
Object 0 Default Deployment Trigger effect used when BaseWeaponComponent doesn't have one.
Default Empty Fire Trigger effect
Object 0 Default Empty Fire Trigger effect used when FireMode doesn't have one.
Default Firing Trigger effect
Object 0 Default Firing Trigger effect used when FireMode doesn't have one.

BaseHUDComponent

Param Type Default value Unit Description
Info Displays
Array of Objects 0

BaseInfoDisplay

Param Type Default value Unit Description
Visible At Parent
Boolean 0

GroupInfoDisplay

Inherits from: BaseInfoDisplay

Param Type Default value Unit Description
Info Displays
Array of Objects 0

UIInfo

Param Type Default value Unit Description
Name
String 0 Name to be displayed in player UI.
Description
String 0 Description text to be displayed in player UI.
Icon
Resource Name 0 Resource for icon to be displayed in player UI.

BaseInventoryStorageComponent

Inherits from: InventoryItemComponent

Param Type Default value Unit Description
Priority
Integer 0 Storage priority
Storage Purpose
Flags 0 Storage usage purpose
Use Capacity Coefficient
Boolean 0 Base the item storage capacity on its physical dimensions (volume).
Capacity Coefficient
Scalar 3 Amount of item volume to be considered as allowed cumulative capacity.
Max Cumulative Volume
Scalar 3 Maximum cumulative volume capacity in cm^3
Max Item Size
Vector with 3 elements 3 Maximum allowed item size (item can be rotated) cm
Save In Loadout
Boolean 0
Use Virtual Inventory Replication
Boolean 0 Should this storage has a virtual inventory
Virtual Inventory Prefab
Resource Name 0 Prefab that will be used for replication of the inventory.

CharacterInventoryStorageComponent

Param Type Default value Unit Description
Character Preview Prefab
Resource Name 0 Character preview Prefab

CharacterVicinityComponent

Param Type Default value Unit Description
Discovery Radius
Scalar 3 Vicinity discovery radius in meters
Discovery Interval
Scalar 3 Vicinity refresh interval in seconds

EquipmentStorageSlot

Inherits from: InventoryStorageSlot

Param Type Default value Unit Description
Allowed Item Types
Array of Strings 0 Item types that are allowed to be attached to current slot (see ECommonItemType enum for possible values)
Affected By Ocluders
Array of Strings 0 Loadout ocluder types that disable item in this slot
Animated Mesh Refference
Resource Name 0 In case of entity owner have changeable mesh at runtime, setting animated mesh reference allows you to configure alternative state of slot transformation
Debug Anim Mesh Slotting
Boolean 0
Resting Offset
Vector with 3 elements 5u Alternative Offset from the origin for mesh item without skeleton
Resting Angles
Vector with 3 elements 5u Alternative Orientation around axes for mesh item without skeleton

InventoryItemComponent

Param Type Default value Unit Description
Attributes
Object 0
Wb Placement From Attributes
Boolean 0 When placing item in world editor, respect properties specified in ItemAttributeCollection

InventoryMagazineComponent

Inherits from: InventoryItemComponent

Param Type Default value Unit Description
Weight Per Ammo
Scalar 3

ItemsInitConfigurationItem

Param Type Default value Unit Description
Target Storage
String 0
Target Purpose
Integer 0 Locate storage on prefab with set purpose
Prefabs To Spawn
Array of Resource Names 0 Prefabs to spawn at target storage

InventoryStorageManagerComponent

Param Type Default value Unit Description
Initial Inventory Items
Array of Objects 0 Configuration list of initial items in inventory

InventoryStorageSlot

Inherits from: EntitySlotInfo

Param Type Default value Unit Description
Inspection Widget Offset
Vector with 3 elements 5u Offset from the origin

ItemPreviewManagerEntity

Param Type Default value Unit Description
Preview World
Resource Name 0 Preview world prefab
Default Render Attributes
Object 0

MultiSlotConfiguration

Param Type Default value Unit Description
Slot Template
Object 0 Storage slot template
Num Slots
Integer 0

PreviewAnimationComponent

Param Type Default value Unit Description
Weapon Attachment Info
Object 0 Weapon attachment for anim instance

UniversalInventoryStorageComponent

Inherits from: BaseInventoryStorageComponent

Param Type Default value Unit Description
Initial Storage Slots
Array of Objects 0 List of initial slots in storage
Multi Slots
Array of Objects 0 List of slots used for multiple items spawn

AimingModifierAttributes

Param Type Default value Unit Description
Erect Limits Horizontal
Vector with 2 elements 5u Yaw (horizontal) aiming limits of held weapon relative to body direction in erect stance (in deg)
Erect Limits Vertical
Vector with 2 elements 5u Pitch (vertical) aiming limits of held weapon relative to body direction in erect stance (in deg)
Crouch Limits Horizontal
Vector with 2 elements 5u Yaw (horizontal) aiming limits of held weapon relative to body direction in crouch stance (in deg)
Crouch Limits Vertical
Vector with 2 elements 5u Pitch (vertical) aiming limits of held weapon relative to body direction in crouch stance (in deg)
Prone Limits Horizontal
Vector with 2 elements 5u Yaw (horizontal) aiming limits of held weapon relative to body direction in prone stance (in deg)
Prone Limits Vertical
Vector with 2 elements 5u Pitch (vertical) aiming limits of held weapon relative to body direction in prone stance (in deg)
Deployment ADSLimits Horizontal
Vector with 2 elements 5u Yaw (horizontal) ADS limits (transition from ADS to 1pv) of held weapon relative to body direction while deployed (in deg)
Deployment ADSLimits Vertical
Vector with 2 elements 5u Pitch (vertical) ADS limits (transition from ADS to 1pv) of held weapon relative to body direction while deployed (in deg)
Deployment ADSLimits Distance
Vector with 2 elements 5u Maximum distance of eye to sights of held weapon while deployed (in meters). Range between two values is used to prevent constant disengagement/reengagement as a threshold.
Prone Deployment Vertical Aim Limits
Vector with 2 elements 5u Vertical aim angle limits of weapon deployment relative to starting deploying direction (in deg)
Prone Deployment Horizontal Aim Limits
Vector with 2 elements 5u Horizontal Aim angle limits of weapon deployment relative to body direction (in deg)
Deploying Height Limits
Vector with 2 elements 5u Min and Max height for deploying a weapon. Distance is relative to character position.
Deployment Aim Speed Multiplier
Vector with 2 elements 5u Aim sensitivity multiplier while deployed
Deployment Horizontal Aim Sensitivity Max
Scalar 5u Maximum horizontal aim speed while deployed (in deg/s)
Max Distance Above Head
Scalar 5u Maximum distance between character's head and buttstock of weapon in weapon deployment.
Left Gun Collision Distance
Scalar 5u distance left of character's right hand, where collision should be checked in weapon deployment.
Right Gun Collision Distance
Scalar 5u distance right of character's right hand, where collision should be checked in weapon deployment.
Upper Gun Collision Distance
Scalar 5u distance up of character's right hand, where collision should be checked in weapon deployment.
Lower Gun Collision Distance
Scalar 5u distance down of character's right hand, where collision should be checked in weapon deployment.
Deployment Points
Array of Objects 0 Set of pivot points to use with deployment, clear array to disable deployment

AttachmentAttributes

Param Type Default value Unit Description
Attachment Type
Object 0 Object which specifies compatibility.

CharacterModifierAttributes

Param Type Default value Unit Description
Stance Limits
Vector with 2 elements 3 What is the stances range in which the weapon can be equipped.
Speed Limit
Scalar 3 When holding item with current attribute - \nLimit character's speed to current value
ADSSpeed Limit
Scalar 3 When holding item with current attribute - \nLimit character's speed to current value when in ads
Speed Limit Item Primary Action
Scalar 3 When holding item with current attribute - \nLimit character's speed to current value when performing priamry action
Speed Limit Highready
Scalar 3 When having weapon ready to fire - \nLimit character's speed to current value when performing priamry action
Turn Limit
Integer 0 When holding item with current attribute - \nLimit character max incremental turn angle
Default ADSSpeed Modifier
Boolean 0 When holding item with current attribute - \nDefault apply ads speed multiplier (even when not in ads)
Supress1h Shooting
Boolean 0 When holding item with current attribute - \nSupress one handed shooting
Allow Gadget Use
Boolean 0 When holding item with current attribute - \nAllow use of gadgets in the other hand
Can Be Equipped In Vehicle
Boolean 0 Allow equip action when character is in compartment
Allow Reloading With Roll
Boolean 0
Allow Jumping
Boolean 0 Allow jump when item is equipped

HolsteredItemAttributes

Param Type Default value Unit Description
Linear Offset
Vector with 3 elements 3
Angular Offset
Vector with 3 elements 3 yaw pitch roll
Hidden Holstered
Boolean 0 Is hidden holstered?

ItemActionAnimAttributes

Param Type Default value Unit Description
Animation Graph Template
Resource Name 0 Animation graph of action performer (usually character's main animation graph).
Action Animation Command Name
String 0 Animation command to call
Action Anim Duration
Scalar 3 Item Acion Duration
Action Int Param
Integer 0 Item Acion Int Param
Allow Movement During Action
Boolean 0 Can the character move during the action?

ItemAnimationAttributes

Param Type Default value Unit Description
Ik Settings
Array of Objects 0
Animation Instance
Resource Name 0 Anim graph instance
Anim Instance Blend Duration
Scalar 3 Pose blend duration when switching to provided anim instance
Exclude Bones Blend
Array of Strings 0 List of bones to be excluded when blending to current anim instance
Animation IKPose
Resource Name 0 IK Pose for this specific weapon
Anim IKPose Stand Override
Resource Name 0 IK Pose override when standing with this weapon.
Anim IKPose Crouch Override
Resource Name 0 IK Pose override when crouching with this weapon.
Anim IKPose Prone Override
Resource Name 0 IK Pose override when in prone with this weapon.
Override Default Ik Bones Blend
Boolean 0
Include Bones In Ik Blend
Array of Strings 0 Overrides default list of bones to be included when blending to IK Pose
Anim Ikpose Blend Duration
Scalar 3 Blend duration when switching to provided IKPose
Animation Attachments
Array of Objects 0
Hand Additive Rotation
Vector with 3 elements 3 Additive rotation when item is held in hands
Hand Additive Translation
Vector with 3 elements 3 Additive translation when item is held in hands
Anim Injection Priority
Integer 0 Animation injection priority (applicable when weapon with different attachments requires different IK poses or graph attachments)
Anim Recoil Limit
Scalar 3 Magnitude of maximum applied recoil animation.
Anim Recoil Recovery Time
Scalar 3 Recovery time of recoil animation.
Anim Recoil Buildup Time
Scalar 3 Build up time of recoil animation.
Allow Inspection
Boolean 0 Can this item be inspected by the user?

ItemAttributeCollection

Param Type Default value Unit Description
Item Display Name
Object 0
Item Phys Attributes
Object 0 Physical attributes
Item Animation Attributes
Object 0 Animation attributes
Custom Attributes
Array of Objects 0 Item specific attributes can be set here
Common Item Type
String 0 Common item type identifier

ItemIKSettings

Param Type Default value Unit Description
Jumping
Boolean 0 Should these be applied during a jump
Lowered
Boolean 0 Should these be applied when lowered
Prone Turn
Boolean 0 Should these be applied when turning in prone
In Ads
Boolean 0 Should these be applied when in ADS
Out Ads
Boolean 0 Should these be applied when out of ADS
Movement Speed Range
Vector with 2 elements 3 In what speed range those settings are valid
Ik Settings Stand
Flags 0
Ik Settings Crouch
Flags 0
Ik Settings Prone
Flags 0

ItemMovementSwayAttributes

Param Type Default value Unit Description
Bob Spring
Vector with 3 elements 5u Spring coefficient per axis [0,1]
Bob Damper
Vector with 3 elements 5u Spring damping per axis [0,1]
Bob Magnitude Linear
Vector with 3 elements 5u Translation multiplier per axis
Bob Magnitude Angular
Vector with 3 elements 5u Rotation multiplier per axis
Bob Limits
Vector with 3 elements 5u Max change ratio to which delta is clamped
Bob Speed
Scalar 5u Interpolation rate
Min Magnitude
Scalar 3u Min magnitude at min character speed
Max Magnitude
Scalar 3u Max magnitude at max character speed
Default Magnitude Linear
Vector with 3 elements 5u
Default Magnitude Angular
Vector with 3 elements 5u
Lowered Magnitude Linear
Vector with 3 elements 5u
Lowered Magnitude Angular
Vector with 3 elements 5u
One Hand Magnitude Linear
Vector with 3 elements 5u
One Hand Magnitude Angular
Vector with 3 elements 5u
ADSMagnitude Linear
Vector with 3 elements 5u
ADSMagnitude Angular
Vector with 3 elements 5u
Injured Magnitude Linear
Vector with 3 elements 5u
Injured Magnitude Angular
Vector with 3 elements 5u
Target Velocity
Scalar 5u Maximum speed in m/s to which magnitude is scaled.
Target Velocity Steepness
Scalar 5u Exponent value of velocity scaling, defines steepness.
Target Velocity Limit
Scalar 5u Maximum velocity at which curve is clamped to 1.
Smooth Time
Scalar 5u Amount (time) of smoothing applied to initial inptut signal. Higher = slower
Max Velocity
Scalar 5u Maximum smoothing velocity.

ItemOneHandAnimAttributes

Param Type Default value Unit Description
Erect Linear Offset Upper
Vector with 3 elements 5u Linear transform offset when one handed (aiming up).
Erect Linear Offset
Vector with 3 elements 5u Linear transform offset when one handed.
Erect Linear Offset Lower
Vector with 3 elements 5u Linear transform offset when one handed (aiming down).
Erect Angular Offset
Vector with 3 elements 3u Angular transform offset when one handed.
Crouch Linear Offset Upper
Vector with 3 elements 5u Linear transform offset when one handed and crouched (aiming up).
Crouch Linear Offset
Vector with 3 elements 5u Linear transform offset when one handed and crouched.
Crouch Linear Offset Lower
Vector with 3 elements 5u Linear transform offset when one handed and crouched (aiming down).
Crouch Angular Offset
Vector with 3 elements 3u Angular transform offset when one handed and crouched.
Interpolation Speed
Scalar 3u Speed of blending, higher values = faster blend
Stance Interpolation Speed
Scalar 3u Speed of stance blending, higher values = faster blend
Spring Coefficient
Scalar 3u Blend spring coefficient
Damper Coefficient
Scalar 3u Blend damper coefficient
Obstruction Multiplier
Scalar 3u How much influence (or priority) obstruction has over one handed modifier. 1.0 for default. Greater values mean that obstruction will take over this modifier faster.

ItemPhysicalAttributes

Param Type Default value Unit Description
Weight
Scalar 3 Item weight in kg
Size Setup Strategy
Integer 0 How to setup size
Item Dimensions
Vector with 3 elements 3 Manually set Item dimensions in cm
Item Volume
Scalar 8u Manually set Item volume in cm3
Dimension Scaler
Scalar 6u Adjust item dimension using scaler
Resting UP
Integer 0 Vector to be considered as up when item rest in world
Resting Additive Rotation LS
Vector with 3 elements 3 Additive rotation (deg) to be applied for resting item in local space.\nWill be applied after placement transform was estimated.
Pivot Bone Name
String 0 Rotation pivot bone name
Resting Additive Offset LS
Vector with 3 elements 3 Additive offset (m) to be applied for resting item in local space.\nWill be applied after placement transform was estimated.
Active Physical Simulation
Integer 0 Physical simulation state when physics is enabled for item

PreviewRenderAttributes

Param Type Default value Unit Description
Camera Preset
Integer 0 Camera preset
Camera Orbit Angles
Vector with 3 elements 3 Camera render orbit angles (relative to preset)
Camera Distance To Item
Scalar 3 Camera distance to item's BB
Camera Offset
Vector with 3 elements 3 Camera render offset (relative to preset)
Item Render Rotation
Vector with 3 elements 3 Item render rotation
Is Perspective Camera
Boolean 0 Camera perspective mode
FOV
Scalar 3 Camera FOV in degrees... for perspective camera - assumes Vertical FOV, for orthographic - lens height
Aspect Ratio
Scalar 5u Camera view frustum aspect ratio width/height
Is Dynamic Object
Boolean 0 Is object suppose to be animated
Preview Worn Model
Boolean 0 Is the preview should be the worn model?
Preview Model
Resource Name 0 Model to be used when previewing this item (if different than default model set in MeshObject)
Preview Prefab
Resource Name 0 Optional prefab to be used when previewing this item
Animation Instance
Resource Name 0 Anim graph instance for preview pose
Lod Model
Integer 0 LOD used for the preview render
Show All Childrens
Boolean 0 Should we show all childrens attached to the parent entity? By default slots are taken into account already. This is only needed if you want to show EVERY childrens
Take Visibility Into Account
Boolean 0 Should we take into account the current visibility of the children. Should inventory shows also hidden childrens?

HidingCloth

Param Type Default value Unit Description
Prefab
Resource Name 0 Prefab to be used for hiding.
Area Type
Object 0 Specify which loadout area type where the prefab should be.

BaseLoadoutClothComponent

Param Type Default value Unit Description
Area Type
Object 0 Object which specifies compatibility with the current slot.
Animate
Boolean 0 Should this item be animated along with character
Slots
Array of Objects 0
Worn Model
Resource Name 0 Model to be used when wearing this cloth (if different than default model set in MeshObject)
Worn Materials Override
Array of Resource Names 0 Material assignments (applied for xob worn model extension)
Item Model
Resource Name 0 Model to be used when this cloth is on the ground (if different than default model set in MeshObject)
Item Materials Override
Array of Resource Names 0 Material assignments (applied for xob item model extension)
Visible In Vehicle
Boolean 0
Physics On Wear Enabled
Boolean 0 Should this item have physics interactions while on character
Animate Colliders On Wear
Boolean 0 Should the item colliders be animated while worn?
Sound Int
Integer 0 Value of corresponding sound signal when this item is worn
Force LOD0
Boolean 0 Force clothes to be shown always in LOD 0
Override Meshes To Hide
Array of Strings 0
Debug Worn Model
Boolean 0 Set's mesh object model to worn for debug purposes outside of play mode
Depth Front
Scalar 3 Forward Z offset of a slinged and held weapon when the cloth is equipped.
Depth Back
Scalar 3 Backward Z offset of weapons on shoulder when the cloth is equipped.
Depth Left
Scalar 3 Left X offset of elbows when the cloth is equipped.
Depth Right
Scalar 3 Right X offset of elbows when the cloth is equipped.
Offset Shoulder Left
Scalar 3 Additional X offset of the weapon on character's left shoulder.
Offset Shoulder Right
Scalar 3 Additional X offset of the weapon on character's right shoulder.
Area Ocludders
Array of Strings 0 Areas that we can consider occluded when used
Deflated Model
Resource Name 0 Model to be used for deflated model
Area Type When Model Change
Array of Objects 0 Specify which loadout area type should influence model swithching between worn and deflated model
Ignore Cloth
Boolean 0 Should this cloth be ignored when calculating deflated/inflated state?
Debug Deflated Model
Boolean 0 Set's mesh object model to deflated for debug purposes outside of play mode
Hiding Array
Array of Objects 0 Specify which loadout area and prefab, makes this cloth hides
Blocked Slots
Array of Objects 0 Specify which loadout area type should be blocked when this cloth is being put on

BaseLoadoutManagerComponent

Param Type Default value Unit Description
Slots
Array of Objects 0

LoadoutSlotInfo

Inherits from: InventoryStorageSlot

Param Type Default value Unit Description
Area Type
Object 0 Object which specifies compatibility with the current slot.
Meshes To Hide
Array of Strings 0
Enable Deflated Offset
Boolean 0
Deflated Offset
Vector with 3 elements 5u Offset from the origin
Deflated Angles
Vector with 3 elements 5u Orientation around axes

MapDescriptorComponent

Param Type Default value Unit Description
Display Name
String 0
Imageset Quad Element
String 0 Name of the Quad Element in the Imageset
Visible On Map
Boolean 0 Default visibility on map
Show Terrain Elevation
Boolean 0 Show elevation
Map Item Descriptor
Boolean 0 Uses MapItem's properties over the layer.
Main Type
Integer 0
Unit Type
Integer 0
Scale
Scalar 3 Scale factor (radio signal for example)
Faction
Integer 0 Faction index
Force Rotation Angle
Scalar 2 Overrides the rotation angle
Force Group Type
Integer 0
Force Group Scale
Scalar 2 Overrides the group scale
Priority
Integer 0 Priority in displaying the Descriptor

MapEntity

Param Type Default value Unit Description
Map Geometry Data
Resource Name 0 Exported geometry data (roads, buildings, etc.) for the map.
Satellite background image
Resource Name 0 Image used as a background.

MapWidget

Param Type Default value Unit Description
Imagesets
Array of Resource Names 0 Imageset list in use. Be sure indices here match indices you refer.
Overlay Texture
Resource Name 0
Texture Dashed Line
Resource Name 0
Texture Dotted Line
Resource Name 0
Default Font
Resource Name 0 Default font used in MapWidget.

BuoyancyComponent

Param Type Default value Unit Description
Buoyancy
Scalar 3 Buoyancy of the object. Use higher values to adjust for volume (-1 = sinks, 0 = neutral, 1 = floats)
Buoyancy Apply Distance Scale
Scalar 3 Buoyancy force application point distance scale
Buoyancy Depth Offset
Scalar 3 Buoyancy force depth boost for submerged points
Hydrodynamic Scale Linear
Vector with 3 elements 3 Scaling of linear water friction forces in model space (right/up/forward)
Hydrodynamic Scale Angular
Vector with 3 elements 3 Scaling of angular water friction forces in model space (pitch/yaw/roll)
Use Bounding Box
Boolean 0 Use bounding box wall centers as buyoancy points
Bounding Box Scale
Vector with 3 elements 3 Scaling of the automated bounding box buoyancy (right/up/forward)
Bounding Box Offset
Vector with 3 elements 3 Offset of the automated bounding box buoyancy (right/up/forward)
Draw Debug
Boolean 0 Draw debug

DampingComponent

Param Type Default value Unit Description
Linear Damping
Vector with 3 elements 3 Additional damping of linear velocity (in local space, per axis)
Angular Damping
Vector with 3 elements 3 Additional damping of angular velocity (in local space, per axis)

VehicleBuoyancyComponent

Inherits from: BuoyancyComponent

Param Type Default value Unit Description
Thrust Points
Array of Vectors with 3 elements 3 Water jet positions in model space
Thurst Forward
Scalar 3 Forward thrust of the vehicle in water (in m/s^2)
Thurst Reverse
Scalar 3 Reverse thrust of the vehicle in water (in m/s^2)
Thurst Steering
Scalar 3 Steering thrust of the vehicle in water (in deg/s^2), this is applied even on the spot
Speed To Steering
Scalar 3 Vehicle forward/backward speed to steering thrust (in m/s to deg/s^2)
Buoyancy Loss
Scalar 3 How much buoyancy the vehicle loses per second of being in the water down to a minimum of -1
Buoyancy Loss Destroyed
Scalar 3 How much buoyancy the vehicle loses per second of being in the water down to a minimum of -1 - when vehicle hull is destroyed
Buoyancy Loss Threshold
Scalar 3 Health at which buyoancy loss starts
Buoyancy Gain
Scalar 3 How much buoyancy the vehicle gains per second of being out of the water up to maximum of initial buoyancy value

Aerodynamics

Param Type Default value Unit Description
Reference Area
Scalar 3 Unit: m^2\n Total frontal area of a vehicle
Drag Coefficient
Scalar 3 Drag coefficient

Pivot

Param Type Default value Unit Description
Bone
String 0
Position
Vector with 3 elements 5u
Rotation
Vector with 3 elements 5u

Axle

Param Type Default value Unit Description
Torque Share
Scalar 3 The ratio of the torque received from engine
Has Handbrake
Boolean 0 Indicates if handbrake affects this axle
Differential
Object 0
Suspension
Object 0
Wheel
Object 0
Tyre
Object 0
Swaybar
Object 0
Wheel Positions
Array of Objects 0

Clutch

Param Type Default value Unit Description
Max Clutch Torque
Scalar 3 [N.m] ADD DESCRIPTION
Output
String 0 ADD DESCRIPTION

Differential

Param Type Default value Unit Description
Type
Integer 0 Type
Ratio
Scalar 3 gear ratio of the differential
Strength
Scalar 3 determines the magnitude of the extra force that is applied to the gripping wheel
Anti slip
Scalar 3 maximum torque that will be applied
Anti slip torque
Scalar 3 anti slip dependence on torque
Output0
String 0 ADD DESCRIPTION
Output1
String 0 ADD DESCRIPTION

TripleDifferential

Param Type Default value Unit Description
Ratio
Scalar 3 gear ratio of the differential

Engine

Param Type Default value Unit Description
Inertia
Scalar 3 Unit: kg.m^2
Max Power
Scalar 3 Unit: kW\n Maximum power that the engine can provide.
Max Torque
Scalar 3 Unit: N.m\n Maximum torque that engine can provide.
Rpm Max Power
Scalar 3 Unit: RPM (revolutions per minute)\n RPM where engine outputs maximum power.
Rpm Max Torque
Scalar 3 Unit: RPM (revolutions per minute)\n RPM where maximum torque is produced.
Steepness
Scalar 3 Controls how steep is torque curve from 0 RPM to max torque RPM.
Friction
Scalar 3 Unit: Nm\n Engine's braking torque
Rpm Idle
Scalar 3 Unit: RPM (revolutions per minute)\n RPM when engine is not under any load.
Rpm Redline
Scalar 3 Unit: RPM (revolutions per minute)\n Maximal working rpm without causing damage to the engine.
Rpm Max
Scalar 3 Unit: RPM (revolutions per minute)\n Maximal RPM that engine can handle.\n In reality when engine exceeds this RPM it will blow up.
Output
String 0 Powertrain part driven by the engine.

Gearbox

Param Type Default value Unit Description
Forward
Array of Scalars 3 Forward gear ratios
Reverse
Scalar 3 Reverse gear ratio
Efficiency
Scalar 3 Transmission efficiency
Output
String 0 ADD DESCRIPTION

HelicopterEngine

Param Type Default value Unit Description
RPMMax
Scalar 3
RPMIdle
Scalar 3
Start Up Time
Scalar 3
Shutdown Time
Scalar 3
Twin Engine
Boolean 0 Emulation of a twin-engine signals

HelicopterHull

Param Type Default value Unit Description
Tail Stabilization X
Vector with 3 elements 3
Tail Stabilization Y
Vector with 3 elements 3
Tail Stabilization Force X
Scalar 3
Tail Stabilization Force Y
Scalar 3
Tail Stabilization Speed Coef
Vector with 3 elements 3
Friction Coefs X
Vector with 3 elements 3
Friction Coefs Y
Vector with 3 elements 3
Friction Coefs Z
Vector with 3 elements 3
Friction Force X
Scalar 3
Friction Force Y
Scalar 3
Friction Force Z
Scalar 3
Angular Friction X
Vector with 3 elements 3
Angular Friction Y
Vector with 3 elements 3
Angular Friction Z
Vector with 3 elements 3
Angular Friction Speed X
Vector with 3 elements 3
Angular Friction Speed Y
Vector with 3 elements 3
Angular Friction Speed Z
Vector with 3 elements 3
Angular Friction Force X
Scalar 3
Angular Friction Force Y
Scalar 3
Angular Friction Force Z
Scalar 3
Bank Turn Force
Scalar 3
Bank Speed Effect
Vector with 2 elements 3
Override Inertia
Boolean 0
Inertia
Vector with 3 elements 3

HelicopterRotor

Param Type Default value Unit Description
Pivot
Object 0
Force
Vector with 2 elements 3
Target RPM
Scalar 3
Rotor Diameter
Scalar 3
Clockwise
Boolean 0 Clockwise rotor movement

HelicopterRotorMain

Inherits from: HelicopterRotor

Param Type Default value Unit Description
Force Speed Coefs
Vector with 2 elements 3
Torque Force
Vector with 2 elements 3
Alt Full Force
Scalar 3
Alt No Force
Scalar 3
Lift Max Speed MS
Scalar 3
Lift Speed Force
Scalar 3
Cyclic Forward Force
Scalar 3
Cyclic Aside Force
Scalar 3
Cyclic Torque Min
Scalar 3
Cyclic Forward Speed Coef
Scalar 3
Cyclic Aside Speed Coef
Scalar 3
Collective Speed Coef
Scalar 3

HelicopterRotorTail

Inherits from: HelicopterRotor

Param Type Default value Unit Description
Anti Torque Speed Coef
Scalar 3
Force Max Speed MS
Scalar 3

LandingGearWheel

Param Type Default value Unit Description
Pivot
Object 0
Suspension
Object 0
Wheel
Object 0
Tyre
Object 0

LandingGearSkid

Param Type Default value Unit Description
Pivot
Object 0
Suspension
Object 0

LandingGear

Param Type Default value Unit Description
Configuration
Array of Objects 0

Suspension

Param Type Default value Unit Description
Max Steering Angle
Scalar 3 Unit: degrees\n Maximal angle that wheel can be rotated.\n For non steering wheels just leave it at 0.
Spring Rate
Scalar 3 Unit: N/mm\n Spring force per mm\n Tells how much force is needed to compress the spring by one mm.
Compression Damper
Scalar 3 Unit: N.s/m\n Compression damper force per 1 m/s\n Used when suspension is compressing.
Relaxation Damper
Scalar 3 Unit: N.s/m\n Relaxation damper force per 1 m/s\n Used when suspension is decompressing.
Max Travel Up
Scalar 3 Unit: m\n How much can spring compress its natural length.\n It's the distance that the suspension can be compressed from modeled position.
Max Travel Down
Scalar 3 Unit: m\n How much can spring stretch its natural length.\n It's the distance that the suspension can be expanded from modeled position.
Ray Start Offset Up
Scalar 3 Unit: m\n Extension of raycast start above top position of suspension.\n Suspension total length is not affected.

Swaybar

Param Type Default value Unit Description
Stiffness
Scalar 3 [N/m] ADD DESCRIPTION

TrackWheel

Param Type Default value Unit Description
Suspension
Object 0
Mass
Scalar 3 Unit: kg\n Mass of the wheel.
Radius
Scalar 3 Unit: m\n Radius of the wheel.
Brake Torque
Scalar 3 Unit: N.m\n Maximal torque that brake can produce.

Track

Param Type Default value Unit Description
Wheel Positions
Array of Objects 0

Tyre

Param Type Default value Unit Description
Roughness
Scalar 3 Roughness of tyre surface. Modifies interaction with ground surface.
Longitudinal Friction
Scalar 3 Directly affects tyre grip in longitudinal direction.
Lateral Friction
Scalar 3 Directly affects tyre grip in lateral direction.
Rolling Resistance
Scalar 3 NOT USED ATM!\nLinearly proportional to speed. Acts against the wheel torque.\nFor limiting acceleration in addition to surface property.
Rolling Drag
Scalar 3 NOT USED ATM!\nProportional to speed squared.\nFor limiting high speeds in addition to surface property.
Tread
Scalar 3 NOT USED ATM!\nRatio of the \"Tyre tread\" - related to how well wheel performs on specific surface.

Wheel

Param Type Default value Unit Description
Radius
Scalar 3 Unit: m\n Radius of the wheel.
Mass
Scalar 3 Unit: kg\n Mass of the wheel.
Ratio
Scalar 3 Wheel reduction ratio.
Brake Torque
Scalar 3 Unit: N.m\n Maximal torque that brake can produce.

Helicopter

Param Type Default value Unit Description
Engine
Object 0
Hull
Object 0
Rotors
Array of Objects 0
Landing Gear
Object 0
Landing Gear Layer
String 0 Landing gear raycast physics layer preset
Terrain Detection Mask
Flags 0 Terrain detection raycast target mask

Tracked

Param Type Default value Unit Description
Solver Substeps
Integer 0
Engine
Object 0
Clutch
Object 0
Gearbox
Object 0
Differential
Object 0
Is Fwd
Boolean 0 Is the vehicle front wheel drive?
Friction Curve Longitudinal
Array of Vectors with 2 elements 3
Friction Curve Lateral
Array of Vectors with 2 elements 3
Idler
Object 0
Sprocket
Object 0
Wheel
Object 0
Tracks
Array of Objects 0
Inertia Override Enabled
Boolean 0
Inertia Override
Vector with 3 elements 3 [kg.m^2] ADD DESCRIPTION
Aerodynamics
Object 0
Raycast Layer
String 0 Wheel raycast physics layer preset
Liquids Layers
String 0 Layer preset for liquids (used by wheel interactions)

Wheeled

Param Type Default value Unit Description
Solver Update Rate
Integer 0
Engine
Object 0
Clutch
Object 0
Gearbox
Object 0
Differentials
Array of Objects 0
Axles
Array of Objects 0
Inertia Override Enabled
Boolean 0
Inertia Override
Vector with 3 elements 3 [kg.m^2] ADD DESCRIPTION
Aerodynamics
Object 0
Pacejka
Object 0
Raycast Layer
String 0 Wheel raycast physics layer preset
Liquids Layers
String 0 Layer preset for liquids (used by wheel interactions)
Response Index
String 0 Wheel response index
Noise Steer Sensitivity
Scalar 3 Sensitivity to surface's noise steer
Roughness Sensitivity
Scalar 3 Sensitivity to surface's roughness

PacejkaLongitudinal

Param Type Default value Unit Description
b0
Scalar 3
b1
Scalar 3
b2
Scalar 3
b3
Scalar 3
b4
Scalar 3
b5
Scalar 3
b6
Scalar 3
b7
Scalar 3
b8
Scalar 3
b9
Scalar 3
b10
Scalar 3

PacejkaLateral

Param Type Default value Unit Description
a0
Scalar 3
a1
Scalar 3
a2
Scalar 3
a3
Scalar 3
a4
Scalar 3
a5
Scalar 3
a6
Scalar 3
a7
Scalar 3
a8
Scalar 3
a9
Scalar 3
a10
Scalar 3
a11
Scalar 3
a12
Scalar 3
a13
Scalar 3
a14
Scalar 3

PacejkaAligning

Param Type Default value Unit Description
c0
Scalar 3
c1
Scalar 3
c2
Scalar 3
c3
Scalar 3
c4
Scalar 3
c5
Scalar 3
c6
Scalar 3
c7
Scalar 3
c8
Scalar 3
c9
Scalar 3
c10
Scalar 3
c11
Scalar 3
c12
Scalar 3
c13
Scalar 3
c14
Scalar 3
c16
Scalar 3
c17
Scalar 3
c18
Scalar 3

Pacejka

Param Type Default value Unit Description
Longitudinal
Object 0
Lateral
Object 0
Aligning
Object 0

Cable

Param Type Default value Unit Description
Start Point
Vector with 3 elements 3
End Point
Vector with 3 elements 3

PowerlineEntity

Param Type Default value Unit Description
Material
Resource Name 0
Cables
Array of Objects 0

PowerPoleEntity

Param Type Default value Unit Description
Power Source
Boolean 0 Should this pole be considered as power source?
Inside Grid Network
Boolean 0 Should this be considered in the electrical grid network?

BallisticTable

Param Type Default value Unit Description
Init Speed Coefficient
Scalar 3 Table is generated with init speed multiplied by this coefficient
Table data
Array of Vectors with 3 elements 3 Array of distances, aim heights and times which describe a trajectory of projectile

BallisticTableArray

Param Type Default value Unit Description
Table data
Array of Objects 6 Array of distances, aim heights and times which describe a trajectory of projectile for direct fire
Indirect fire Table data
Array of Objects 6 Array of distances, aim heights and times which describe a trajectory of projectile for indirect fire

BallisticGenerationConfig

Param Type Default value Unit Description
Precise Init Speed Coefficients
Array of Scalars 3 Ballistic tables will be computed precisely for init speed coefficients in this array, the rest of speed coefficients are interpolated. This can be used, if you know a bullet is used by a weapon with specific init speed coefficient, so its values will be more precise.
Generate Direct Fire Tables
Boolean 0 If true, ballistic tables will be generated for angles between 0-45deg(0 meaning looking horizontally), if false, they will be generated for angles between 45-90deg. !Changing this property can affect in major way size and generation time of ballistic tables!
Vertical Precision Of Direct Fire
Boolean 0 If true, ballistic tables for direct fire will be generated to hit with a threshold in height(vertical) error. That is most usable for bullets, because we want it to be used to hit a head of a character. If false, the ballistic tables will be generated to hit with a threshold in horizontal error. That is most usable for explosives, where we care about hitting near target and not hitting the target into the head. !Changing this property can affect in major way size and generation time of ballistic tables!
Precision Error Threshold Of Direct Fire
Scalar 3 Ballistic tables don't generate more data if the interpolation has lower vertical/horizontal error than is given by this property for direct fire ballistic tables. !Changing this property can affect in major way size and generation time of ballistic tables!
Generate Indirect Fire Tables
Boolean 0 If true, ballistic tables will be generated for angles between 0-45deg(0 meaning looking horizontally), if false, they will be generated for angles between 45-90deg. !Changing this property can affect in major way size and generation time of ballistic tables!
Vertical Precision Of Indirect Fire
Boolean 0 If true, ballistic tables for indirect fire will be generated to hit with a threshold in height(vertical) error. That is most usable for bullets, because we want it to be used to hit a head of a character. If false, the ballistic tables will be generated to hit with a threshold in horizontal error. That is most usable for explosives, where we care about hitting near target and not hitting the target into the head. !Changing this property can affect in major way size and generation time of ballistic tables!
Precision Error Threshold Of Indirect Fire
Scalar 3 Ballistic tables don't generate more data if the interpolation has lower vertical/horizontal error than is given by this property for indirect fire ballistic tables. !Changing this property can affect in major way size and generation time of ballistic tables!

EjectableProjectile

Inherits from: Projectile

Param Type Default value Unit Description
Ejector Interface
Object 0 Object which specifies compatibility with rocket/projectile types.

Projectile

Param Type Default value Unit Description
Spawn As Cartridge
Boolean 0 When Projectile object is created, it will show using cartridge model
Projectile Visible Time Scale
Scalar 3 Below this value shell will start being visible. For always visible use 2, for never 0
Projectile Model
Resource Name 0 Model of shell to render
Cartridge Model
Resource Name 0 Model of full projectile, as being loaded
Cartridge Layers
Flags 0 Interaction layers we belong to
Cartridge Layer Preset
String 0 Presets of layer definitions

TracerProjectile

Inherits from: Projectile

Param Type Default value Unit Description
Tracer Burn Start After
Scalar 3 Time after which projectile ignites
Tracer Burn Time
Scalar 3 Time of burning

FlareMoveComponent

Inherits from: ShellMoveComponent

Param Type Default value Unit Description
Deploy Time
Scalar 3 Time that it takes in seconds to fully deploy the flare.
Rotation Speed
Scalar 3 Rotation [deg/s].
Smoke Particle Offset
Vector with 3 elements 3 Particle offset of the entity.
Smoke Particle Direction
Vector with 3 elements 3 Particle direction of the entity.
Smoke Particle
Resource Name 0 Prefab for the smoke particles of the flare.

GrenadeMoveComponent

Inherits from: ProjectileMoveComponent

Param Type Default value Unit Description
Minimal Speed Scale
Scalar 3 Entity minimal launch speed scale (MinimalSpeedScale * InitSpeed)
Single Safety
Boolean 0 True if the throwable should trigger its effect the moment the pin is removed
Is Dangerous
Boolean 0 True if the throwable can cause damage

MissileMoveComponent

Inherits from: ProjectileMoveComponent

Param Type Default value Unit Description
Max Control Range
Scalar 3 Not used
Maneuvrability
Scalar 3 Not used
Track Oversteer
Scalar 3 Not used
Track Lead
Scalar 3 Not used
Thrust Init Time
Scalar 3
Thrust Time
Scalar 3
Thrust Force
Scalar 3
Forward Air Friction
Scalar 3
Side Air Friction
Scalar 3
Align Torque
Scalar 3
Distance Enable Gravitation
Scalar 3

ProjectileMoveComponent

Param Type Default value Unit Description
Init Speed
Scalar 3 Projectile initial speed [m/s]
Init Speed Variation
Scalar 3 Projectile initial speed variation [m/s]
Parent Speed Multiplier
Scalar 3 Multiplier applied to parent velocity.
Dispersion Multiplier
Scalar 3 Multiplier applied to muzzle dispersion.
Mass
Scalar 5 Entity mass
Wind Influence Multiplier
Scalar 3 How much influence can wind have on the projectile.
Time To Live
Scalar 3 Time to live
Delete When Stop
Boolean 0
Trigger When Stop
Boolean 0
Trigger When Timeout
Boolean 0
Layers
Flags 0 Interaction layers we belong to
Layer Preset
String 0 Preset of layer definition
Collision Enabled
Boolean 0
Projectile Effects
Array of Objects 0
Ballistic Table Config
Resource Name 0
Ballistic Table Generation Config
Resource Name 0
Sonic Cracks
Resource Name 0 File containing sonic crack sounds
Subsonic Flybys
Resource Name 0 File containing subsonic flyby sounds

ShellMoveComponent

Inherits from: ProjectileMoveComponent

Param Type Default value Unit Description
Air Drag
Scalar 7
Diameter
Scalar 3 Scales the base damage dealt by the projectile \n[mm]
Length
Scalar 3 Length of projectile \n[mm]
Move With Parent
Boolean 0 Will the projectile move with the parent when OnTransformReset is called.
Mushrooming Damage Multiplier
Scalar 3 Multiplier for mushrooming ability. When set, the diameter of this projectile will multiply by this value upon colliding.
Tumbling Damage Threshold
Scalar 3 Speed loss from which this projectile will be capable of tumbling. If speed loss upon penetration is higher than this value, tumbling damage will increase. \nTumbling damage increase scales to max tumbling damage at a gradualness determined by the Impact Speed Falloff Rate \n[m/s]
Tumbling Damage Multiplier
Scalar 3 Multiplier for tumbling ability. When higher than 0, this bullet will increase its diameter on impact by tumbling
Penetration Damage Model
Boolean 0 Allow penetration damage model\nENABLED (Material and Projectile):\n SpeedLoss * PenetrationDepth * PenetrationDensity / PenetrationSpeed\nDISABLED (Material or Projectile):\n InitSpeed * Mass
Deflection Critical Angle
Scalar 3 [deg] Critical impact angle
Deflection Dir Distribution
Scalar 3 [] Deflection direction distribution (Gauss)
Deflection Slowdown
Scalar 3 [] Deflection slowdown
Penetrator Type
Integer 0 [] Penetrator type
Penetration Depth
Scalar 3 [mm]
Penetration Density
Scalar 3 [g/cm^3]
Penetration Speed
Scalar 3 [m/s]
Penetration Dir Distribution
Scalar 3 [] (Post)penetration direction distribution (Gauss)
Water Impact Deceleration
Scalar 3 [] Water impact decelaration factor
Water Drag
Scalar 7
Water Drag Type
Integer 0 [] Water drag type

BallisticsConfig

Param Type Default value Unit Description
Damage Modifier
Scalar 3 Kinetic damage normalization modifier (exponent)
Impact Speed Falloff Rate
Scalar 3 Increases onset steepness of tumbling damage. Higher means tumbling damage will increase more suddenly when passing Tumbling Damage Threshold \n[m/s]
Deceleration Falloff Rate
Scalar 3 Deceleration falloff multiplier. Higher means more speed needs to be lost on projectile for the tumbling to start applying damage.
Cavitation Constant
Scalar 3 How intensely deceleration increases cavitation damage. Lower is more damage. \n(Mass/2) * ((VImpact^2 - VExit^2) / C^2)

BaseMissileGuidanceComponent

Param Type Default value Unit Description
use Aiming Type
Integer 0 defines whing aimning component will be used

AIActivateEffect

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Range
Scalar 3
Keep Time
Scalar 3

BaseProjectileEffect

Param Type Default value Unit Description
Trigger Once
Boolean 0
Enabled
Boolean 0

BaseExplosionDamage

Param Type Default value Unit Description
Damage Value
Scalar 3
Damage Type
Integer 0
Perform Traces
Boolean 0 Explosion checks for LOS to deal damage. Will impact performance. Disable for large effects.
Damage Distance
Scalar 3
Explosion Effect Speed
Scalar 3 Speed of the explosion effect\n0: instant\n[m/s]
Damage Falloff Curve
Array of Vectors with 2 elements 3
Damage Effect
Array of Objects 0 Only store 1 DamageEffect in this array, otherwise only the last one of the array will be used.
Explosion Damage Power
Scalar 5 Damage Value *= (Charge Weight * Relative Effectiveness) ^ Explosion Damage Power\n< 0: Damage Value unaffected\n[^]
Explosion Range Power
Scalar 5 Damage Distance *= (Charge Weight * Relative Effectiveness) ^ Explosion Range Power\n< 0: Damage Distance unaffected\n[^]

ExplosionDamageContainer

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Explosion Effects
Array of Objects 0
Charge Weight
Scalar 1 Charge Weight\n 0: Explosion scale disabled\n[g]
Tnt Equivalent
Scalar 5 Relative Effectiveness\n 0: Explosion scale disabled\n
Explosion Scale
Scalar 5 (Charge Weight * Relative Effectiveness) ^ (1/3)\n
Interaction Layer
Flags 0 Interaction layer used for the traces created by explosions
Layer Preset
String 0 Presets of layer definitions used for the traces created by explosions

ExplosionEffect

Inherits from: SpawnPrefabEffect

Param Type Default value Unit Description
Overriden Material Props
Array of Objects 0
Particle Effect
Resource Name 0 Override effect inside prefab with this particle effects
Sound Event
String 0 Name of sound event to be raised when triggered
Exit Effect Prefab
Resource Name 0 Entity prefab to spawn

ExplosionFragmentationEffect

Inherits from: BaseExplosionDamage

Param Type Default value Unit Description
Damage Fragment Count
Integer 0
Gurney Shape
Integer 0 CYLINDER: 0.5\nSPHERE: 0.6
Gurney Constant
Scalar 3 Gurney Frag Speed = 0.8 * Gurney Constant * (Case Weight / (Charge Weight * TNT Equivalent) + Gurney Shape) ^ -0.5\n 0: automation disabled\n
Case Weight
Scalar 3 Frag Mass = Frag Mass Scale * Case Weight / Frag Count\n 0: automation disabled\n[g]
Frag Mass Scale
Scalar 3 Frag Mass Scale\n 0: automation disabled\n[%]
Frag Range Scale
Scalar 3 Damage Distance *= (Frag Mass * Frag Range Scale * Gurney Speed) ^ Frag Range Power\n 0: Damage Distance unaffected\n[%]
Frag Speed Scale
Scalar 3 Explosion Effect Speed *= Gurney Frag Speed * Frag Speed Scale\n 0: Explosion Effect Speed unaffected\n[%]
Frag Damage Power
Scalar 3 Damage Value *= (Frag Mass * Frag Mass Scale * Frag Speed) ^ Frag Damage Power\n 0: Damage Value unaffected\n[^]
Frag Range Power
Scalar 3 Damage Distance *= (Frag Mass * Frag Mass Scale * Frag Range Scale * Frag Speed) ^ Frag Range Power\n 0: Damage Distance unaffected\n[^]

ExplosionImpulseEffect

Inherits from: BaseExplosionDamage

Param Type Default value Unit Description
Explosion Impulse Multiplier
Scalar 3

HitSoundEffect

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Filename
Resource Name 0
Min Distance
Scalar 3 Minimum Distance in meters for a bullet sound to be played

ProjectileDamage

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Damage Value
Scalar 3
Damage Type
Integer 0
Damage Effects
Array of Objects 0 Only store 1 DamageEffect in this array, otherwise only the last one of the array will be used.

SpawnDecalEffect

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Far Plane
Scalar 3 Far plane - maximum distance for decal projection box
Stretch
Scalar 3 Stretch of decal
Scale
Scalar 3 Scale
Lifetime
Scalar 3 Decal lifetime(seconds), value <= 0 is infinite.
Material
Resource Name 0 Decal material

SpawnParticleEffect

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Attach To Parent
Boolean 0 Should attach the effects to parent entity
Follow Parent
Boolean 0 Should attach the effects to parent entity
Should Replicate
Boolean 0 Should particle be spawned when streamed in on clients
Use Frame Event
Boolean 0 Should particle use FRAME or VISIBLE event
Particle Effect
Resource Name 0 Particle to spawn
Sound Event
String 0 Name of sound event to be raised when particle is spawned
Trigger Name
String 0 Name of trigger to be set to 1 when particle is spawned
Stop Sound With Particles
Boolean 0 Whether sound should stop playing along particles or it should keep playing after particles end.
Sound Stop Offset
Integer 0 Time (in ms) before the particles end to stop the sound.

SpawnPrefabEffect

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Attach To Parent
Boolean 0 Should attach the effects to parent entity
Effect Prefab
Resource Name 0 Entity prefab to spawn

SubmunitionEffect

Inherits from: BaseProjectileEffect

Param Type Default value Unit Description
Prefab
Resource Name 0 Projectile prefab to spawn
Count
Integer 0 Number of projectiles to spawn
Dispersion
Scalar 3 [deg] Dispersion angle centered around original direction (minimum value). Represents whole sphere at maximum value.
Init Speed Coef
Scalar 3 How much is changed initial speed of bullet.
Sound Event
String 0 Name of sound event to be raised when triggered

DistanceParticleEffect

Param Type Default value Unit Description
Particle Effect
Resource Name 0 Particle to spawn
Min Dist
Scalar 3 Minimum distance between effects
Sub Effects
Array of Objects 0 List of sub effects

SpawnDistanceParticleEffect

Inherits from: SpawnParticleEffect

Param Type Default value Unit Description
Sub Effects
Array of Objects 0 List of sub effects

SubDistanceParticleEffect

Param Type Default value Unit Description
Modulo Spawned
Integer 0 When the particle should be spawned
Particle Effect
Resource Name 0 Particle to spawn

BaseTriggerComponent

Param Type Default value Unit Description
PROJECTILE EFFECTS
Array of Objects 0
DELETE ON TRIGGER
Boolean 0
TRIGGER ALIVE
Boolean 0
Trigger Offset
Scalar 3
Arming Time
Scalar 3
Safety Distance
Scalar 3
HAS VALID DIRECTION
Boolean 0 Set true if we can trust the value of m_vHitDirection in ProjectileEffectContext

ProximityTriggerComponent

Inherits from: BaseTriggerComponent

Param Type Default value Unit Description
DISTANCE
Scalar 3

TimerTriggerComponent

Inherits from: BaseTriggerComponent

Param Type Default value Unit Description
TIMER
Scalar 3

GyroSettings

Param Type Default value Unit Description
Gyro Precision Speed
Scalar 3 Rotation speed below which precision aiming is applied\n[deg/s]
Gyro Acceleration Speed Min
Scalar 3 Rotation speed at which Acceleration sensitivity starts being applied\n[deg/s]
Gyro Acceleration Speed Max
Scalar 3 Rotation speed at which Acceleration sensitivity is fully applied\n[deg/s]
Gyro Acceleration Sensitivity
Scalar 3 Acceleration sensitivity\n[*]
Gyro Smoothing Speed
Scalar 3 Rotation speed below which smooth aiming is applied\n[deg/s]
Gyro Smoothing Rate
Scalar 3 Percentage of previous angularVelocity that stays when dt is equal to smoothing time\n[%]
Gyro Smoothing Fps
Scalar 3 Reference frames per second for smoothing rate\n[Hz]
Gravity Smoothed Half Time
Scalar 3 Time for acceleration smoothing to reach half way of raw value\n[s]
Gravity Smoothed Delta Steady
Scalar 3 Angle between raw and smooth acceleration over which controller is fully steady\n[deg]
Gravity Smoothed Delta Shaking
Scalar 3 Angle between raw and smooth accelerometer over which controller is fully shaking\n[deg]
Gravity Alignment Steady
Scalar 3 Speed of gravity aligment with accelerometer while controller is fully steady\n[alignment / s]
Gravity Alignment Shaking
Scalar 3 Speed of gravity aligment with accelerometer while controller is fully shaking\n[alignment / s]
Gravity Alignment Speed To Limit
Scalar 3 Angular speed to limit of speed of gravity aligment with accelerometer\n[alignment / deg/s]
Gravity Alignment Delta Min
Scalar 3 Angle between gravity and accelerometer, below which alignment limit is fully enforced\n[deg]
Gravity Alignment Delta Max
Scalar 3 Angle between gravity and accelerometer, over which alignment limit is fully ignored\n[deg]
Gravity Alignment Guaranteed
Scalar 3 Speed of gravity alignment with accelerometer, guaranteed regardless of other conditions\n[alignment / s]
Gyro Aiming Space
Integer 0 Gyro aiming space. Player space = local pitch, world yaw
Player Space Local Yaw Preference
Scalar 3 Half angle of cone in which local yaw and roll speed will be preferred for player space yaw speed\n[deg]
World Space Side Pitch Restriction
Scalar 3 Half angle of cone in which pitch is restricted, when controller is rolled and pitched perpendicularly to gravity\n[deg]

GarbageSystem

Param Type Default value Unit Description
Processing Interval
Scalar 3 Interval in seconds at which the garbage collection passes occur.
Processing Iterations Max
Integer 0 Maximum number of entities processed during a single frame. Low values avoid performace drops.
Rules
Array of Objects 0 Rules to select the appropriate configuration.

GarbageSystemConfig

Param Type Default value Unit Description
Processing Interval
Scalar 3 Interval in seconds at which the garbage collection passes occur.
Processing Iterations Max
Integer 0 Maximum number of entities processed during a single frame. Low values avoid performace drops.
Rules
Array of Objects 0 Rules to select the appropriate configuration.

BaseGarbageRule

Param Type Default value Unit Description
Priority
Integer 0 If mutliple rules match the highest priority wins.
Filter
String 0
Collect
Boolean 0 Enable garbage collection these entities.
Only Destroyed
Boolean 0 Only remove entities that are in the damage state DESTORYED. Only applies if the entity can be damaged.
Lifetime
Scalar 3 Entity lifetime in seconds after which it will be garbage collected.
Check Player Distance
Boolean 0 Configure if nearby players affect the lifetime processing.
Player Distance
Scalar 3 Distance in meter at which a player will affect entity lifetimes.
Player Lifetime Effect
Integer 0 How does a nearby player affect the lifetime.
Lifetime Reset Percentage
Integer 0 Percentage of inserted lifetime to which to return to.

GarbageSystemConfigComponent

Param Type Default value Unit Description
Config
Resource Name 0 Optional override of the global garbage system configuration for gamemode specific needs.

InventoryStreamingSystem

Param Type Default value Unit Description
Stream Out Delay
Scalar 3

PerceptionSystem

Param Type Default value Unit Description
Update Intervals
Array of Scalars 3 Update interval for each LOD value, in seconds. The system will try to update components according to those intervals, but actual timing might be different.
Max Components Per Second
Integer 0 Maximum amount of components updated per second. The system will try to update components according to desired update intervals, as long as this limit is not reached. Note that at lowest system will still update one component per frame, which will bypass this setting. This setting works best for big values.
Vision Trace Layer
Flags 0 Layer used for vision trace checks

DamageManagerComponent

Inherits from: HitZoneContainerComponent

Param Type Default value Unit Description
Fall damage min speed
Scalar 3
Fall damage max speed
Scalar 3
Collision Velocity Threshold
Scalar 3 Relative speed below threshold does not cause damage
Heavy damage threshold
Scalar 3
Enable Damage
Boolean 0

ExtendedDamageManagerComponent

Inherits from: DamageManagerComponent

Param Type Default value Unit Description
Damage Effect Evaluator
Array of Objects 0
Allowed Damage Effects
Array of Objects 0
Blacklisted Damage Effects
Array of Objects 0

ParentHitZone

Param Type Default value Unit Description
Parent
String 0 Parent hitzone
Damage Multiplier
Scalar 3 Multiplier for damage passed to parent
Healing Multiplier
Scalar 3 Multiplier for healing passed to parent
Overkill
Boolean 0 When transmitting damage, excess damage is taken into account
Overheal
Boolean 0 When transmitting healing, excess healing is taken into account

HitZone

Param Type Default value Unit Description
Collider Names
Array of Strings 0 Assigned geometry colliders
Parent HZs
Array of Objects 0
HZDefault
Boolean 0 One number representation of the overall entity state
Ignore Explosions
Boolean 0 If true, explosion effects will not deal damage to this hitzone
Base Damage Multiplier
Scalar 3 This damage multiplier will always apply except for true damage
Max Health
Scalar 3
Critical Damage
Scalar 3 Threshold when the damage taken at once by the hitzone is considered to be critical
Damage Reduction
Scalar 3 Incoming damage to this hitzone will be reduced by this flat amount
Damage Threshold
Scalar 3 If incoming damage < Damage threshold, no damage is dealt
Area Override
Scalar 3 If >= 0, use this as the area of the hitzone and do not compute area of colliders
Collision multiplier
Scalar 3 Collision damage multiplier
Melee multiplier
Scalar 3 Melee damage multiplier
Kinetic multiplier
Scalar 3 Kinetic damage multiplier
Fragmentation multiplier
Scalar 3 Fragmentation damage multiplier
Explosive multiplier
Scalar 3 Explosive damage multiplier
Incendiary multiplier
Scalar 3 Incendiary damage multiplier
Fire multiplier
Scalar 3 Fire damage multiplier
Damage State threshold
Array of Scalars 3 Health% for the hitzone to enter this custom damage state. Keep this value > 0 and different to 0 and 1. Extra damage states should be sorted descending.

HitZoneContainerComponent

Param Type Default value Unit Description
Additional hit zones
Array of Objects 0

DestructibleEntity

Param Type Default value Unit Description
Enabled
Boolean 0 True to enable destruction in all instances of this prefab
Max Health
Scalar 3 Max health of this destructible
Collision multiplier
Scalar 3 Collision damage multiplier
Melee multiplier
Scalar 3 Melee damage multiplier
Kinetic multiplier
Scalar 3 Kinetic damage multiplier
Fragmentation multiplier
Scalar 3 Fragmentation damage multiplier
Explosive multiplier
Scalar 3 Explosive damage multiplier
Incendiary multiplier
Scalar 3 Incendiary damage multiplier
Base Damage Multiplier
Scalar 3 Base damage multiplier of this destructible
Damage Reduction
Scalar 3 Incoming damage to this hitzone will be reduced by this flat amount
Damage Threshold
Scalar 3 If incoming damage < Damage threshold, no damage is dealt
Destroy At No Health
Boolean 0 If the entity will be destroyed when its health reaches 0
First Destruction Phase
Object 0 Keep the threshold value at 1
Damage Phases
Array of Objects 0
Last Destruction Phase
Object 0 Keep the threshold value at 0
Permanent debris offsets
Array of Vectors with 2 elements 3 Array of offset points to spawn the permanent debris (respect to the destructible)
Permanent Debris
Array of Objects 0

BaseDestructionPhase

Param Type Default value Unit Description
Threshold
Scalar 3 Destructible will be in this phase if(health % <= current phase && health% > next phase). [0, 1]

DestructibleDebris

Param Type Default value Unit Description
Debris Prototype
Resource Name 0 Debris prefab to spawn
Debris count
Integer 0 Number of times to spawn this debris. Be reasonable, they are permanent.

DestructionManager

Param Type Default value Unit Description
Regional Destruction Manager Prefab
Resource Name 0 Regional destruction manager prefab to spawn

LongRangeSoundComponent

Param Type Default value Unit Description
Signal Event
String 0 Name of the event to bind the sound trigger to.
Sound Data Index
Integer 0 Index of entry in the SoundData array in the system.

LongRangeSoundSystem

Param Type Default value Unit Description
Sound Data
Array of Objects 0

LongRangeSoundData

Param Type Default value Unit Description
Sound Project
Resource Name 0 Sound project to play the sound from.
Sound Event
String 0 Sound event to trigger in the sound project.

AimPoint

Param Type Default value Unit Description
Aim Point Type
Integer 0

CharacterPerceivableComponent

Inherits from: PerceivableComponent

Param Type Default value Unit Description
Visual Factor Stance Prone
Scalar 3 Value of this character's stance visual recognition factor when prone
Visual Factor Stance Crouch
Scalar 3 Value of this character's stance visual recognition factor when crouching
Visual Factor Stance Stand
Scalar 3 Value of this character's stance visual recognition factor when standing up
Sound Power Max Db
Scalar 3 Produced sound power when running at max speed (in dB ref 1pW)

PerceivableComponent

Param Type Default value Unit Description
Additional aim points
Array of Objects 0 Additional points on object which should be tested for line of sight
Illumination Lv Per Light
Scalar 3 How much LV (logarithmic) is added to illumination per each light attached to owner
Unit Type
Integer 0 Defines how AI will recognize this unit as target. Used for target and weapon seleciton.

PerceptionComponent

Param Type Default value Unit Description
Forget Enemy Time
Integer 0 How long it takes till a target in Enemy category is forgotten, in seconds
Forget Detected Time
Integer 0 How long it takes till a target in Detected category is forgotten, in seconds
Position Info
Object 0 Position of perception, usually head or eyes
Sensors List
Array of Objects 0 List of sensors
Vehicle Threat Max Dist
Scalar 3 Maximum threatening distance of a vehicle
Vehicle Threat Max Angle
Scalar 3 Maximum threatening angle of approach of a vehicle
Vehicle Threat Min Speed
Scalar 3 Minimum threatening speed of a vehicle
Vehicle Threat Collision Time
Scalar 3 Maximum estimated time before a vehicle collides into us. If collision time is more than this value, we don't receive a danger event.
Safe Aim Distance Friendly
Scalar 3 Minimum distance which is considered safe while shouting close to an ally.

PerceptionManager

Param Type Default value Unit Description
Sun Direct Light Elev Curve
Array of Objects 0
Sun Ambient Light Elev Curve
Array of Objects 0
Moon Direct Light Elev Curve
Array of Objects 0
Moon Ambient Light Elev Curve
Array of Objects 0
Direct Light Cloud Attenuation
Array of Objects 0
Ambient Light Cloud Attenuation
Array of Objects 0
Illumination Factor Curve
Array of Objects 0 Translates LV to Illumination Factor value

VehiclePerceivableComponent

Inherits from: PerceivableComponent

Param Type Default value Unit Description
Sound Power Rpm Multiplier Db
Scalar 3 How much sound power (in dB ref 1pW) the engine produces per RPM
Horn Sound Power Db
Scalar 3 Sound power of horn (in dB ref 1pW)

BaseSensor

Param Type Default value Unit Description
Max Range
Scalar 3 Max range of sensor

EarsSensor

Inherits from: BaseSensor

Param Type Default value Unit Description
Sound Intensity Min db
Scalar 3 Minimal detectible sound intensity (in dB ref 1pW/m^2)

EyesSensor

Inherits from: BaseSensor

Param Type Default value Unit Description
FOVNormal
Scalar 3 Angle of visibility(in degrees)
FOVPeripheral
Scalar 3 Angle of peripherial visibility (in degrees)
Min Illumination Factor
Scalar 3 Minimal value of target's illumination factor. If target illumination factor is lower than this, it can not be seen at all.
Recognition Detect Decay
Scalar 3 Decay speed of target detection recognition value when we don't see the target
Recognition Identify Decay
Scalar 3 Decay speed of target identification recognition value when we don't see the target
Angular Size Factor a
Scalar 3 Angular size factor is calculated internally as: f = 1 / max((a * targetDistance/targetSize) + b, c)
Angular Size Factor b
Scalar 3
Angular Size Factor c
Scalar 3
Angular Velocity Factor a
Scalar 3 Angular velocity factor is calculated internally as: f = min( a * ((targetVelocity/targetDistance)^2) + 1.0, b )
Angular Velocity Factor b
Scalar 3

BaseRadioComponent

Param Type Default value Unit Description
Encryption key
String 0 Key used for encryption. Matching encryption is required for encrypted transmissions to be received.
Turned on
Boolean 0 Is radio turned on by default?
Transceivers
Array of Objects 0 Transceiver defines one receive/transmit channel.

BaseTransceiver

Param Type Default value Unit Description
Channel Frequency
Integer 0 Radio frequency in kHz
Transmitting Range
Scalar 3 Maximum transmitting distance in meters.
Min tunable frequency
Integer 0 Frequency in kHz
Max tunable frequency
Integer 0 Frequency in kHz
Frequency resolution
Integer 0 Tunning step in kHz

RelayTransceiver

Param Type Default value Unit Description
Any frequency
Boolean 0 Relay only set frequency if false.

RadioBroadcastComponent

Param Type Default value Unit Description
Turn On Action
Object 0

RadioBroadcastManager

Param Type Default value Unit Description
Broadcast Acp
Resource Name 0
Regenerate Times
Boolean 0 Will regenerate times of banks when checked
Start Music
Boolean 0 Checked: The music bank will start - Unchecked: The DJ bank will start
Music Bank Name
String 0 This name should exactly match with the bank used for the music in the linked ACP
Music Times
Array of Integers 0 Time in milliseconds for the samples in the music bank of the ACP
Dj Bank Name
String 0 This name should exactly match with the bank used for the DJ in the linked ACP
Dj Times
Array of Integers 0 Time in milliseconds for the samples in the DJ bank of the ACP

TagComponent

Param Type Default value Unit Description
Tag categories
Flags 0 Specifies categories for this tag.
Is Dynamic
Boolean 0 Should this entity be considered dynamic in the grid map?

TagSystem

Param Type Default value Unit Description
Cell Size
Scalar 3 Resolution of underlying spatial container.
Number Of Static Entities Updated Per Update
Integer 0

ActionsManagerComponent

Param Type Default value Unit Description
Action Contexts
Array of Objects 0 List of context definitions for user actions to be registered into
additional Actions
Array of Objects 0
Allow Cross Hierarchy
Boolean 0
Is Ghost Entity
Boolean 0

BaseInteractionHandlerComponent

Param Type Default value Unit Description
Global Visibility Range
Scalar 3 Global actions visibility range used by default

BaseUserAction

Param Type Default value Unit Description
Parent Context List
Array of Strings 0 List of identifiers used to find contexts into which this action should be registered. These should be defined in the parent ActionsManagerComponent.
UIInfo
Object 0
Action Title
String 0 Editor-Only display string used as title in properties editor. If this is empty, action's classname is used as title.
Visibility Range
Scalar 3 The visibility range in metres. If set to negative value, global range provided by InteractionHandlerComponent is used instead.
Duration
Scalar 3 Time in seconds of how long action should take. 0 for instant.
Can Aggregate
Boolean 0
Perform Per Frame
Boolean 0 If true, the PerformAction function will be called every frame interaction key is pressed down.
Sort Priority
Integer 0 Order for sorting. The lower the value, the higher the priority.
Inventory action
Boolean 0 Can action be performed from the inventory

InteractionHandlerComponent

Inherits from: BaseInteractionHandlerComponent

Param Type Default value Unit Description
Sphere Trace Radius
Scalar 3 Radius of sphere trace done from reference point forward.
Sphere Query Radius
Scalar 3 Radius of sphere query done at the end of sphere trace to collect entities.
Reference Bone Name
String 0 Reference bone name of controlled entity used as the origin of our physical traces. Leave empty for default origin.
Nearby Sphere Radius
Scalar 3 Radius of sphere that will collect nearby contexts.
Layers
Flags 0 Interaction layers we trace using

ScriptedSignalUserAction

Param Type Default value Unit Description
Signal name
String 0
Max value
Scalar 3
Min value
Scalar 3

UserActionContext

Param Type Default value Unit Description
UIInfo
Object 0
Context Name
String 0 The unique identifier of this context which will be used for actions registration and hashmap searches.
Position
Object 0
Radius
Scalar 3 Radius of this context used in simplified checks.
Height
Scalar 3 Height of this context's capsule shape. Value of 0.0 implies a spherical shape.
Omnidirectional
Boolean 0 Whether this context is accessible from all directions (true) or not (false)
Visibility Angle
Scalar 3 If not omni-directional, this angle is the angle from which this context can be accessed. 180 degrees is all around, value is projected to both sides.
Filter Actions Using Cache
Boolean 0 If the context uses ActionManagerComponents's predicate cache when filtering the actions.
Line Of Sight Check
Boolean 0 Should visibility depend on line-of-sight.
Display UI At Reference Point
Boolean 0 Should the actions UI be displayed at the interaction reference point.
Skip Culling Plane Detection
Boolean 0 Should the interaction trace hit point plane be used for backface culling this context.

PrefabFilter

Param Type Default value Unit Description
Prefab
Resource Name 0
Check Prefab Hierarchy
Boolean 0 Should it go over prefab hierarchy to check if the prefab name is valid

BaseGameTriggerEntity

Param Type Default value Unit Description
Trigger Shape Type
Integer 0
Sphere Radius
Scalar 3 Sphere radius
Box Mins
Vector with 3 elements 3 Box minimal bounds
Box Maxs
Vector with 3 elements 3 Box maximal bounds
Box Angles
Vector with 3 elements 3 Box orientation angles
Polyline Height
Scalar 3 Polyline height
Draw Shape
Boolean 0 Draw trigger shape
Shape Color
Color 4
Trigger Activation Type
Integer 0
Periodic Queries
Boolean 0 Enable periodic Queries
Update Period
Scalar 3 Seconds between query updates
Names Filter
Array of Strings 0 Names of objects to be detected inside the Trigger
Classes Filter
Array of Strings 0 Classes of objects to be detected inside the Trigger
Prefabs Filter
Array of Objects 0

ScriptedGameTriggerEntity

Inherits from: BaseGameTriggerEntity

Param Type Default value Unit Description
Run Default Query First
Boolean 0 Run default query before scripted query. The default query is run in C++, if it is filtering by Name/Class and runs first, it can thin the results and prevent script method calls on invalid entities.

Tree

Param Type Default value Unit Description
Collision Velocity Threshold
Scalar 3 Relative speed below threshold does not cause damage
Occlusion
Scalar 3 Visibility check occlusion. In Percent per meter

Vehicle

Param Type Default value Unit Description
Tilt Threshold
Scalar 3 Tilt threshold to consider vehicle inacsessable from -1 to 1.\nWhere 1 is default vehicle state (0 deg tilt) and -1 vehicle is turned upside down (+/- 180 deg tilt).\nDefault value of 0 - means we will consider vehicle inaccessible when it is on it's side (+- 90 deg tilt)
Teleport Offset
Scalar 3 Teleport offset, adds an offset in meters to the teleported vehicle if under terrain

VehicleAnimation

Param Type Default value Unit Description
Anim Graph
Resource Name 0 Anim graph name
Anim Instance
Resource Name 0 Anim graph instance
Vehicle Parts
Array of Objects 0 List of animated vehicle parts
Anim Variables
Array of Objects 0 Bindings of anim variables and signals
Wake Command
Object 0 Command used to wake a sleep node

VehiclePartAnimation

Param Type Default value Unit Description
Part Type
Integer 0 Type of vehicle part (internal refers to a vehicle entity)
Slot Name
String 0 Name of a slot in slot manager representing vehicle part
Start Node
String 0 Node where to start from

VehiclePartRotor

Param Type Default value Unit Description
Axis
Integer 0 Local space axis the rotor axis is best aligned with.

BaseCompartmentManagerComponent

Param Type Default value Unit Description
Door Info List
Array of Objects 0 List of doors which can be used to access this compartment. Recommended maximum number of door infos is 64.
Compartment Slots
Array of Objects 0 List of compartments definitions for slot to be registered into

BaseCompartmentDoor

Param Type Default value Unit Description
Anim Door Index
Integer 0
Open Close Door Anim Graph
Resource Name 0 Animation graph to be used for opening and closing door. Must be the same as on one of the entity ancestors.

BaseCompartmentSlot

Param Type Default value Unit Description
Default Occupant Name
String 0 Entity to find (by name) to set as occupant for this compartment
Compartment Unique Name
String 0 Unique name for identification of multiple compartments with same type/class
Compartment Action
Object 0
Get Out Action
Object 0
Jump Out Action
Object 0
Switch Seat Action
Object 0
Additional Actions
Array of Objects 0
Passenger Position Info
Object 0
Forced Free Look
Boolean 0
Mouse Steering
Boolean 0
Skip Character Door Animations From Seat
Boolean 0 The door closing animation (while getting in) and the door opening animation (while getting out) will not play on the character.
Eject Unconscious And Dead Characters
Boolean 0
Characters Can Fall Out On Flip
Boolean 0
Characters Fall Out Vector Seat Space
Vector with 3 elements 3
Seat Type
Integer 0 Seat type for animation instance identification
Door Info List
Array of Integers 0 List of doors which can be used to access this compartment.
Override Entry Position Info
Object 0
Override Exit Position Info
Object 0
UIInfo
Object 0
Base Coverage
Scalar 3 Defines how 'Covered' the compartment sounds by default. 1 = fully covered, 0 = open
Can Occupant Equip Gadget
Boolean 0 Speciffies either gadget can be equiped by occupant?
Restricted Item Types
Array of Strings 0 Item types that cannot be used in the compartment(see ECommonItemType enum for possible values)
Auto Connect To Turret
String 0 Automatically take over the turret with the given name when entering the compartment
Auto Connect Context Indices
Flags 0 ContextIDs that should be made active when auto-connecting to a turret
Can Turn Out
Boolean 0 Can character perform turn out from this compartment?
Turn Out Door Idx
Integer 0 When turning out/in, which door do we open/close?

BaseSlotMapping

Param Type Default value Unit Description
Slot Name
String 0 Assigned slot

CargoCompartmentSlot

Inherits from: BaseCompartmentSlot

Param Type Default value Unit Description
Context Name
String 0 The unique identifier of this context which will be used for cargo compartment registration and hashmap searches.

CompartmentAccessibilityContext

Param Type Default value Unit Description
BBHalf Extents
Vector with 3 elements 3 Trace Bounding Box half extents
Trace Offset
Vector with 3 elements 3 Trace offset from reffrence Point info
Trace Length
Scalar 3 Trace Length (change sign to change trace direction).
Use Entry Points As Refference
Boolean 0 Should door entry point info should be used as refference
Test Layer
Flags 0 Perform test in this phys layers
Exclude Physics Layer
Flags 0 Ignore bodies with this layers when performing test

CompartmentDoorInfo

Inherits from: BaseCompartmentDoor

Param Type Default value Unit Description
Context Name
String 0 The unique identifier of this context which will be used for compartment door registration and hashmap searches.
Coverage
Scalar 3
Open Door Action
Object 0
Close Door Action
Object 0
Entry Position Info
Object 0 Point that is used for prediction while opening and closing door, as well as while getting in the vehicle (unless we are already aligning to the seat, if the seat prediction is active).
AIEntry Position Info
Object 0 Point that is used for AI when getting into vehicle. Should be set only when AI cannot get into vehicle from EntryPointInfo
AIJump Target Position Info
Object 0 Point that is used for AI when getting into vehicle and need to jump. Should be set only when AI cannot get into vehicle from EntryPointInfo
Exit Position Info
Object 0 Point that is used for prediction while exiting vehicle, should be close to the doors.
Get In Teleport
Boolean 0
Get Out Teleport
Boolean 0
Portal Position Info
Object 0 Point that is used for locating the light portal. If not provided and the door is not fake, fetching light portal position is attempted by matching this door's context name with the context name on ActionManagerComponent. If a match is found, the pivot ID from the action is used.
Portal Signal Name
String 0 Signal for controlling the portal. Only used is Fake Door is set. Usefull when there's no physical door present yet we still want to register a light portal (e.g. small window openings on armored vehicles). If left empty and the context name is given, an attempt to fetch the signal name via ActionManagerComponent is made among its ScriptedSignalUserActions.
Align During Get Out
Boolean 0 If true, character can align from the seat to the door during get out. Otherwise they stay at the seat.
Get In Aligning Teleport
Boolean 0 If true, aligning of character to seat will be immediate (teleport). If false, aligning will be gradual over the course of next few frames.
Get Out Aligning Teleport
Boolean 0 If true, aligning of character to exit point will be immediate (teleport). If false, aligning will be gradual over the course of next few frames.
Get In Seat Aligning On Event
Boolean 0 If true, aligning of character to seat will wait until Event_GetOutAlignToExitPoint event. Otherwise it will be performed immediately on vehicle entering.
Get Out Aligning On Event
Boolean 0 If true, aligning of character to exit point will wait until Event_GetOutAlignToExitPoint event. Otherwise it will be performed immediately on vehicle exiting.
Fake Door
Boolean 0 Set to true if the door are not physically present
Activate Physics
Boolean 0 If true, character physics will activate during door opening/closing action after it has lerped to entry point.
Stance Change On Exit
Integer 0 Sets into which stance will character go upon exit. No change keeps the stance since entering the vehicle.
Accessibility Settings
Object 0

CompartmentToSlotMapping

Inherits from: BaseSlotMapping

Param Type Default value Unit Description
Coverage
Scalar 3 Defines how 'Covered' the slot is. 1 = fully covered, 0 = open
Compartments
Array of Strings 0 Compartments connected to this slot

TurretCompartmentSlot

Inherits from: BaseCompartmentSlot

Param Type Default value Unit Description
Direct Aim Mode
Boolean 0 Is aiming uses direct mode? (BTR...)
Allow Aiming
Boolean 0 Should aiming be allowed when in compartment
Procedural Sidestepping And Height Adjustment
Boolean 0 Allow procedural sidestepping and height adjustment - walking around a turret is not a part of the animation poses, but done using commands.
Sidestep Angle
Scalar 3 The change in angle if the character performs a sidestep, in degrees.
Sidestep Margin
Scalar 3 How much the character can turn before a sidestep is triggered, in degrees.
Height Adjustment Limits
Vector with 2 elements 3 Min and max height between the weapon handles and the floor that the animations graph can handle. X=Min, Y=Max, both in centimeters.
Sidestep Ray ZOffset
Scalar 3 Offset of the ray determining whether the character can move left or right. Defined in centimeters in character space. Negative value moves the ray to the back.
Height Adjustment Ray ZOffset
Scalar 3 Offset of the ray determining the standing height from the root of the character. Defined in centimeters in character space. Negative value moves the ray to the back.
Character Weapon Handling
Boolean 0

BaseFuelNode

Param Type Default value Unit Description
Fuel Type
Integer 0 Fuel type
Max Fuel
Scalar 3 Maximum amount of fuel this component can hold
Fuel Cap Position
Object 0 Fuel cap point representation.

FuelManagerComponent

Param Type Default value Unit Description
Fuel Nodes
Array of Objects 0 List of context definitions for user actions to be registered into

BaseLightManagerComponent

Param Type Default value Unit Description
Lights Enabled
Boolean 0 Are lights enabled?
High Beam Turns Off Head Lights
Boolean 0 Do high beam lights turn off headlights
Light Slots
Array of Objects 0 List of lights definitions for slot to be registered into
Emissive Surface Slots
Array of Objects 0 List of emissive surface parts
Light Action
Array of Objects 0

BaseLightSlot

Param Type Default value Unit Description
Light Type
Integer 0
Light Functional
Boolean 0 Is light functional?
Light State
Boolean 0 Is light on?
Light Position Info
Object 0
Light Prefab
Resource Name 0 Prefab to spawn in that slot.
Light Radius Override
Scalar 3 Overrides the prefab radius if above 0
Light Cone Angle Override
Scalar 3 Overrides the prefab radius if above 0
Light Cast Shadows Override
Integer 0 Overrides the prefab radius if above -1
Light Should Tick
Boolean 0 Should light tick?
Light Side
Integer 0 Which side of the vehicle is the light on?
Light Phase Time
Scalar 3 Time for each Light Phase
Is Presence Light
Boolean 0 Should be considered a presence light?
Parent Surface
String 0

SurfaceLightConfigItem

Param Type Default value Unit Description
For Light Type
Integer 0
Priority
Integer 0
Emissive Multiplier
Integer 0
Emissive Color Tint
Color 4

EmissiveLightSurfaceSlot

Inherits from: RegisteringComponentSlotInfo

Param Type Default value Unit Description
Light Type
Flags 0
Light Side
Integer 0
Emissive On Multiplier
Integer 0
Emissive Off Multiplier
Integer 0
Configurations Override
Array of Objects 0

VehicleWheelSound

Param Type Default value Unit Description
Filename
Resource Name 0
Min step
Scalar 3 Minimum distance for repeating trace
Sound Point
Object 0

VehicleSoundComponent

Inherits from: SoundComponent

Param Type Default value Unit Description
Wheels
Array of Objects 0

TurretComponent

Inherits from: AimingComponent

Param Type Default value Unit Description
aim Direction
Object 0
Camera Ads Attachment
Object 0 ADS Camera attachment reference
Turret Init Stabilization
Integer 0 Turret init stabilization
Turret Enabled Stabilization
Integer 0 Turret enabled stabilization
missile Weapon Link
Object 0
ik Targets
Array of Objects 0
aim Rotation Bones
Array of Strings 0 Name of bones that rotate during turret aiming.
Turret Speed
Vector with 2 elements 3 Turret Speed [deg/s]
Turret Acceleration
Vector with 2 elements 3 Turret Acceleration [deg/s^2]
Turret Deceleration
Vector with 2 elements 3 Turret Deceleration [deg/s^2]
Turret Interpolation Max Speed
Vector with 2 elements 3 Turret Interpolation Max Speed. Used only for interpolation on non owner player.
Turret Interpolation Speed Control
Vector with 2 elements 3 Turret Interpolation Speed Controls. Used only for interpolation on non owner player.
Turret Crank Ratio
Vector with 2 elements 3 Turret to crank ratio for hand-cranked turrets. Only used for animation purposes
Turret Parts
Array of Objects 0
Turret Part Signals
Array of Strings 0 Turret signals forwarded all turret parts
Base Speed
Scalar 3 Base Speed [deg/s]
Base Acceleration
Scalar 3 Base Acceleration [deg/s^2]
Base Deceleration
Scalar 3 Base Deceleration [deg/s^2]
Base Interpolation Max Speed
Scalar 3 Base Interpolation Max Speed. Used only for interpolation on non owner player.
Base Interpolation Speed Control
Scalar 3 Base Interpolation Speed Controls. Used only for interpolation on non owner player.
Use Weapon Sights
Boolean 0 Allow turret to use weapon sights

TurretPart

Param Type Default value Unit Description
Slot Name
String 0 Name of a slot in slot manager representing turret part

TurretSlotComponent

Param Type Default value Unit Description
Attach Type
Object 0 EntitySlotInfo
Turret Template
Resource Name 0 TURRET_TEMPLATE

VehicleBaseSimulation

Param Type Default value Unit Description
Signals Source Access
Object 0
Animation
Object 0

VehicleFixedWingSimulation

Inherits from: VehicleBaseSimulation

Param Type Default value Unit Description
Simulation
Object 0

HelicopterRotorConfig

Param Type Default value Unit Description
Simulation Index
Integer 0 Links to rotor in simulation config
Animation Index
Integer 0 Links to vehicle part in animation config
Static Model
Resource Name 0 Model representing non-spinning rotor blades
Spinning Model
Resource Name 0 Model representing spinning rotor blades
Destroyed Model
Resource Name 0 Model representing destroyed rotor blades

VehicleHelicopterSimulation

Inherits from: VehicleBaseSimulation

Param Type Default value Unit Description
Simulation
Object 0
Rotor Configs
Array of Objects 0 Configuration of helicopter rotors

VehicleTrackedSimulation

Inherits from: VehicleBaseSimulation

Param Type Default value Unit Description
Simulation
Object 0
Track Positions
Array of Vectors with 2 elements 3
Track Length
Scalar 3
Track Thickness
Scalar 3
Track Offset1
Vector with 3 elements 3
Track Offset2
Vector with 3 elements 3
Track Segment
Resource Name 0
Track Sprocket Axle
Integer 0
Track Idler Axle
Integer 0

VehicleWheeledSimulation

Inherits from: VehicleBaseSimulation

Param Type Default value Unit Description
Simulation
Object 0

VehicleWheeledSimulation_SA_B

Inherits from: VehicleBaseSimulation

Param Type Default value Unit Description
Simulation
Object 0

CarControllerComponent

Inherits from: VehicleControllerComponent

Param Type Default value Unit Description
Type
Integer 0 Controls type
Transmission RND
Boolean 0 Transmission has three settings: reverse, neutral and drive
Steering Forward Speed
Array of Vectors with 2 elements 3 Steering speed when actively steering away from center [km/h, deg/s]
Steering Backward Speed
Array of Vectors with 2 elements 3 Steering speed when actively steering towards center [km/h, deg/s]
Steering Center Speed
Array of Vectors with 2 elements 3 Steering speed when no steering is applied [km/h, deg/s]
Throttle Curve
Array of Vectors with 2 elements 3 Throttle application with respect to engine's RPM [rpm, %]
Reverse Curve
Array of Vectors with 2 elements 3 Throttle application with respect to engine's RPM while in reverse [rpm, %]
Throttle Reaction Time
Scalar 3 Time to reach wanted value of throttle [s]
Throttle Turbo Time
Scalar 3 Time to reach wanted value of throttle in turbo mode [s]
Throttle Turbo
Scalar 3 Amount of throttle depending on turbo mode
Throttle Effect
Object 0
Throttle Effect Reverse
Object 0
Braking Curve
Array of Vectors with 2 elements 3 Brake application over time [%, s]
Brake Turbo Time
Scalar 3 Time to reach wanted value of brake in turbo mode [s]
Brake Effect
Object 0
Brake Effect Reverse
Object 0
Clutch Uncouple Time
Scalar 3 Time to uncouple clutch [s]
Clutch Couple Time
Scalar 3 Time to couple clutch [s]
Clutch Feedback Rpm
Scalar 3 Feedback RPM at which moving off is disabled\nUses Idle RPM if set to 0\n[RPM]
Clutch Uncouple Rpm
Scalar 3 Engine RPM at which clutch is fully uncoupled while moving off
Clutch Couple Rpm
Scalar 3 Engine RPM at which clutch is fully coupled while moving off
Clutch Feedback Factor
Scalar 3 Clutch feedback RPM factor while moving off uphill or downhill
Clutch Uncouple Factor
Scalar 3 Clutch uncouple RPM factor while moving off uphill or downhill
Clutch Couple Factor
Scalar 3 Clutch couple RPM factor while moving off uphill or downhill
Clutch Minimum Position
Scalar 3 Minimum clutch position while moving off
Clutch Minimum Factor
Scalar 3 Minimum clutch position factor while moving off uphill or downhill
Clutch Maximum Position
Scalar 3 Maximum clutch position while moving off
Clutch Maximum Factor
Scalar 3 Maximum clutch position factor while moving off uphill or downhill
Slope Smoothing
Scalar 3 Factor of filter that smooths out upshift and downshift RPMs
Latency
Scalar 3 Minimum time between gear switches [s]
Up Shift Factor
Scalar 3 Upshift RPM factor while going uphill or downhill
Up Shift Rpm
Scalar 3 Engine RPM required for upshifting
Down Shift Factor
Scalar 3 Downshift RPM factor while going uphill or downhill
Down Shift Rpm
Scalar 3 Engine RPM required for downshifting
Turbo Shift Factor
Scalar 3 Upshifting and downshifting RPM ratio in Turbo mode

CarControllerComponent_B

Inherits from: VehicleControllerComponent

Param Type Default value Unit Description
Type
Integer 0 Controls type
Transmission RND
Boolean 0 Transmission has three settings: reverse, neutral and drive
Steering Forward Speed
Array of Vectors with 2 elements 3 Steering speed when actively steering away from center [km/h, deg/s]
Steering Backward Speed
Array of Vectors with 2 elements 3 Steering speed when actively steering towards center [km/h, deg/s]
Steering Center Speed
Array of Vectors with 2 elements 3 Steering speed when no steering is applied [km/h, deg/s]
Throttle Curve
Array of Vectors with 2 elements 3 Throttle application with respect to engine's RPM [rpm, %]
Reverse Curve
Array of Vectors with 2 elements 3 Throttle application with respect to engine's RPM while in reverse [rpm, %]
Throttle Reaction Time
Scalar 3 Time to reach wanted value of throttle [s]
Throttle Turbo Time
Scalar 3 Time to reach wanted value of throttle in turbo mode [s]
Throttle Turbo
Scalar 3 Amount of throttle depending on turbo mode
Braking Curve
Array of Vectors with 2 elements 3 Brake application over time [%, s]
Brake Turbo Time
Scalar 3 Time to reach wanted value of brake in turbo mode [s]
Clutch Uncouple Time
Scalar 3 Time to uncouple clutch [s]
Clutch Couple Time
Scalar 3 Time to couple clutch [s]
Clutch Uncouple Rpm
Scalar 3 Engine RPM at which clutch is fully uncoupled while moving off
Clutch Couple Rpm
Scalar 3 Engine RPM at which clutch is fully coupled while moving off
Clutch Uncouple Factor
Scalar 3 Clutch uncouple RPM factor while moving off uphill or downhill
Clutch Couple Factor
Scalar 3 Clutch couple RPM factor while moving off uphill or downhill
Clutch Minimum Position
Scalar 3 Minimum clutch position while moving off
Clutch Minimum Factor
Scalar 3 Minimum clutch position factor while moving off uphill or downhill
Slope Smoothing
Scalar 3 Factor of filter that smooths out upshift and downshift RPMs
Latency
Scalar 3 Minimum time between gear switches [s]
Up Shift Factor
Scalar 3 Upshift RPM factor while going uphill or downhill
Up Shift Rpm
Scalar 3 Engine RPM required for upshifting
Down Shift Factor
Scalar 3 Downshift RPM factor while going uphill or downhill
Down Shift Rpm
Scalar 3 Engine RPM required for downshifting
Turbo Shift Factor
Scalar 3 Upshifting and downshifting RPM ratio in Turbo mode

HelicopterControllerComponent

Inherits from: VehicleControllerComponent

Param Type Default value Unit Description
Ground Assist Disable Time
Scalar 3 Time required to disable ground assist. Collective limit is removed.
Ground Assist Enable Time
Scalar 3 Time required to enable ground assist. Collective limit is applied.
Ground Assist Collective Limit
Scalar 3 Maximum collective value available while ground assist is active

TurretControllerComponent

Param Type Default value Unit Description
Can Aim Only In ADS
Boolean 0
Has Moveable Base
Boolean 0
Limits Horiz
Vector with 2 elements 3 Override aiming horizontal limits of turret (standing stance) if different than 0 (turn)
Limits Vert
Vector with 2 elements 3 Override aiming vertical limits of turret if (standing stance) different than 0 (elevation)
Limits Horiz Prone
Vector with 2 elements 3 Override aiming horizontal limits of turret (prone/sitting stance) if different than 0 (turn)
Limits Vert Prone
Vector with 2 elements 3 Override aiming vertical limits of turret if (prone/sitting stance) different than 0 (elevation)
Ads Sound Bone Name
String 0 Name of the bone where to play the ads in and out sound
Should Aim In World Space
Boolean 0
Turret Reload Position
Vector with 2 elements 3 Turret Reload Position. Use a value greater than 360 to disable one axis. [deg]
Turret Unconscious Position
Vector with 2 elements 3 Turret unconscious Position. [deg]
Return To Position Before Reload
Boolean 0 Should return back to the position before reloading after the reload
Get Update Events When Empty
Boolean 0 If checked, turret will received EV_FIXEDFRAME even when not occupied
Can Be Overridden
Boolean 0 If true, can be overridden to receive input from outside of the turret (for commander override or pilot/copilot controlled weapons
Unique Turret Name
String 0 Name of the turret, used to connect a remote turret to a compartment slot

VehicleControllerComponent

Param Type Default value Unit Description
Max Startup Time
Scalar 3 Maximum amount of time the engine startup should take per attempt (or if there are no animations)
Max Startup Attempts
Integer 0 Maximum number of attempts needed to start the engine
Engine Startup Chance
Scalar 3 Probability that each startup attempt has to succeed from 0 to 100
Max Wants To Start Time
Scalar 3 Maximum amount of time the turning of the engine key should logically take
Air Intakes
Array of Objects 0 air intake positions in local space of vehicle
Max Lights Time
Scalar 3 Maximum amount of time the light toggle should take (or if there are no animations)
Shutdown Time
Scalar 3 Amount of time (some) vehicle systems automatically toggle off after the shutdown
Drowning Time
Scalar 3 Amount of time needed to completely drown the engine when all air intakes are underwater

BaseWeaponManagerComponent

Param Type Default value Unit Description
Default Weapon Index
Integer 0 Default weapon index to be selected (WeaponSlotComponent->Weapon Slot Index)
Sling Position
Object 0 Where weapon should be if it would be hanging on the sling

BaseWeaponComponent

Param Type Default value Unit Description
Signals Source Access
Object 0
use Aiming Type
Integer 0 defines which aiming component will be used
is Throwable
Boolean 0
is Fired From Script
Boolean 0
Weapon Type
Integer 0 Defines how AI will recognize this weapon
Allowed Raise
Integer 0 Is the weapon limited to raise/lowered state?
Shared Shot Span Index
Integer 0 If set to a value other than -1, weapons or weapon slots in BaseWeaponManagerComponent with the same value will share the same last shot time (their RPM will be synchronized). This is useful for a double-feed system.
should Handle Obstruction
Boolean 0 Should weapon obstruction be handled with current weapon in hands?
obstruction Test Character Offset
Vector with 3 elements 3u Offset from character obstruction reffrence point (neck), to weapon handling point
obstruction Test Added Length
Scalar 3u Offset from trace endpoint (character refference point + character offset + weapon length) that will be include in obstruction test.
obstruction Max Torso ZOffset
Scalar 3u How much does character move back his body when in significant or full obstruction. In Slight obstruction body will get lerped into this position.
sign Obstr Weapon Constant Offset
Vector with 3 elements 3u Base offset for weapon move IK when in signficant obstruction.
slight Obstr Weapon Max ZOffset
Scalar 3u How much does character move back his weapon via weapon move IK when in max slight obstruction.
signi Obstr Weapon Max ZOffset
Scalar 3u How much does character move back his weapon via weapon move IK when in max significant obstruction.
can Go To Full Obstruction
Boolean 0 If false the weapon doesn't go to full obstruction no matter how it's clipping.
obstruction Test BBScale
Vector with 3 elements 3u Scale to apply to weapon bounding box when performing obstruction
sights Camera Roll Scaler
Scalar 3u Recoil Roll (angular Z rotation) camera scaler, 0 allowed
Sound Int
Integer 0 Value of corresponding sound signal when weapon is hold
Deployment Trigger Effect
Object 0

WeaponComponent

Inherits from: BaseWeaponComponent

Param Type Default value Unit Description
UIInfo
Object 0
Weapon Slot Type
String 0 Weapon slot type
Weapon Offset
Vector with 3 elements 3 Linear offset of weapon when held
Weapon Offset ADS
Vector with 3 elements 3 Linear offset of weapon when aiming
Can Be On Sling
Boolean 0 Should current weapon be allowed to be placed on sling?
Be Active When Dropped
Boolean 0 Should the weapon be active when it is dropped?
Be Active When Init Without Parent
Boolean 0 Should the weapon be active when it is spawned without parent?
Weapon Index
Integer 0 Numeric index of weapon, used for ordering in weapon manager copmonent

WeaponSlotComponent

Inherits from: BaseWeaponComponent

Param Type Default value Unit Description
Attach Type
Object 0 Relative transformation of weapon when its held in hands
Weapon Template
Resource Name 0 Weapon template to spawn by default in this slot
Weapon Slot Type
String 0 Weapon type that can be accepted in this weapon slot
Weapon Slot Index
Integer 0 Numeric index of slot, used for ordering
Holstered Index
Integer 0 Numeric index of holster variable, used for animation

BaseWeaponAimModifier

Param Type Default value Unit Description
Name
String 0
Is Enabled
Boolean 0

RecoilData

Param Type Default value Unit Description
Curve X
Array of Vectors with 2 elements 3
Curve Y
Array of Vectors with 2 elements 3
Curve Z
Array of Vectors with 2 elements 3
Curve Time Scale
Scalar 3 Time multiplier of recoil progress
Curve Magnitudes
Vector with 3 elements 3 Curve magnitudes per curve axis
Curve Mins
Vector with 3 elements 3 Calculated progress value is clamped between min and max.
Curve Maxs
Vector with 3 elements 3 Calculated progress value is clamped between min and max.
Base Recoil Scale
Scalar 3
Move Recoil Scale
Scalar 3
One Hand Scale
Scalar 3 Extra scale that is additively added when weapon is held in one hand.
Deployment Multiplier
Vector with 3 elements 3 Deployment multiplier per axis (no bipod)
Bipod Deployment Multiplier
Vector with 3 elements 3 Deployment multiplier per axis (with bipod)

RecoilWeaponAimModifier

Inherits from: BaseWeaponAimModifier

Param Type Default value Unit Description
Linear Data
Object 0
Angular Data
Object 0
Turn Offset Data
Object 0

SwayWeaponAimModifier

Inherits from: BaseWeaponAimModifier

Param Type Default value Unit Description
Linear Damping
Vector with 3 elements 3
Linear Magnitude
Scalar 3
Angular Damping
Vector with 3 elements 3
Angular Magnitude
Scalar 3
ADS Multiplier
Scalar 3 Breath sway ADS multiplier
Focus Multiplier
Scalar 3 Breath sway focus mode multiplier (ADS only), overrides ADS mult
Stamina Magnitude Curve
Array of Vectors with 2 elements 3
Stamina Scale Mins
Vector with 3 elements 3
Stamina Scale Maxs
Vector with 3 elements 3
Linear Inertia Magnitude
Vector with 3 elements 5u
Angular Inertia Magnitude
Vector with 3 elements 5u
Angular Inertia Magnitude ADS
Vector with 3 elements 5u
Linear Inertia Decay Speed
Scalar 3
Angular Inertia Decay Speed
Scalar 3
Lower Translation
Vector with 3 elements 5u
Lower Rotation
Vector with 3 elements 5u
Lower Speed
Scalar 3
Damage To Sway
Scalar 3
One Hand Multiplier
Scalar 3 Additive scale added on top of default scale when weapon is held in one hand.
Deployment Multiplier
Scalar 3 Scale multiplier when weapon is deployed.

WeaponAimModifier

Inherits from: BaseWeaponAimModifier

Param Type Default value Unit Description
AIM X COEF
Scalar 3
AIM Y COEF
Scalar 3
TURN X COEF
Scalar 3
TURN Y COEF
Scalar 3

ZeroingWeaponAimModifier

Inherits from: BaseWeaponAimModifier

Param Type Default value Unit Description
Rotation Interpolation Speed
Scalar 3 Speed of rotation interpolation, multiplier of time delta
Translation Interpolation Speed
Scalar 3 Speed of translation interpolation, multiplier of time delta

AttachmentSlotComponent

Param Type Default value Unit Description
Attachment Slot
Object 0
Attachment Type
Object 0 Object which specifies compatibility.
Attachment Obstructs
Boolean 0 Whether attachment obstructs other attachments.
Show In Inspection
Boolean 0 The slot should be displayed while doing the inspection?

BaseFireMode

Param Type Default value Unit Description
Max Burst
Scalar 3 Number of projectiles spawned in time (-1 for full auto)
Burst Type
Integer 0 How the weapon reacts to trigger release during a burst
Max Salvo
Scalar 3 Number of projectiles spawned in one simultaneously, should be <= to MaxBurst and <= number of muzzles (-1 to use all muzzles)
Rounds Per Minute
Scalar 3 Rounds per minute
UIName
String 0 How this firemode is visible for player on HUD
Manual Action
Boolean 0 If true, weapon has manual action (bolt/pump etc)
Gamepad Trigger effect
Object 0
Empty Trigger effect
Object 0
Firing Trigger effect
Object 0

BaseMagazineComponent

Param Type Default value Unit Description
Magazine Well
Object 0 Object which specifies compatibility with magazine types.
Custom Animation Attributes
Object 0 Custom character animation attributes override when character using weapon with this magazine.

MagazineAnimationComponent

Inherits from: BaseItemAnimationComponent

Param Type Default value Unit Description
Animated Mesh
Resource Name 0 Animated mesh, that will be used when magazine is active
Bullet Meshes To Hide
Array of Strings 0
Empty State Meshes To Hide
Array of Strings 0

MagazineComponent

Inherits from: BaseMagazineComponent

Param Type Default value Unit Description
UIInfo
Object 0 Data container for UI info for this magazine
Item Model
Resource Name 0 Item model
Max Ammo
Integer 0 The amount of ammo in the magazine.
Ammo Config
Resource Name 0
Ammo Mapping
Array of Integers 0

MagazineConfig

Param Type Default value Unit Description
Ammo Resource Array
Array of Resource Names 0

BaseMuzzleComponent

Param Type Default value Unit Description
Muzzle Type
Integer 0 defines which Muzzle Type it is
Muzzle End Positions
Array of Objects 0 For each barrel, position muzzle ends
Projectile Spawn Positions
Array of Objects 0 For each barrel, position where projectile should be spawned
Chambered Ammo
Boolean 0 Can muzzle be chambered
Fire Modes
Array of Objects 0 Fire modes given by this muzzle
Missile Weapon Link
Object 0 Object which links projectile with weapon, fe. missile guidance.
Magazine Well
Object 0 Object which specifies compatibility with magazine types.
Bullet Init Speed Coef
Scalar 3 How much this muzzle changes initial speed of bullet. Fe. longer barrels achieve higher velocity.
Dispersion Diameter
Scalar 3 Diameter of dispersion cone at DispersionRange. [m]
Dispersion Range
Scalar 3 Distance from target where DispersionDiameter is being measured. [m]
Weapon Aim Modifiers
Array of Objects 0
UIInfo
Object 0 UI Information for that object
Disposable
Boolean 0 Is this barrel disposable?
Needs Setup
Boolean 0 Does this barrel need setup to be used?
Initial Setup
Boolean 0 What is the initial setup of the barrel?
Custom Animation Attributes
Object 0 Custom character animation attributes override when character using weapon with this muzzle selected
Supports Lowered
Boolean 0 Do previously set attributes support lowered stance
Reload Duration
Scalar 3 Currently used for weapons without animation like a turret. [s]
Out Of ADSWhile Reloading
Boolean 0 Get out of ADS while reloading the turret.
Allow Weapon Deployment
Boolean 0 Allow weapon deployment when this muzzle is active.
LEFT HAND TARGET
Object 0 Left hand IK position for weapon deployment
RIGHT HAND TARGET
Object 0 Right hand IK position for weapon deployment
BUTSTOCK TRANSFORMATION
Object 0 Butstock position
Gamepad Effect Context
String 0 GamepadEffectContext (defined in GamepadEffectsManagerComponent) which gets enabled/disabled when this Muzzle is active/inactive.
ADS Gamepad Trigger effect
Object 0

MortarMuzzleComponent

Inherits from: MuzzleInMagComponent

Param Type Default value Unit Description
Fire Delay
Scalar 3 Delays the firing of the mortar in seconds when the firemode is set to automatic.

MuzzleComponent

Inherits from: BaseMuzzleComponent

Param Type Default value Unit Description
Magazine Position
Object 0 Position of magazine
Magazine Template
Resource Name 0 Magazine prefab to spawn

MuzzleInMagComponent

Inherits from: BaseMuzzleComponent

Param Type Default value Unit Description
Projectile Position
Object 0 Position of the projectile on the weapon
Ammo Template
Resource Name 0 Ammo type
Max Ammo
Integer 0
Allow Detaching Projectile
Boolean 0
Initial Ammo
Integer 0
Projectile Visible
Boolean 0 Should projectile be visible in muzzle, when loaded
Is Attachment
Boolean 0 Is this muzzle an attachment on the weapon?
Reload UGL
Boolean 0 Should reloading of Under Barell should be used?

RocketEjectorMuzzleComponent

Inherits from: BaseMuzzleComponent

Param Type Default value Unit Description
Projectiles Visible
Boolean 0 Should projectiles be visible in muzzle, when loaded
Projectile Positions
Array of Objects 0 Positions of the projectiles on the weapon
Pod Weapon Skip Empty
Boolean 0 Does the pod skip empty tubes? If true, uninterrupted fire is possible until the pod is empty
Ejector Interface
Object 0 Object which specifies compatibility with rocket/projectile types.

BaseCollimatorReticleColor

Param Type Default value Unit Description
Reticle Color
Color 4 Reticle inner color
Glow Color
Color 4 Reticle glow color

BaseCollimatorReticleInfo

Param Type Default value Unit Description
Reticle Index
Integer 0 Reticle index in the emat texture array
Do Override
Boolean 0 If checked, use given angular size and reticle portion. If no, use defaults
Reticle Default Angular Size
Scalar 5u Reticle's default angular size, in degrees. 0 to disable constant angluar size.
Reticle Default Texture Portion
Scalar 5u Reticle's default procetage of texture coverage, i.e. how big the reticle is compared to the complete texture, from 0 to 1. 0 to disable constant angluar size.

BaseCollimatorSightsComponent

Inherits from: BaseSightsComponent

Param Type Default value Unit Description
Collimator Top Left
Object 0 Top Left point of the Collimator projection plane
Collimator Bottom Right
Object 0 Bottom Right point of the Collimator projection plane
Collimator Center
Object 0 Center point of the Collimator projection plane. May be left blank to take the average of Top Right and Bottom Left points
Collimator Aspect Ratio
Boolean 0 Reticle has 1:1 Aspect ratio (if false, it is assumed that the reticle uses the entire UV range in either direction)
Reticle Default Angular Size
Scalar 5u Reticle's default angular size, in degrees. 0 to disable constant angluar size.
Reticle Default Texture Portion
Scalar 5u Reticle's default procetage of texture coverage, i.e. how big the reticle is compared to the complete texture, from 0 to 1. 0 to disable constant angluar size.
ADSActivation Percentage
Scalar 3 Percentage between 0 (immediately) and 1 (after full blend) when the ADS sights activates
ADSDeactivation Percentage
Scalar 3 Percentage between 0 (after full blend out) and 1 (immediately) when the ADS sights deactivates
Default Reticle Color
Integer 0 Default color index for reticle from the color array.
Reticle Colors
Array of Objects 0 Definition for different reticle colors
Default Reticle Index
Integer 0 Default Reticle Index from reticle Infos array (or from emat if array is empty)
Reticle Infos
Array of Objects 0 Definition for different reticles
Initial Horziontal Angular Correction
Scalar 3 Initial horizontal (windage) adjustment angle, in Mils
Initial Vertical Angular Correction
Scalar 3 Initial vertical (drop compensation) adjustment angle, in Mils
Collimator Can Be Animated
Boolean 0 Set to true if the sight can be animated/change position. An example would be the XM60 sights of the UH-1 which can be deployed and retracted
Reticle Auto Bright
Boolean 0 Ambient light sensor can automatically adjust reticle brightness
Reticle Auto Bright Flip
Boolean 0 If true, sight gets brighter in darkness
Reticle Auto Upper
Scalar 5u Upper value at which the reticle has maximum brightness
Reticle Auto Lower
Scalar 5u Lower value at which the reticle disappears
Reticle Auto Clamp Day Night
Boolean 0 If true, reticle brightness is between day and night brightness. If false, brightness is between day brightness and completely off
Reticle Auto Toggle
Boolean 0 If true, can toggle between automatic and fixed brightness. If false, only supports automatic brightness
Collimator Is Vehicle Sight
Boolean 0 If true, the sight is part of a HUD or vehicle sight and is always active
Collimator Compartment Name
String 0 Name of the compartment that this sight is connected to.

SightRangeInfo

Param Type Default value Unit Description
Range
Vector with 2 elements 6 Range information (x = animation value, y = range in meters)
Weapon Position
Object 0 Weapon position adjustments for this Range

BaseSightsComponent

Param Type Default value Unit Description
Sights Position
Object 0
Sights Ranges
Array of Objects 0 Zeroing Range, Rotation and Translation
Sights Ranges Default Index
Integer 0 Default sight range index selected from sight ranges array.
Sights FOVInfo
Object 0 Field of View defining info object.
Sights Point Front
Object 0 The sight point further from the character's eye
Sights Point Rear
Object 0 The sight point closer to the character's eye
ADSTime
Scalar 3 Time to ADS in seconds
Camera Recoil Amount
Scalar 3 Percentage of recoil applied to camera (0-300%).
Sights Priority
Boolean 0 If set, these sights are preferred when automatically selecting a new sights.
Sights Switch Skip
Boolean 0 If set, these sights are skipped when cylcing through multiple sights, and are only considered if they are the only ones
Zeroing Generator
Object 0 Class to generate Zeroing information
Sound Int
Integer 0 Value of corresponding sound signal when sight is used.
Sights Partial Hide ADS
Boolean 0 If true, use alpha test to partially hide sights on ADS
Sights Partial Freelook Factor
Scalar 3 Factor for making the hidden part reappear on freelook. 0 to disable (always hide on ADS)

ZeroingMarkInfo

Param Type Default value Unit Description
Range
Integer 6 Zeroing Range Information
Marker Position
Object 0 Position of marker for this range

BaseZeroingGenerator

Param Type Default value Unit Description
Zero Raise To Eye
Boolean 0 Add offset to raise sight line to eye
Zero Use Sight STo Eye Line
Boolean 0 Use the eye to sights line instead Z delta for animation

FrontSightGLZeroingGenerator

Inherits from: BaseZeroingGenerator

Param Type Default value Unit Description
Default Weapon Template
Resource Name 0 Weapon that the sight would be attached to
Zeroing Marks
Array of Objects 0 Zeroing Range, Rotation and Translation

RearSightZeroingGenerator

Inherits from: BaseZeroingGenerator

Param Type Default value Unit Description
Pivot Position
Object 0 Position of the center of rotation when held in hand.
Zeroing Marks
Array of Objects 0 Zeroing Range, Rotation and Translation

PivotPointInfoItem

Param Type Default value Unit Description
Point info
Object 0 Pivot point position
System Identifier
Integer 0 Used internally to identify specific usage of a point (eg Aiming would use pivot point with identifier 2 in order to select pivot for Bipod)
Aim Limits Deployed Yaw
Vector with 2 elements 5u
Aim Limits Deployed Pitch
Vector with 2 elements 5u
Stabilization Points
Array of Objects 0 Set of points on weapon that should be touching surface in order to consider weapon stable, if left empty pivot point will be considered as single stabilization point
Stabilization Size
Vector with 3 elements 3 Size of stabilization endpoints

VolumeDataProviderComponent

Param Type Default value Unit Description
Size
Vector with 3 elements 3
Offset
Vector with 3 elements 3
Rotation
Vector with 3 elements 3

MissionHeader

Param Type Default value Unit Description
World
Resource Name 0

NwkMovementComponent

Param Type Default value Unit Description
Interpolation
Integer 0 Type of interpolation used.
Hierarchy Sync
Boolean 0 Sync transform even in hierarchy. Not necessary if handled by different means.

BaseChatChannel

Param Type Default value Unit Description
Channel name
String 0
Style
Object 0

BaseChatEntity

Param Type Default value Unit Description
Base style
Object 0
Channels
Array of Objects 0 Defines chat channels
Whisper channel
Object 0 Channel for private messages
Default channel
String 0

RplComponent

Param Type Default value Unit Description
Auto Hierarchy
Boolean 0 Hierarchy updates handled automatically by replication.

GameplaySettings

Param Type Default value Unit Description
Crossplay Enabled
Boolean 0

SoundWorld

Param Type Default value Unit Description
Soundmap
Resource Name 0
Trees Num
Integer 0
Houses Num
Integer 0
Query Mult
Scalar 3
Filter Forest
Integer 0
Filter City
Integer 0
Filter Sea
Integer 0
Coast Width
Integer 0
Filter Coast
Integer 0
Lake Width
Integer 0
Lake Min Area
Integer 0

TimeAndWeatherManagerEntity

Param Type Default value Unit Description
Day Time Synchronization Rate
Scalar 3 Time of the day synchronization interval in seconds. Server only.
Sunrise signal Offset
Scalar 3 Offset from the time of sunrise to send signals
Sunset signal Offset
Scalar 3 Offset from the time of sunset to send signals
Time events Periodicity
Integer 0 Periodicity with which time events are checked (0 = never, 1 = per hour, 2 = per minute, 3 = per second)