What is Stasis?
ARK is probably one of the more actor populated multiplayer games out at the moment. Studio Wildcard has developed a stasis aspect to the game, to ensure better performance and game play. Stasis operates automatically without any interaction from the modder/player. Stasis allows the server to dump any memory allocated to actors that are not needed, because there are no active players nearby. So, it freezes the state of the actor, verifies that no clients are within range, and then pulls the actor into Net Dormancy.
How does this affect me?
Whether you are aware of it or not, it does. Without proper stasis handling, actor's meshes can go invisible while maintaining their collision, not store SaveGame variables correctly, can become unable to interact with players, or other weird things.
What do I need to do?
Open up an existing Actor (not Primal Item) from ARK, say the Wooden Wall, open up the components tab. On the left, you will see a list of the components, one being the 'Stasis Component'. Right click the Stasis Component, then select copy. Open up your actor's blueprint, go to the components tab, and paste it into the list by right clicking an empty area in the list and selecting paste. Rename yours to StasisComponent.
This is all you have to do, technically, but there are some things you should be aware of with stasis, which will be listed in the next section.
In order to easily test stasis use the following commands:
Go to stasis range: cheat setplayerpos 30000 0 150 Return to origin: Go to stasis range: cheat setplayerpos 0 0 150
Things to remember
- Stasis range is 24,000 units. If your structure/actor is at 0,0 on the map, you can teleport to 30000 0 150, wait 20s and you will have it in full stasis. This is how all ORP stasis debugging was done.
- If you are using timers with loops (SetTimer), you will need to have an overlap event setup to check to see if the timer is paused, and if so, unpause it. Not doing this, will cause the actor to no longer be able to interact with, as it will maintain its Stasis state, but not Net Dormancy state.
- Delay loops will keep an actor from entering stasis. This is not recommended, unless it will be a secondary actor that players do not place, and will only be 1 or 2 of in the world. Otherwise, you could have hundreds of actors not going into stasis when no players are around, consuming server resources.
- Dinos after Server restart that have not been pulled out of stasis since the restart, do not have their status components initialized for reading values. You can still set values though.