State variables
State variables are one of the core aspects of THNK. A state variable is the idiomatic way to send data to clients in THNK, and important to master to create a game.
Types of state variables
There are currently 2 types of state variables: public state and player state.
Public state
Public state is simply state variables shared with all clients: it is intended for public data. The public state variable is named State
on both server and client.
Player state
Player state is synchronized with a single player: it is intended for player-specific private data.
On the clients, your own player state can be accessed directly via the PlayerState
variable.
On the server, a player's state variable can be gotten as a child of PlayerState
named after the player's ID: for example, if a player has ID a
, then you can get their player state variable as PlayerState.a
. You'll usually want to use PlayerState[THNK::PickedPlayer()]
to get the current player's state variable.
This is subject to breaking changes, PlayerState
might become simply the currently picked player's state variable in the future.
Usage of state variables
Using a state variable is simple: a state variable is simply a special type of structure variable. You can simply use any child variable of it as a normal GDevelop variable, and it'll be automatically synchronized on the client's side.
For example, one could make a chat system by appending strings to the array variable State.Messages
, then on the client side, reading this variable and displaying all messages in this array.