ALiVE.OS · ALiVE 3 Development
Saves mission state to a database so a campaign can pick up where it left off, and powers the stats and performance tracking other modules rely on.
In development · ALiVE 3
ALiVE 3 is in active development. This briefing describes work in progress, and the behaviour it covers is subject to change as testing continues. Check the changelog at the foot of the page for what has moved recently.
Overview
This is the ALiVE Data module. Placing it in the editor turns on the plumbing that lets a mission remember itself between sessions: mission time, spawned roadblocks and outposts, and the persistence dictionary that other ALiVE modules (like the population and OPCOM systems) use to store their own state. It also underpins War Room statistics, after action review (AAR) tracking, and server performance monitoring, so most missions will want exactly one of these modules present even if persistence itself is switched off.
Mission makers choose a Database Source, then pick which pieces of mission state get saved: mission date and time, spawned compositions such as checkpoints and camps, and an optional chat kill feed. Respawn tickets and any values the mission stores itself are saved with every save. The server can also save on a timer, with the Autosave (min) setting. Local is the default and the one to use. The Cloud source is discontinued and the old War Room service it fed is gone, so an older mission still set to Cloud saves nothing until you switch it. Every save is kept per mission and per map, so a copy of a mission on another map runs its own campaign. When a mission maker or server admin needs to start fresh, an in-game admin menu can clear the current mission's whole campaign, clear only its saved vehicles and buildings, or wipe all saved ALiVE data.
How it works
ALiVE writes a campaign to disk when an admin uses Server Save and Exit, and every few minutes when Autosave is set. Player state can also be written on a timer of its own.
Worth knowing. Plan every restart around SERVER SAVE AND EXIT: a restart without it loses everything since the last save, apart from what Autosave or Auto Save Interval wrote. Map markers, SPOTREP, SITREP and PATROLREP reports and objects moved with player logistics are saved without anything to switch on, and so are roadblocks and outposts unless Save Roadblocks/Outposts is off. Autosave is off by default; with it on, a crash only loses what changed since the last autosave. Player FOBs keeps its own saves: every Save Interval (60 seconds by default) once something has changed, and straight away when a FOB is deployed or taken. Persistent Craters saves every Save interval (120 seconds by default) once a crater has changed, and with the autosave and SERVER SAVE AND EXIT.
Capabilities
Local stores the save on the machine and is the default. Cloud is discontinued now that the old War Room is gone, so an older mission still set to Cloud saves nothing until you switch it to Local.
Optionally saves the in-game date and time so a reloaded mission resumes at the same moment it was left, rather than restarting from the mission's default time.
Optionally saves any compositions spawned during play, such as checkpoints and camps, and respawns them automatically when the mission is loaded again.
Type a number of minutes into Autosave (min) and the server saves the AI forces, objectives, players and the air commander by itself at that interval, the same as Save and Exit. It's off by default, and it needs Local storage on a dedicated or hosted server. No line in initServer.sqf is needed any more.
If the mission uses the game's ticket respawn, each side's tickets (and the mission-wide count) are saved with it and set back to the saved number a few seconds after a reload, so a reload no longer hands every side its starting tickets again. Values a mission stores itself with setData are saved and read back whether or not Save Mission Time is on.
A confirmation-gated admin menu lets a server admin clear the current mission's whole campaign on that map, clear just its saved vehicles and buildings (the Player Logistics save) while keeping the AI Commanders' objectives, installations and roadblocks, or wipe all saved ALiVE data, without the debug console. Every wipe is logged with the admin's name, and Wipe ALL keeps your saved presets. On a dedicated server, Wipe ALL can't reach a save an older build made for another mission until that mission has saved once on this build.
On a dedicated server running the War Room test server mod (@alive_wr) with Database Source on Local, Statistics switches on and sends its events, signed, to the new War Room on alivemod.com. Without that mod it stays off. The after-action replay stays off either way, as the new War Room doesn't take replays yet. The chat kill feed doesn't need any of them and works.
Server performance recording and, separately, OS statistics like CPU and memory usage each have their own on/off setting, with customisable counted object types and check intervals. The server performance recording is switched off in this version of ALiVE, so it does not run whatever you set.
How to use it
Settings
These settings choose where ALiVE saves a mission (the machine running it, or the old online War Room) and what gets saved and restored. They also switch the War Room statistics, after-action replay and chat kill feed on or off.
Presets that use this module: Persistent campaign: a war that carries on where you saved. Place one in the editor to see it set up.
Local is the default. An older mission may still say Cloud, which only ever worked on a dedicated server and switches the whole Data module off anywhere else.
The saved date and time replaces the mission's start date when it loads.
The server saves the AI forces, objectives, players and the air commander every 10 minutes, so a crash costs at most that much play. 0 turns it off.
Anyone whose Steam UID is on the list gets the Save Server button, admin or not.
Player deaths, kills by players and vehicles players destroy are announced in side chat, once to each player on that side.
Choices: Yes / No
Writes extra Data module diagnostics to the server log.
AffectsOnly read when the module actually starts, so with Cloud on a non-dedicated game it never takes effect.
Choices: Local / Cloud
Where saved data goes. Local saves on the machine running the mission and works everywhere. Cloud is the old ALiVE War Room service, which is gone: it only ever worked on a dedicated server, and in singleplayer, the editor or a hosted game it switches the whole Data module off, so nothing saves.
AffectsEvery ALiVE module that saves or loads its state depends on this.
TryLeave it on Local, and check older missions, which may still say Cloud.
See it inPersistent campaign: a war that carries on where you saved (pns)
Choices: Yes / No
Yes saves the in-game date and time, and on the next start sets the clock to the saved value instead of the mission's own start date. Saves are kept per map. Only the clock waits on this setting: respawn tickets and values the mission stores itself are saved and restored whatever it says.
AffectsThe date and time are written whenever the server saves: the Save Server button, an autosave, or the server shutting down. Only works once the Data module has loaded its saved data.
See it inPersistent campaign: a war that carries on where you saved (true)
Choices: Yes / No
Yes saves roadblocks, camps and other compositions ALiVE spawns, and rebuilds them in the same places next time. A module left untouched counts as Yes.
AffectsReaches into civilian placement, which reuses the saved roadblock positions.
Choices: A number of minutes; 0 is off
How often the server saves the mission on its own: the AI forces, objectives, players and the air commander, the same as Save and Exit. No line in initServer.sqf is needed.
AffectsLocal storage only, on a dedicated or hosted server. A mission that still calls ALiVE_fnc_AutoSave_PNS itself keeps working; whichever starts last sets the interval. To save once at a moment the mission chooses, from a trigger or a script before a planned restart for example, run "now" call ALiVE_fnc_AUTOSAVE_PNS on the server. It saves the same things straight away and leaves the timed autosave running.
See it inPersistent campaign: a war that carries on where you saved (15)
Choices: Group / Side / None
Announces over the radio when a player dies, a player kills someone, or a player destroys a vehicle. Group or Side picks which chat channel the message goes to; None turns it off.
AffectsWorks whatever the War Room and Disable Stats are doing, and each player on that side sees each message once. Side chat only shows for someone carrying a radio.
Choices: Yes / No
Yes stops player and operation statistics being sent to the War Room.
AffectsStatistics only go to the War Room. On a dedicated server with the War Room test server mod (@alive_wr) loaded and Database Source on Local, No sends them to alivemod.com and Yes keeps them off; without that mod they're off whatever this says. It doesn't affect the chat kill feed.
Choices: Yes / No
Yes stops player positions being recorded for the War Room after-action replay. The recording only ever runs on a dedicated server.
AffectsAlso needs a working War Room connection that allows replays; without one the recording is forced off whatever this says.
Choices: Yes / No
Yes stops server performance figures being recorded to the War Room. That recording is switched off in this version of ALiVE, so it does not run whatever you set here.
Choices: Yes / No
Tells the ALiVE server plugin whether to collect operating system figures such as CPU, threads and memory. It's separate from Disable PerfMon above.
What the server performance recording counts and how often, as a list of name and interval pairs. That recording is switched off in this version of ALiVE, so this has no effect at the moment.
A comma separated list of Steam UIDs whose owners can use the Save Server button without logging in as admin. Leave it empty and only admins can save.
Recent work
Status
Saving and restoring mission date/time and spawned roadblocks/outposts both work and are controlled by their own on/off settings in the module.
Autosave (min) saves on a timer on a dedicated or hosted server with Local storage. Respawn tickets are saved and restored with the mission, and values stored with setData persist whatever Save Mission Time says.
Local saving works and is the default. Cloud went away with War Room, so picking it switches the Data module off. Preview such a mission from the editor and it tells you so on screen.
Clearing the current mission's save removes its whole campaign on that map, with a confirmation step and a server log record of who did it. Wiping all saved data works the same way and keeps your saved presets. Clear Saved Vehicles and Buildings Only takes out just the Player Logistics save and keeps the AI Commanders' setup; Player Logistics then saves nothing until the mission restarts. On a dedicated server, a save an older build made for another mission stays until that mission has saved once on this build.
Each can be turned off independently in the module's settings. Statistics runs on a dedicated server with the War Room test server mod (@alive_wr) loaded and sends its events to alivemod.com. AAR and performance tracking stay off, as the new War Room doesn't take them yet.
Every save carries the mission name and the map, so a copy of a mission on another map runs its own campaign instead of loading factions, commander state or other saved data from the original. A campaign saved by an older build moves to the new names the first time the mission starts, and whichever copy you launch first takes it, so launch the one you want to keep first. If that might be the wrong copy, the RPT names the other map.
Popup and admin menu text has recently been revised for accuracy and partially translated; further passes may still refine wording.
Testing
Place the module and check Source says Local, the default. Set a save option (mission time and/or compositions) to on, play for a few minutes, end the mission, then reload it and confirm the saved state (time, or spawned roadblocks/outposts) comes back. In singleplayer or on a listen host, confirm the welcome popup on reload shows your actual player name and says the save will be loaded, not a broken placeholder or misleading wording. That greeting only appears in that configuration, so don't expect it on a dedicated server. Copy the same mission file to a different map under the same name, with persistent AI forces on, and load it; confirm it starts its own campaign and doesn't pick up the original's forces or objectives. As a server admin, open the ALiVE admin menu's Persistent Data section and clear the current mission's data, then reload and confirm the AI forces and objectives start fresh. Separately try wiping all data, and confirm each asks for confirmation first. To test Clear Saved Vehicles and Buildings Only, move or load a few vehicles and crates with Player Logistics, save, then pick it: the notification should say how many were cleared and to restart, and a Save and Exit before the restart shouldn't write them back. Restart the mission and check those objects are back where the mission put them, while the AI Commanders' objectives and roadblocks are still there. On a dedicated server, play and save two different missions, then Wipe ALL from one of them and check both start fresh; the popup should say how many saved-data entries were removed. In singleplayer, check your saved presets are still there afterwards. Check the server's RPT for the line naming the admin and the scope: this mission on a named map, or all data. Finally, set Source to Cloud and preview from the editor: an on-screen note should say nothing will be saved, and Player Logistics should still work rather than the mission stalling. To test Statistics, run a dedicated server with the War Room test server mod (@alive_wr) and Database Source on Local: the server log should say War Room link found, and play shouldn't log any line starting ALiVE War Room: could not send. To test autosave, set Autosave (min) to 1 on a dedicated or hosted server, play past the first minute and look in the server RPT for the autosave line, then reload and confirm the state came back. To test tickets, use a mission with ticket respawn, spend a few tickets, save and reload, and check each side has the saved number rather than its starting tickets.
Spotted a problem? Please report it on the ALiVE issue tracker on GitHub, with the map, rough location and what the units were doing so it can be reproduced.
Changelog