Skip to main content
A persistent server is one long-lived server configuration, such as a survival server. Unlike a group, it does not scale into multiple instances. Use api.persistentServer() to create and manage persistent servers.

Create a persistent server

This example creates survival-1 with a new Paper blueprint. Because the persistent server is active, SimpleCloud starts its instance and replaces it after a stop.
To use an existing blueprint instead, replace createBlueprint(...) with a source:
Set either source or createBlueprint, not both.
string
required
Persistent server name. Up to 100 characters of ASCII letters, digits, underscores, and hyphens ([A-Za-z0-9_-]). Must be unique within the network, case-insensitive — Survival-1 and survival-1 are treated as the same name. A persistent server and a group may share a name. Creating or renaming to a name that only differs by case from an existing persistent server returns 409 Conflict.
GroupServerType | null
SERVER or PROXY. Defaults to SERVER.
integer | null
Minimum memory in MB.
integer | null
Maximum memory in MB.
integer | null
Player limit. Defaults to 50.
CreateBlueprintRequest | null
Blueprint to create for this persistent server.
SourceConfig | null
Existing blueprint or container image to use. Do not set this together with createBlueprint.
boolean | null
Whether SimpleCloud should keep an instance running. Defaults to true.
integer | null
Persistent server priority.
string | null
ID of the assigned serverhost.
WorkflowsConfig | null
Lifecycle and manual workflows.
Map<String, Object> | null
Custom properties.
List<String> | null
Tags used to organize and filter persistent servers.

Find persistent servers

Find one persistent server by name or ID:
Both methods complete exceptionally when no persistent server matches. Name lookups are case-insensitive. Use a query to filter the list:
The query can filter by tags, active state, and serverhost ID. Call getAllPersistentServers() without a query to return every persistent server.

Update a persistent server

Only fields set on UpdatePersistentServerRequest are changed:
You can update the name, type, memory, player limit, active state, priority, assigned serverhost, source, workflows, properties, and tags.

Manage properties

Use the property methods to change custom properties without updating the rest of the configuration:
updatePersistentServerProperties merges the supplied values with the existing properties. You can also update one property or delete multiple properties.

Delete a persistent server

Deactivate the persistent server first, stop its instance, and delete the configuration after the instance stops. Its files remain on the serverhost.

PersistentServer fields

PersistentServer extends ServerBase and provides the following fields.
string
required
Unique persistent server ID.
string
required
Persistent server name.
GroupServerType
required
SERVER, PROXY, or UNKNOWN_SERVER.
integer | null
Minimum memory in MB.
integer | null
Maximum memory in MB.
integer | null
Player limit.
boolean | null
Whether SimpleCloud should keep an instance running.
integer | null
Persistent server priority.
string | null
Assigned serverhost ID.
integer
required
Current player count, or 0 when no instance is running.
SourceConfig | null
Blueprint or container image source.
WorkflowsConfig | null
Lifecycle and manual workflows.
Map<String, Object> | null
Custom properties.
List<String> | null
Tags used for filtering and organization.
string
required
Creation timestamp in ISO 8601 format.
string
required
Last update timestamp in ISO 8601 format.
Use api.server() to work with the running instance. Its getPersistentServerId() method links it back to this configuration.