Arma Reforger:Resource Manager: Config Editor
Search through value names (not values themselves).
Remind the used Config class.
A button leading to the parent Config file, in the case of an inherited Config file.
Below these fields are the values name/UI lines. An entry that is not the default value will be bolded.
An entry can be reset to its default value using the arrow that appears then to the right of the field.
The value interface is composed of two columns; on the left, the value name (extracted from the property's name) and on the right, the UI to edit it - either deduced by the property's type or forced by the Config designer (see Attribute).
See uiwidget for all possible interfaces and how to interact with them.
a +/- interface displaying the amount of elements between parentheses.
Press + to add an element, - to remove the highlighted one.
To edit the array in a more advanced way, right-click on an item's name to use contextual menu's additional options:
Config Base Container Class
A Base Container is a class that serves as a blueprint for the Config Editor.
The usage of a BaseContainerProps class decoration is required for the class to be visible and editable in the Config Editor - see Examples below.
The minimum required attribute usage is
for the base object Config to be visible in the Config creation process.
A class inheriting a decorated one must be decorated as well in order to be usable.
It accepts the following parameters:
A class name display is defined as follow:
- if the class uses a name instead of a GUID (see NC_MUST_HAVE_NAME), the name is displayed - otherwise, the classname is
- the class can use an custom name with the usage of an additional decorator such as BaseContainerCustomTitle or one of its children
The class' category - only useful in World Editor plugins definition.
The class' description - only useful in World Editor plugins definition.
Default: "255 0 0 255"
The class' colour in RGBA format (Red Green Blue Alpha) in a 0..255 range - only useful in World Editor plugins definition.
The class' visibility - only useful in World Editor plugins definition.
Define if the class is selectable when creating a new Config.
The class' icon - only useful in World Editor plugins definition.
See the NamingConvention enum class.
Force providing a name on object creation (whether a class or an array of them) instead of having an automatically generated GUID. The displayed object name is then the entered name.
The default value: the Workbench generates a GUID for this config entry. The displayed object name is then the classname.
The usage of an Attribute member variable decoration is required for the value to be visible and editable in the Config Editor - see Examples below.
The minimum required Attribute usage is [Attribute()].
A variable's display name is deduced as follows:
m_iMyVariable is split by removing m_ (conventional name prefix for a member variable), i (optional, additional prefix for variable type) and splitting the remaining part using the capital letters: here My Variable.
It accepts the following parameters:
The default value. It is always a string, even in the case of a boolean ("0", "1", not "false"/"true") or a number ("5678", "12.34").
The Widget type to be used. It can be forced to whatever wanted. Note that not all widgets fit all variable types. See the UIWidgets class.
|Data Type||UI Widget|
|float||EditBox (numerical version)|
|string||EditBox (text version)|
|array||Array Widget and item type Widget|
Does not display the field.
Identical to Hidden.
a colour modification UI. Clicking the colour rectangle will display the colour picker, allowing to set values in many ways:
Allows referring to a resource of any kind.
Allows previewing images and textures - to be combined with edds and/or imageset params Attribute parameter.
Range 01/01/2000 00:00 → 31/12/2063 23:59 UTC Time (e.g 01/01/2000 01:00 in Western Europe)
a numerical, editable up-down field.
A combo box that opens and allows to pick one value among a selection.
Checked for true, unchecked for false.
A click and drag allows to set the value on the slider; a click on the slider itself allows to type in the wanted value.
Offers checkboxes for each enums provided. Power of two values are recommended, e.g:
Clicking the "set class" button creates an instance allowing to set its values (if any).
- object (all classes)
Clicking an axis letter and dragging left or right changes the value.
a graph modification UI. Double-clicking on the graph creates a new point, click/dragging on a point moves it (no further than its surrounding ones on the X-axis), clicking on a point focuses it, and pressing removes that point.
The variable description; this provides a tooltip when hovering the variable name and does not replace it.
Used to define UI-specific settings, e.g a numerical range.
- Array: "MaxSize=10" to limit the amount of possible elements
- Number: "minValue maxValue step" (e.g "0 100 5" for a 0..100 range with steps of 5)
- Curve: "rangeX rangeY offsetX offsetY" (e.g "50.0 80.0 10.0 20.0" for curve axes to go X:10..60 (10 + 50) and Y:20..100 (20 + 80))
- Vector: "minValue maxValue step purpose=purposeType space=spaceType anglesVar=anglesVariableName coordsVar=coordsVariableName" (e.g "0 100 5" for a 0..100 range with steps of 5) for each vector value.
purpose and space are optional; using them makes step optional and allows to set the vector value in World Editor using the transformation gizmo.
- purpose possible values:
- coords - the vector property represents coordinates
- angles - the vector property represents rotations
- space possible values:
- entity - the vector represents a value in the entity's local space (relative coordinates)
- world - the vector is an absolute world position
- custom - any custom space defined by the entity
- anglesVar/coordsVar is the direct variable name, e.g m_vAngles/m_vRelativePos
- inf inf purpose=coords space=entity
- -90 +90 5 purpose=angles space=world
- purpose possible values:
- ResourcePicker: "extension1 extension2 class=classname inheritedClasses=false"
- extension1 extension2 file extensions, e.g "dds edds imageset png" for an Image Resource Picker
- class is the Entity or config class type from which the selection must inherit, e.g "et class=AIWaypoint" for AIWaypoint entities
- inheritedClasses set to false to only have a selection from the exact class defined with class, e.g "conf class=TAG_MyClass inheritedClasses=false" for .conf files of TAG_MyClass class and only this class
An array of ParamEnum. Used to define ComboBox's items. It can be defined as follows:
The description is optional and is to fill a combobox's entry tooltip. As many as needed ParamEnum entries can exist.
The variable's category - only useful in World Editor plugins to categorise properties.
The wanted floating point precision. Restricts a floating point field to a certain amount of decimals.
In the Resource Browser, browse to the directory in which to create the config file; then click on the Create button and select the Config File option:
Enter the new file's name in the appearing dialog:
Look for the BaseContainer class in the next one:
After clicking the classname once, the file is created from this model in the selected directory.
Double-click on it to open it and edit it.
Config Prefab from Config
Creating a Prefab Config from a config object is doable by drag and dropping the object into the Resource Browser window.
This will display the dialog to name the new file; once filled the file is created in the selected directory.
Inherited Config File
An inherited config file is a config that will use another config file as its default values model, and obviously uses the same config class.
In order to create one, right-click on the config file wanted as model in Resource Browser, then click "Create Inherited File" - a dialog will ask to type the inherited config file name.
The created file will now have the (default) values of the model.
Filling by Config
If a Config already exists and is compatible with the target entry, dragging and dropping the config on the field/entry will fill it with Config's values. This is shown with the blue circle as well as the .conf button present in the value name, as shown below:
Editing from the current Config will only change and override the sub-Config values in the current Config.
To edit the sub-Config values directly, press the .conf button to open said Config.
Changes made in one tab are immediately broadcast to other tabs if such sub-Config is used.
The following ConfigExample.conf is created from the below SCR_ConfigExample class: