Home - RimmyDownunder/PERSIST-RCO GitHub Wiki
A simple persistence module based system designed to bring the results of an operation into the 3Den Editor.
The primary intention of PERSIST is for use as a story-making device to allow mission makers easily create long-running campaigns. In my case I combine this with the NR6 HAL mod to face a changing battle against an AI commander, but it could also be used for just about any type of operation - the first that come to mind are insurgent, COIN, humanitarian or post-apocalyptic operations.
PERSIST CORE FEATURES:
3Den Editor Persistence:
At the end of a PERSIST operation, the mission maker may either manually run the save script, or use the ACE interaction option set to an object of their choice to save the game. In order to add this ACE interaction, just sync the 'Save Action' module to an object. This will save the data of the operation that the mission maker specified it to save, including things like the results of FOB construction, mine laying, group and vehicle location. A mission maker can then go to the 3Den Editor, click on Tools, on PERSIST - RCO and then load their saved data from there.
The main reasoning for this is to avoid the massive load (and usual crash) at the start of standard persistence operations, and to allow mission makers to actually edit and build around what occurred in the last operation.
Detailed Load:
For this system to work, you need to have the player with the save file in a slot named 'persist1'. This is to allow for multiple campaigns/playing different group's PERSIST sessions without destroying saves.
A detailed load can be performed at the start of the second PERSIST operation onwards. This handles the detailing that is impossible in the 3Den Editor itself. For example, what is inside of a vehicle or crate's inventory will be loaded, how much fuel a fuel truck has in its tanker or detailed damage on vehicles. For example, if a vehicle was missing the front left tyre in operation 1, it will miss those in operation 2 once the detailed load is complete.
There is an important note in regards to how it functions, however - the object being detail loaded must remain (roughly) on the same location they were saved in. The function used is hard coded to only search in 50 metres around the loaded location of the vehicle. This means adjusting a vehicle so it doesn't explode or clip into a wall is possible, but moving it long distances isn't. If a vehicle is moved away from its detailed load position, it will simply behave as a fresh vehicle with whatever settings the mission maker sets. The same is true for deleted vehicles.
Player Loadouts:
Player loadouts can be recorded in two ways. The first is the old method where it ties to the player's ArmA 3 profile, and the second method is tied to the slot they played in the operation. In order for these slots to have their loadouts recorded, they must be assigned variable names in the 3Den Editor. While the main player who loads the mission must always be named 'persist1', the other slots can be named anything. ACEX Hunger and Thirst can also be recorded. It is recommended you transition away from using the Player-Profile system as further updates will not support it or add new features to.
In addition, the more advanced Slot-Based system has further options. This system can record player's map markers at the end of an operation. It will only save the map markers local to the player, and won't save map markers considered placed by the mission. It will record lines (known as polylines) as well as markers and their data. Slot-Based saves can also save the loadout of a missing slot. For example, if a player attends operation 1 and their gear is saved, but they do not attend operation 2, the system will attempt to keep their loadout saved, and on operation 3 will let them load it again. It will ONLY save loadout however, and not any of the other features like map markers, hunger, so on.
Limited Fortify:
Limited Fortify is an optional system that functions much like Squad's logistical construction system. Using the ACEX Fortify system (therefore ACEX is required for this system to work) players can build defences, buildings and such in a limited area around a Building Supplies source. These can be objects or vehicles, and are easily customised by the mission maker. When the Building Supplies run out, the source needs to be returned to a Limited Fortify Station, representing a main base or the like, and refilled. This will allow players to construct FOBs in one operation, and operate out of them for many operations to come.
The Building Supply cost of objects and storage of vehicles are totally customisable through the module.
Multiple Saves:
A primitive save system is included if you wish to run multiple PERSIST campaigns at once. This sounds like insanity, but you do you. More reasonably this is used to ensure the safety of your save while testing operations. First, through the Tools menu in the 3Den Editor, you can save your persistence data to your clipboard by pressing 'Save Persistence Data to Clipboard'. Store it in a notepad in a safe place, and when you want to load the save, copy the data exactly, then press 'Load Persistence Data from Clipboard'. Important note: if you have anything different saved in your clipboard when you press this button, it's almost certainly going to crash your game. Use at own risk.
End of Round Information:
This is just a fun little feature to display what may have been achieved in an operation. By synching triggers to the information modules, when players assassinate commanders, destroy artillery and capture towns, the end of round report can be modified so that players have a quick little After Action Report at the end of their operation. Like many features, it is optional.
Why did I not create AI at the same position that they ended the saved operation? PERSIST records group information in the form of markers. This includes all sides, showing the last location of any unit still alive at the end of the operation, but doesn't actually move them to that location. The reason for this is that often at the end of ArmA 3 operations there's barely any AI left to record in the first place, and mission makers are unlikely to want or need those AI to be exactly where they were at the end of the last operation. PERSIST is primarily a story-making tool, so for instance if a mission maker observes that two enemy anti-tank groups were left in one town at the end of the operation, they can move them there and establish an ambush for the next operation. To accurately shift all AI in the 3Den Editor would involve a significantly more complex save for little actual gain.
Credit:
This mod would not function without the essential function 'fhcb_getEdenAngles', which came from Ian Banks from Foxhound International ( [email protected] ). This function is his intellectual property and you will have to contact him in order to utilize it. As thanks, anyone from Foxhound International is free to do as they like with this mod, its scripts or modules.
The map marker transferring utilizes a script originally written by Killhouse-Kid and then edited by LAxemann in order to copy polylines correctly as ArmA's default function for copying markers does not work with polylines.
Recommendation:
KP Cratefiller is a great script to use with persistence campaigns as it allows a logistics team to easily create and fill crates, even from templates. These crates can then be saved by PERSIST. You can find that script here.
Known Issues:
- If you are having issues with modules, ensure you open them and press OK after placing, instead of just running the mission once placed. Video explaining this bug here: https://www.youtube.com/watch?v=yhApdbQaz9k&t=327s&ab_channel=RimmyJerryBeansMan
- At the end of an operation, before you save, remove your earplugs and take out any crates from inside of vehicles. Earplugs that are in your ears will not save, and crates inside of vehicles may save but will save their actual location (that is, floating beneath the map) and thus won't actually be useable in the next operation.
- Half-empty magazines may at times be loaded as fully-loaded magazines instead. This is unfortunately complex to fix for little gain, so I've decided to leave it. Enjoy your like, 10 extra bullets.
- If a player saves their loadout without a vest, they will get an 'Error: creating weapon ItemCore with scope=private' popup when their gear loads. It won't actually affect anything or break anything, it's just part of the standard function setUnitLoadout and I don't believe I can fix it.
- The mod is tested for and with ACE. I have no idea how it will function without it. If there's some mod-breaking issue with not using ACE, let me know and I'll see what I can do to fix it, but the intention of PERSIST is to function with ACE.
The mod is covered under an APL-ND licence, with the following message: Please contact Rimmy if you'd like to make alterations to these scripts or release derivatives. If the mod is missing a feature you require, please contact Rimmy#0001 preferably on discord ( discord.gg/rimmy ) and assuming the feature is possible I will attempt to merge it into PERSIST. I'd like to avoid too many derivative versions in favour of making the core version feature more choice in how it operates.