Configuration reference
Every setting, what it does and what it costs — identity, storage, limits, envelope, versioning, security, autosave, checkpoints, cloud and diagnostics.
Identity#
| Setting | Meaning | Notes |
|---|---|---|
ProductNamespace | Reverse-DNS product key, e.g. com.yourstudio.yourgame | Required. Every path and cloud key starts with it, so two games can never collide. |
EnvironmentName | development, staging or production | Keeps a development build from writing production data. Defaults to development, so a build that forgets it cannot damage live saves. |
Storage#
| Setting | Default | Meaning |
|---|---|---|
RootFolderName | nexusforge | Folder beneath the platform's persistent data path |
MaxPathLength | 240 | Resolved paths longer than this are refused before any I/O |
BackupRetentionCount | 1 | Previous versions kept per slot |
VerifyWrittenPayload | true | Read a save back after writing, so silent corruption becomes a reported failure |
OffloadWritesToThreadPool | false | Move everything after the projection off the caller's thread |
OrphanedTempMaxAge / QuarantinedFileMaxAge | 1 h / 30 d | When the janitor may tidy leftovers |
Limits#
| Setting | Framework default | Meaning |
|---|---|---|
MaxSaveSizeBytes | 256 MB (asset default 32 MB) | Largest save read or written |
MaxMetadataSizeBytes | 64 KB (asset default 4 MB ceiling) | Metadata block ceiling, read on every listing |
MaxIdentifierLength | 64 | Caps slot ids, object keys and path segments |
MaxEnumerationResults | 4096 | Entries a listing will return |
MaxDecompressionRatio | 512 (asset default 64×) | Stops a decompression bomb before memory is allocated |
Envelope and versioning#
| Setting | Default | Meaning |
|---|---|---|
IntegrityAlgorithm | SHA-256 | 1 CRC32, 2 SHA-256, 3 HMAC-SHA256 (keyed) |
UnknownData | PreserveAndReport | Preserve, PreserveAndReport, Reject |
AllowForwardCompatibleRead | false | Load a save whose schema is newer than this build |
MaxMigrationChainLength | 32 | Refuses an absurd migration chain rather than looping |
Security#
| Setting | Default | Meaning |
|---|---|---|
EncryptionAlgorithm | 0 (none) | 1 = AES-256-CBC with HMAC-SHA256 (encrypt-then-MAC) |
CompressionAlgorithm | 0 (none) | 2 = Deflate, applied before encryption |
KeyId | 0 | Which key wrote a save; never a secret |
Keys come from ISaveKeyProvider at runtime. Nothing in configuration is secret, and no key is ever stored in an asset.
Autosave, checkpoints and cloud#
| Group | Settings |
|---|---|
| Autosave | Enabled (false), SlotId (autosave), DebounceDelay (2 s), MaximumDelayBeforeSave (60 s), MinimumIntervalBetweenWrites (10 s), BackupRetentionCount (1), SaveOnPauseRequested (true) |
| Checkpoints | SlotPrefix (checkpoint), MaxCount (5), MinimumInterval (1 s) |
| Cloud | Enabled (false), ProviderName, ConflictPolicy (KeepNewest), PreserveConflictCopies (true), OfflineQueueEnabled (true), MaximumQueuedUploads (32), retry policy (4 attempts, 500 ms doubling to 30 s, 10 % jitter) |
| Diagnostics | MinimumLogLevel, gated before an event is constructed |
What the Editor screen cannot configure#
- Storage root folder name and path ceiling (rarely changed; available in code).
- Migration registrations — they are code, because each one is a reviewed data transformation.
- Per-slot request options such as playtime and custom metadata, which belong to your save calls.
- Encryption and authentication keys — they must come from your game at runtime and must never live in an asset.
Next#
- Editor configuration — the same settings as consequences, in the window.
- Limitations — what these settings cannot buy you.
- Error codes — what the framework says when a setting refuses a save.
Something wrong on this page? Every page here describes behaviour that is checked in the repository. If a page and the package disagree, the package wins.
Report a documentation problem · Frequently asked questions · Troubleshooting