From 7b0a13faa6b444ecc45c340a598e2916feb89474 Mon Sep 17 00:00:00 2001 From: void Date: Wed, 6 Nov 2024 17:02:27 +0000 Subject: [PATCH] Uploaded main.py --- main.py | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 67 insertions(+) diff --git a/main.py b/main.py index e69de29..e066ed8 100644 --- a/main.py +++ b/main.py @@ -0,0 +1,67 @@ +import requests +import json +import time +import random +import os + + + +def joinGame(gameID): + with open('config.json', 'r') as f: + ROBLOSECURITY = json.loads(f.read())['.ROBLOSECURITY'] + if ROBLOSECURITY == "": + print("[!] Roblox Cookie not found.") + return + session = requests.Session() + + session.cookies.set(".ROBLOSECURITY", ROBLOSECURITY) + + r = session.post("https://auth.roblox.com/v2/signup") + csrf = r.headers.get('x-csrf-token') + + headers = { + "Accept": "application/json, text/plain, */*", + "Accept-Language": "en-GB,en;q=0.9", + "Origin": "https://www.roblox.com/", + "Referer": "https://www.roblox.com/", + "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36", + "X-Csrf-Token": csrf + } + + r = session.get('https://auth.roblox.com/v1/client-assertion', headers=headers) + clientAssertion = json.loads(r.text)['clientAssertion'] + + r = session.get('https://roblox.com/home', headers=headers) + browserTracker = r.cookies.get('RBXEventTrackerV2').split('browserid=')[1] + + payload = { + "clientAssertion": clientAssertion + } + r = session.post('https://auth.roblox.com/v1/authentication-ticket/', headers=headers, json=payload) + authTicket = r.headers.get('Rbx-Authentication-Ticket') + + r = session.get(f"https://games.roblox.com/v1/games/{gameID}/servers/Public?cursor=&sortOrder=Desc&excludeFullGames=false") + data = json.loads(r.text)['data'] + + available_games = [game for game in data if (game['maxPlayers'] - game['playing']) >= 3] + + if available_games: + gameItem = random.choice(available_games) + else: + gameItem = {"id": None} + + jobID = gameItem['id'] + currtime = int(time.time()) + + + if jobID == None: + url = f"roblox-player:1+launchmode:play+gameinfo:{authTicket}+launchtime:{currtime}+placelauncherurl:https%3A%2F%2Fwww.roblox.com%2FGame%2FPlaceLauncher.ashx%3Frequest%3DRequestGameJob%26browserTrackerId%3D{browserTracker}%26placeId%3D{gameID}%26isPlayTogetherGame%3Dfalse%26joinAttemptOrigin%3DServerListJoin+browsertrackerid:{browserTracker}+robloxLocale:en_us+gameLocale:en_us+channel:" + else: + url = f"roblox-player:1+launchmode:play+gameinfo:{authTicket}+launchtime:{currtime}+placelauncherurl:https%3A%2F%2Fwww.roblox.com%2FGame%2FPlaceLauncher.ashx%3Frequest%3DRequestGameJob%26browserTrackerId%3D{browserTracker}%26placeId%3D{gameID}%26gameId%3D{jobID}%26isPlayTogetherGame%3Dfalse%26joinAttemptId%3D{jobID}%26joinAttemptOrigin%3DServerListJoin+browsertrackerid:{browserTracker}+robloxLocale:en_us+gameLocale:en_us+channel:" + os.system(f'xdg-open "{url}"') # change xdg-open to whatever + +gameId = int(input("Game ID: https://roblox.com/games/")) +joinGame(gameId) + + +