General Information

This section of the documentation provides general information about the GD-Sync plugin and its core systems. It covers technical details that give you a better understanding of how the plugin operates in practice, including platform support and compatibility. It also explains how the data transfer limit works, so you know what is counted toward your usage and how it is enforced.

In addition, this section outlines how connections are established and maintained between clients, including the infrastructure that keeps sessions stable across different regions. Together, these details give you a clear overview of the foundations that power GD-Sync.

Supported Platforms

GD-Sync currently supports Windows, Linux, macOS, iOS, and Android, giving you the flexibility to release multiplayer projects on all major desktop and mobile platforms. Web support is still under development, but a temporary workaround is available and described further down, allowing you to already experiment with HTML5 exports while official support is being finalized.

When exporting to Android, it is important to enable the Internet permission in the export settings. Without this permission, GD-Sync will not be able to establish a network connection, which will prevent multiplayer features from working.

func _ready():
	# Use this instead of GDSync.start_multiplayer() for web exports
	GDSync._manual_connect("64.225.79.138")
      

Transfer Limit

GD-Sync enforces a data transfer limit for all users. Every packet sent between clients counts toward this limit.

Data usage scales with the number of players in a lobby. With only two players, each client only needs to send data to one other client. With four players, each client must send their data to three others, which increases total usage significantly. This effect grows quickly as the player count rises. For example, a lobby with sixteen players will consume roughly 120 times more data than a two-player lobby. It is important to keep this in mind when deciding how many players to allow per lobby.

If the data transfer limit is reached, all players are disconnected immediately and all active lobbies are closed. To raise the limit, you can upgrade your plan.  The data transfer allowance resets daily for free plans and monthly for paid plans.

Local multiplayer does not count toward data usage and works without requiring an API key. This makes it useful for testing or for games designed to be played only on a local network.

To reduce bandwidth, all data is compressed by default. In addition, GD-Sync uses a custom caching system that maps NodePaths, variables, and function names to IDs. Instead of sending full strings with every request, only the lightweight ID is transmitted. This greatly lowers data usage and improves overall efficiency during multiplayer sessions.

Connection Details

When connecting with GD-Sync, the plugin first routes the client to one of the load balancers. From there, GD-Sync determines which of the available game servers provides the lowest latency and automatically connects the player to that server. This ensures that players are always placed on the server with the best possible connection.

If players from different regions join the same lobby, they will be moved to the same server so they can play together. When players and the server are far apart geographically, this will add additional latency due to distance.

Connections are encrypted on a per-client basis. Each client has its own encryption key, making it virtually impossible to intercept or tamper with messages sent between players.