diff --git a/processed/host.lua b/processed/host.lua new file mode 100644 index 0000000..3d0c482 --- /dev/null +++ b/processed/host.lua @@ -0,0 +1,217 @@ +-- Start Game Script Arguments +local placeId, port, sleeptime, access, url, killID, deathID, timeout, autosaveInterval, locationID, groupBuild, machineAddress, gsmInterval, gsmUrl, maxPlayers, maxSlotsUpperLimit, maxSlotsLowerLimit, gsmAccess, injectScriptAssetID, servicesUrl, permissionsServiceUrl, apiKey, libraryRegistrationScriptAssetID = ... + + +-- StartGame -- +pcall(function() game:GetService("ScriptContext"):AddStarterScript(injectScriptAssetID) end) +game:GetService("RunService"):Run() + +-- REQUIRES: StartGanmeSharedArgs.txt +-- REQUIRES: MonitorGameStatus.txt + +------------------- UTILITY FUNCTIONS -------------------------- + +function waitForChild(parent, childName) + while true do + local child = parent:findFirstChild(childName) + if child then + return child + end + parent.ChildAdded:wait() + end +end + +-- returns the player object that killed this humanoid +-- returns nil if the killer is no longer in the game +function getKillerOfHumanoidIfStillInGame(humanoid) + + -- check for kill tag on humanoid - may be more than one - todo: deal with this + local tag = humanoid:findFirstChild("creator") + + -- find player with name on tag + if tag then + local killer = tag.Value + if killer.Parent then -- killer still in game + return killer + end + end + + return nil +end + +-- send kill and death stats when a player dies +function onDied(victim, humanoid) + local killer = getKillerOfHumanoidIfStillInGame(humanoid) + local victorId = 0 + if killer then + victorId = killer.userId + print("STAT: kill by " .. victorId .. " of " .. victim.userId) + game:HttpGet(url .. "/Game/Knockouts.ashx?UserID=" .. victorId .. "&" .. access) + end + print("STAT: death of " .. victim.userId .. " by " .. victorId) + game:HttpGet(url .. "/Game/Wipeouts.ashx?UserID=" .. victim.userId .. "&" .. access) +end + +-----------------------------------END UTILITY FUNCTIONS ------------------------- + +-----------------------------------"CUSTOM" SHARED CODE---------------------------------- + +pcall(function() settings().Network.UseInstancePacketCache = true end) +pcall(function() settings().Network.UsePhysicsPacketCache = true end) +--pcall(function() settings()["Task Scheduler"].PriorityMethod = Enum.PriorityMethod.FIFO end) +pcall(function() settings()["Task Scheduler"].PriorityMethod = Enum.PriorityMethod.AccumulatedError end) + +--settings().Network.PhysicsSend = 1 -- 1==RoundRobin +settings().Network.PhysicsSend = Enum.PhysicsSendMethod.ErrorComputation2 +settings().Network.ExperimentalPhysicsEnabled = true +settings().Network.WaitingForCharacterLogRate = 100 +pcall(function() settings().Diagnostics:LegacyScriptMode() end) + +-----------------------------------START GAME SHARED SCRIPT------------------------------ + +local url = "_BASE_URL" +local assetId = placeId -- might be able to remove this now + +local scriptContext = game:GetService('ScriptContext') +pcall(function() scriptContext:AddStarterScript(libraryRegistrationScriptAssetID) end) +scriptContext.ScriptsDisabled = true + +-- game:SetPlaceID(nil, false) +game:GetService("ChangeHistoryService"):SetEnabled(false) + +-- establish this peer as the Server +local ns = game:GetService("NetworkServer") + +if url~=nil then + pcall(function() game:GetService("Players"):SetAbuseReportUrl(url .. "/Report/Games.ashx") end) + pcall(function() game:GetService("ScriptInformationProvider"):SetAssetUrl(url .. "/Asset/") end) + pcall(function() game:GetService("ContentProvider"):SetBaseUrl(url .. "/") end) + -- pcall(function() game:GetService("Players"):SetChatFilterUrl(url .. "/Game/ChatFilter.ashx") end) + + -- game:GetService("BadgeService"):SetPlaceId(placeId) + if access~=nil then + game:GetService("BadgeService"):SetAwardBadgeUrl(url .. "/Game/Badge/AwardBadge.ashx?UserID=%d&BadgeID=%d&PlaceID=%d&" .. access) + game:GetService("BadgeService"):SetHasBadgeUrl(url .. "/Game/Badge/HasBadge.ashx?UserID=%d&BadgeID=%d&" .. access) + game:GetService("BadgeService"):SetIsBadgeDisabledUrl(url .. "/Game/Badge/IsBadgeDisabled.ashx?BadgeID=%d&PlaceID=%d&" .. access) + + game:GetService("FriendService"):SetMakeFriendUrl(servicesUrl .. "/Friend/CreateFriend?firstUserId=%d&secondUserId=%d&" .. access) + game:GetService("FriendService"):SetBreakFriendUrl(servicesUrl .. "/Friend/BreakFriend?firstUserId=%d&secondUserId=%d&" .. access) + game:GetService("FriendService"):SetGetFriendsUrl(servicesUrl .. "/Friend/AreFriends?userId=%d&" .. access) + end + game:GetService("BadgeService"):SetIsBadgeLegalUrl("") + game:GetService("InsertService"):SetBaseSetsUrl(url .. "/Game/Tools/InsertAsset.ashx?nsets=10&type=base") + game:GetService("InsertService"):SetUserSetsUrl(url .. "/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d") + game:GetService("InsertService"):SetCollectionUrl(url .. "/Game/Tools/InsertAsset.ashx?sid=%d") + game:GetService("InsertService"):SetAssetUrl(url .. "/Asset/?id=%d") + game:GetService("InsertService"):SetAssetVersionUrl(url .. "/Asset/?assetversionid=%d") + + pcall(function() loadfile(url .. "/Game/LoadPlaceInfo.ashx?PlaceId=" .. placeId)() end) + + pcall(function() + if access then + loadfile(url .. "/Game/PlaceSpecificScript.ashx?PlaceId=" .. placeId .. "&" .. access)() + end + end) +end + +pcall(function() game:GetService("NetworkServer"):SetIsPlayerAuthenticationRequired(true) end) +settings().Diagnostics.LuaRamLimit = 0 +--settings().Network:SetThroughputSensitivity(0.08, 0.01) +--settings().Network.SendRate = 35 +--settings().Network.PhysicsSend = 0 -- 1==RoundRobin + +--shared["__time"] = 0 +--game:GetService("RunService").Stepped:connect(function (time) shared["__time"] = time end) + + + + +if placeId~=nil and killID~=nil and deathID~=nil and url~=nil then + -- listen for the death of a Player + function createDeathMonitor(player) + -- we don't need to clean up old monitors or connections since the Character will be destroyed soon + if player.Character then + local humanoid = waitForChild(player.Character, "Humanoid") + humanoid.Died:connect( + function () + onDied(player, humanoid) + end + ) + end + end + + -- listen to all Players' Characters + game:GetService("Players").ChildAdded:connect( + function (player) + createDeathMonitor(player) + player.Changed:connect( + function (property) + if property=="Character" then + createDeathMonitor(player) + end + end + ) + end + ) +end + +game:GetService("Players").PlayerAdded:connect(function(player) + print("Player " .. player.userId .. " added") + + if url and access and placeId and player and player.userId then + game:HttpGet(url .. "/Game/ClientPresence.ashx?action=connect&" .. access .. "&PlaceID=" .. placeId .. "&UserID=" .. player.userId) + game:HttpGet(url .. "/Game/PlaceVisit.ashx?UserID=" .. player.userId .. "&AssociatedPlaceID=" .. placeId .. "&" .. access) + end +end) + + +game:GetService("Players").PlayerRemoving:connect(function(player) + print("Player " .. player.userId .. " leaving") + + if url and access and placeId and player and player.userId then + game:HttpGet(url .. "/Game/ClientPresence.ashx?action=disconnect&" .. access .. "&PlaceID=" .. placeId .. "&UserID=" .. player.userId) + end +end) + +if placeId~=nil and url~=nil then + -- yield so that file load happens in the heartbeat thread + wait() + + -- load the game + game:Load(url .. "/asset/?id=" .. placeId) +end + +if _MAP_LOCATION_EXISTS then + -- yield so that file load happens in the heartbeat thread + wait() + + -- load the game + game:Load("_MAP_LOCATION") +end + +-- Now start the connection +ns:Start(_PORT, sleeptime) + +game:GetService("Visit"):SetPing("_SERVER_PRESENCE_URL", 30) + +if timeout then + scriptContext:SetTimeout(timeout) +end +scriptContext.ScriptsDisabled = false + +--delay(1, function() +-- loadfile(url .. "/analytics/GamePerfMonitor.ashx")(game.JobId, placeId) +--end) + +local reset = ";mc" +game.Players.PlayerAdded:connect(function(player) + player.Chatted:connect(function(msg) + if msg==reset then + if player.Character then + player.Character.Humanoid.Health = 0 + end + end + end) +end) + +------------------------------END START GAME SHARED SCRIPT-------------------------- \ No newline at end of file diff --git a/processed/join.lua b/processed/join.lua new file mode 100644 index 0000000..493b3fd --- /dev/null +++ b/processed/join.lua @@ -0,0 +1,244 @@ +-- functions -------------------------- +function onPlayerAdded(player) +-- override +end + + + +-- MultiplayerSharedScript.lua inserted here ------ Prepended to Join.lua -- + +pcall(function() game:SetPlaceID(_PLACE_ID, false) end) + +-- 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 = false end) +pcall(function() settings()["Task Scheduler"].PriorityMethod = Enum.PriorityMethod.AccumulatedError end) +pcall(function() settings().Physics.PhysicsEnvironmentalThrottle = Enum.EnviromentalPhysicsThrottle.DefaultAuto end) + +-- arguments --------------------------------------- +local threadSleepTime = ... + +if threadSleepTime==nil then +threadSleepTime = 15 +end + +local test = _IS_STUDIO_JOIN + +print("! Joining game '_PLACE_ID' place _PLACE_ID at _SERVER_ADDRESS") + +game:GetService("ChangeHistoryService"):SetEnabled(false) +game:GetService("ContentProvider"):SetThreadPool(16) +game:GetService("InsertService"):SetBaseSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=10&type=base") +game:GetService("InsertService"):SetUserSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d") +game:GetService("InsertService"):SetCollectionUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?sid=%d") +game:GetService("InsertService"):SetAssetUrl("http://banland.xyz/Asset/?id=%d") +game:GetService("InsertService"):SetAssetVersionUrl("http://www.roblox.com/Asset/?assetversionid=%d") + +pcall(function() game:GetService("SocialService"):SetFriendUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerid=%d&userid=%d") end) +pcall(function() game:GetService("SocialService"):SetBestFriendUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsBestFriendsWith&playerid=%d&userid=%d") end) +pcall(function() game:GetService("SocialService"):SetGroupUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end) +pcall(function() game:GetService("SocialService"):SetGroupRankUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRank&playerid=%d&groupid=%d") end) +pcall(function() game:GetService("SocialService"):SetGroupRoleUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRole&playerid=%d&groupid=%d") end) +pcall(function() game:GetService("GamePassService"):SetPlayerHasPassUrl("http://banland.xyz/Game/GamePass/GamePassHandler.ashx?Action=HasPass&UserID=%d&PassID=%d") end) +pcall(function() game:GetService("MarketplaceService"):SetProductInfoUrl("https://banland.xyz/marketplace/productinfo?assetId=%d") end) +pcall(function() game:GetService("MarketplaceService"):SetPlayerOwnsAssetUrl("https://banland.xyz/ownership/hasasset?userId=%d&assetId=%d") end) +pcall(function() game:SetCreatorID(_CREATOR_ID, Enum.CreatorType.User) end) + +-- Bubble chat. This is all-encapsulated to allow us to turn it off with a config setting +pcall(function() game:GetService("Players"):SetChatStyle(Enum.ChatStyle.ClassicAndBubble) end) + +local waitingForCharacter = false +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 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) +game:SetMessage(message) +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 +showErrorWindow("You have lost the connection to the game", "LostConnection", "LostConnection") +else +showErrorWindow("This game has shut down", "Kick", "Kick") +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 +connection:disconnect() +end +end) + +setMessage("Requesting character") + +local success, err = pcall(function() +replicator:RequestCharacter() +setMessage("Waiting for character") +waitingForCharacter = true +end) + +if not success then +reportError(err,"W4C") +return +end +end + +-- called when the client connection is established +function onConnectionAccepted(url, replicator) +connectResolved = true + +local waitingForMarker = true + +local success, err = pcall(function() +if not test then +visit:SetPing("_PING_URL", 30) +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") +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 ------------------------------------------------------------ + +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 = "" + +playerConnectSucces, player = pcall(function() return client:PlayerConnect(_USER_ID, "_SERVER_ADDRESS", _SERVER_PORT, 0, threadSleepTime) end) +if not playerConnectSucces then +--Old player connection scheme +player = game:GetService("Players"):CreateLocalPlayer(_USER_ID) +client:Connect("_SERVER_ADDRESS", _SERVER_PORT, 0, threadSleepTime) +end + +-- negotiate an auth token +if not test then +delay(300, function() +while false do +pcall(function() game:HttpPost("https://banland.xyz/auth/renew", "renew") end) +wait(300) +end +end) +end + +player:SetSuperSafeChat(false) +pcall(function() player:SetUnder13(false) end) +pcall(function() player:SetMembershipType(Enum.MembershipType._MEMBERSHIP_TYPE) end) +pcall(function() player:SetAccountAge(1) end) +player.Idled:connect(onPlayerIdled) + +-- Overriden +onPlayerAdded(player) + +pcall(function() player.Name = [========[_USER_NAME]========] end) +player.CharacterAppearance = "_CHAR_APPEARANCE" +if not test then visit:SetUploadUrl("") end +end) + +if not success then +reportError(err,"CreatePlayer") +end + +if not test then +-- TODO: Async get? +loadfile("")("", -1, 0) +end + +pcall(function() game:SetScreenshotInfo("") end) +pcall(function() game:SetVideoInfo('GamesROBLOX, video, free game, online virtual world') end) +-- use single quotes here because the video info string may have unescaped double quotes \ No newline at end of file diff --git a/processed/studio.lua b/processed/studio.lua new file mode 100644 index 0000000..e97e865 --- /dev/null +++ b/processed/studio.lua @@ -0,0 +1,26 @@ +-- Setup studio cmd bar & load core scripts +pcall(function() game:GetService("InsertService"):SetFreeModelUrl("http://banland.xyz/Game/Tools/InsertAsset.ashx?type=fm&q=%s&pg=%d&rs=%d") end) +pcall(function() game:GetService("InsertService"):SetFreeDecalUrl("http://banland.xyz/Game/Tools/InsertAsset.ashx?type=fd&q=%s&pg=%d&rs=%d") end) + +game:GetService("ScriptInformationProvider"):SetAssetUrl("http://banland.xyz/Asset/") +game:GetService("InsertService"):SetBaseSetsUrl("http://banland.xyz/Game/Tools/InsertAsset.ashx?nsets=10&type=base") +game:GetService("InsertService"):SetUserSetsUrl("http://banland.xyz/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d") +game:GetService("InsertService"):SetCollectionUrl("http://banland.xyz/Game/Tools/InsertAsset.ashx?sid=%d") +game:GetService("InsertService"):SetAssetUrl("http://banland.xyz/Asset/?id=%d") +game:GetService("InsertService"):SetAssetVersionUrl("http://www.roblox.com/Asset/?assetversionid=%d") +game:GetService("InsertService"):SetTrustLevel(0) + +pcall(function() game:GetService("SocialService"):SetFriendUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerid=%d&userid=%d") end) +pcall(function() game:GetService("SocialService"):SetBestFriendUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsBestFriendsWith&playerid=%d&userid=%d") end) +pcall(function() game:GetService("SocialService"):SetGroupUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end) +pcall(function() game:GetService("SocialService"):SetGroupRankUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRank&playerid=%d&groupid=%d") end) +pcall(function() game:GetService("SocialService"):SetGroupRoleUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRole&playerid=%d&groupid=%d") end) +pcall(function() game:GetService("GamePassService"):SetPlayerHasPassUrl("http://banland.xyz/Game/GamePass/GamePassHandler.ashx?Action=HasPass&UserID=%d&PassID=%d") end) +pcall(function() game:GetService("MarketplaceService"):SetProductInfoUrl("https://banland.xyz/marketplace/productinfo?assetId=%d") end) +pcall(function() game:GetService("MarketplaceService"):SetDevProductInfoUrl("https://banland.xyz/marketplace/productDetails?productId=%d") end) +pcall(function() game:GetService("MarketplaceService"):SetPlayerOwnsAssetUrl("https://banland.xyz/ownership/hasasset?userId=%d&assetId=%d") end) + +local result, err = pcall(function() game:GetService("ScriptContext"):AddStarterScript(37801172) end) +if not result then +pcall(function() game:GetService("ScriptContext"):AddCoreScript(37801172,game:GetService("ScriptContext"),"StarterScript") end) +end \ No newline at end of file diff --git a/processed/visit.lua b/processed/visit.lua new file mode 100644 index 0000000..ecce99d --- /dev/null +++ b/processed/visit.lua @@ -0,0 +1,121 @@ +-- Prepended to Edit.lua and Visit.lua and Studio.lua and PlaySolo.lua-- + + if true then + pcall(function() game:SetPlaceID(_PLACE_ID) end) + else + if 0>0 then + pcall(function() game:SetPlaceID(_PLACE_ID) end) + end + end + + visit = game:GetService("Visit") + + local message = Instance.new("Message") + message.Parent = workspace + message.archivable = false + + game:GetService("ScriptInformationProvider"):SetAssetUrl("http://banland.xyz/Asset/") + game:GetService("ContentProvider"):SetThreadPool(16) + pcall(function() game:GetService("InsertService"):SetFreeModelUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?type=fm&q=%s&pg=%d&rs=%d") end) -- Used for free model search (insert tool) + pcall(function() game:GetService("InsertService"):SetFreeDecalUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?type=fd&q=%s&pg=%d&rs=%d") end) -- Used for free decal search (insert tool) + + settings().Diagnostics:LegacyScriptMode() + + game:GetService("InsertService"):SetBaseSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=10&type=base") + game:GetService("InsertService"):SetUserSetsUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?nsets=20&type=user&userid=%d") + game:GetService("InsertService"):SetCollectionUrl("http://www.roblox.com/Game/Tools/InsertAsset.ashx?sid=%d") + game:GetService("InsertService"):SetAssetUrl("http://banland.xyz/Asset/?id=%d") + game:GetService("InsertService"):SetAssetVersionUrl("http://www.roblox.com/Asset/?assetversionid=%d") + + pcall(function() game:GetService("SocialService"):SetFriendUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerid=%d&userid=%d") end) + pcall(function() game:GetService("SocialService"):SetBestFriendUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsBestFriendsWith&playerid=%d&userid=%d") end) + pcall(function() game:GetService("SocialService"):SetGroupUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end) + pcall(function() game:GetService("SocialService"):SetGroupRankUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRank&playerid=%d&groupid=%d") end) + pcall(function() game:GetService("SocialService"):SetGroupRoleUrl("http://banland.xyz/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRole&playerid=%d&groupid=%d") end) + pcall(function() game:GetService("GamePassService"):SetPlayerHasPassUrl("http://banland.xyz/Game/GamePass/GamePassHandler.ashx?Action=HasPass&UserID=%d&PassID=%d") end) + pcall(function() game:SetCreatorID(0, Enum.CreatorType.User) end) + + pcall(function() game:SetScreenshotInfo("") end) + pcall(function() game:SetVideoInfo("") end) + + pcall(function() settings().Rendering.EnableFRM = true end) + pcall(function() settings()["Task Scheduler"].PriorityMethod = Enum.PriorityMethod.AccumulatedError end) + + game:GetService("ChangeHistoryService"):SetEnabled(false) + pcall(function() game:GetService("Players"):SetBuildUserPermissionsUrl("http://banland.xyz//Game/BuildActionPermissionCheck.ashx?assetId=0&userId=%d&isSolo=true") end) + + workspace:SetPhysicsThrottleEnabled(true) + + local addedBuildTools = false + local screenGui = game:GetService("CoreGui"):FindFirstChild("RobloxGui") + + function doVisit() + message.Text = "Loading Game" + if false then + game:Load("") + pcall(function() visit:SetUploadUrl("") end) + else + pcall(function() visit:SetUploadUrl("") end) + end + + + message.Text = "Running" + game:GetService("RunService"):Run() + + message.Text = "Creating Player" + if false then + player = game:GetService("Players"):CreateLocalPlayer(1) + player.Name = [====[Guest _GUEST_NUMBER]====] + else + player = game:GetService("Players"):CreateLocalPlayer(0) + end + player.CharacterAppearance = "" + local propExists, canAutoLoadChar = false + propExists = pcall(function() canAutoLoadChar = game.Players.CharacterAutoLoads end) + + if (propExists and canAutoLoadChar) or (not propExists) then + player:LoadCharacter() + end + + + message.Text = "Setting GUI" + player:SetSuperSafeChat(true) + pcall(function() player:SetMembershipType(Enum.MembershipType.None) end) + pcall(function() player:SetAccountAge(0) end) + + if false then + message.Text = "Setting Ping" + visit:SetPing("http://banland.xyz/Game/ClientPresence.ashx?version=old&PlaceID=_PLACE_ID", 300) + + message.Text = "Sending Stats" + game:HttpGet("") + end + + end + + success, err = pcall(doVisit) + + if not addedBuildTools then + local playerName = Instance.new("StringValue") + playerName.Name = "PlayerName" + playerName.Value = player.Name + playerName.RobloxLocked = true + playerName.Parent = screenGui + + pcall(function() game:GetService("ScriptContext"):AddCoreScript(59431535,screenGui,"BuildToolsScript") end) + addedBuildTools = true + end + + if success then + message.Parent = nil + else + print(err) + if false then + pcall(function() visit:SetUploadUrl("") end) + end + wait(5) + message.Text = "Error on visit: " .. err + if false then + game:HttpPost("http://banland.xyz/Error/Lua.ashx?", "Visit.lua: " .. err) + end + end \ No newline at end of file