Passing binary data through Teleport Service causes the data to not show up in the receiving place

Problem

When using TeleportOptions:SetTeleportData() to set the data for a teleport, if the data contains binary information (such as a string with character values over ASCII 127), there is no data at all being received at the target place using Player:GetJoinData(). It’s just not the teleport data that’s missing. NONE of the data that’s supposed to be there shows up. Data such as SourcePlaceId is missing. Interestingly enough, if I do not send binary data, the data appears at the receiving end and can be recovered with the aforementioned Player:GetJoinData(). See the visuals below.

Also, when this occurs, there are no warnings or errors. The data just simply isn’t there.


Additional Information

Parameter Value
Problem Area Engine
Problem Component Teleport Service
First Noticed 15 Feb 2025
Priority High
Impact Medium
Annoyance Level High

This occurs on both the live game server and a live bug demonstrations server. Both are listed below:

Live Game: WAR!! Combat Team Arena
Bug Demonstrations

The beta features that I have enabled are as follows:

  • Assistant Preview
  • Texture Generator

As for plugins, I have a bunch that are installed, but very few are enabled. The ones that are enabled are listed below with links to their details page on the Roblox store website:


Expectations

What I expect to happen is that the data that was sent from the originating place to show up in the receiving place, but that’s not happening.


Visuals

From the test server, this initiates the teleport.

From the test service, this is where the teleport is received.

From the live game in the lobby:

From the live game on the test map that receives the teleport when binary data is present:

From the live game on the test map that receives the teleport when there is no binary data:


Reproduction

To reproduce the issue, perform the following steps:

  1. In the bug demonstrations game, click the teleport button.
  2. Observe the server console for what data is being sent.
  3. When you arrive at the target place, observe the server console for what is being received.

Files

Engine - Teleport Binary Part 1.rbxl (62.4 KB)
Engine - Teleport Binary Part 2.rbxl (55.9 KB)

Note: You will need to change the PlaceId that the player teleports to to reflect your test environment.

1 Like

It’s strange that Roblox hasn’t even responded to this report yet. Besides, I’ve developed a workaround for it. Since the strings are binary (Char 0-255), I convert them to hex representation so they are text and then it works properly.

At this point, it seems that because it’s binary, the TeleportService chokes on anything that is not within the standard ASCII range of 0-127. It might be 1-127 since char(0) (NULL) is considered a string terminator, which in my case is valid data.

Hi, thanks for the report. I took a look at this and we do not support passing binary data through teleport data. As a workaround you should be able to base 64 encode your data.

I’m curious as to why this isn’t supported. To me, data is data regardless of the format it’s in. In any case, this should be added to the documentation since there is no mention of it anywhere that I have read.

The easiest way to resolve this issue would be to provide a warning when trying to pass invalid data like this. This could clear up a lot of potential confusion, especially because things like this can be hard to test and diagnose.