How could I detect if the player was teleported to another game through the server or the client

Since Roblox shockingly doesn’t give us an option to disable the client’s usage of TeleportService— hell, the fact that they let the client teleport through TeleportService in the first place— TeleportData sent into other games isn’t really secure, especially since there’s even a function called GetLocalPlayerTeleportData() that lets the client get the data easily.

I know that using DataStores is more effective for stuff you don’t want exploiters to spoof— but that doesn’t really work on different games (not places), considering datastores are exclusive to the game they were created on.

In my case, I have two games— one that players can join normally through Roblox, but they can also join through another game, which would put the player in a separate spawn, with different things to do, etc. And then, there’s the ‘another game’ the player is teleported from.

I don’t want exploiters to teleport themselves from the ‘another game’ into the first game using exploits instead of actually teleporting there properly, nor do I want them to re-teleport themselves back into the ‘another game’, essentially meaning they completed the challenge they were supposed to complete in this first game.


So—is there a way to detect if the player joined through the server or the client? Maybe it’s part of the data you get from GetJoinData() (I’m not really sure since I don’t understand most of what that function returns)? Or maybe you can get it through another method?
Hell, if there IS an option to disable teleportservice on the client, please let me know as that’d probably be the best thing I could do for this.

You could encrypt the data on the server using a private key, and decrypt on the other server. Here’s a link to a post i found regarding encryption, but you could look for a different method. I believe encrypting the data will be the best option for you so that you can prove its sent by your server.