Description:Kills about 67% of AI related lag issues for the server.
Eliminates up to 95% of AI related lag issues for the player (on a dedicated server).
How?
It removes all AI outside of specified ranges, and dependant on the players position, will spawn / de-spawn the AI groups when the player enters their radius. For example;
The mission editor has defined the Reducer to have a range of 800m to spawn, and 1000m to de-spawn. If the player enters within 800m of any AI groups position, it will 'fill' the group with its original number of AI, re-filling vehicle crew positions.
If the player then moves away and the distance between player and AI groups position is above 1000m, it will remove the AI again, leaving them with only drivers for their vehicles and their group leader.
This does not work perfectly for AI placed in specific positions (ie within buildings), it is designed for mission editors who want to put well over 500 enemy on the map, anywhere, without worrying about potential lag issues.
So it is perfect for roaming patrols, convoys, AI defending towns (but not static) etc.
Example mission provided.
Contents (mission folder):init.sqf
mission.sqm
scripts\init_Reducer.sqf
fsm\Reducer.fsm
RMM_CoreUsage:To use the reducer, simply place down an object (I've used a Game Logic - Location, which is best due to its server locality and synchronisations) and put the following in the initialisation line:
_h = [this, <Spawn range>, <De-spawn range>, <Debug mode>] execVM "scripts\init_Reducer.sqf"
Optimum values lie in between 700-900 for the spawn range, and 800-1000 for the de-spawn range. If the de-spawn range is lower than the spawn range, it will reverse the values.
The debug mode will enable the mission editor to see when groups are filled or reduced.
Then synchronise any groups you wish to enable for the reducer to handle, with the game logic. (Shown in example mission)
To use default values, simply use the following code in the game logic:
_h = this execVM "scripts\init_Reducer.sqf"
To add groups to the reducer during the mission, simply add the group to the RMM_Reducer_Groups array. Ie
[RMM_Reducer_Groups, <GROUP>] call BIS_fnc_arrayPush;
Dependencies:RMM_Core FunctionsBIS Functions Module
Installation:Simple installation; copy and paste the fsm and scripts folder (and its contents) into your mission directory.
Ensure the BIS Functions module is placed in your mission.
Ensure RMM_Core is loaded correctly.
Compatibility Issues:If any groups are killed whilst not spawned, they will remain with a count of 0 and are viable for deletion, therefore a group cleaner may kill groups that are simply waiting to be spawned.
To get around this simply use the following code in your cleaner:
if (!isnil "RMM_Reducer_Groups") then {
_groupsToCheck = allGroups - (RMM_Reducer_Groups + RMM_Reducer_ReducedGroups);
} else {
This is only important for mission makers whom are using a group cleaner (uncommon amongst low level missions).
Author: Rommel
Date: 02/12/2009 (thats 12/02/2009 for the yanks)
Revision: 1
------------- DOWNLOAD -------------
Size: 7KB
Type: 7zip | .7z
Unpacker: www.7-zip.orgMirrors:http://www.4shared.com/file/163887890/aa3cbcad/RMM_ReducerChernarus.html