Tell me what game a user was trying to join in a universe

Consider the following scenario:

There is a player that wants to join a particular server, for whatever reason. He clicks “Join Server”, and instead of joining that game he’s given “Illegal Teleport Destination”. If he clicks “Play”, then he is redirected to another game.

OH NO! He was trying to join a sub place of a universe. Now what?!

Absolutely nothing. There is nothing you can do. Unless he was trying to follow someone, the creator of the game can’t do much.

I really want there to, should this situation occur, have the following done:

In conjunction with http://wiki.roblox.com/index.php?title=API:Class/TeleportService/TeleportToPlaceInstance
#1. Let us see what placeId the player was trying to join.
#2. If applicable (ie, didn’t click the Play button) tell me what instanceId they were trying to join.
#3. Redirect players that try to join specific servers to the universe hub rather than telling them “Illegal Teleport Destination”.

note: an alternative was suggested in EDIT 3 that involves a setting under each subplace that prevents ROBLOX from redirecting players, which honestly resolves the issue more smoothly…

This will allow me, and other developers, to redirect our innocent players to whatever server they were trying to get. I don’t really care why they were trying to join a specific server, but if they want to go there then at least let me be able to know!

This probably would fit as either new values for the PlayerAdded (ie, instance Player, int placeId, string instanceId) or two new properties for the Player (sort of like FollowUserId, but JoiningPlaceId (maybe) and JoiningInstanceId (maybe).

I don’t know about names, I’m not creative, but you get the idea.

This would also make universes more appealing to me, and probably many other people. The current issue I have with universes is that datastores are unable to be shared across different places in the sense that the places are join-able much like the lobby. This means if I have two games that I want to be join-able I can’t share data between them. This would allow me to use a universe, and just redirect the player to the place AND be able to share data.

please do this.

EDIT 1:

Here is an example.

That is an Apocalypse Rising subplace. I can view the servers and place and do everything as per usual. If I click “Join Server” I am told “Illegal Teleport Destination”. If I click “Play” I am redirected to the hub.

I want both instances to redirect to the hub, and also tell me the placeId and instanceId (blank string if they just hit play) they tried to join so I can handle it myself.


EDIT 2: added poll!!!

  • I would definitely use this functionality
  • I would like this functionality but perhaps not use it
  • I think there is a better way to implement this
  • I don’t think this is needed

0 voters


EDIT 3: An alternative idea was suggested that I think also deals with the issue in a way that resolves the issue in the thread and that would be to instead have a setting on each place in a universe that would signify whether or not joining this game leads to being redirected to the universe hub or if you just can directly join this game.

This resolves many conflicts above and would require the least amount of implementation I believe.

22 Likes

I like this idea. :thumbsup:

EDIT: I would totally use this for my game I’m working on. This way people can join player matches a lot faster. :slight_smile:

dude i agree please r o b l o x add this feature

I think this would be a great addition.

Not only does it give greater accessibility to developers, it could also offer players a more enjoyable experience as they’re not getting an error when joining the game. :slight_smile:

EDIT: Typo

would appreciate some epic feedback from other developers, if they’d find this interesting, what they’d use it for, etc.

pls! :slight_smile:

Support.

With all the issues with place teleportation these days, it’s good to have some good workarounds for people to fix things.

I just added the poll because someone mentioned to me people might be in support but cannot be bothered to reply saying so; easier to click a button than type words.

Something like this would be pretty helpful.

Yeah, this is definitely something I need.
I was trying to provide users with the option to play The Stalker: Classic, but I had to pipe the legacy Data Persistence into a Data Store that I can read in the other place, and that required me to put the classic place into my game’s universe.

So many people were complaining that they just joined reborn when they clicked play on classic, even though I put a button in the intro to join classic.

It’d be nice if I could just auto-redirect them into that place if I knew they were trying to join it

1 Like

so much this!

i was sort of shocked when i found out there was no way to check what players were trying to join, it seems like such a social thing that it’s at this point restrictive not to have. it would honestly make universes so much more viable to me and would give me much greater control.

i was also shocked to find out that the game straight up doesnt let you join if you try to join a specific server of a subplace – you have to click play or else it wont redirect you. it makes absolutely no sense there currently is no consistency and i think this ties everything together.

as far as im aware this sort of information is already there, someone just needs to expose it.

1 Like

can an admin look into this? i’m making a game and this feature will make me very happy

1 Like

first 3 replies are sellouts!

This could also fit as a TeleportService event, since we don’t have many events for TeleportService.

ie,
TeleportService.PlayerRedirected ==> (instance Player, number PlaceId, string InstanceId)

though a concern I’d have with that is race conditions between PlayerRedirected and PlayerAdded, so maybe the above is not ideal implementation.

We already have Player.FollowedId (or something like that).
It could be Deprecated in favor of Player:GetJoinData() which returns a table with all the info we need:

{
	Followed = Number; -- userId of the followed player or nil when not followed
	Party = String/Boolean; -- whether the user joined because of a party join
	-- would be nice if we also get the party identifier, for pro social gameplay
	-- "Followed" would be the party leader, so we know he's part of the party
	PlaceId = Number; -- placeId of the place the user WANTED to join
	-- basically the place "Play" or, in case of a server, "Join" got pressed
	-- when following someone, it'll be the placeId that the target is supposedly in
	JobId = String; -- jobId of the place the user WANTED to join
	-- When just pressing "Play" on a place, it'll be nil
	ReserveCode = String/Number; -- given when trying to join a private server
	-- For VIP servers, it's the userId of the owner of the server
	-- For reserved servers, it's the ReserveCode that's used to join this
	Teleported = {
		-- In case the user got teleported to this game
		-- in the main table, "JobId" only appears for TeleportToInstance
		-- in the main table, "ReserveCode" only appears for private servers
		PlaceId = Number; -- placeId the user teleported from
		JobId = String; -- jobId the user teleported from (if same universe)
		SpawnName = String; -- argument passed to the teleport method
		-- If possible, teleportData and customLoadingScreen
		-- I add "if possible" because those are stored clientside, no?
		-- could always just have the method yield until all data is available
	};
}

At most, we get 5 fields and a table with another 3 fields of information.
With this table, we could perfectly see why and how a player joined.
(and the “Party=String” part would allow to put website party members in an in-game party)

did I mention I got a lot of free time right now?

4 Likes

An additional edit was made, with an alternative suggestion made under EDIT 3 that reads the following

An alternative idea was suggested that I think also deals with the issue in a way that resolves the issue in the thread and that would be to instead have a setting on each place in a universe that would signify whether or not joining this game leads to being redirected to the universe hub or if you just can directly join this game.

This resolves many conflicts above and would require the least amount of implementation I believe.

I think this is a more clean solution.

Also, a slight update, I spoke with TheGamer101 who has identified the “Illegal Teleport Destination” as a bug and hopefully the behavior will be changing to redirect to the hub. Now, we just need to know what sub-place they were going to or just be able to allow them to join that sub-place via a website setting.

1 Like

A year later, still would see the merit in having the ability to do these things.

1 Like