roblox saveinstance soyrce code --[[ SaveInstance V3 - Swift THIS IS A SAVEINSTANCE CORE NOT A SAVEINSTANCE SCRIPT. THINK OF THIS AS A MOCK OF THE BUILT IN FUNCTION. ALL THIS DOES IT MAKE THE FUNCTION YOU NEED A COPIER SCRIPT THAT CALLS _G.SInstance(Instance, Name) FOR THIS TO WORK. You have three options of saveinstance that you can change by setting "saveMethod". 1 - Using the "writefile" function if you support it 2 - Using a webhost like v2 3 - Using the new create model method roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code NEW: If you just want to save the place right away, go to the "SAVE PLACE UI OPTIONS" and enable it. You also need to get one of your place's id and set "savePlaceId" to it. This is where your place will be exported to. Made by Pi and sad Moon :c --]] -- ========== MAIN SETTINGS ========== local saveMethod = 3 -- 1 = writefile, 2 = host, 3 = createmodel local debugMessages = true -- Debug messages local APIOverride = [==[]==] -- The JSON Api of Roblox if you have no TrustCheck roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code -- ========== FOR HOST OPTION ========== -- You need your host with the php set up on it for this to work. Make sure read/write permissions are enabled for php. -- You don't need it if you have a writefile function. Actually no setup if you have writefile ahaha. local host = "http://slowcomplicatedafmethod.com/Master.php" -- Your php file local splitSize = 800000 -- If your host supports bigger post size then change this (1mb default) -- ========== SAVE PLACE UI OPTIONS ========== local savePlaceId = 724225093 -- Put the PlaceID of ONE OF THE PLACES THAT YOU OWN here from https://www.roblox.com/develop which will be updated by this script. roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code local savePlaceExtra = true -- Nil Instances, PlayerGui, etc local savePlaceScripts = true -- If you have decompiler local savePlaceTerrain = true -- Opens Terrain Chunk Selector local savePlaceTerrainShowChunks = true -- Shows the selection boxes which are your selected chunks local savePlaceNilInstances = true -- Nil Instances local savePlaceUseWriteFile = false -- Writes the place file to your disk instead if you have a writefile function -- ========== DO NOT MODIFY BELOW ========== if saveMethod == 1 and not writefile then print("no writefile ending") return end roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code local http = game:GetService("HttpService") local API = {} local APIJson local LPlayer = game:GetService("Players").LocalPlayer local selectingTerrain = false local terrainChunks = {} local terrainChunksTemp = {} local terrainBeen = {} local placeMode = false roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code local instanceCount = 0 local saveString = "" local totalInstances = 1 local savedProps = {} local instanceRefs = {} local storedInstances = {} local splits = 0 roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code local globalName = "" local extraFolder = Instance.new("Folder") extraFolder.Name = "_IMPORTANT_AND_EXTRA_INSTANCES_" local terrainLoader = Instance.new("Script",extraFolder) terrainLoader.Name = "LoadTerrain" local terrainData = Instance.new("ModuleScript",terrainLoader) terrainData.Name = "Data" local consoleFunc = printconsole or writeconsole roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code local success,err = ypcall(function() if APIOverride and APIOverride ~= "" then APIJson = APIOverride else APIJson = game:HttpGetAsync("http://anaminus.github.io/rbx/json/api/latest.json") end end) if err then roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code if script:FindFirstChild("API") then APIJson = require(script.API) end end APIJson = http:JSONDecode(APIJson) for i,v in pairs(APIJson) do if v.type == "Class" then API[v.Name] = v roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code API[v.Name].Properties = {} elseif v.type == "Property" then local dontuse = false for i2,v2 in pairs(v.tags) do if v2 == "deprecated" or v2 == "hidden" or v2 == "readonly" then dontuse = true end end if not dontuse then table.insert(API[v.Class].Properties,v) roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code end end end local function getProperties(obj) if savedProps[obj.ClassName] then return savedProps[obj.ClassName] end local tempProps = {} local currentClass = obj.ClassName roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code while currentClass do for i,v in pairs(API[currentClass].Properties) do table.insert(tempProps,v) end currentClass = API[currentClass].Superclass end savedProps[obj.ClassName] = tempProps return tempProps end roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code local function appendToHost() game:HttpPostAsync(host,table.concat(storedInstances)) --http:PostAsync(host,http:JSONEncode({Option = "Append",Name = globalName,Data = table.concat(storedInstances)})) splits = splits + 1 if debugMessages then if consoleFunc then -- Stealth option is always better af consoleFunc("SaveAmounts: "..tostring(splits).." Progress = "..tostring(instanceCount/totalInstances*100).."%") else print("SaveAmounts: "..tostring(splits),"Progress = "..tostring(instanceCount/totalInstances*100).."%") end roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code end end local function submitSave() game:HttpPostAsync(host,http:JSONEncode({Option = "Submit",Name = globalName})) end local function clearAll() game:HttpPostAsync(host,http:JSONEncode({Option = "Clear"})) end roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code local function checkRef(obj) local check = instanceRefs[obj] if check then return tostring(check) end instanceRefs[obj] = instanceCount return tostring(instanceCount) end roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code local function setRef(obj) if obj == nil then return "null" end local check = instanceRefs[obj] if check then return "RBX"..tostring(check) end instanceCount = instanceCount + 1 instanceRefs[obj] = instanceCount return "RBX"..tostring(instanceCount) end roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code local function cleanUglyAf(str) if #str == 0 then return "" end local firstChar = str:sub(1,1) local firstByte = string.byte(firstChar) if firstByte >= 32 and firstByte <= 126 then return firstChar..cleanUglyAf(str:sub(2)) elseif firstByte == 9 or firstByte == 10 then roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code return firstChar..cleanUglyAf(str:sub(2)) else return cleanUglyAf(str:sub(2)) end end function CreateInstance(cls,props) local inst = Instance.new(cls) for i,v in pairs(props) do inst[i] = v roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code end return inst end local function createTerrainGui() local TerrainGui = CreateInstance("Frame",{Style=0,Active=false,AnchorPoint=Vector2.new(0,0),BackgroundColor3=Color3.new(0.10980392992496,0.16470588743687,0.22352942824364),BackgroundTransparency=0,BorderColor3=Color3.new(0.10588236153126,0.16470588743687,0.20784315466881),BorderSizePixel=1,ClipsDescendants=false,Draggable=false,Position=UDim2.new(0,0,0.5,0),Rotation=0,Selectable=false,Size=UDim2.new(0,150,0,150),SizeConstraint=0,Visible=false,ZIndex=1,Name="Main",}) local TerrainGui2 = CreateInstance("TextLabel",{Font=4,FontSize=5,Text="Terrain Chunk Selection",TextColor3=Color3.new(1,1,1),TextScaled=false,TextSize=14,TextStrokeColor3=Color3.new(0,0,0),TextStrokeTransparency=1,TextTransparency=0,TextWrapped=false,TextXAlignment=2,TextYAlignment=1,Active=false,AnchorPoint=Vector2.new(0,0),BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,BorderColor3=Color3.new(0.10588236153126,0.16470588743687,0.20784315466881),BorderSizePixel=1,ClipsDescendants=false,Draggable=false,Position=UDim2.new(0,0,0,0),Rotation=0,Selectable=false,Size=UDim2.new(1,0,0,20),SizeConstraint=0,Visible=true,ZIndex=1,Name="Title",Parent = TerrainGui}) local TerrainGui3 = CreateInstance("TextLabel",{Font=3,FontSize=5,Text="Use your mouse to click on all the terrain to save. When you are finished, press done.",TextColor3=Color3.new(1,1,1),TextScaled=false,TextSize=14,TextStrokeColor3=Color3.new(0,0,0),TextStrokeTransparency=1,TextTransparency=0,TextWrapped=true,TextXAlignment=2,TextYAlignment=1,Active=false,AnchorPoint=Vector2.new(0,0),BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,BorderColor3=Color3.new(0.10588236153126,0.16470588743687,0.20784315466881),BorderSizePixel=1,ClipsDescendants=false,Draggable=false,Position=UDim2.new(0,0,0,25),Rotation=0,Selectable=false,Size=UDim2.new(1,0,0,50),SizeConstraint=0,Visible=true,ZIndex=1,Name="Desc",Parent = TerrainGui}) local TerrainGui4 = CreateInstance("TextLabel",{Font=4,FontSize=5,Text="Chunks: 0",TextColor3=Color3.new(1,1,1),TextScaled=false,TextSize=14,TextStrokeColor3=Color3.new(0,0,0),TextStrokeTransparency=1,TextTransparency=0,TextWrapped=true,TextXAlignment=2,TextYAlignment=1,Active=false,AnchorPoint=Vector2.new(0,0),BackgroundColor3=Color3.new(1,1,1),BackgroundTransparency=1,BorderColor3=Color3.new(0.10588236153126,0.16470588743687,0.20784315466881),BorderSizePixel=1,ClipsDescendants=false,Draggable=false,Position=UDim2.new(0,0,0,80),Rotation=0,Selectable=false,Size=UDim2.new(1,0,0,20),SizeConstraint=0,Visible=true,ZIndex=1,Name="Chunks",Parent = TerrainGui}) local TerrainGui5 = CreateInstance("TextButton",{Font=4,FontSize=6,Text="Done",TextColor3=Color3.new(1,1,1),TextScaled=false,TextSize=18,TextStrokeColor3=Color3.new(0,0,0),TextStrokeTransparency=1,TextTransparency=0,TextWrapped=false,TextXAlignment=2,TextYAlignment=1,AutoButtonColor=true,Modal=false,Selected=false,Style=0,Active=true,AnchorPoint=Vector2.new(0,0),BackgroundColor3=Color3.new(0.17254902422428,0.22745099663734,0.28627452254295),BackgroundTransparency=0,BorderColor3=Color3.new(0.10588236153126,0.16470588743687,0.20784315466881),BorderSizePixel=1,ClipsDescendants=false,Draggable=false,Position=UDim2.new(0,5,1,-30),Rotation=0,Selectable=true,Size=UDim2.new(1,-10,0,25),SizeConstraint=0,Visible=true,ZIndex=1,Name="Done",Parent = TerrainGui}) roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code return TerrainGui end local terrainGui = createTerrainGui() terrainGui.Parent = game:GetService("CoreGui").RobloxGui local ignorePlaceClasses = { ["CoreGui"] = true, ["Players"] = true, ["Chat"] = true, roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code ["StarterPlayerScripts"] = true, ["StarterCharacterScripts"] = true } local function placeInstCheck(inst) return not ignorePlaceClasses[inst.ClassName] and not game:GetService("Players"):GetPlayerFromCharacter(inst) and inst ~= workspace.CurrentCamera end local propFunc = { ["bool"] = function(inst,prop) roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code saveString = saveString..'\n'..tostring(inst[prop])..'' end, ["float"] = function(inst,prop) saveString = saveString..'\n'..tostring(inst[prop])..'' end, ["int"] = function(inst,prop) saveString = saveString..'\n'..tostring(inst[prop])..'' end, ["string"] = function(inst,prop) local cleanName = inst[prop] roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code cleanName = string.gsub(cleanName,"&","&") cleanName = string.gsub(cleanName,"<","<") cleanName = string.gsub(cleanName,">",">") saveString = saveString..'\n'..cleanName..'' end, ["BrickColor"] = function(inst,prop) saveString = saveString..'\n'..tostring(inst[prop].Number)..'' end, ["Vector2"] = function(inst,prop) saveString = saveString..'\n' roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code saveString = saveString..'\n'..inst[prop].x..'' saveString = saveString..'\n'..inst[prop].y..'' saveString = saveString..'\n' end, ["Vector3"] = function(inst,prop) saveString = saveString..'\n' saveString = saveString..'\n'..inst[prop].x..'' saveString = saveString..'\n'..inst[prop].y..'' saveString = saveString..'\n'..inst[prop].z..'' saveString = saveString..'\n' roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code end, ["CoordinateFrame"] = function(inst,prop) local X,Y,Z,R00,R01,R02,R10,R11,R12,R20,R21,R22 = inst[prop]:components() saveString = saveString..'\n' saveString = saveString..'\n'..X..'' saveString = saveString..'\n'..Y..'' saveString = saveString..'\n'..Z..'' saveString = saveString..'\n'..R00..'' saveString = saveString..'\n'..R01..'' saveString = saveString..'\n'..R02..'' roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code saveString = saveString..'\n'..R10..'' saveString = saveString..'\n'..R11..'' saveString = saveString..'\n'..R12..'' saveString = saveString..'\n'..R20..'' saveString = saveString..'\n'..R21..'' saveString = saveString..'\n'..R22..'' saveString = saveString..'\n' end, ["Content"] = function(inst,prop) local cleanName = tostring(inst[prop]) roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code cleanName = string.gsub(cleanName,"&","&") cleanName = string.gsub(cleanName,"<","<") cleanName = string.gsub(cleanName,">",">") saveString = saveString..'\n'..cleanName..'' end, ["UDim2"] = function(inst,prop) saveString = saveString..'\n' saveString = saveString..'\n'..inst[prop].X.Scale..'' saveString = saveString..'\n'..inst[prop].X.Offset..'' saveString = saveString..'\n'..inst[prop].Y.Scale..'' roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code saveString = saveString..'\n'..inst[prop].Y.Offset..'' saveString = saveString..'\n' end, ["Color3"] = function(inst,prop) saveString = saveString..'\n' saveString = saveString..'\n'..inst[prop].r..'' saveString = saveString..'\n'..inst[prop].g..'' saveString = saveString..'\n'..inst[prop].b..'' saveString = saveString..'\n' end, roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code ["NumberRange"] = function(inst,prop) saveString = saveString..'\n'..tostring(inst[prop].Min).." "..tostring(inst[prop].Max).." "..'' end, ["NumberSequence"] = function(inst,prop) saveString = saveString..'\n' for i,v in pairs(inst[prop].Keypoints) do saveString = saveString..tostring(v.Time).." "..tostring(v.Value).." "..tostring(v.Envelope).." " end saveString = saveString..'' end, roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code ["ColorSequence"] = function(inst,prop) saveString = saveString..'\n' for i,v in pairs(inst[prop].Keypoints) do saveString = saveString..tostring(v.Time).." "..tostring(v.Value.r).." "..tostring(v.Value.g).." "..tostring(v.Value.b).." 0 " end saveString = saveString..'' end, ["Rect2D"] = function(inst,prop) saveString = saveString..'\n' saveString = saveString..'\n' roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code saveString = saveString..'\n'..tostring(inst[prop].Min.X)..'' saveString = saveString..'\n'..tostring(inst[prop].Min.Y)..'' saveString = saveString..'\n' saveString = saveString..'\n' saveString = saveString..'\n'..tostring(inst[prop].Max.X)..'' saveString = saveString..'\n'..tostring(inst[prop].Max.Y)..'' saveString = saveString..'\n' saveString = saveString..'\n' end, ["ProtectedString"] = function(inst,prop) roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code local prostr = inst[prop] if placeMode and decompile and (inst:IsA("LocalScript") or inst:IsA("ModuleScript")) and savePlaceScripts and inst.Source == "" then prostr = decompile(inst) end if inst == terrainData then prostr = "return [==["..table.concat(terrainChunks,"|").."]==]" terrainChunks = {} end saveString = saveString..'\n' end, ["Object"] = function(inst,prop) saveString = saveString..'\n'..setRef(inst[prop])..'' end } roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code local ignorePropNames = { ["Archivable"] = true, ["DataCost"] = true, ["ClassName"] = true, ["RobloxLocked"] = true, ["Parent"] = true } local function writeInstance(inst,altData) if API[inst.ClassName] and (placeMode and placeInstCheck(inst) or not placeMode) then roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code if saveMethod == 2 and string.len(table.concat(storedInstances)) >= splitSize then appendToHost() storedInstances = {} end instanceCount = instanceCount + 1 local props = getProperties(inst) saveString = saveString..'\n' saveString = saveString.."\n" for _,prop in pairs(props) do ypcall(function() roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code if ignorePropNames[prop.Name] then return end local propF = propFunc[prop.ValueType] if propF then propF(inst,prop.Name) elseif inst[prop.Name].Value then saveString = saveString..'\n'..inst[prop.Name].Value..'' end table.insert(storedInstances,saveString) saveString = "" end) roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code end if inst:IsA("UnionOperation") and ypcall(function()local lolaf = inst.AssetId end) then -- Had to do this, "BinaryString" type values were not in the API dump. local cleanName = tostring(inst.AssetId) cleanName = string.gsub(cleanName,"&","&") cleanName = string.gsub(cleanName,"<","<") cleanName = string.gsub(cleanName,">",">") saveString = saveString..'\n'..cleanName..'' saveString = saveString..'\n' saveString = saveString..'\n'..inst.InitialSize.x..'' saveString = saveString..'\n'..inst.InitialSize.y..'' roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code saveString = saveString..'\n'..inst.InitialSize.z..'' saveString = saveString..'\n' elseif inst:IsA("MeshPart") and ypcall(function()local lolaf = inst.MeshID end) then local cleanName = tostring(inst.MeshID) cleanName = string.gsub(cleanName,"&","&") cleanName = string.gsub(cleanName,"<","<") cleanName = string.gsub(cleanName,">",">") saveString = saveString..'\n'..cleanName..'' saveString = saveString..'\n' saveString = saveString..'\n'..inst.InitialSize.x..'' roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code saveString = saveString..'\n'..inst.InitialSize.y..'' saveString = saveString..'\n'..inst.InitialSize.z..'' saveString = saveString..'\n' end saveString = saveString.."\n" if inst == extraFolder then if getnilinstances and savePlaceNilInstances then local nilFolder = Instance.new("Folder",extraFolder) nilFolder.Name = "Nil Instances" roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code local nilledInstances = {} for i,v in pairs(getnilinstances()) do if v.Name ~= "_DexTrash_" and v ~= extraFolder then table.insert(nilledInstances,v) end end writeInstance(nilFolder,nilledInstances) end if savePlaceExtra then roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code local playerFolder = Instance.new("Folder",extraFolder) playerFolder.Name = "Instances In Player" writeInstance(playerFolder,LPlayer:GetChildren()) local playerGuiFolder = Instance.new("Folder",extraFolder) playerGuiFolder.Name = "Instances In PlayerGui" writeInstance(playerGuiFolder,LPlayer:FindFirstChildOfClass("PlayerGui"):GetChildren()) local cameraFolder = Instance.new("Folder",extraFolder) cameraFolder.Name = "Instances In Camera" roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code writeInstance(cameraFolder,workspace.CurrentCamera:GetChildren()) local chatFolder = Instance.new("Folder",extraFolder) chatFolder.Name = "Instances In Chat" writeInstance(chatFolder,game:GetService("Chat"):GetChildren()) local SPSFolder = Instance.new("Folder",extraFolder) SPSFolder.Name = "Instances In StarterPlayerScripts" writeInstance(SPSFolder,game:GetService("StarterPlayer"):FindFirstChildOfClass("StarterPlayerScripts"):GetChildren()) roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code local SCSFolder = Instance.new("Folder",extraFolder) SCSFolder.Name = "Instances In StarterCharacterScripts" writeInstance(SCSFolder,game:GetService("StarterPlayer"):FindFirstChildOfClass("StarterCharacterScripts"):GetChildren()) end local unionFixer = Instance.new("Script",extraFolder) unionFixer.Name = "Fix Union Collisions - READ" unionFixer.Source = '--[[\n THIS GUIDE WILL HELP YOU FIX THE COLLISIONS WITH UNIONS AND MESHPARTS IN THE MAP.\n \n Run this script in the command bar to select all the Unions and MeshParts in the map.\n \n After that, go to the properties frame and set the CollisionFidelity property to "Hull"\n \n Then, set them back to "Default"\n \n You have fixed all union collisions.\n \n \n - Credit to Jester for original instructions\n--]]\n\nlocal unions = {}\n\nfunction getUnions(root)\n for i,v in pairs(root:GetChildren()) do\n if v:IsA("UnionOperation") or v:IsA("MeshPart") then\n table.insert(unions,v)\n end\n getUnions(v)\n end\nend\n\ngetUnions(workspace)\n\ngame.Selection:Set(unions)' writeInstance(unionFixer) elseif altData then roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code for i,v in pairs(altData) do writeInstance(v) end else for i,v in pairs(inst:GetChildren()) do writeInstance(v) end end saveString = saveString.."\n" table.insert(storedInstances,saveString) roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code saveString = "" end end local function removeExtension(str) if string.find(str,".rbxm") then return string.sub(str,1,string.find(str,".rbxm")-1) elseif string.find(str,".rbxmx") then return string.sub(str,1,string.find(str,".rbxmx")-1) else roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code return str end end local function countTotal(obj) for i,v in pairs(obj:GetChildren()) do totalInstances = totalInstances + 1 countTotal(v) end end roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code local function createModel(name,data) local url = "https://data.roblox.com/Data/Upload.ashx?assetid=0&type=Model&name="..name.."&description=&genreTypeId=1&ispublic=False&allowComments=False" local id = game:HttpPostAsync(url,data) if debugMessages then if consoleFunc then consoleFunc("Your "..name.." Instance was saved to the id: "..id) else print("Your "..name.." Instance was saved to the id: "..id) end roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code end end function _G.SInstance(inst,name,terrainRegions) placeMode = false name = removeExtension(name) if saveMethod == 2 then clearAll() end instanceCount = 0 roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code totalInstances = 1 countTotal(inst) instanceRefs = {} storedInstances = {} globalName = name splits = 0 saveString = [[ null nil]] roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code if debugMessages then if not ypcall(function()local lolaf = Instance.new("UnionOperation").AssetId end) then if consoleFunc then consoleFunc("RUNNING WITH NO UNSCRIPTABLE PATCH") else print("RUNNING WITH NO UNSCRIPTABLE PATCH") end else if consoleFunc then consoleFunc("RUNNING WITH UNSCRIPTABLE PATCH c:") roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code else print("RUNNING WITH UNSCRIPTABLE PATCH c:") end end end writeInstance(inst) table.insert(storedInstances,"\n") if saveMethod == 1 then writefile(name..".rbxmx",table.concat(storedInstances)) roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code elseif saveMethod == 2 then appendToHost() submitSave() elseif saveMethod == 3 then createModel(name,table.concat(storedInstances)) end if debugMessages then if consoleFunc then consoleFunc("Saved with "..tostring(splits).." splits.") else roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code print("Saved with "..tostring(splits).." splits.") end end storedInstances = {} end function DoSPlace() placeMode = true instanceCount = 0 instanceRefs = {} roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code storedInstances = {} saveString = [[ null nil]] for i,v in pairs(game:GetChildren()) do writeInstance(v) end writeInstance(extraFolder) if savePlaceTerrain then writeInstance(terrainLoader) end roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code table.insert(storedInstances,"\n") if savePlaceUseWriteFile then if writefile then local filterChars = {"/","\\",":","?","\"","<",">","|"} local gameName = game:GetService("MarketplaceService"):GetProductInfo(game.PlaceId).Name for i,v in pairs(filterChars) do gameName = string.gsub(gameName,v,"") end writefile(tostring(game.PlaceId).." - "..gameName..".rbxlx",table.concat(storedInstances)) return true roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code end return false else return game:HttpPostAsync("https://data.roblox.com/Data/Upload.ashx?assetid="..tostring(savePlaceId).."&type=Place",table.concat(storedInstances)) end end function _G.SPlace() if debugMessages then if consoleFunc then roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code consoleFunc("SaveInstance V3 - Swift: Now saving place "..tostring(game.PlaceId)) else print("SaveInstance V3 - Swift: Now saving place "..tostring(game.PlaceId)) end end if savePlaceTerrain then terrainLoader.Source = 'local regions = {}\n\nfor w in string.gmatch(require(game:FindFirstChild("LoadTerrain").Data),"[^|]+") do\n table.insert(regions,game:GetService("HttpService"):JSONDecode(w))\nend\n\nlocal chunkSize = 64\n\nlocal function makeRegion(str)\n local t = {}\n for w in string.gmatch(str,"[^,]+") do\n table.insert(t,tonumber(w))\n end\n local regionPos = Vector3.new(t[1],t[2],t[3])\n local newRegion = Region3.new(regionPos + Vector3.new(-chunkSize/2,-chunkSize/2,-chunkSize/2), regionPos + Vector3.new(chunkSize/2,chunkSize/2,chunkSize/2))\n return newRegion\nend\n\nlocal function makeTable(o)\n local t = {}\n for i = 1,chunkSize/4 do\n t[i] = {}\n for j = 1,chunkSize/4 do\n t[i][j] = {}\n for k = 1,chunkSize/4 do\n if not o then\n t[i][j][k] = Enum.Material.Air\n else\n t[i][j][k] = 0\n end\n end\n end\n end\n return t\nend\n\nlocal function getPos(str)\n local t = {}\n for w in string.gmatch(str,"[^,]+") do\n table.insert(t,tonumber(w))\n end\n return t[1],t[2],t[3]\nend\n\nlocal materialMap = {}\nmaterialMap[1] = Enum.Material.Plastic\nmaterialMap[2] = Enum.Material.Wood\nmaterialMap[3] = Enum.Material.Slate\nmaterialMap[4] = Enum.Material.Concrete\nmaterialMap[5] = Enum.Material.CorrodedMetal\nmaterialMap[6] = Enum.Material.DiamondPlate\nmaterialMap[7] = Enum.Material.Foil\nmaterialMap[8] = Enum.Material.Grass\nmaterialMap[9] = Enum.Material.Ice\nmaterialMap[10] = Enum.Material.Marble\nmaterialMap[11] = Enum.Material.Granite\nmaterialMap[12] = Enum.Material.Brick\nmaterialMap[13] = Enum.Material.Pebble\nmaterialMap[14] = Enum.Material.Sand\nmaterialMap[15] = Enum.Material.Fabric\nmaterialMap[16] = Enum.Material.SmoothPlastic\nmaterialMap[17] = Enum.Material.Metal\nmaterialMap[18] = Enum.Material.WoodPlanks\nmaterialMap[19] = Enum.Material.Cobblestone\nmaterialMap[20] = Enum.Material.Air\nmaterialMap[21] = Enum.Material.Water\nmaterialMap[22] = Enum.Material.Rock\nmaterialMap[23] = Enum.Material.Glacier\nmaterialMap[24] = Enum.Material.Snow\nmaterialMap[25] = Enum.Material.Sandstone\nmaterialMap[26] = Enum.Material.Mud\nmaterialMap[27] = Enum.Material.Basalt\nmaterialMap[28] = Enum.Material.Ground\nmaterialMap[29] = Enum.Material.CrackedLava\nmaterialMap[30] = Enum.Material.Neon\nmaterialMap[31] = Enum.Material.Asphalt\nmaterialMap[32] = Enum.Material.LeafyGrass\nmaterialMap[33] = Enum.Material.Salt\nmaterialMap[34] = Enum.Material.Limestone\nmaterialMap[35] = Enum.Material.Pavement\n\nlocal function toMaterial(num)\n return materialMap[num]\nend\n\nprint("Loading Terrain")\n\nfor c,chunk in pairs(regions) do\n for i,v in pairs(chunk) do\n local region = makeRegion(i)\n\n local m = makeTable()\n local o = makeTable(true)\n\n for i2,v2 in pairs(v) do \n local x,y,z = getPos(v2[1])\n m[x][y][z] = toMaterial(v2[2])\n o[x][y][z] = v2[3]\n end\n\n workspace.Terrain:WriteVoxels(region,4,m,o)\n end\n print("Terrain Chunk: "..tostring(c))\n wait()\nend\n\nprint("Finished Loading Terrain - Save The Place")' selectingTerrain = true terrainGui.Chunks.Text = "Chunks: 0" terrainGui.Visible = true roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code repeat wait() until not selectingTerrain end local stopwatch = tick() local id = DoSPlace() local message = "Courtney ;(" if savePlaceUseWriteFile then message = (id and "The place has been saved to a file." or "Place didn't save :c no writefile or error") else message = (id and "The place has been saved. Open it from the develop page on Roblox." or "Place didn't save :c something went wrong tell me") end roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code if debugMessages then if consoleFunc then consoleFunc(message) consoleFunc("Saving took "..tostring(tick()-stopwatch).."s.") else print(message) print("Saving took "..tostring(tick()-stopwatch).."s.") end end storedInstances = {} roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code end -- Terrain Stuff local mouse = LPlayer:GetMouse() local chunkSize = 64 local chunks = 0 local materialConv = {} materialConv[Enum.Material.Plastic] = 1 materialConv[Enum.Material.Wood] = 2 materialConv[Enum.Material.Slate] = 3 roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code materialConv[Enum.Material.Concrete] = 4 materialConv[Enum.Material.CorrodedMetal] = 5 materialConv[Enum.Material.DiamondPlate] = 6 materialConv[Enum.Material.Foil] = 7 materialConv[Enum.Material.Grass] = 8 materialConv[Enum.Material.Ice] = 9 materialConv[Enum.Material.Marble] = 10 materialConv[Enum.Material.Granite] = 11 materialConv[Enum.Material.Brick] = 12 materialConv[Enum.Material.Pebble] = 13 roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code materialConv[Enum.Material.Sand] = 14 materialConv[Enum.Material.Fabric] = 15 materialConv[Enum.Material.SmoothPlastic] = 16 materialConv[Enum.Material.Metal] = 17 materialConv[Enum.Material.WoodPlanks] = 18 materialConv[Enum.Material.Cobblestone] = 19 materialConv[Enum.Material.Air] = 20 materialConv[Enum.Material.Water] = 21 materialConv[Enum.Material.Rock] = 22 materialConv[Enum.Material.Glacier] = 23 roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code materialConv[Enum.Material.Snow] = 24 materialConv[Enum.Material.Sandstone] = 25 materialConv[Enum.Material.Mud] = 26 materialConv[Enum.Material.Basalt] = 27 materialConv[Enum.Material.Ground] = 28 materialConv[Enum.Material.CrackedLava] = 29 materialConv[Enum.Material.Neon] = 30 materialConv[Enum.Material.Asphalt] = 31 materialConv[Enum.Material.LeafyGrass] = 32 materialConv[Enum.Material.Salt] = 33 roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code materialConv[Enum.Material.Limestone] = 34 materialConv[Enum.Material.Pavement] = 35 local function createMarker(pos,ne) if savePlaceTerrainShowChunks then local mark = Instance.new("Part",workspace.CurrentCamera) mark.Name = "TerTop" mark.Anchored = true mark.Transparency = 1 mark.CanCollide = false roblox saveinstance soyrce code How to dowload it? roblox saveinstance soyrce code mark.Size = Vector3.new(chunkSize,chunkSize,chunkSize) mark.CFrame = CFrame.new(pos) local box = Instance.new("SelectionBox",mark) box.Adornee = mark end terrainChunksTemp[tostring(pos)] = ne terrainBeen[tostring(pos)] = true chunks = chunks + 1 roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code if chunks % 10 == 0 then table.insert(terrainChunks,game:GetService("HttpService"):JSONEncode(terrainChunksTemp)) terrainChunksTemp = {} end terrainGui.Chunks.Text = "Chunks: "..tostring(chunks) end local function fillTerrain(start) if terrainBeen[tostring(start)] or not selectingTerrain then return end local checkRegion = Region3.new(start + Vector3.new(-chunkSize/2,-chunkSize/2,-chunkSize/2), start + Vector3.new(chunkSize/2,chunkSize/2,chunkSize/2)) roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code checkRegion:ExpandToGrid(4) local m,o = workspace.Terrain:ReadVoxels(checkRegion,4) local nonempty = {} local size = m.Size local airCount = 0 for x = 1,size.X do for y = 1,size.Y do for z = 1,size.Z do if m[x][y][z] == Enum.Material.Air then roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code airCount = airCount + 1 else table.insert(nonempty,{tostring(x)..","..tostring(y)..","..tostring(z),materialConv[m[x][y][z]],o[x][y][z]}) end end end end if airCount == chunkSize^3/64 then return end roblox saveinstance soyrce code How to get it? roblox saveinstance soyrce code createMarker(start,nonempty) spawn(function()fillTerrain(start + Vector3.new(chunkSize,0,0))end) spawn(function()fillTerrain(start + Vector3.new(-chunkSize,0,0))end) spawn(function()fillTerrain(start + Vector3.new(0,chunkSize,0))end) spawn(function()fillTerrain(start + Vector3.new(0,-chunkSize,0))end) spawn(function()fillTerrain(start + Vector3.new(0,0,chunkSize))end) spawn(function()fillTerrain(start + Vector3.new(0,0,-chunkSize))end) end local function makeRegion(str) roblox saveinstance soyrce code PasteShr roblox saveinstance soyrce code local t = {} for w in string.gmatch(str,"[^,]+") do table.insert(t,tonumber(w)) end local regionPos = Vector3.new(t[1],t[2],t[3]) local newRegion = Region3.new(regionPos + Vector3.new(-chunkSize/2,-chunkSize/2,-chunkSize/2), regionPos + Vector3.new(chunkSize/2,chunkSize/2,chunkSize/2)) return newRegion end mouse.Button1Down:connect(function() roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code if selectingTerrain then local initPos = mouse.Hit.p local gridX = math.floor(initPos.X/chunkSize)*chunkSize local gridY = math.floor(initPos.Y/chunkSize)*chunkSize local gridZ = math.floor(initPos.Z/chunkSize)*chunkSize fillTerrain(Vector3.new(gridX,gridY,gridZ)) end end) roblox saveinstance soyrce code How to use it? roblox saveinstance soyrce code terrainGui.Done.MouseButton1Click:connect(function() if savePlaceTerrainShowChunks then for i,v in pairs(workspace.CurrentCamera:GetChildren()) do if v.Name == "TerTop" then v:Destroy() end end end selectingTerrain = false terrainGui.Visible = false table.insert(terrainChunks,game:GetService("HttpService"):JSONEncode(terrainChunksTemp)) roblox saveinstance soyrce code How to get it for free? roblox saveinstance soyrce code terrainChunksTemp = {} terrainBeen = {} chunks = 0 end) roblox saveinstance soyrce code