Why is there no fully server side method of transferring data from one place in a universe to another?

From the devhub documentation, every method of communicating between two places in a universe when a player is teleported between them has some element of client interaction. The ordinary :Teleport() call is done clientside so of course this is not secure, but when it comes to Private/ Reserved servers there is no reason for it to be this way.

The method :TeleportToPrivateServer can only be called from the Server:


& there’s a server side function available to retrieve the information sent:
https://developer.roblox.com/en-us/api-reference/function/Player/GetJoinData

Despite it all being server-sided, this data clearly has some element of client involvement:

It seems likely to me that either an identifier to some data stored server side is being sent clientside with the player, and this reference is then used to pull that data from a Roblox server, or that a hash of the data originally sent is being stored by Roblox and then compared later on. Why is there no method to send data directly from server to server, rather than server > client > server with “security checks”?

Use cases:

9 Likes

I’ve set up a custom system that doesn’t use the teleport system, but uses the datastore system instead. It seems to work well and avoids all tampering and reliance on clients. I think that the TeleportData system is mostly to help improve the local experience of clients.

1 Like

You should probably add a few use cases for what you’d use non-replay-attack-vulnerable join data for, it helps people at Roblox prioritize your feature request appropriately.

2 Likes

Use cases:

  • selection from Hub to Game

  • any sensitivity data that shouldn’t be tampered by the Client

  • Sever side data:

    • Checking how many players are sent to that Server

Despite this being a newly created thread we have been asking for this for at least 4 years already

5 Likes