Jump to content
22raoulduke

Save mission progress on a dedicated server?

Recommended Posts

Is this possible in Arma3?

Some of the dynamic co-op missions can take hours to complete so a save option would be great so me and my friends can pick up where we left off.

It works fine when I host on my PC, but can't find an option when using our rented server. Am I missing something simple?

Share this post


Link to post
Share on other sites

Set the server as persistent as Numrollen mentioned, do this in the server.cfg put

 persistent    = 1; // If 1, missions still runs even after the last player disconnected.

I do this on both my Arma2Co and Arma3 server, as we (my buddy and I) can come back to where we left off,

only thing that changed was the time of day.

Share this post


Link to post
Share on other sites

Thanks for the suggestions :)

Added the persistent = 1; but problem is, as "persistent" suggests, the AI and mission keeps on trucking even when we all logout. Is there a way to pause a server?

Will read up on iniDBI and profileNamespace, but http://i.imgur.com/niSpb7y.jpg :confused:

Share this post


Link to post
Share on other sites

Thanks for the suggestions :)Added the persistent = 1; but problem is, as "persistent" suggests, the AI and mission keeps on trucking even when we all logout. Is there a way to pause a server?Will read up on iniDBI and profileNamespace, but http://i.imgur.com/niSpb7y.jpg :confused:

Did you ever figure out if a mission/server can be paused?

Share this post


Link to post
Share on other sites

Dead topic but I would like to bring it back...any way to pause the mission for things like a co-op MSO where the AI will take over if the server keeps running?

Share this post


Link to post
Share on other sites

The only solution for this is to write a custom set of script to save the data and then reload it

 

You could make a fairly decent quick fix "Pause" method by locking the A.I's waypoints if there were no players on the server.

This gets a little complicated if you have headless clients connected

This can be achieved in the following way

 

something like

if (HasInterface)exitwith{};    // only wants to run on a server or headless client
_PauseEnabled=FALSE;            // Define the bool as False initially, when mission starts ai will be active 

// now the constant loop check for players
while{true}do
{
     sleep 10;

     // Are there no players on the server ?
     if(count (allPlayers - entities "HeadlessClient_F")==0)then
     {
          // The check has determined there are no players on the server
          if !(_PauseEnabled)then
          // the current state is "NOT Paused" so lets enable the pause (lock the ai waypoints)
          // If it was already paused we wouldnt need to do anything, this would have occurred on a previous loop
          {
               {_x lockWP true}foreach allgroups;  // locks the waypoints for every group that is local to this machine
               _PauseEnabled=TRUE;  // We now define the state as in the "Pause" mode so we can check on future loops
          }
     }
     ELSE
     {
       // ELSE if there are players on the server, we need to check if "Pause" is enabled and if it is, un-enable it
       // If pause is not enabled we do not need to do anything
          if (_PauseEnabled)then
          {
               {_x lockWP FALSE}foreach allgroups;
               _PauseEnabled=FALSE;
          };
     };
};

 

 

There are other issues that you also need to cater for.

  • Flying vehicles running out of fuel and crashing
  • land vehicles running out of fuel
  • You may need to run additional commands on the AI like DisableAI "MOVE";
  • any timers or incremental counters you have in any of your scripts will need to be paused (You could use a global var TXU_PauseEnabled instead of the local var for this so any scripts you may have running could also be placed in a "Paused" status loop by placing the following code somewhere in them
while{TXU_PauseEnabled}do{Sleep 10;};

You could edit the scripts so that the server broadcasts the TXU_PauseEnabled as a publicvariable and the headless clients have a sleeping Publicvariable eventhandler waiting for the server. This will allow for good synchronisation and the HC's would then run a much simpler script to simply lock or unlock the waypoints

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×