Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --SETTINGS--
- gameId = 1337 --put your starter place id here
- --end of settings
- LightingProp = {
- ['Ambient'] = 'Color3Value',
- ['Brightness'] = 'StringValue',
- ['ColorShift_Bottom'] = 'Color3Value',
- ['ColorShift_Top'] = 'Color3Value',
- ['FogColor'] = 'Color3Value',
- ['FogEnd'] = 'StringValue',
- ['FogStart'] = 'StringValue',
- ['GeographicLatitude'] = 'StringValue',
- ['GlobalShadows'] = 'BoolValue',
- ['GlobalShadows'] = 'BoolValue',
- ['OutdoorAmbient'] = 'Color3Value',
- ['Outlines'] = 'BoolValue',
- ['ShadowColor'] = 'Color3Value',
- ['TimeOfDay'] = 'StringValue',
- }
- StarterProp = {
- ['AutoJumpEnabled'] = 'BoolValue',
- ['CameraMaxZoomDistance'] = 'StringValue',
- ['CameraMinZoomDistance'] = 'StringValue',
- ['CameraMode'] = 'StringValue',
- ['DevCameraOcclusionMode'] = 'StringValue',
- ['DevComputerCameraMovementMode'] = 'StringValue',
- ['DevComputerMovementMode'] = 'StringValue',
- ['DevTouchCameraMovementMode'] = 'StringValue',
- ['DevTouchMovementMode'] = 'StringValue',
- ['EnableMouseLockOption'] = 'BoolValue',
- ['HealthDisplayDistance'] = 'StringValue',
- ['LoadCharacterAppearance'] = 'BoolValue',
- ['NameDisplayDistance'] = 'StringValue',
- }
- WorkspaceProp = {
- ['FilteringEnabled'] = 'BoolValue',
- ['Gravity'] = 'StringValue',
- }
- function makePropertyValues(tablepls, servicepls)
- local servprops = Instance.new('Folder', mainFolder)
- servprops.Name = servicepls..' Properties'
- for i,v in pairs(tablepls) do
- local meme = Instance.new(v, servprops)
- meme.Name = i
- if v == 'StringValue' then
- meme.Value = tostring(game:GetService(servicepls)[i])
- else
- meme.Value = game:GetService(servicepls)[i]
- end
- end
- end
- function createFolderWithParts(serv)
- local fold = Instance.new('Folder', mainFolder)
- fold.Name = serv.ClassName
- for i,v in pairs(serv:GetChildren()) do
- if not game:GetService'Players':GetPlayerFromCharacter(v) then
- pcall(function()
- if v:IsA'Terrain' then
- for x,d in pairs(v:GetChildren()) do
- d:Clone().Parent = fold
- end
- return
- end
- v:Clone().Parent = fold
- end)
- end
- end
- end
- function screwYouArchivable(same)
- pcall(function()
- same.Archivable = true
- end)
- for i,v in pairs(same:GetChildren()) do
- screwYouArchivable(v)
- end
- end
- function checkScript(inst)
- if inst:IsA'LocalScript' or inst:IsA'ModuleScript' then
- if ELYSIAN_INITIATED then
- local valuecount = 1
- local count = 1
- local sadmeme = tostring(decompile(inst))
- repeat
- local kek = Instance.new('StringValue', inst)
- kek.Name = 'Source'..valuecount
- kek.Value = string.sub(sadmeme,count,count + 99999)
- count = count + 100000
- valuecount = valuecount + 1
- until string.sub(sadmeme,count,count + 99999) == ''
- end
- end
- for i,v in pairs(inst:GetChildren()) do
- checkScript(v)
- end
- end
- mainFolder = Instance.new'Folder'
- mainFolder.Name = 'Place'
- screwYouArchivable(game)
- for i,v in pairs(game:GetChildren()) do
- createFolderWithParts(v)
- end
- if getnilinstances then
- local nilf = Instance.new('Folder', mainFolder)
- nilf.Name = 'NIL INSTANCES'
- for i,v in pairs(getnilinstances()) do
- screwYouArchivable(v)
- pcall(function()
- if v == mainFolder then return end
- v:Clone().Parent = nilf
- end)
- end
- end
- checkScript(mainFolder)
- terraind = Instance.new('Folder', mainFolder)
- terraind.Name = 'TerrainData'
- workspace:FindFirstChildOfClass'Terrain':CopyRegion(workspace:FindFirstChildOfClass'Terrain'.MaxExtents).Parent = terraind
- makePropertyValues(LightingProp, 'Lighting')
- makePropertyValues(StarterProp, 'StarterPlayer')
- makePropertyValues(WorkspaceProp, 'Workspace')
- game:GetService'TeleportService':SetTeleportSetting('SaveInstanceData', mainFolder)
- game:GetService'TeleportService':Teleport(gameId)
- SaveInstance function (execute this if you want to save specific objects ONLY)
- Code:
- gameId = 1337 --your starter place here
- dat = nil
- function _G.SaveInstance(instancememe)
- if game:GetService'TeleportService':GetTeleportSetting'SaveInstanceData' == nil then
- dat = Instance.new'Folder'
- dat.Name = 'Instance'
- game:GetService'TeleportService':SetTeleportSetting('SaveInstanceData', dat)
- end
- if instancememe ~= nil then
- instancememe.Archivable = true
- local instancememe = instancememe:Clone()
- if instancememe:IsA'LocalScript' or instancememe:IsA'ModuleScript' and ELYSIAN_INITIATED then
- local valuecount = 1
- local count = 1
- local sadmeme = tostring(decompile(instancememe))
- repeat
- local kek = Instance.new('StringValue', instancememe)
- kek.Name = 'Source'..valuecount
- kek.Value = string.sub(sadmeme,count,count + 99999)
- count = count + 100000
- valuecount = valuecount + 1
- until string.sub(sadmeme,count,count + 99999) == ''
- end
- instancememe.Parent = dat
- return 'Copied instance successfully.'
- end
- end
- function _G.finish()
- if game:GetService'TeleportService':GetTeleportSetting'SaveInstanceData' ~= nil then
- game:GetService'TeleportService':Teleport(gameId)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement