Hey! I can now finally input my answer and share a bit of code! I have been pretty active trying to rank up so that i could comment on this thread for so long. Anyways, so i have achieved this by doing what @Improper_Username suggested by using Tampermonkey, you can download the script i created by going to the dashboard on tampermonkey, clicking utilities and pasting the url in the box where it says “Install from URL”: https://github.com/mawesome4ever/GameLauncherTamperMonkey/raw/master/Join.user.js
This script does exactly what Sema mentions. Looks at the URL gets the gameid from the page and the job id by adding ?gameid=1235 to the url. If the url is a games page on Roblox and has gameid in the url then it will launch the Roblox player. This is how i create the URL in-game (ALERT! Make sure to use game.JobId and not game.GameId as shown in the image as that doesn’t work anymore!):
game.GameId is the current server session that the player is in. Since the URL of the place doesn’t change we can just hardcode the game page url and just append the gameid. But, if you were to be teleporting players to a different game type then you would need to get the PlaceId and the name and add that to the url so that the tampermonkey script is able to launch Roblox. Not having the name of the game place in the URL will make Roblox redirect the browser to the correct game page with the name of the game being added to the URL and all other variables deleted which tampermonkey will see there’s no gameid and therefore not startup Roblox. Hope that answers your question!
That’s great! Best use-case I can think of is for people on like discord can join a specific server for like a group game or to help devs debug a specific problem.
My current idea that I will get around to actually bring to life is have a discord bot show a list of running servers with a link to each server and the amount of players on each one so that we can join when a user has a particular issue we want to debug (since our game is small enough to talk to the player base).
Although github repository does not exist for it, the script is 31-line long and I can share that upon contacting me. It can be previewed in browsers’ developer tools as well.
All link formats are noted in plugin’s description.
It works on Google Chrome and other browsers supporting Google’s WebStore (i.e. Opera).
Hope that helps people looking for such solution in future.
For those wondering, it appears this has been patched. I’ve been getting reports this no longer works and testing it myself this seems to be the case. If you were to go and use the scripts i provided you’ll get this error message when attempting to join a player:
I have no idea how to fix this. I’ve tried everything i can imagine, even looking for any new method that was added to the Roblox site. But no luck. If anyone has found a workaround please let me know.
It also appears that the plugin posted by @Etheroit has the same issue.
That is so odd. The code i posted above worked perfectly fine back then when i posted it but now that i’m taking another look at it, it’s not working and showing the error in the image above. I did the same thing, just added the gameId to the end of the url (www.roblox.com/games/ID/NAME?gameId=GAMEID) from within a game, posted it to Discord where i can click the link and then, well, clicked it. But, with tampermonkey disabled and your plugin enabled.
I have a mac with a secondary account which i used to stay in the game server, then i clicked the link with my pc where i have your plugin and tampermonkey installed.
The join URL would be https://www.roblox.com/games/920587237/Adopt-Me?gameId=e1285c14-cf34-413f-8dda-0e76a7edbe46
Using it works properly for me (it might fail to work if you try to use it when the specific server is no longer available)
If you plan just to make it join a game and not specific game instance, you can simply do https://www.roblox.com/games/920587237/Adopt-Me?placeId=920587237
or more reliable https://www.roblox.com/home?placeId=920587237
EDIT: From what I see you’re using game.GameId instead of game.JobId as it should be. I haven’t tried GameId before, it might have worked before and not anymore. For sure the .GameId argument was never required for game join and never meant to be there though.
View my answer. The user needs to have Tampermonkey installed as a plugin in the browser or use @Etheroit Chrome extension. But both do the same, they watch for specific parameters(gameID and Job ID) in the URL, then start-up Roblox. Thing is, the server the players are in needs to be in a public server. If you send them to a private server there’s no way to join via link even if you have the code.
The URL home?placeId and etc. doesn’t seem to work anymore. I’ve never searched for this before until now, so I never got the possibility to see if it ever worked.
Launch data is optional and you access it inside the game so you can setup custom actions for different launch data. Maybe you can add job id in the url somewhere. Good luck.
I know this is old but, here is a neat way to launch from a website.
Most sites support protocol links so it should work. <roblox://experiences/start?placeId=PlaceId&gameInstanceId=JobId>