Hi there! I’m working on a moderation service for my game, and I’d like to send a “call” to my website, and then the moderators would be able to click a button where they directly join the right game server.
The reason I think it is possible, is because it’d be same kinda like think as when using a private server.
Thanks in advance for your help!
PS: I know I can just make something to teleport to the right server in-game, but that takes longer.
You won’t be able to do this because Roblox game join uri’s require an auth ticket, which can only be retrieved by the Roblox website. (This is how the Roblox Game Client knows what account you should join the game as, in case you have multiple browsers open with different accounts).
VIP Server urls are just a springboard towards the standard join process which involves getting an auth ticket, in that when you visit one of those links, the Roblox website instantly starts joining you to that game as if you had clicked the join button on the servers list, but that functionality only works with VIP Servers.
Your best bet is to let them join the game then teleport them.
The website could then be used by the moderator to click a button, which would then change a value stored on the website, to the server’s JobId. When the moderator joins the game, you can then just read this value and teleport them there.
It is incorrect to say that this is not doable as I have done this before. Getting the authentication ticket is quite annoying, but is possible provided you find the endpoint that generates it and send a valid request.
In Base Wars, there is something similar to that, except it doesn’t use a url. Instead, it uses ServerIds so that you can join a specific game server, as seen in this screenshot:
Phantom forces moderation has a way to join via URL, however, it requires users to install a fairly simple script via greasemonkey or tampermonkey. That’s the only way you’ll be able to do it. Does not work with VIP servers unless you have the invite code
We add ?instance= parameter to the url, and the script gets that instance ID and uses roblox’s already available libraries on the website to launch the game. You’ll have to figure out the code, but it’s along the lines of using Roblox.GameLauncher.joinGameInstance(placeid, jobid); in the script
Past having the users login details, which I doubt they’d be willing to provide to you, this would be impossible. I know there are hacky ways to generate it manually but all of them are pretty unreasonable for a user to agree to.
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 @Semaphorism 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.