Wraps up common room properties needed when you create rooms. Read the individual entries for more details. More...
Public Attributes | |
byte | MaxPlayers |
Max number of players that can be in the room at any time. 0 means "no limit". More... | |
int | PlayerTtl |
Time To Live (TTL) for an 'actor' in a room. If a client disconnects, this actor is inactive first and removed after this timeout. In milliseconds. More... | |
int | EmptyRoomTtl |
Time To Live (TTL) for a room when the last player leaves. Keeps room in memory for case a player re-joins soon. In milliseconds. More... | |
Hashtable | CustomRoomProperties |
The room's custom properties to set. Use string keys! More... | |
string[] | CustomRoomPropertiesForLobby = new string[0] |
Defines the custom room properties that get listed in the lobby. More... | |
string[] | Plugins |
Informs the server of the expected plugin setup. More... | |
Properties | |
bool | IsVisible [get, set] |
Defines if this room is listed in the lobby. If not, it also is not joined randomly. More... | |
bool | IsOpen [get, set] |
Defines if this room can be joined at all. More... | |
bool | CleanupCacheOnLeave [get, set] |
Removes a user's events and properties from the room when a user leaves. More... | |
bool | SuppressRoomEvents [get, set] |
Tells the server to skip room events for joining and leaving players. More... | |
bool | PublishUserId [get, set] |
Defines if the UserIds of players get "published" in the room. Useful for FindFriends, if players want to play another game together. More... | |
bool | DeleteNullProperties [get, set] |
Optionally, properties get deleted, when null gets assigned as value. Defaults to off / false. More... | |
bool | BroadcastPropsChangeToAll [get, set] |
By default, property changes are sent back to the client that's setting them to avoid de-sync when properties are set concurrently. More... | |
Wraps up common room properties needed when you create rooms. Read the individual entries for more details.
This directly maps to the fields in the Room class.
Hashtable CustomRoomProperties |
The room's custom properties to set. Use string keys!
Custom room properties are any key-values you need to define the game's setup. The shorter your keys are, the better. Example: Map, Mode (could be "m" when used with "Map"), TileSet (could be "t").
string [] CustomRoomPropertiesForLobby = new string[0] |
Defines the custom room properties that get listed in the lobby.
Name the custom room properties that should be available to clients that are in a lobby. Use with care. Unless a custom property is essential for matchmaking or user info, it should not be sent to the lobby, which causes traffic and delays for clients in the lobby.
Default: No custom properties are sent to the lobby.
int EmptyRoomTtl |
Time To Live (TTL) for a room when the last player leaves. Keeps room in memory for case a player re-joins soon. In milliseconds.
byte MaxPlayers |
Max number of players that can be in the room at any time. 0 means "no limit".
int PlayerTtl |
Time To Live (TTL) for an 'actor' in a room. If a client disconnects, this actor is inactive first and removed after this timeout. In milliseconds.
string [] Plugins |
Informs the server of the expected plugin setup.
The operation will fail in case of a plugin missmatch returning error code PluginMismatch 32757(0x7FFF - 10). Setting string[]{} means the client expects no plugin to be setup. Note: for backwards compatibility null omits any check.
|
getset |
By default, property changes are sent back to the client that's setting them to avoid de-sync when properties are set concurrently.
This option is enables by default to fix this scenario:
1) On server, room property ABC is set to value FOO, which triggers notifications to all the clients telling them that the property changed. 2) While that notification is in flight, a client sets the ABC property to value BAR. 3) Client receives notification from the server and changes it�s local copy of ABC to FOO. 4) Server receives the set operation and changes the official value of ABC to BAR, but never notifies the client that sent the set operation that the value is now BAR.
Without this option, the client that set the value to BAR never hears from the server that the official copy has been updated to BAR, and thus gets stuck with a value of FOO.
|
getset |
Removes a user's events and properties from the room when a user leaves.
This makes sense when in rooms where players can't place items in the room and just vanish entirely. When you disable this, the event history can become too long to load if the room stays in use indefinitely. Default: true. Cleans up the cache and props of leaving users.
|
getset |
Optionally, properties get deleted, when null gets assigned as value. Defaults to off / false.
When Op SetProperties is setting a key's value to null, the server and clients should remove the key/value from the Custom Properties. By default, the server keeps the keys (and null values) and sends them to joining players.
Important: Only when SetProperties does a "broadcast", the change (key, value = null) is sent to clients to update accordingly. This applies to Custom Properties for rooms and actors/players.
|
getset |
Defines if this room can be joined at all.
If a room is closed, no player can join this. As example this makes sense when 3 of 4 possible players start their gameplay early and don't want anyone to join during the game. The room can still be listed in the lobby (set isVisible to control lobby-visibility).
|
getset |
Defines if this room is listed in the lobby. If not, it also is not joined randomly.
A room that is not visible will be excluded from the room lists that are sent to the clients in lobbies. An invisible room can be joined by name but is excluded from random matchmaking.
Use this to "hide" a room and simulate "private rooms". Players can exchange a roomname and create it invisble to avoid anyone else joining it.
|
getset |
Defines if the UserIds of players get "published" in the room. Useful for FindFriends, if players want to play another game together.
When you set this to true, Photon will publish the UserIds of the players in that room. In that case, you can use PhotonPlayer.userId, to access any player's userID. This is useful for FindFriends and to set "expected users" to reserve slots in a room (see PhotonNetwork.JoinRoom e.g.).
|
getset |
Tells the server to skip room events for joining and leaving players.
Using this makes the client unaware of the other players in a room. That can save some traffic if you have some server logic that updates players but it can also limit the client's usability.