function start() ------------------- 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 -----------------------------------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.PhysicsSend = Enum.PhysicsSendMethod.TopNErrors settings().Network.ExperimentalPhysicsEnabled = true settings().Network.WaitingForCharacterLogRate = 100 pcall(function() settings().Diagnostics:LegacyScriptMode() end) -----------------------------------START GAME SHARED SCRIPT------------------------------ local assetId = 1818 -- might be able to remove this now local url = "http://www.lst.ct8.pl/" local scriptContext = game:GetService('ScriptContext') scriptContext.ScriptsDisabled = true game:SetPlaceID(1818, true) 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 .. "/AbuseReport/InGameChatHandler.ashx") end) pcall(function() game:GetService("ScriptInformationProvider"):SetAssetUrl(url .. "/Asset/") end) pcall(function() game:GetService("ContentProvider"):SetBaseUrl(url .. "") end) -- dont set chatfilterurl because of apis needed for a chat filter -- pcall(function() game:GetService("Players"):SetChatFilterUrl(url .. "/Game/ChatFilter.ashx") end) game:GetService("BadgeService"):SetPlaceId(1818) 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() game:SetCreatorID(6, Enum.CreatorType.User) end) pcall(function() game:GetService("SocialService"):SetFriendUrl(url .. "/Game/LuaWebService/HandleSocialRequest.ashx?method=IsFriendsWith&playerid=%d&userid=%d") end) pcall(function() game:GetService("SocialService"):SetBestFriendUrl(url .. "/Game/LuaWebService/HandleSocialRequest.ashx?method=IsBestFriendsWith&playerid=%d&userid=%d") end) pcall(function() game:GetService("SocialService"):SetGroupUrl(url .. "/Game/LuaWebService/HandleSocialRequest.ashx?method=IsInGroup&playerid=%d&groupid=%d") end) pcall(function() game:GetService("SocialService"):SetGroupRankUrl(url .. "/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRank&playerid=%d&groupid=%d") end) pcall(function() game:GetService("SocialService"):SetGroupRoleUrl(url .. "/Game/LuaWebService/HandleSocialRequest.ashx?method=GetGroupRole&playerid=%d&groupid=%d") end) pcall(function() game:GetService("GamePassService"):SetPlayerHasPassUrl(url .. "/Game/GamePass/GamePassHandler.ashx?Action=HasPass&UserID=%d&PassID=%d") end) pcall(function() game:GetService("MarketplaceService"):SetProductInfoUrl(url .. "/marketplace/productinfo?assetId=%d") end) pcall(function() game:GetService("MarketplaceService"):SetDevProductInfoUrl(url .. "/marketplace/productDetails?productId=%d") end) pcall(function() game:GetService("MarketplaceService"):SetPlayerOwnsAssetUrl(url .. "/ownership/hasasset?userId=%d&assetId=%d") end) pcall(function() game:SetPlaceVersion(1) end) pcall(function() game:SetVIPServerOwnerId(68816760) end) -- pcall(function() -- if access then -- loadfile(url .. "/Game/PlaceSpecificScript.ashx?PlaceId=" .. placeId .. "&" .. access)() -- end -- end) end --pcall(function() game:GetService("NetworkServer"):SetIsPlayerAuthenticationRequired(false) end) settings().Diagnostics.LuaRamLimit = 0 --settings().Network:SetThroughputSensitivity(0.08, 0.01) --settings().Network.SendRate = 35 --settings().Network.PhysicsSend = 0 -- 1==RoundRobin game:GetService("Players").PlayerAdded:connect(function(player) print("Player " .. player.userId .. " added") end) game:GetService("Players").PlayerRemoving:connect(function(player) print("Player " .. player.userId .. " leaving") end) --[[When I was trying to patch 2015M I had issues with that as well, I figured out that the issue was the 2015 rccservice does not insert the camera script and control scripts automatically, a huge pain. you have to do it manually.]]-- game:GetService('Players').PlayerAdded:connect(function(player) player.CharacterAdded:connect(function(char) local a = game:GetObjects("rbxasset://fonts/characterCameraScript.rbxmx")[1]:Clone() a.Parent = char local test = game:GetObjects("rbxasset://fonts/characterControlScript.rbxmx")[1]:Clone() test.Parent = char end) end) -- yield so that file load happens in the heartbeat thread wait() -- load the game game:Load("rbxasset://a.rbxl") -- now hold the fuck down first we fix assets then we start server mint was here --Author: Atomic (Edited by Bitl) --Date: 9/22/2020 --Due to a Roblox update, asset links (http://roblox.com/asset?id=) don't work because Roblox is using a different link for assets now. 2020 Roblox can automatically change the link to the new asset link, but not old clients. --This script can look through a game to change asset links to what Roblox uses now. (https://assetdelivery.roblox.com/v1/asset?id=) --It does not change scripts! Only properties of objects that ask for an asset link, like decals, sounds, and tools. --Make sure to backup your place in case something goes wrong, or you need to revert changes! --Note by Bitl: This was slightly modified so that it is more compatable with older clients. You can now also easily swap out the URL in case the URL breaks over time. I also added more URL variants. local assetPropertyNames = {"Texture", "TextureId", "SoundId", "MeshId", "SkyboxUp", "SkyboxLf", "SkyboxBk", "SkyboxRt", "SkyboxFt", "SkyboxDn", "PantsTemplate", "ShirtTemplate", "Graphic", "Image", "LinkedSource", "AnimationId"} local variations = {"http://www%.roblox%.com/asset/%?id=", "http://www%.roblox%.com/asset%?id=", "http://%.roblox%.com/asset/%?id=", "http://%.roblox%.com/asset%?id=", "http://%roblox%.com/asset/%?id=", "http://%roblox%.com/asset%?id="} local converturl = "http://www.lst.ct8.pl/asset?id=" function GetDescendants(o) local allObjects = {} function FindChildren(Object) for _,v in pairs(Object:GetChildren()) do table.insert(allObjects,v) FindChildren(v) end end FindChildren(o) return allObjects end local replacedProperties = 0--Amount of properties changed for i, v in pairs(GetDescendants(game)) do for _, property in pairs(assetPropertyNames) do pcall(function() if v[property] and not v:FindFirstChild(property) then --Check for property, make sure we're not getting a child instead of a property assetText = string.lower(v[property]) for _, variation in pairs(variations) do v[property], matches = string.gsub(assetText, variation, converturl) if matches > 0 then replacedProperties = replacedProperties + 1 print("Replaced " .. property .. " asset link for " .. v.Name) break end end end end) end end print("DONE! Replaced " .. replacedProperties .. " properties") print("assets fixed!") print("assets fixed!") -- ok now start server :3 -- Now start the connection ns:Start(53640) scriptContext:SetTimeout(0) scriptContext.ScriptsDisabled = false ------------------------------END START GAME SHARED SCRIPT-------------------------- print("Patched by jpy and mint :3") -- StartGame -- game:GetService("RunService"):Run() end