Introducing our second Mod Report, a resource for modders seeking useful insights and updates. In this edition, we'll delve into Script Editor Enhancements, the latest in Ballistic Protection, Mesh Morphs, and many more.
Features introduced in 0.9.9
Script Editor Updates
Scrollbar Overlay Markers
The scroll-bar on the right now has color markers that indicate the location of various things in the document: breakpoints, errors, bookmarks, current cursor position, and highlighted search results
Comments
You can now easily comment out of a block of code either from the menu->Edit->Comment Selection or by slash key shortcut "/"
The same action can also be used to later uncomment that block again. The shortcut can be changed to your liking in the Workbench options
Text Search Update
Script Editor now supports "find in files" in a specific addon
Searched text is highlighted by default (the feature has been there for many years, but turned off by default)
Search history fixed (text was not added to the history combo when the "Find" button was clicked instead of "enter")
Improved Suggestions
Suggestions now properly filtering by visibility (public/protected/private & static/dynamic)
Breakpoints
You can use the new toolbar to do the following:
Filter existing breakpoints based on text and/or line number
Disable/enable as well as remove (popup window for misclicks) all breakpoints
Font Size
In the Script Editor, you can now change the font size directly with CTRL + Mouse Wheel
Find & Replace in Selection
Feature
You can now Find & Replace in the Current Selection
Tweaked
General feel of the selection commenting/uncommenting (cursor stays in position)
Documentation Hints
The hover tooltip now also displays comments
Navigation through the class hierarchy
for classes: both Base Classes & Inherited Classes lists
for methods: both Overrides & Overridden by lists
now works directly in the code text context menu
Support for Modded Classes
Shows them correctly with location
Ctrl+click jumps to the correct implementation
The order of modded class applications is the same as when applied in game
NetAPI & Python capabilities improvement
Send terrain selection to Blender for advanced terrain modifications
Workbench Script Plugins can now add actions to the context menu on resources
Workshop Contributors
You can now specify a list of contributors when publishing your addon.
Only you as the author can change this list, or remove the addon
The contributors will get the rights to publish updates of this addon
More details on our Wiki
Downloading Mods in the Background
Now, you can download mods from the in-game Workshop even when the game is in the background (alt-tabbed). This is super handy, especially if you have a slower internet connection or want to download bigger mods.
Behavior Editor improvements
Support for read-only files (lock icon and disabling editing functionalities)
Variables panel improved (search bar, delete shortcut, etc.)
Can now be configured in Workbench options
Restoring tabs from the last session (can be disabled in options)
Added visual grid to the background of the scene (also available in Audio Editor)
Added search bar to Node Parameter's panel
Undo/redo now works for multiple nodes
Added breakpoint button to the main toolbar
Additional minor fixes and improvements
Item Explorer
Provides a view of the nodes in the scene
Synced selection between the scene and the panel
Can delete nodes and categories of nodes from here
Center nodes by double-clicking on an item
Search for nodes in the search bar by name/type
Breakpoints
Sync with nodes that have a breakpoint
Double-click the center node and give the keyboard focus
Cinematic Tool Track Modifiers
Inspired by Blender, you can now add "modifiers" to your cinematic tracks.
Modifiers are used for adding "procedural flavor" to otherwise clean, keyframed, tracks.
Things like blinking lights, camera shakes, offsetting, or tinting some tracks quickly without changing the underlying keyframes.
Usage
There is a new panel in the Cinematic Tool, where you can see, add, and edit modifiers for the currently selected track.
The system is also fully extendable from the script, so you can create your own modifiers. Simply:
Inherit from given base class
Expose some parameters
Implement what the modifier does when applied
Example
Simple shake modifier script:
class NoiseModifier : CinematicTrackModifier
{
[Attribute()]
float Strength;
[Attribute()]
float Speed;
override vector OnApplyModifierVector(float time, vector originalValue)
{
float t = time*Speed;
vector noise = Vector(
Math.PerlinNoise(t, 0, 0),
Math.PerlinNoise(0, t, 0),
Math.PerlinNoise(0, 0, t));
return originalValue + noise*Strength;
}
};
There is a OnApplyX
method for each basic track type (bool, int, float, vector, color
).
The full version of this modifier is available right away in the data (NoiseCinematicTrackModifier.c
)
More information
Modifier effect also is visible in edit-time
You can limit the frame range of the modifier with an optional fade on both ends
Modifiers can be chained together for complex behavior
Modifiers can be disabled
Tracks with modifiers have a blue "M" icon in their title
The modifiers panel can be hidden in Options
Ballistic protection update
Dynamic fitting of clothing items
All uniforms, vests, rigs, and backpacks will inflate/deflate dynamically based on your loadout! Because of this, all these items are interchangeable between factions and will fit regardless of the unique loadouts you may come up with
Check out the tutorials that cover setting ballistic protection on those items on our Wiki
Tech changes
Firegeometry is properly animated and added to all helmets in-game, as well as the Soviet 6b2 vest
Colliders for all new armor types have custom materials with exact thicknesses, densities, and balanced kinetic resistance setup
Virtual ballistic protection is added to all soft-armor solutions
Soft armor is configured with an enum that contains specific values balanced to conform to official armor rating systems for both Russian and US standards
Art and sound
Ballistic protection contains 3 new vests. The PASGT, 6B2, 6B3, M69 (Woodland and olive). As well as the new M1 helmets, with many subvariants with awesome camouflage patterns.
Sounds for impacts with firegeometry-based armor, and the meanest sound for hitting fleshy targets.
Improved Mod Folder Names of Downloaded Content
Server admins may appreciate a small change that has been introduced - instead of just using the GUID for the folder name, all downloaded mods now use the project title as part of it.
Saving Worlds in the Root Folder
All issues with resource files being saved into the data root directory have been fixed. It fixes/solves the following:
1. The reported map-saving issues of modders
2. Next eventual issues with any resources being saved directly into a data root directory
3. The mentioned restriction (dialog message) regarding not saving a map into a data root directory is gone. Since now people can save their maps directly into a profile folder or addon data root dir for example.
Mesh Morphs
Enfusion now includes Morphing.
We released some examples on GitHub.
The feature is not used by any vanilla system right now.
Vehicle Animations Samples
Vehicle Animations Samples have been added to our GitHub.
An initial small package containing character parts of UAZ-469 animations
Features introduced in 1.0
Show Hitzones Debug
From now on, if you want to use "Show hit zones" debug located in GameCode->Hit Zones you will need to enable the debug of HandleDamageSystem. You can do it from the diag menu like this: Systems-> Systems Diag -> Frame -> Check HandleDamageSystem
Workbench Launcher improvements
Added option for switching between original grid view and newly added list view
Added option for "batch adding" of existing projects ("Scan for Projects")
Changed: The project list is now stored in the config file inside Profile dir
This allows users to have more setups of base game+addon (stable, experimental, and more when using CLI)
This is useful for modders who are playing with multiple mods - they can now add multiple dependencies with a single click
Arma Reforger & Arma Reforger Experimental addon lists are separated, so you no longer have to worry about launching the Experimental version of the tools with the stable version of game data
This works by using different profiles, modders can utilize it to have different modsets where they can have different mod versions launched depending on the profile used
Transfer to addon feature expanded
Transfer to 'ArmaReforger' action has been improved. Newly you can use it to transfer data from any addon to any other addon.