roblonium-web/Game/join.ashx

689 lines
26 KiB
Plaintext

<?php
//All PHP code written by Brent Da Mage
header('Content-Type: text/plain; X-Robots-Tag: noindex');
require $_SERVER["DOCUMENT_ROOT"] . '/Hexine/api/private/database.php';
require $_SERVER["DOCUMENT_ROOT"] . '/Hexine/api/private/register.php';
$baseUrl = "http://".$_SERVER['SERVER_NAME']."/";
if (!(strpos($_SERVER['SERVER_NAME'], "www.") === FALSE)) {
$apiUrl = "http://api.".substr($_SERVER['SERVER_NAME'], strpos($_SERVER['SERVER_NAME'], "www.")+4, strlen($_SERVER['SERVER_NAME'])-4)."/";
}else {
$apiUrl = "http://api.".$_SERVER['SERVER_NAME']."/"; // TODO: should be https in 2013
}
if ($_GET['json'] !== null and $_GET['json'] !== '' and $_GET['json'] !== false) {
$placeId = $_GET['placeid'] ?? 0; //bruh I should've been doing this all along for so, so, so, sooo many things. E
$userId = $_GET['userID'] ?? -1;
$userId = (int)$userId;
if ($userId > 0) {
$GLOBALS['Id'] = $userId;
$user = new UserInf();
$userId = (int)$user->Id ?? rand(-9999, -1);
} else {
$userId = rand(-9999, -1);
}
$joinscript = [
"ClientPort" => 0,
"MachineAddress" => $_GET['server'] ?? "127.0.0.1",
"ServerPort" => $_GET['serverPort'] ?? 53640,
"PingUrl" => "",
"PingInterval" => 120,
"UserName" => $user->Name ?? ("Guest " . ($userId - ($userId * 2))),
"SeleniumTestMode" => false,
"UserId" => $userId,
"RobloxLocale" => "en_us",
"GameLocale" => "en_us",
"SuperSafeChat" => ($userId > 0) ? false : true,
"CharacterAppearance" => "http://api.".$_SERVER['SERVER_NAME']."/v1.1/avatar-fetch/?placeId=".$placeId."&userId=".$userId,
"ClientTicket" => "",
"NewClientTicket" => "",
"GameId" => "00000000-0000-0000-0000-000000000000",
"PlaceId" => $placeId,
"MeasurementUrl" => "",
"WaitingForCharacterGuid" => "00000000-0000-0000-0000-000000000000",
"BaseUrl" => $baseUrl,
"ChatStyle" => "Classic",
"VendorId" => 0,
"ScreenShotInfo" => "",
"VideoInfo" => "",
"CreatorId" => 0,
"CreatorTypeEnum" => "User",
"MembershipType" => "None",
"AccountAge" => 0,
"CookieStoreFirstTimePlayKey" => "rbx_evt_ftp",
"CookieStoreFiveMinutePlayKey" => "rbx_evt_fmp",
"CookieStoreEnabled" => true,
"IsRobloxPlace" => false,
"GenerateTeleportJoin" => ($_GET['isTeleport'] !== 'true') ? false : true,
"IsUnknownOrUnder13" => ($userId > 0) ? false : true,
"GameChatType" => "NoOne",
"SessionId" => '{"SessionId":"00000000-0000-0000-0000-000000000000","GameId":"00000000-0000-0000-0000-000000000000","PlaceId":'.$placeId.',"ClientIpAddress":"'.$_SERVER['REMOTE_ADDR'].'","PlatformTypeId":5,"SessionStarted":"2013-12-4T4:20:00.0000000Z","BrowserTrackerId":0,"PartyId":null,"Age":null,"Latitude":null,"Longitude":null,"CountryId":1,"PolicyCountryId":null,"LanguageId":null,"BlockedPlayerIds":null,"JoinType":"Unknown","PlaySessionFlags":0}',
"AnalyticsSessionId" => "00000000-0000-0000-0000-000000000000",
"DataCenterId" => 0,
"UniverseId" => 0,
"BrowserTrackerId" => 0,
"UsePortraitMode" => false,
"FollowUserId" => 0,
"characterAppearanceId" => 0,
"CountryCode" => "US"
];
$data = json_encode($joinscript, JSON_UNESCAPED_SLASHES | JSON_NUMERIC_CHECK);
if ($_GET['nosig'] !== null and $_GET['nosig'] !== '' and $_GET['nosig'] !== false) {
die($data);
}
$data = "
" . $data;
$key = file_get_contents("file:///C:/signing/privatekey.pem");
openssl_sign($data, $sig, $key, OPENSSL_ALGO_SHA1);
die("--rbxsig%" . base64_encode($sig) . "%" . $data);
}
// DEFAULTS
$userId = ($_GET['UserID'] == "0" and $_GET['server'] == "localhost") ? -1 : rand(-9999, -1);
$userName = ($userId < 0) ? "Guest ".(-($userId)) : "Player ".$userId;
$memberType = "Enum.MembershipType.None";
$placeId = -1;
// replace all variables with the proper value
$server = ($_GET["server"] !== null and (substr_count($_GET['server'], '.') == 3 or $_GET["server"] == "localhost")) ? $_GET['server'] : "localhost";
$port = ($_GET["serverPort"] !== null && $_GET["serverPort"] !== 0) ? $_GET["serverPort"] : 53640;
if (!isset($_GET["UserID"]) or $_GET["UserID"] == null) {
$GLOBALS['UserName'] = $_GET["UserName"];
$pname = new idfromuser($inf['user']);
$GLOBALS['id'] = $pname->Id;
}else {
$GLOBALS['id'] = $_GET['UserID'];
}
$privateuser = new privateuser($inf['privateuser']);
// FIX THIS IF STATEMENT
if ((!isset($_GET["UserID"]) and !isset($_GET["UserName"])) or ($_GET["UserID"] == null and $_GET["UserName"] == null)) {
die("I'm calling out from Scatland
I'm calling out from Scatman's world
If you wanna break free you better listen to me
You got to learn how to see in your fantasy
I'm calling out from Scatland
I'm calling out from Scatman's world
If you wanna break free you better listen to me
You got to learn how to see in your fantasy
Everybody's talkin' something very shockin' just to
Keep on blockin' what they're feelin' inside
But listen to me brother, you just keep on walkin' 'cause
You and me and sister ain't got nothin' to hide
Scatman, fat man, black and white and brown man
Tell me 'bout the colour of your soul
If part of your solution isn't ending the pollution
Then I don't want to hear your stories told
I want to welcome you to Scatman's world
I'm calling out from Scatland
I'm calling out from Scatman's world
If you wanna break free you better listen to me
You got to learn how to see in your fantasy
Everyone's born to compete as he chooses
But how can someone win if winning means that someone loses
I sit and see and wonder what it's like to be in touch
No wonder all my brothers and my sisters need a crutch
I want to be a human being not a human doing
I couldn't keep that pace up if I tried
The source of my intention really isn't crime prevention
My intention is prevention of the lie, yeah
Welcome to the Scatman's world
I'm calling out from Scatland
I'm calling out from Scatman's world
If you wanna break free you better listen to me
You got to learn how to see in your fantasy
I'm calling out from Scatland
I'm calling out from Scatman's world
If you wanna break free you better listen to me
You got to learn how to see in your fantasy
Listen to me
I'm calling out from Scatland
I'm calling out from Scatman's world
If you wanna break free you better listen to me
You got to learn how to see in your fantasy");
}
if (((!isset($_GET["UserID"]) and !isset($_GET["UserName"])) or ($_GET["UserID"] == null and $_GET["UserName"] == null) or getRealIpAddr() !== $privateuser->recentip)/* and $_GET["UserName"] !== "jacobman12"*/) {
$user = null;
/*if (getRealIpAddr() !== $privateuser->recentip) {
die(getRealIpAddr()."|".$privateuser->recentip);
}else{
die("idk");
}*/
}else {
if (isset($_GET["UserID"]) and $_GET['UserID'] !== nil) {
$GLOBALS['Id'] = $_GET['UserID'];
}else {
$GLOBALS['Id'] = $GLOBALS['id'];
}
$user = new UserInf($inf['user']);
if ($user->Id == null) {
$user = null;
if ($_GET["UserID"] == 0) {
$userinfo["Name"] = "Player";
$userinfo["Id"] = 0;
$userinfo["MembershipLevel"] = 0;
}
}
}
if ($user !== null) {
$userName = $user->Name;
$memberType = "Enum.MembershipType.None";
// Membership values
$NBC = "Enum.MembershipType.None";
$BC = "Enum.MembershipType.BuildersClub";
$TBC = "Enum.MembershipType.TurboBuildersClub";
$OBC = "Enum.MembershipType.OutrageousBuildersClub";
if ($user->MembershipLevel == 1) {
$memberType = $BC;
}
if ($user->MembershipLevel == 2) {
$memberType = $TBC;
}
if ($user->MembershipLevel == 3) {
$memberType = $OBC;
}
//charapp
$charApp = $baseUrl."Asset/CharacterFetch.ashx?userId=" . $user->Id;
$userId = $user->Id;
$SSC = false;
} else {
$charApp = $baseUrl."Asset/CharacterFetch.ashx?userId=" . $userId;
$SSC = true;
}
//coke is very epic
ob_start();
?>
--[[ Copyleft 2018-2020 ROBLONIUM Developers, All Epicness Reserved ]]--
local forceVersion = false
local devMode = false
if ((version() ~= "2013. 12. 4. 1" and version() ~= "?") or not string.find(Game:GetService('ContentProvider').BaseUrl, "roblonium.com")) and forceVersion == true then
game:SetMessage("ROBLONIUM version is out of date. Please uninstall and try again.")
print('Error: Unexpected BaseUrl "' .. Game:GetService('ContentProvider').BaseUrl .. '"')
else
-- functions --------------------------
function onPlayerAdded(player)
-- override
end
-- MultiplayerSharedScript.lua inserted here ------ Prepended to Join.lua --
-- log app init time
pcall(function()
local t = ElapsedTime()
local platform = settings().Diagnostics.OsPlatform
game:HttpGet("<?=$baseUrl?>Game/JoinRate.ashx?st=0&i=<?=$userId?>&p=<?=$placeId?>&c=GameAppInit&r=Success&d=" .. (math.floor(t*1000)) .. "&ip=<?=$server?>&errorType=&platform=" .. platform, false)
end)
pcall(function() game:SetPlaceID(<?=$placeId?>, false) end)
local startTime = tick()
local connectResolved = false
local loadResolved = false
local joinResolved = false
local playResolved = true
local playStartTime = 0
local cdnSuccess = 0
local cdnFailure = 0
-- if we are on a touch device, no blocking http calls allowed! This can cause a crash on iOS
-- In general we need a long term strategy to remove blocking http calls from all platforms
local isTouchDevice = Game:GetService("UserInputService").TouchEnabled
settings()["Game Options"].CollisionSoundEnabled = true
pcall(function() settings().Rendering.EnableFRM = true end)
pcall(function() settings().Physics.Is30FpsThrottleEnabled = true end)
pcall(function() settings()["Task Scheduler"].PriorityMethod = Enum.PriorityMethod.AccumulatedError end)
pcall(function() settings().Physics.PhysicsEnvironmentalThrottle = Enum.EnviromentalPhysicsThrottle.DefaultAuto end)
function reportContentProvider(time, queueLength, blocking)
pcall(function()
game:HttpGet("<?=$baseUrl?>Analytics/ContentProvider.ashx?t=" .. time .. "&ql=" .. queueLength, blocking and not isTouchDevice)
end)
end
function reportCdn(blocking)
pcall(function()
local newCdnSuccess = settings().Diagnostics.CdnSuccessCount
local newCdnFailure = settings().Diagnostics.CdnFailureCount
local successDelta = newCdnSuccess - cdnSuccess
local failureDelta = newCdnFailure - cdnFailure
cdnSuccess = newCdnSuccess
cdnFailure = newCdnFailure
if successDelta > 0 or failureDelta > 0 then
game:HttpGet("<?=$baseUrl?>Game/Cdn.ashx?source=client&success=" .. successDelta .. "&failure=" .. failureDelta, blocking and not isTouchDevice)
end
end)
end
function reportDuration(category, result, duration, blocking,errorType)
if not errorType then
errorType = ''
end
local platform = settings().Diagnostics.OsPlatform
local bytesReceived = -1
if stats().Network:getChildren()[2] ~= nil then
bytesReceived = stats().Network:getChildren()[2].Stats.totalBytesReceived:GetValue()
end
pcall(function() game:HttpGet("<?=$baseUrl?>Game/JoinRate.ashx?st=0&i=<?=$userId?>&p=<?=$placeId?>&c=" .. category .. "&r=" .. result .. "&d=" .. (math.floor(duration*1000)) .. "&b=" .. bytesReceived .. "&ip=<?=$server?>&errorType=" .. errorType .. "&platform=" .. platform, blocking and not isTouchDevice) end)
end
-- arguments ---------------------------------------
local threadSleepTime = ...
if threadSleepTime==nil then
threadSleepTime = 15
end
local test = true
print("! Joining game '<?=$gameId ?? ""?>' place <?=$placeId?> at <?=$server?>")
local closeConnection = game.Close:connect(function()
if 0 then
reportCdn(true)
if not connectResolved then
local duration = tick() - startTime;
reportDuration("GameConnect", "Failure", duration, true)
elseif (not loadResolved) or (not joinResolved) then
local duration = tick() - startTime;
if not loadResolved then
loadResolved = true
reportDuration("GameLoad","Cancel", duration, true)
end
if not joinResolved then
joinResolved = true
reportDuration("GameJoin","Cancel", duration, true)
end
elseif not playResolved then
local duration = tick() - playStartTime;
playResolved = true
reportDuration("GameDuration","Success", duration, true)
end
if true then pcall(function() game:HttpPost("<?=$apiUrl?>auth/invalidate", "invalidate") end) end
end
<?php if ($_GET['debug'] == "1" or $_GET['debug'] == "true") { echo('pcall(function() game:HttpPost("'.$baseUrl.'Analytics/Log.ashx?platform=" .. settings().Diagnostics.OsPlatform .. "&userId='.$userId.'", game:GetService("LogService"):GetLogHistory()) end)'); }?>
end)
game:GetService("ChangeHistoryService"):SetEnabled(false)
game:GetService("ContentProvider"):SetThreadPool(16)
game:GetService("InsertService"):SetBaseSetsUrl("<?=$baseUrl?>Game/Tools/InsertAsset.ashx?nsets=10&type=base")
game:GetService("InsertService"):SetUserSetsUrl("<?=$baseUrl?>Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d")
game:GetService("InsertService"):SetCollectionUrl("<?=$baseUrl?>Game/Tools/InsertAsset.ashx?sid=%d")
game:GetService("InsertService"):SetAssetUrl("<?=$baseUrl?>Asset/?id=%d")
game:GetService("InsertService"):SetAssetVersionUrl("<?=$baseUrl?>Asset/?assetversionid=%d")
pcall(function() game:GetService("SocialService"):SetFriendUrl("<?=$baseUrl?>Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerid=%d&userid=%d") end)
pcall(function() game:GetService("SocialService"):SetBestFriendUrl("<?=$baseUrl?>Game/LuaWebService/HandleSocialRequest.ashx?method=IsBestFriendsWith&playerid=%d&userid=%d") end)
pcall(function() game:GetService("SocialService"):SetGroupUrl("<?=$baseUrl?>Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end)
pcall(function() game:GetService("SocialService"):SetGroupRankUrl("<?=$baseUrl?>Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRank&playerid=%d&groupid=%d") end)
pcall(function() game:GetService("SocialService"):SetGroupRoleUrl("<?=$baseUrl?>Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRole&playerid=%d&groupid=%d") end)
pcall(function() game:GetService("GamePassService"):SetPlayerHasPassUrl("<?=$baseUrl?>Game/GamePass/GamePassHandler.ashx?Action=HasPass&UserID=%d&PassID=%d") end)
pcall(function() game:GetService("MarketplaceService"):SetProductInfoUrl("<?=$apiUrl?>marketplace/productinfo?assetId=%d") end)
pcall(function() game:GetService("MarketplaceService"):SetPlayerOwnsAssetUrl("<?=$apiUrl?>ownership/hasasset?userId=%d&assetId=%d") end)
pcall(function() game:SetCreatorID(<?=$creatorId ?? 0?>, Enum.CreatorType.User) end)
-- Bubble chat. This is all-encapsulated to allow us to turn it off with a config setting
--Classic, Bubble, ClassicAndBubble
pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end)
local waitingForCharacter = false
local waitingForCharacterGuid = "86cadbcc-3b8b-493e-8d7b-4b103ae914e9";
pcall( function()
if settings().Network.MtuOverride == 0 then
settings().Network.MtuOverride = 1400
end
end)
-- globals -----------------------------------------
client = game:GetService("NetworkClient")
visit = game:GetService("Visit")
-- functions ---------------------------------------
function ifSeleniumThenSetCookie(key, value)
if false then
game:GetService("CookiesService"):SetCookieValue(key, value)
end
end
function setMessage(message)
-- todo: animated "..."
if not false then
game:SetMessage(message)
else
-- hack, good enought for now
game:SetMessage("Teleporting ...")
end
end
function showErrorWindow(message, errorType, errorCategory)
if 0 then
if (not loadResolved) or (not joinResolved) then
local duration = tick() - startTime;
if not loadResolved then
loadResolved = true
reportDuration("GameLoad","Failure", duration, false,errorType)
end
if not joinResolved then
joinResolved = true
reportDuration("GameJoin",errorCategory, duration, false,errorType)
end
pcall(function() game:HttpGet("?FilterName=Type&FilterValue=" .. errorType .. "&Type=JoinFailure", false) end)
elseif not playResolved then
local duration = tick() - playStartTime;
playResolved = true
reportDuration("GameDuration",errorCategory, duration, false,errorType)
pcall(function() game:HttpGet("?FilterName=Type&FilterValue=" .. errorType .. "&Type=GameDisconnect", false) end)
end
end
game:SetMessage(message)
end
function registerPlay(key)
if true and game:GetService("CookiesService"):GetCookieValue(key) == "" then
game:GetService("CookiesService"):SetCookieValue(key, "{ \"userId\" : <?=$userId?>, \"placeId\" : <?=$placeId?>, \"os\" : \"" .. settings().Diagnostics.OsPlatform .. "\" }")
end
end
function analytics(name)
if not test and false then
pcall(function() game:HttpGet("?IPFilter=Primary&SecondaryFilterName=UserId&SecondaryFilterValue=0&Type=" .. name, false) end)
end
end
function analyticsGuid(name, guid)
if not test and false then
pcall(function() game:HttpGet("?IPFilter=Primary&SecondaryFilterName=guid&SecondaryFilterValue=" .. guid .. "&Type=" .. name, false) end)
end
end
function reportError(err, message)
print("***ERROR*** " .. err)
if not test then visit:SetUploadUrl("") end
client:Disconnect()
wait(4)
showErrorWindow("Error: " .. err, message, "Other")
end
-- called when the client connection closes
function onDisconnection(peer, lostConnection)
if lostConnection then
if waitingForCharacter then analyticsGuid("Waiting for Character Lost Connection",waitingForCharacterGuid) end
showErrorWindow("You have lost the connection to the game", "LostConnection", "LostConnection")
else
if waitingForCharacter then analyticsGuid("Waiting for Character Game Shutdown",waitingForCharacterGuid) end
showErrorWindow("This game has shut down", "Kick", "Kick")
end
pcall(function() game:HttpGet("&disconnect=true", true) end)
if true then pcall(function() game:HttpPost("<?=$apiUrl?>auth/invalidate", "invalidate") end) end
end
function requestCharacter(replicator)
-- prepare code for when the Character appears
local connection
connection = player.Changed:connect(function (property)
if property=="Character" then
game:ClearMessage()
waitingForCharacter = false
analyticsGuid("Waiting for Character Success", waitingForCharacterGuid)
connection:disconnect()
if 0 then
if not joinResolved then
local duration = tick() - startTime;
joinResolved = true
reportDuration("GameJoin","Success", duration, false)
playStartTime = tick()
playResolved = false
end
end
end
end)
setMessage("Requesting character")
if 0 and not loadResolved then
local duration = tick() - startTime;
loadResolved = true
reportDuration("GameLoad","Success", duration, false)
end
local success, err = pcall(function()
replicator:RequestCharacter()
setMessage("Waiting for character")
waitingForCharacter = true
analyticsGuid("Waiting for Character Begin",waitingForCharacterGuid);
end)
if not success then
reportError(err,"W4C")
return
end
end
-- called when the client connection is established
function onConnectionAccepted(url, replicator)
connectResolved = true
reportDuration("GameConnect", "Success", tick() - startTime, false)
local waitingForMarker = true
local success, err = pcall(function()
if not test then
visit:SetPing("", 300)
end
if not false then
game:SetMessageBrickCount()
else
setMessage("Teleporting ...")
end
replicator.Disconnection:connect(onDisconnection)
-- Wait for a marker to return before creating the Player
local marker = replicator:SendMarker()
marker.Received:connect(function()
waitingForMarker = false
requestCharacter(replicator)
end)
end)
if not success then
reportError(err,"ConnectionAccepted")
return
end
-- TODO: report marker progress
while waitingForMarker do
workspace:ZoomToExtents()
wait(0.5)
end
end
-- called when the client connection fails
function onConnectionFailed(_, error)
showErrorWindow("Failed to connect to the Game. (ID=" .. error .. ")", "ID" .. error, "Other")
--game:HttpPost("<?=$baseUrl?>Analytics/Log.ashx?platform=" .. settings().Diagnostics.OsPlatform .. "&userId=<?=$userId?>", "gaming")
end
-- called when the client connection is rejected
function onConnectionRejected()
connectionFailed:disconnect()
showErrorWindow("This game is not available. Please try another", "WrongVersion", "WrongVersion")
end
idled = false
function onPlayerIdled(time)
if time > 20*60 then
showErrorWindow(string.format("You were disconnected for being idle %d minutes", time/60), "Idle", "Idle")
client:Disconnect()
if not idled then
idled = true
end
end
end
-- main ------------------------------------------------------------
analytics("Start Join Script")
ifSeleniumThenSetCookie("SeleniumTest1", "Started join script")
pcall(function() settings().Diagnostics:LegacyScriptMode() end)
local success, err = pcall(function()
game:SetRemoteBuildMode(true)
setMessage("Connecting to Server")
client.ConnectionAccepted:connect(onConnectionAccepted)
client.ConnectionRejected:connect(onConnectionRejected)
connectionFailed = client.ConnectionFailed:connect(onConnectionFailed)
client.Ticket = "<?=$authTicket ?? ""?>"
ifSeleniumThenSetCookie("SeleniumTest2", "Successfully connected to server")
playerConnectSucces, player = pcall(function() return client:PlayerConnect(<?=$userId?>, "<?=$server?>", <?=$port?>, 0, threadSleepTime) end)
if not playerConnectSucces then
--Old player connection scheme
player = game:GetService("Players"):CreateLocalPlayer(<?=$userId?>)
analytics("Created Player")
client:Connect("<?=$server?>", <?=$port?>, 0, threadSleepTime)
else
analytics("Created Player")
end
pcall(function()
registerPlay("rbx_evt_ftp")
delay(60*5, function() registerPlay("rbx_evt_fmp") end)
end)
-- negotiate an auth token
if true then
pcall(function() game:HttpPost("<?=$apiUrl?>auth/negotiate?ticket=", "negotiate") end)
delay(300, function()
while true do
pcall(function() game:HttpPost("<?=$apiUrl?>auth/renew", "renew") end)
wait(300)
end
end)
end
player:SetSuperSafeChat(<?php if ($SSC === TRUE) {echo("true");}else {echo("false");}?>)
pcall(function() player:SetUnder13(false) end)
pcall(function() player:SetMembershipType(<?=$memberType?>) end)
pcall(function() player:SetAccountAge(200) end)
player.Idled:connect(onPlayerIdled)
<?php if ($userId > 0) {echo('pcall(function() settings().FastLogSettings:SetVariable("UseLuaChat", true) end)');}?>
-- Overriden
onPlayerAdded(player)
pcall(function() player.Name = [========[<?=$userName?>]========] end)
player.CharacterAppearance = "<?=$charApp?>"
if not test then visit:SetUploadUrl("")end
analytics("Connect Client")
end)
if not success then
reportError(err,"CreatePlayer")
end
ifSeleniumThenSetCookie("SeleniumTest3", "Successfully created player")
if not test then
-- TODO: Async get?
loadfile("")("", <?=$placeId?>, <?=$userId?>)
end
if 0 then
delay(60*5, function()
while true do
reportCdn(false)
wait(60*5)
end
end)
local cpTime = 30
delay(cpTime, function()
while cpTime <= 480 do
reportContentProvider(cpTime, game:GetService("ContentProvider").RequestQueueSize, false)
wait(cpTime)
cpTime = cpTime * 2
end
end)
end
--PS Scripts
if workspace:FindFirstChild("IsPersonalServer") ~= nil then
game:GetService("ScriptContext"):AddCoreScript(27, scriptContext,"CoreScripts/BuildToolsScripts/BuildToolManager")
end
game:GetService("InsertService"):SetTrustLevel(0) --I have no idea what to set this to
pcall(function() game:SetScreenshotInfo("") end)
pcall(function() game:SetVideoInfo('<?xml version="1.0"?><entry xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" xmlns:yt="http://gdata.youtube.com/schemas/2007"><media:group><media:title type="plain"><![CDATA[ROBLOX Place]]></media:title><media:description type="plain"><![CDATA[ For more games visit http://www.roblox.com]]></media:description><media:category scheme="http://gdata.youtube.com/schemas/2007/categories.cat">Games</media:category><media:keywords>ROBLOX, video, free game, online virtual world</media:keywords></media:group></entry>') end)
-- use single quotes here because the video info string may have unescaped double quotes
analytics("Join Finished")
ifSeleniumThenSetCookie("SeleniumTest4", "Finished join")
end
<?php
//this is a snippet of code from the coke14 webserver itself
$data = ob_get_clean();
if ($_GET['debug'] == "1" or $_GET['debug'] == "true") { //if newer client versions are failing, try disabling debug mode as FastLogSettings was removed from later builds
$debugList = 'local devMode = true
------------------- DEBUG VARIABLES ----------------------------
--if _G.supportsVersion(2013, 8, 6) then
pcall(function() settings().FastLogSettings:SetVariable("Network", 7) end)
pcall(function() settings().FastLogSettings:SetVariable("NetworkJoin", 7) end)
pcall(function() settings().FastLogSettings:SetVariable("NetworkReadItem", 7) end)
pcall(function() settings().FastLogSettings:SetVariable("NetworkInstances", 7) end)
pcall(function() settings().FastLogSettings:SetVariable("NetworkPacketsReceive", 7) end)
--end
--if _G.supportsVersion(2014, 5, 7) then
pcall(function() settings().Network.printBits = true end)
--end
--these have been around for a very long time
settings().Network.PrintProperties = true
settings().Network.PrintInstances = true
settings().Network.PrintEvents = true
--pcall(function() settings().Network.PhysicsSend = Enum.PhysicsSendMethod.TopNErrors end)
pcall(function() print("PhysicsSend: " .. settings().Network.PhysicsSend.Name) end)
if settings().Network.PrintProperties == true then
print("settings().Network.PrintProperties: true")
else
print("settings().Network.PrintProperties: false")
end
pcall(function() print("ExperimentalPhysicsEnabled: " .. settings().Network.ExperimentalPhysicsEnabled) end)
------------------- END DEBUG VARIABLES ------------------------
';
$data = str_replace("local devMode = false", $debugList, $data);
}
if ($_GET['nosig'] !== null and $_GET['nosig'] !== '' and $_GET['nosig'] !== false) {
die($data);
}
$data = "\n" . $data;
$key = file_get_contents("file:///C:/signing/privatekey.pem");
openssl_sign($data, $sig, $key, OPENSSL_ALGO_SHA1);
echo "--rbxsig%" . base64_encode($sig) . "%" . $data;
?>