forked from retpirato/Roblox-Scripts
-
Notifications
You must be signed in to change notification settings - Fork 0
/
001Copy.lua
171 lines (166 loc) · 7.79 KB
/
001Copy.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
-- Made by 001 from v3rmillion.net.
-- Map Copy Script: Rewritten
Settings = {
Copy = true, -- Using this option might cause lag in game but it doesn't remove the game.
Creator = '001', -- Created by 001 from V3rmillion.net.
EverythingAnchored = false, -- Anchors every part.
CopyLightingProperties = true, -- Copy ambient, skybox, timeofday, globalshadows, etc properties from Lighting.
}
AllowedClassnames = {'Part','WedgePart','SpawnLocation','UnionOperation','Seat','VehicleSeat','TrussPart'}
source = ""
newline = [[
]]
tablecheck = function(t,value) -- Function: tablecheck, Description: checks a table for a value, Variables: table (table), value (string).
for i,v in pairs(t) do
if v==value then
return true
end
end
return nil
end
printFunction = function(str) -- Function: printFunction, Description: Custom print function, Variables: print (string).
source=source..";"..str
end
copy = function(children) -- no time to document this,
local PartClass = children.ClassName
if tablecheck(AllowedClassnames, PartClass) then
local PartName = "P"..math.random(100,999)
printFunction(PartName.."=Instance.new('"..PartClass.."', Workspace)") -- Instance.new
upc=tostring('false')
if children:IsA'UnionOperation' then
upc=tostring(children.UsePartColor)
end
shape='"N"'
if children:IsA'Part' or children:IsA'SpawnLocation' or children:IsA'Seat' then
shape=tostring(children.Shape)
end
formfactor='"N"'
if children:IsA'Part' or children:IsA'WedgePart' or children:IsA'SpawnLocation' or children:IsA'Seat' then
formfactor=tostring(children.FormFactor)
end
local Anchored = tostring(children.Anchored)
local Locked = tostring(children.Locked)
local Name = children.Name
local Size = children.Size
local CanCollide = tostring(children.CanCollide)
local Archivable = tostring(children.Archivable)
local CFrame = children.CFrame
local Transparency = tonumber(children.Transparency)
local Reflectance = tonumber(children.Reflectance)
local Material = children.Material
local BrickColor = children.BrickColor
local fc = PartName..",'"..Name.."',"..tostring(Settings.EverythingAnchored)..","..shape..","..upc..","..CanCollide..","..Locked..","..Anchored..","..Archivable..","..formfactor..",{"..tostring(Size).."},{"..tostring(CFrame).."},'"..tostring(BrickColor).."',"..Transparency..","..tostring(Material)..","..Reflectance
printFunction("c("..fc..")")
printFunction("ss("..PartName..","..tostring(children.BackSurface)..","..tostring(children.BottomSurface)..","..tostring(children.FrontSurface)..","..tostring(children.LeftSurface)..","..tostring(children.RightSurface)..","..tostring(children.TopSurface)..")")
for i,v in pairs(children:GetChildren()) do
if v:IsA'Decal' then
printFunction("d("..v.Name..","..tonumber(v.Transparency)..",'"..tostring(v.Texture).."',"..tostring(v.Face)..",'"..tostring(v.Name).."')") -- Decal
elseif v:IsA'SpecialMesh' then
-- For mesh (d): p=part,t=meshid,te=meshtexture,face=size,n=name,ff=meshtype
printFunction("d("..PartName..",'"..tostring(v.MeshId).."','"..tostring(v.TextureId).."',{"..tostring(v.Scale).."},'"..tostring(v.Name).."',"..tostring(v.MeshType)..")") -- Mesh
end
end
end
end
local decryptFunc = [[
c=function(part,name,everythinganchored,shape,usepartcolor,cancollide,locked,anchored,archivable,formfactor,size,cframe,brickcolor,transparency,material,reflectance)
part.Name=name
function tabltostring(tabl)
s=''
for i,v in pairs(tabl) do
s=s..v
end
return s
end
function n(nu)
return tonumber(nu)
end
if part:IsA'Part' or part:IsA'SpawnLocation' or part:IsA'Seat' then
part.Shape=shape
end
if part:IsA'UnionOperation' then
part.UsePartColor=usepartcolor
end
part.CanCollide=cancollide
part.Locked=locked
if everythinganchored == true then
part.Anchored = true
else
part.Anchored = anchored
end
part.Archivable = archivable
if part:IsA'Part' or part:IsA'WedgePart' or part:IsA'SpawnLocation' or part:IsA'Seat' then
part.FormFactor=formfactor
end
part.Size = Vector3.new(n(size[1]),n(size[2]),n(size[3]))
part.CFrame = CFrame.new(n(cframe[1]),n(cframe[2]),n(cframe[3]),n(cframe[4]),n(cframe[5]),n(cframe[6]),n(cframe[7]),n(cframe[8]),n(cframe[9]),n(cframe[10]),n(cframe[11]),n(cframe[12]))
part.BrickColor = BrickColor.new(brickcolor)
part.Material = material
part.Transparency = transparency
part.Reflectance = reflectance
end
]]
local function magiclines( str )
if str:sub(-1)~="\n" then str=str.."\n" end
return str:gmatch("(.-)\n")
end
function findLoop(childre)
Instance.new('Model',game.Lighting).Name='Copy'
findLoop2 = function(children) -- Function: findLoop, Description: Just a find loop, Variables: children (Part).
for i,v in pairs(children:GetChildren()) do
if tablecheck(AllowedClassnames, v.ClassName) then
if Settings.Copy == true then
v:Clone().Parent = game.Lighting.Copy
else
v.Parent = game.Lighting.Copy
end
end
if v:FindFirstChild'HumanoidRootPart' ~= true then -- Anti player copy.
findLoop2(v)
end
end
end
findLoop2(childre)
wait(2)
for line in magiclines(decryptFunc) do
printFunction(line)
wait()
end
wait(4)
printFunction("d=function(p,t,te,face,n,ff)if type(ff)=='string' then me=Instance.new('SpecialMesh',p);me.MeshType=ff;me.MeshId=t;me.TextureId=te;me.Name=n;me.Scale=Vector3.new(face[1],face[2],face[3]); else xx=Instance.new('Decal',p);xx.Texture=te;xx.Transparency=t;xx.Face=face;xx.Name=n;end;end") -- Decal (d) function.
printFunction("ss=function(p,bs,bz,fs,ls,rs,ts)p.BackSurface=bs;p.BottomSurface=bz;p.FrontSurface=fs;p.LeftSurface=ls;p.RightSurface=rs;p.TopSurface=ts;end") -- SetSurface (ss) function.
if Settings.CopyLightingProperties == true then
printFunction("game.Lighting.Ambient = Color3.new("..tostring(game.Lighting.Ambient)..")")
printFunction("game.Lighting.TimeOfDay = '"..tostring(game.Lighting.TimeOfDay).."'")
printFunction("game.Lighting.Brightness = "..tostring(game.Lighting.Brightness))
printFunction("game.Lighting.ColorShift_Bottom = Color3.new("..tostring(game.Lighting.ColorShift_Bottom)..")")
printFunction("game.Lighting.ColorShift_Top = Color3.new("..tostring(game.Lighting.ColorShift_Top)..")")
printFunction("game.Lighting.GlobalShadows = "..tostring(game.Lighting.GlobalShadows))
printFunction("game.Lighting.OutdoorAmbient = Color3.new("..tostring(game.Lighting.OutdoorAmbient)..")")
printFunction("game.Lighting.ShadowColor = Color3.new("..tostring(game.Lighting.ShadowColor)..")")
printFunction("game.Lighting.FogColor = Color3.new("..tostring(game.Lighting.FogColor)..")")
printFunction("game.Lighting.FogEnd = "..tostring(game.Lighting.FogEnd))
printFunction("game.Lighting.FogStart = "..tostring(game.Lighting.FogStart))
printFunction("game.Lighting.GeographicLatitude = "..tostring(game.Lighting.GeographicLatitude))
for i,v in pairs(game.Lighting:GetChildren()) do
if v:IsA'Sky' then
printFunction("a=Instance.new('Sky',game.Lighting)")
printFunction("a.CelestialBodiesShown="..tostring(v.CelestialBodiesShown))
printFunction("a.SkyboxBk='"..tostring(v.SkyboxBk).."'")
printFunction("a.SkyboxDn='"..tostring(v.SkyboxDn).."'")
printFunction("a.SkyboxFt='"..tostring(v.SkyboxFt).."'")
printFunction("a.SkyboxLf='"..tostring(v.SkyboxLf).."'")
printFunction("a.SkyboxRt='"..tostring(v.SkyboxRt).."'")
printFunction("a.SkyboxUp='"..tostring(v.SkyboxUp).."'")
printFunction("a.StarCount="..tostring(v.StarCount))
printFunction("a.Name='"..tostring(v.Name).."'")
end
end
wait(2)
end
for i,v in pairs(game.Lighting.Copy:GetChildren()) do
copy(v)
end
Clipboard.set(source)
end
findLoop(game.Workspace) -- Start the script.