This document is about: QUANTUM 3
SWITCH TO

Dashboard Configuration

Introduction

Quantum provides extra configuration via the Photon Dashboard for specific game and server related variables.

Lobby Property Restrictions

Maximum number of properties: 20 (since 3.0.2)

Property types are restricted to: bool, byte, short, int, long, string, byte[]

Maximum string byte[] length: 128 (since 3.0.2)

Dashboard Properties

AllowedLobbyProperties

| Property Name | Type |
| --- | --- |
| AllowedLobbyProperties | String |

Set a list of properties that are allowed for the client to send as Lobby Properties as a protection for the matchmaking performances on the master servers. If this property is set, then non-listed properties send by clients will be stripped.

BlockNonProtocolMessages

| Property Name | Type |
| --- | --- |
| BlockNonProtocolMessages | Boolean |

Default is false.

We strongly recommend settings this to true.

Cancels all non-protocol messages sent to the server, logging "Blocked non-protocol message" once when the condition is triggered. Active only when set to true.

BlockPlayerProperties

| Property Name | Type |
| --- | --- |
| BlockPlayerProperties | Boolean |

Default is false.

We strongly recommend settings this to true.

Cancels all player property set requests from clients, logging "Blocked player properties" once when triggered. Active only when set to true.

BlockRoomProperties

| Property Name | Type |
| --- | --- |
| BlockRoomProperties | Boolean |

Default is false.

We recommend settings this to true.

Blocks all room properties set by clients post-creation, except for the special StartQuantum room property.

Caveat: This affects IsOpen and IsVisible of the room as well. Use HideRoomAfterStartSec and CloseRoomAfterStartSec to control them instead.

ClientInputExceptionTolerance

| Property Name | Type |
| --- | --- |
| ClientInputExceptionTolerance | Integer |

Default is 2.

This property sets the number of input serialization errors that will be ignore before a client is disconnected. Quantum 3.0.1 and earlier used to disconnect clients after the first occurrence. The setting makes the server slightly more robust against random network corruptions.

Since version: 3.0.2.

HideRoomAfterStartSec

| Property Name | Type |
| --- | --- |
| HideRoomAfterStartSec | Integer |

Default is -1 (disabled).

If set to a number greater than zero, n seconds after Quantum start the room will be removed from public or search listings.

This can help manage room visibility and ensure that new players do not join games that are already in progress.

CloseRoomAfterStartSec

| Property Name | Type |
| --- | --- |
| CloseRoomAfterStartSec | Integer |

Default is -1 (disabled).

If set to a number greater than zero, n seconds after Quantum start the room will be closed.

Closing a room prevents any new players from joining and can be used to manage the lifecycle of the game session.

MaxPlayerSlots

| Property Name | Type |
| --- | --- |
| MaxPlayerSlots | Integer |

Limits the number of player slots one client can activate. Default is 2, which allows a client to create two local players.

Setting the property will restrict max player slots for all games running under this AppId.

The value can also be set by the webhooks (CreateGame and JoinGame responses) for individual clients.

ServerUpdateRateMs

| Property Name | Type |
| --- | --- |
| ServerUpdateRateMs | Integer |

If set this property will set the server update rate on the server for all games. By default the update rate is derived from the UpdateFPS set in SessionConfig of a particular game.

Regardless, the update rate will be clamped between 16 and 60 ms.

Since version: 3.0.2.

SessionConfig

| Property Name | Type |
| --- | --- |
| SessionConfig | Json |

Allows setting a global SessionConfig in the dashboard, overwriting client-sent configs to protect against malicious players. More options to control this config are provided by webhooks.

Caveat: For testing a local Photon Server use escape the JSON using "

StartPropertyBlockedTimeSec

| Property Name | Type |
| --- | --- |
| StartPropertyBlockedTimeSec | Integer |

Default is -1 (disabled).

If set to a number greater than zero, the starting of Quantum is blocked until the n seconds has passed since the room has been created.

Can be used to ensure that players have enough time to join before the game begins.

StartPropertyForcedTimeSec

| Property Name | Type |
| --- | --- |
| StartPropertyForcedTimeSec | Integer |

Default is -1 (disabled).

If set to a number greater than zero, it specifies the maximum amount of seconds that can elapse before starting Quantum inside a room after the room has been created. If the specified time is exceeded, the game will set the "StartQuantum" property in the room's game properties to true if it hasn't already.

SnapshotCacheDurationInSec

| Property Name | Type |
| --- | --- |
| SnapshotCacheDurationInSec | Integer |

Default is 2 seconds.

The time in seconds that successfully uploaded snapshots will be cached and reused for subsequent requests.

Increasing this value will result in less snapshot upload requests but also in longer resimulation times for late joiners.

SnapshotUploadTimeoutInSec

| Property Name | Type |
| --- | --- |
| SnapshotUploadTimeoutInSec | Integer |

Default is 10 seconds.

The time an uploading snapshot can take before the process is aborted and the late joiner is disconnected.

SnapshotDownloadTimeoutInSec

| Property Name | Type |
| --- | --- |
| SnapshotDownloadTimeoutInSec | Integer |

Default is 20 seconds.

The complete time the whole snapshot download for a late joiner can take before the process is aborted and the client disconnected. This time has to be larger than SnapshotUploadTimeoutInSec as it also includes waiting for the upload.

InputFlushMode

| Property Name | Type |
| --- | --- |
| InputFlushMode | Integer |

Default is 0.

  • 0 = Default (Always)
  • 1 = Never

Never explicitly flush. Let Photon server handle everything. Best bandwidth, but input receiving timing fluctuate and delays slightly.

  • 2 = Last

Flush explicitly on the last input message. Good bandwidth and stable signal, but can add small delays.

  • 3 = Always

Always flush after each send request. Worst bandwidth but no delays.

Dashboard Properties (Enterprise)

ServerSimulationEnabled

| Property Name | Type |
| --- | --- |
| ServerSimulationEnabled | Boolean |

Default is true.

If set to false server simulation is disabled. Will be overwritten when explicitly set by the CreateQuantumGameResponse webhook (RunServerSimulation).

ServerSimulationPercent

| Property Name | Type |
| --- | --- |
| ServerSimulationPercent | Integer |

Default is 100.

If the ServerSimulationEnabled is set to true this property can be used to only simulation a percentage of games.

Security and Optimization

Quantum 3 introduces webhooks as a new method of protecting the plugin, moving away from the configuration-based security measures of Quantum 2.1. This shift aims to make it easier for developers to implement checks and detections into their own backend.

  • Only disable BlockRoomProperties if the application requires to RaiseEvent().
  • Only disable BlockPlayerProperties is the application required player properties.
  • Consider to enable BlockRoomProperties and never use room properties.
  • Consider setting HideRoomAfterStartSec to allow setting IsVisible by the server.
  • Consider setting CloseRoomAfterStartSec to allow setting IsOpen by the server.
  • Set MaxPlayerSlots to 1 to never allow multiple players per client.
  • If clients control when the Quantum session is started (e.g. lobby inside a Photon room) consider using StartPropertyBlockedTimeSec and StartPropertyForcedTimeSec to use server timeouts to finally start the game.
Back to top