User Data Directory
The User Data Directory is used by both the client and server to store permanent mutable data.
The user data directory can be accessed and written to by content via IResourceManager.UserData. It is also used by some other things, such as config file saving on the client.
Server
The directory is chosen in this order:
- If
--data-diris passed as argument to the server when starting it, like./Robust.Server --data-dir /foo, the passed directory is used. - The directory
datanext to the server executable is used.
Client
The directory is chosen in this order:
- If
--self-containedis passed as argument to the client when starting it, the directoryuser_datanext to the client executable is used. - The data directory selected as a user-global, OS-appropriate location:
$UserDataDirectoryNamedefaults toSpace Station 14, but can be overriden by non-launcher Robust games by specifyingGameControllerOptions.UserDataDirectoryName.- Windows:
%APPDATA%/$UserDataDirectoryName/data. - macOS:
~/Library/Application Support/$UserDataDirectoryName/data - Linux:
$XDG_DATA_HOME/$UserDataDirectoryName/data,XDG_DATA_HOMEis assumed to be~/.local/shareif unset.
When connecting to servers on the launcher, there is currently zero storage isolation between servers. Do not store any server-confidential data in client-side userdata, as it may be accessible to any other servers.
Integration Tests
In integration tests (both client and server), the user data dir is a fake in-memory file system supposed to roughly emulate real disk behavior. It is not persisted in any way.