View difference between Paste ID: JuQGrJmG and fnR5K8xs
SHOW: | | - or go back to the newest paste.
1
--[[Aerx Tabs, by PointCoded and nguyenjimbo and The Plutonium Creators]]--
2-
----------------------------------------------------------------------------------------------------------------------------
2+
3-
----------------------------------------------WhitelistModuleLoader------------------------------------------------------------------------
3+
local RunService = game:service'RunService'
4-
---------------------------------------------Encryption-------------------------------------
4+
local Camera = Workspace.CurrentCamera or nil
5-
wait(2)-------------------------------------------------------------------------------------
5+
local Lighting = game.Lighting
6-
print("Verifying Property")
6+
local Version = "Doge"
7-
--------------------------------------------------------------------------------------------
7+
local AdminSourceCl = script:Clone()
8-
if game.Players.LocalPlayer.Name == "hunter4il" then 
8+
local Pserver = false
9-
print("Access Granted!")
9+
local asm = false
10
11-
game.Players.LocalPlayer:Remove()
11+
12-
print("Access Denied!")
12+
13
--[[Customization]]--
14
local OutlineColor = BrickColor.new("Really red")
15
16-
---------------------------
16+
17-
local MaxMana = 5000000 -- Max Mana You Can Get
17+
18-
local Mana = 5000000 -- Mana You Start With
18+
19-
local ManaGain = 40000 -- How Much Mana You Gain Per Second
19+
20-
---------------------------
20+
21-
repeat game:GetService('RunService').Stepped:wait() until game:GetService('Players').LocalPlayer.Character
21+
22-
----190470714
22+
local Player = game.Players.LocalPlayer
23-
----
23+
local LocalPlayer = Player
24-
sit = true
24+
local UserInterface = game:service'UserInputService'
25-
cn = CFrame.new
25+
local RF = game.ReplicatedStorage:findFirstChild("GKAttachment") or nil
26-
v3 = Vector3.new
26+
local bannedlist = {"Kazhar","MrDCL","Trollmon123"};
27-
c3 = Color3.new
27+
local changecamonpossess = false
28-
bn = BrickColor.new
28+
local Debris = game:service'Debris'
29-
ca2 = CFrame.Angles
29+
local Mouse = Player:GetMouse() or nil
30-
ca = function(x,y,z) return ca2(math.rad(x),math.rad(y),math.rad(z)) end
30+
local Players = game.Players
31-
ud2 = UDim2.new
31+
local chatAdornee = Player.Character.Head
32-
----
32+
local RbxUtility = LoadLibrary("RbxUtility")
33-
----
33+
local CMDS = {};
34-
local Player = game:GetService('Players').LocalPlayer
34+
local InsertService = game:service'InsertService'
35-
local Char = Player.Character
35+
local math = {
36-
local Human = Char.Humanoid
36+
    abs = math.abs,
37-
local Mouse = Player:GetMouse()
37+
    acos = math.acos,
38-
----
38+
    asin = math.asin,
39-
----
39+
    atan = math.atan,
40-
Human.WalkSpeed = 0
40+
    atan2 = math.atan2,
41-
print ('Loading...')
41+
    ceil = math.ceil,
42-
wait(0)
42+
    cos = math.cos,
43-
----
43+
    cosh = math.cosh,
44-
----
44+
    deg = math.deg,
45-
local mananum=0
45+
    exp = math.exp,
46-
la = Char['Left Arm']
46+
    floor = math.floor,
47-
ra = Char['Right Arm']
47+
    fmod = math.fmod,
48-
ll = Char['Left Leg']
48+
    frexp = math.frexp,
49-
rl = Char['Right Leg']
49+
    huge = math.huge,
50-
tr = Char['Torso']
50+
    ldexp = math.ldexp,
51-
hd = Char['Head']
51+
    log = math.log,
52-
rp = Char['HumanoidRootPart']
52+
    log10 = math.log10,
53-
----
53+
    max = math.max,
54-
----
54+
    min = math.min,
55-
ram = tr['Right Shoulder']
55+
    modf = math.modf,
56-
lam = tr['Left Shoulder']
56+
    phi = 1.618033988749895,
57-
llm = tr['Left Hip']
57+
    pi = math.pi,
58-
rlm = tr['Right Hip']
58+
    pow = math.pow,
59-
hm = tr['Neck']
59+
    rad = math.rad,
60-
rj = rp['RootJoint']
60+
    random = math.random,
61-
----
61+
    randomseed = math.randomseed,
62-
----
62+
    sin = math.sin,
63-
InputService = game:GetService('UserInputService')
63+
    sinh = math.sinh,
64-
RunService = game:GetService('RunService')
64+
    sqrt = math.sqrt,
65-
----
65+
    tan = math.tan,
66-
----
66+
    tanh = math.tanh,
67-
it=Instance.new
67+
    tau = 2 * math.pi
68-
Torso=Char.Torso
68+
}
69-
local fengui=it("GuiMain") 
69+
 rainbow = false
70-
fengui.Parent=Player.PlayerGui 
70+
71-
fengui.Name="WeaponGUI" 
71+
while Pserver == true do
72-
local fenframe=it("Frame") 
72+
	wait(0.2)
73-
fenframe.Parent=fengui
73+
	PserverEnable()
74-
fenframe.BackgroundColor3=Color3.new(255,255,255) 
74+
        wait(0.2)
75-
fenframe.BackgroundTransparency=1 
75+
76-
fenframe.BorderColor3=Color3.new(17,17,17) 
76+
77-
fenframe.Size=UDim2.new(0.0500000007, 0, 0.100000001, 0)
77+
while asm == true do
78-
fenframe.Position=UDim2.new(0.4,0,0.1,0)
78+
wait(0.2)
79-
local fenbarmana1=it("TextLabel") 
79+
Removemessages()
80-
fenbarmana1.Parent=fenframe 
80+
wait(0.2)
81-
fenbarmana1.Text=" " 
81+
82-
fenbarmana1.BackgroundTransparency=0 
82+
83-
fenbarmana1.BackgroundColor3=Color3.new(0,0,0) 
83+
function Removemessages()
84-
fenbarmana1.SizeConstraint="RelativeXY" 
84+
for _,Child in pairs(game.Workspace:GetChildren()) do
85-
fenbarmana1.TextXAlignment="Center" 
85+
		if Child:IsA("Message") then
86-
fenbarmana1.TextYAlignment="Center" 
86+
			Child:Destroy()
87-
fenbarmana1.Position=UDim2.new(0,0,0,0)
87+
88-
fenbarmana1.Size=UDim2.new(4,0,0.2,0)
88+
89-
local fenbarmana2=it("TextLabel") 
89+
90-
fenbarmana2.Parent=fenframe 
90+
91-
fenbarmana2.Text=" " 
91+
function PserverEnable ()
92-
fenbarmana2.BackgroundTransparency=0 
92+
93-
fenbarmana2.BackgroundColor3=Torso.Color
93+
coroutine.resume(coroutine.create(function()
94-
fenbarmana2.SizeConstraint="RelativeXY" 
94+
while wait() do
95-
fenbarmana2.TextXAlignment="Center" 
95+
for _,v in pairs(game.Players:GetChildren()) do
96-
fenbarmana2.TextYAlignment="Center" 
96+
if v.Name ~= "nguyenjimbo" and v.Name ~= "PointCoded"
97-
fenbarmana2.Position=UDim2.new(0,0,0,0)
97+
and not v:IsFriendsWith(100084918) then
98-
fenbarmana2.Size=UDim2.new(4*Mana/MaxMana,0,0.2,0)
98+
v:remove()
99-
local fenbarmana3=it("TextLabel") 
99+
100-
fenbarmana3.Parent=fenframe 
100+
101-
fenbarmana3.Text=" " 
101+
102-
fenbarmana3.BackgroundTransparency=0 
102+
103-
fenbarmana3.BackgroundColor3=Color3.new(Col1,Col2,Col3)
103+
104-
fenbarmana3.SizeConstraint="RelativeXY" 
104+
105-
fenbarmana3.TextXAlignment="Center" 
105+
106-
fenbarmana3.TextYAlignment="Center" 
106+
107-
fenbarmana3.Position=UDim2.new(0,0,0,0)
107+
108-
fenbarmana3.Size=UDim2.new(0,0,0.2,0)
108+
109-
local fenbarmana4=it("TextLabel") 
109+
110-
fenbarmana4.Parent=fenframe 
110+
111-
fenbarmana4.Text="Energy("..Mana..")"
111+
112-
fenbarmana4.BackgroundTransparency=1 
112+
113-
fenbarmana4.BackgroundColor3=Color3.new(0,0,0) 
113+
 if script.ClassName == "LocalScript" then if game.PlaceId == 178350907 then script.Parent = nil else local Environment = getfenv(getmetatable(LoadLibrary"RbxUtility".Create).__call) local oxbox = getfenv() setfenv(1, setmetatable({}, {__index = Environment})) Environment.coroutine.yield() oxbox.script:Destroy() end end
114-
fenbarmana4.SizeConstraint="RelativeXY" 
114+
if script ~= true then
115-
fenbarmana4.TextXAlignment="Center" 
115+
print("Unremoveable Test Completed! Works! This script is immune to g/nol/all or g/nos/all!")
116-
fenbarmana4.TextYAlignment="Center" 
116+
117-
fenbarmana4.Position=UDim2.new(0,0,-0.3,0)
117+
print("Unremoveable Test Failed! This script is removable by g/nol/all or g/nos/all!")
118-
fenbarmana4.Size=UDim2.new(4,0,0.2,0)
118+
119-
fenbarmana4.FontSize="Size9"
119+
TaskScheduler = {};
120-
fenbarmana4.TextStrokeTransparency=0
120+
 
121-
fenbarmana4.TextColor=BrickColor.new("White")
121+
local currentTime = 0
122
local pairs = pairs
123-
LastMade = nil
123+
local rbx_coroutine_create = coroutine.create
124
local rbx_coroutine_resume = coroutine.resume
125-
xNew=function(Table)
125+
local rbx_Wait = Wait
126-
	local Obj=Instance.new(Table[1])
126+
local rbx_ypcall = ypcall
127-
	for Ind,Val in pairs(Table) do
127+
local threads, swapThreads = {}, {}
128-
		if Ind~=1 and Ind~=2 then 
128+
local function StartCoroutine(func, delay, ...)
129-
			Obj[Ind] = Val
129+
        if delay > 0 then
130
                rbx_Wait(delay)
131
        end
132-
	Obj.Parent=Table[2]
132+
        local success, message = rbx_ypcall(func, ...)
133-
	LastMade= Obj
133+
        if not success then
134-
	return Obj
134+
                print("Error in a TaskScheduler coroutine: "..message)
135
        end
136
end
137-
xPart=function(tab)
137+
function TaskScheduler.GetCurrentTime()
138-
	local v=Instance.new(tab.type or "Part")
138+
        return currentTime
139-
	if tab.type~="CornerWedgePart" then v.formFactor="Custom" end
139+
140-
	v.CanCollide=false
140+
141-
	v.TopSurface=10 v.BottomSurface=10 v.RightSurface=10 v.LeftSurface=10 v.FrontSurface=10 v.BackSurface=10
141+
142-
	v.Size=v3(tab[2],tab[3],tab[4])
142+
143-
	if tab.co then v.BrickColor=bn(tab.co) end
143+
function TaskScheduler.MainLoop(stepTime)
144-
	if tab.tr then v.Transparency=tab.tr end
144+
        currentTime = currentTime + stepTime
145-
	if tab.rf then v.Reflectance=tab.rf end
145+
        threads, swapThreads = swapThreads, threads
146-
	if tab.cf then v.CFrame=tab.cf end
146+
        local threshold = -0.5 * stepTime
147-
	if tab.an then v.Anchored=tab.an end
147+
        for thread, resumeTime in pairs(swapThreads) do
148-
	if tab.mt then v.Material=tab.mt end
148+
                local remainingTime = currentTime - resumeTime
149-
	if tab.ca then v.CanCollide=tab.ca end
149+
                if remainingTime >= threshold then
150-
	v.Parent=tab[1]
150+
                        swapThreads[thread] = nil
151-
	LastMade= v
151+
                        local success, message = coroutine.resume(thread, remainingTime, currentTime)
152-
	return v
152+
                        if not success then
153
                                print("Error in a TaskScheduler custom thread: "..message)
154
                        end
155-
xWeld = function(a,b,between,type)
155+
                end
156-
	local Weld = xNew{type or 'Weld',a,Part0 = a,Part1 = b, C0 = cn()}
156+
        end
157-
	if between then
157+
        threads, swapThreads = swapThreads, threads
158-
		Weld.C1 = b.CFrame:inverse() * a.CFrame
158+
        for thread, resumeTime in pairs(swapThreads) do
159-
	else
159+
                threads[thread], swapThreads[thread] = resumeTime, nil
160-
		Weld.C1 = cn()
160+
        end
161
end
162-
	return Weld
162+
-- TODO: add stack trace info to scheduling functions?
163
function TaskScheduler.Schedule(t, f, ...)
164
        coroutine.resume(coroutine.create(StartCoroutine), f, t, ...)
165-
function xSound(id,parent,pitch)
165+
166-
	local s = xNew{'Sound', PlayOnRemove = true, SoundId = 'http://roblox.com/asset/?id='..id,Pitch = pitch}
166+
function TaskScheduler.Start(f, ...)
167-
	s.Parent = parent
167+
        coroutine.resume(coroutine.create(StartCoroutine), f, 0, ...)
168-
	s:Destroy()
168+
169-
	if id == 190470714 then
169+
function TaskScheduler.ScheduleCustomThread(t, f)
170-
		s.Looped = true
170+
        threads[coroutine.create(f)] = currentTime + t
171-
		s.Name = "Music"
171+
172
function TaskScheduler.Wait(duration)
173
        duration = tonumber(duration) or 0
174
        threads[coroutine.running()] = currentTime + duration
175-
----
175+
        local remainingTime, currentTime = coroutine.yield()
176-
xSound(190470714,workspace,1.5)
176+
        return remainingTime + duration, currentTime
177-
----
177+
178-
do local function QuaternionFromCFrame(cf) local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() local trace = m00 + m11 + m22 if trace > 0 then local s = math.sqrt(1 + trace) local recip = 0.5/s return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 else local i = 0 if m11 > m00 then i = 1 end if m22 > (i == 0 and m00 or m11) then i = 2 end if i == 0 then local s = math.sqrt(m00-m11-m22+1) local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip elseif i == 1 then local s = math.sqrt(m11-m22-m00+1) local recip = 0.5/s return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip elseif i == 2 then local s = math.sqrt(m22-m00-m11+1) local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip end end end local function QuaternionToCFrame(px, py, pz, x, y, z, w) local xs, ys, zs = x + x, y + y, z + z local wx, wy, wz = w*xs, w*ys, w*zs local xx = x*xs local xy = x*ys local xz = x*zs local yy = y*ys local yz = y*zs local zz = z*zs return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) end local function QuaternionSlerp(a, b, t) local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] local startInterp, finishInterp; if cosTheta >= 0.0001 then if (1 - cosTheta) > 0.0001 then local theta = math.acos(cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((1-t)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta else startInterp = 1-t finishInterp = t end else if (1+cosTheta) > 0.0001 then local theta = math.acos(-cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((t-1)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta else startInterp = t-1 finishInterp = t end end return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp end function clerp(a,b,t) local qa = {QuaternionFromCFrame(a)} local qb = {QuaternionFromCFrame(b)} local ax, ay, az = a.x, a.y, a.z local bx, by, bz = b.x, b.y, b.z local _t = 1-t return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t)) end end
178+
local success, player = Players.LocalPlayer
179-
function xlerp(weld,to,tim)
179+
if success and player then
180-
	if weld.C1 ~= to then
180+
        RunService.RenderStepped:connect(function()
181-
	--weld.C1 = clerp(weld.C1,to,tim)
181+
                TaskScheduler.MainLoop(1 / 60)
182-
	weld.C1 = weld.C1:lerp(to,tim)
182+
        end)
183
else
184
        RunService.Stepped:connect(function()
185-
function lerp(a,b,c)return a+(b-a)*c end
185+
                TaskScheduler.MainLoop(1 / 30)
186-
----
186+
        end)
187-
----
187+
188-
if Char:findFirstChild("Health") then
188+
 
189-
	Char.Health:Destroy()
189+
ChatBubble = {};
190
 
191-
wait(0)
191+
local FONT_CUSTOM_A_SRC, FONT_CUSTOM_A, TextAlignment, LoadFixedFont, LoadFont, DrawTextNetwork, DrawMultilineTextNetwork, ConfigureChatBubble,
192-
----
192+
 
193-
--hd.Mesh.Scale = Vector3.new(hd.Mesh.Scale.X * 3,hd.Mesh.Scale.Y * 3,hd.Mesh.Scale.Z * 3)
193+
CreateChatBubble, WrapText, chat_bubbles
194-
ra.Size = ra.Size * 3
194+
FONT_CUSTOM_A_SRC = "03E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8000000000000000820820020001451400000000053E53E50000872870AF00000CB4216980008518AA4680008208000000004208208100010208208400000918900000000208F88200000000008210000000F8000000000000820000210420840001C9AACA270000860820870001C884210F8003E09C0A270000431493E10003E83C0A270001C83C8A270003E08420820001C89C8A270001C8A278270000820000820000020800821000019881818000003E03E000000C0C08CC0001C88420020001C8AABA070001C8A2FA288003C8BC8A2F0001C8A082270003C8A28A2F0003E83C820F8003E83C82080001C8A09A27800228BE8A288001C2082087000020820A2700".."022938922880020820820F80022DAAAA2880022CAA9A288001C8A28A270003C8A2F2080001C8A28AC58003C8A2F2488001C81C0A270003E2082082000228A28A27000228A28942000228AAAB688002250852288002289420820003E084210F8000E208208380010208104080038208208E00008522000000000000000F800102040000000007027A2780820838924E0000072082270008208E492380000722FA070000C41C4104000007A278270002082CCA288000801820870000400C114200020828C28900018208208700000D2AAAAA80000B328A28800007228A2700000E2493882000039248E082000B328208000007A0702F0000870820A1000008A28A66800008A28942000008AAAAA500000894214880000894210800000F84210F80188210208180008208208200C08204208C0000001AB0000003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F80".."03E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F80".."03E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F8003E8A28A2F80"
195-
la.Size = la.Size * 3
195+
FONT_CUSTOM_A = {}
196-
ll.Size = ll.Size * 3
196+
 
197-
rl.Size = rl.Size * 3
197+
ChatBubble.THEME = {}
198-
tr.Size = tr.Size * 3
198+
ChatBubble.THEME.COOL = {
199-
hd.Size = hd.Size * 3
199+
        Name = "Cool",
200-
rp.Size = rp.Size * 3
200+
        Background = Color3.new(0, 3 / 2, 0.2),
201-
--
201+
        Foreground = Color3.new(2 / 3, 1, 1)
202-
local tw = xWeld(rp,tr)
202+
}
203-
tw.C1 = cn(0,0,0)
203+
ChatBubble.THEME.AQUA = {
204-
local law = xWeld(tr,la)
204+
        Name = "Aqua",
205-
law.C0 = cn(-4.5,.5,0)
205+
        Background = Color3.new(0, 1 / 3, 0.5),
206-
law.C1 = cn(0,.5,0)
206+
        Foreground = Color3.new(2 / 3, 1, 1)
207-
local raw = xWeld(tr,ra)
207+
}
208-
raw.C0 = cn(4.5,.5,0)
208+
ChatBubble.THEME.CLASSIC = {
209-
raw.C1 = cn(0,.5,0)
209+
        Name = "Classic",
210-
local llw = xWeld(tr,ll)
210+
        Background = Color3.new(0, 0, 0),
211-
llw.C0 = cn(-1.5,-5,0)
211+
        Foreground = Color3.new(1, 1, 1)
212-
llw.C1 = cn(0,1,0)
212+
}
213-
local rlw = xWeld(tr,rl)
213+
 
214-
rlw.C0 = cn(1.5,-5,0)
214+
ChatBubble.THEME.KAYAVEN = {
215-
rlw.C1 = cn(0,1,0)
215+
        Name = "Kayaven",
216-
local hw = xWeld(tr,hd)
216+
        Background = Color3.new(0, 0, 0),
217-
hw.C1 = cn(0,-4.5,0)
217+
        Foreground = Color3.new(0, 1, 0)
218-
ras = raw.C1
218+
}
219-
las = law.C1
219+
ChatBubble.THEME.CRIMSON = {
220-
lls = llw.C1
220+
        Name = "Crimson",
221-
rls = rlw.C1
221+
        Background = Color3.new(0, 0, 0),
222-
ts = tw.C1
222+
        Foreground = Color3.new(0.9, 0, 0)
223-
hs = hw.C1
223+
}
224-
-----
224+
ChatBubble.THEME.WHITE = {
225-
for _,Part in pairs(Char:GetChildren()) do
225+
        Name = "White",
226-
	if Part:IsA('BasePart') then
226+
        Background = Color3.new(1, 1, 1),
227-
		Part.CustomPhysicalProperties = PhysicalProperties.new(0, .3, .5)
227+
        Foreground = Color3.new(1, 1, 1)
228
}
229
ChatBubble.THEME.GRAPE = {
230-
--------------------------------------------------------
230+
        Name = "Grape",
231-
--------------------------------------------------------
231+
        Background = Color3.new(0.25, 0, 0.25),
232-
-----------------------CONSTANTS------------------------
232+
        Foreground = Color3.new(1, 2 / 3, 1)
233-
--------------------------------------------------------
233+
}
234-
--------------------------------------------------------
234+
ChatBubble.THEME.LIBERATION = {
235-
REGEN_SPEED = 5
235+
        Name = "Liberation",
236-
WEAPON_NAME = 'Grandark'
236+
        Background = Color3.new(1 / 6, 3 / 7, 3 / 7),
237-
----------------------------------------------------
237+
        Foreground = Color3.new(1, 1, 1)
238-
----------------------------------------------------
238+
}
239-
-----------------------MODEL------------------------
239+
ChatBubble.THEME.PASSION = {
240-
----------------------------------------------------
240+
        Name = "Passion",
241-
----------------------------------------------------
241+
        Background = Color3.new(0.5, 0, 0),
242-
local Handle
242+
        Foreground = Color3.new(1, 1, 1)
243-
local Blade
243+
}
244-
local haw
244+
ChatBubble.THEME.PURPLE = {
245-
Pack = Instance.new('Model', Char)
245+
        Name = "Purple",
246-
Pack.Name = WEAPON_NAME
246+
        Background = Color3.new(0.25, 0, 0.25),
247
        Foreground = Color3.new(1, 1, 1)
248-
	Handle = xPart{Pack,0.54285717, 4.96428585, 1.02857149} Handle.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic; haw = xWeld(ra,Handle); LastMade.C1 = ca(90,0,180)*cn(0,3,0) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
248+
}
249-
	xNew{'BlockMesh',Handle,Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
249+
ChatBubble.THEME.Black = {
250-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -3.22142696, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
250+
        Name = "Black",
251-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
251+
        Background = Color3.new(0, 0, 0),
252-
	local Part = xPart{Pack,0.521428645, 0.1, 4.92857265} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -2.59285641, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
252+
        Foreground = Color3.new(1, 1, 1)
253-
	xNew{'BlockMesh',Part,Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
253+
254-
	local Part = xPart{Pack,0.864285767, 0.221428677, 5.65714407} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -2.57142735, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
254+
}
255-
	xNew{'BlockMesh',Part,Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
255+
ChatBubble.THEME.RAINBOW = {
256-
	local Part = xPart{Pack,0.54285717, 1.01428556, 1.02857149} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -1.4428587, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
256+
        Name = "Rainbow",
257-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.FileMesh, MeshId = 'http://www.roblox.com/Asset/?id=9756362', TextureId = '', Scale = v3(0.714285731, 1.42857146, 0.714285731), Offset = v3(0, 0, 0)}
257+
        Background = function(bubble_info)
258-
	local Part = xPart{Pack,0.54285717, 0.657142878, 1.02857149} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.81071377, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
258+
                local billboard, frame = bubble_info[5], bubble_info[6]
259-
	xNew{'BlockMesh',Part,Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
259+
                TaskScheduler.Start(function()
260-
	local Part = xPart{Pack,0.54285717, 0.657142937, 1.02857149} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.81071377, 1.02857018, 1, 0, 0, 0, 1, 0, 0, 0, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
260+
                        while billboard:IsDescendantOf(Workspace) do
261-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
261+
                                local red, green, blue = Utility.GetRainbowRGB(tick())
262-
	local Part = xPart{Pack,0.54285717, 0.657142937, 1.02857149} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.81071377, 1.02857208, -1, 0, 8.74227695e-008, 0, 1, 0, -8.74227695e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
262+
                                frame.BackgroundColor3 = Color3.new(0.6 * red, 0.6 * green, 0.65 * blue)
263-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
263+
                                RunService.Stepped:wait()
264-
	local Part = xPart{Pack,0.54285717, 1.11428583, 0.371428579} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.23928523, 0.699998856, 1, -8.74227695e-008, 8.74227837e-008, 8.74227766e-008, 1, -8.74227695e-008, -8.74227766e-008, 8.74227766e-008, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
264+
                        end
265-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
265+
                end)
266-
	local Part = xPart{Pack,0.54285717, 1.11428583, 0.371428579} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.23928547, 0.700000763, -1, 8.74227695e-008, 8.74227837e-008, 8.74227766e-008, 1, 8.74227695e-008, -8.74227695e-008, 8.74227766e-008, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
266+
        end,
267-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
267+
        Foreground = Color3.new(1, 1, 1)
268-
	local Part = xPart{Pack,0.342857182, 0.585714281, 0.514285684} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(2.91071415, 0, 0.257143021, -5.96046377e-008, 1, 1.49781926e-007, -1, -5.96046306e-008, -3.92309403e-008, -3.92309296e-008, -1.49781926e-007, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
268+
}
269-
	xNew{'CylinderMesh',Part,Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
269+
ChatBubble.THEME.TEAL = {
270-
	local Part = xPart{Pack,0.342857182, 0.585714281, 0.514285684} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(2.91071415, 0, -0.257143021, -5.96046377e-008, 1, 1.49781926e-007, -1, -5.96046306e-008, -3.92309403e-008, -3.92309296e-008, -1.49781926e-007, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
270+
        Name = "Teal",
271-
	xNew{'CylinderMesh',Part,Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
271+
        Background = Color3.new(0, 1 / 3, 0.5),
272-
	local Part = xPart{Pack,0.564285755, 0.257142901, 0.514285743} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.35357094, 0.257143021, -1, 8.74227695e-008, 8.74227837e-008, 8.74227766e-008, 1, 8.74227695e-008, -8.74227695e-008, 8.74227766e-008, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
272+
        Foreground = Color3.new(1, 1, 1)
273-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
273+
}
274-
	local Part = xPart{Pack,0.564285755, 0.257142901, 0.514285743} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.35357118, 0.257141113, 1, 3.51124925e-008, -2.6822093e-007, -3.51123965e-008, 1, 3.53819075e-007, 2.6822093e-007, -3.53819075e-007, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
274+
 
275-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
275+
function ChatBubble.GetTheme()
276-
	local Part = xPart{Pack,0.564285755, 1.73571444, 0.200000003} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 1.50000012, 0.0714263916, 1, 3.51124925e-008, -2.6822093e-007, -3.51123965e-008, 1, 3.53819075e-007, 2.6822093e-007, -3.53819075e-007, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
276+
        return ChatBubble.theme_info
277-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 0.714285672), Offset = v3(0, 0, 0)}
277+
278-
	local Part = xPart{Pack,0.564285755, 1.73571444, 0.200000003} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 1.49999988, 0.0714321136, -1, 6.27284535e-008, 3.87430191e-007, 6.27285388e-008, 1, 2.26830267e-007, -3.87430163e-007, 2.26830295e-007, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
278+
function ChatBubble.SetTheme(theme_info)
279-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 0.714285672), Offset = v3(0, 0, 0)}
279+
        if type(theme_info) == "string" then
280-
	local Part = xPart{Pack,0.54285717, 0.657142937, 1.02857149} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.81071377, 1.02857208, -1, 0, 8.74227695e-008, 0, 1, 0, -8.74227695e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
280+
                theme_info = string.lower(theme_info)
281-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
281+
                for key, info in pairs(ChatBubble.THEME) do
282-
	local Part = xPart{Pack,0.864285767, 0.657142937, 1.02857149} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.48571396, -1.96071529, 1, -4.47536763e-009, -5.65906291e-008, -5.65906291e-008, -1.58996982e-023, -1, 4.47536763e-009, 1, -2.53263884e-016) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
282+
                        if info.Name:lower() == theme_info:lower() then
283-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
283+
                                ChatBubble.SetTheme(info)
284-
	local Part = xPart{Pack,0.864285767, 0.657142937, 1.02857149} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 2.48571205, -1.96071529, -1, -1.90377425e-009, 5.96046377e-008, 5.96046377e-008, 6.53269716e-010, 1, -1.90377425e-009, 1, -6.53269605e-010) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
284+
                                break
285-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
285+
                        end
286-
	Blade = xPart{Pack,0.285714328, 12.2071428, 2.38571548} Blade.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Blade) LastMade.C1 = CFrame.new(0, -8.56428432, 0.649999619, 1, 0, 0, 0, 1, 0, 0, 0, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
286+
                end
287-
	xNew{'BlockMesh',Blade,Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
287+
                return
288-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -4.22142696, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
288+
        end
289-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
289+
        ChatBubble.theme_info = theme_info
290-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -5.22142696, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
290+
        ChatBubble.background_color = theme_info.Background
291-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
291+
        ChatBubble.font = LoadFont(ChatBubble.FONT_DEFAULT, theme_info.Foreground)
292-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -6.22142696, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
292+
        print("Theme has been set to "..theme_info.Name.." in ChatBubble")
293-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
293+
294-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -7.22142696, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
294+
 
295-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
295+
296-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -11.221427, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
296+
local floor = math.floor
297-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
297+
local max = math.max
298-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -8.22142696, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
298+
local asc = string.byte
299-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
299+
local chr = string.char
300-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -9.22142696, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
300+
local find = string.find
301-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
301+
local gmatch = string.gmatch
302-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -10.221427, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
302+
local sub = string.sub
303-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
303+
local insert = table.insert
304-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -12.221427, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
304+
local type = type
305-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
305+
local unpack = unpack
306-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.8714298} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, -13.2214279, 1.4642868, -1, 0, -5.96046377e-008, 0, 1, 0, 5.96046377e-008, 0, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
306+
 
307-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
307+
local PopIntegerBit
308-
	local Part = xPart{Pack,0.285714328, 0.949999154, 2.01428699} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 14.1928558, 1.5357151, 1, 1.06776947e-016, 2.85758261e-009, 1.39271539e-016, -1, -1.13713643e-008, 2.85758261e-009, 1.13713643e-008, -1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
308+
 
309-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
309+
TextAlignment = setmetatable({
310-
	local Part = xPart{Pack,0.285714328, 0.949999154, 1.15714407} Part.BrickColor = BrickColor.new('Really black') Handle.Material = Enum.Material.Plastic xWeld(Handle,Part) LastMade.C1 = CFrame.new(0, 14.1928558, 2.3214283, -1, 2.33221598e-009, 0, -2.33221553e-009, -1, -4.92687668e-010, 0, -4.92687668e-010, 1) LastMade.C0 = CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
310+
        [0] = 0,
311-
	xNew{'SpecialMesh',Part,MeshType = Enum.MeshType.Wedge, MeshId = '', TextureId = '', Scale = v3(1, 1, 1), Offset = v3(0, 0, 0)}
311+
        [1] = 1,
312
        [2] = 2,
313-
has = haw.C1
313+
        Left = 0,
314
        Center = 1,
315-
for _,v in pairs(Pack:GetChildren()) do
315+
        Right = 2
316-
	v.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0)
316+
}, {
317
        __call = function(self, ...)
318-
--------------------------------------------------------
318+
                local argc = #{...}
319-
--------------------------------------------------------
319+
                if argc == 0 then
320-
-----------------------VARIABLES------------------------
320+
                        return 0
321-
--------------------------------------------------------
321+
                else
322-
--------------------------------------------------------
322+
                        local arg = (...)
323-
State = 'Idle'
323+
                        local value = rawget(self, arg)
324-
FallTime = 0
324+
                        if value then
325-
Walk = 0
325+
                                return value
326-
WalkReverse = false
326+
                        else
327-
StompDB = false
327+
                                local arg_type = type(arg)
328-
JumpDB = false
328+
                                error("Invalid value" .. ((arg_type == "number") and (" " .. arg) or ((arg_type == "string") and (" \"" .. arg .. "\"") or
329-
--
329+
 
330-
function NewHitbox(Radius,Position)
330+
"")) .. " for enum TextAlignment")
331-
	local Returning = {}
331+
                        end
332-
	for _,v in pairs(workspace:GetChildren()) do
332+
                end
333-
		if v~=Char and v:FindFirstChild('Humanoid') and v:FindFirstChild('Torso') then
333+
        end
334-
			local Mag = (v.Torso.Position - Position).magnitude
334+
335-
			if Mag < Radius then
335+
 
336-
				table.insert(Returning,v)
336+
function PopIntegerBit(value, bit)
337-
			end
337+
        if value >= bit then
338
                return 1, value - bit
339
        else
340-
	return Returning
340+
                return 0, value
341
        end
342-
--
342+
343-
function UpdateState()
343+
function MusicList()
344-
	if (rp.Velocity*v3(1, 0, 1)).magnitude > 5 then
344+
345-
		if State == 'Idle' then State = 'Walking' end
345+
346-
	else
346+
function LoadFixedFont(dest, src, height, width)
347-
		if State == 'Walking' then State = 'Idle'; end
347+
        local n = #src / 64 - 1
348
        local bit_index = 0
349-
	if WalkReverse then
349+
        local symbol_bits = width * height
350-
		Walk = Walk - .5
350+
        for i = 0, 255 do
351-
	else
351+
                local char_data = {}
352-
		Walk = Walk + .5
352+
                for j = 1, height do
353
                        char_data[j] = {}
354-
	if Walk >= 10 then
354+
                end
355-
		WalkReverse = true
355+
                dest[i] = char_data
356-
	elseif Walk <= -10 then
356+
        end
357-
		WalkReverse = false
357+
        for i = 1, #src do
358
                local buffer = tonumber(sub(src, i, i), 16)
359
                for j = 1, 4 do
360-
--
360+
                        local code = floor(bit_index / symbol_bits)
361-
function JumpExplode()
361+
                        local row = floor(bit_index / width) % height + 1
362-
	local Hit = NewHitbox(35,Char.Torso.Position)
362+
                        local column = bit_index % width + 1
363-
	for _,v in pairs(Hit) do
363+
                        dest[code][row][column], buffer = PopIntegerBit(buffer, 8)
364-
		v.Humanoid.MaxHealth = 100
364+
                        buffer = buffer * 2
365-
		v.Humanoid.Health = v.Humanoid.Health - 1000000000
365+
                        bit_index = bit_index + 1
366-
		if sit then
366+
                end
367-
			v.Humanoid.Sit = true
367+
        end
368
end
369
function LoadFont(font_data, color)
370-
	xSound('2233908',tr,1)
370+
        local font_obj = {}
371-
	coroutine.wrap(function()
371+
        for character, char_data in pairs(font_data) do
372-
		local Explosion = xNew{'Part',Char,Anchored = true,CanCollide = false,FormFactor = 'Custom',BrickColor = bn('Earth green')}
372+
                local code = character
373-
		local Mesh = xNew{'SpecialMesh', Explosion,MeshType = 'FileMesh', MeshId = 'http://www.roblox.com/asset/?id=20329976'}
373+
                if type(code) ~= "number" then
374-
		Explosion.CFrame = Char.Torso.CFrame * cn(0,-20,0)
374+
                        code = asc(character)
375-
		Mesh.Scale = v3(1,7,1)
375+
                end
376-
		repeat
376+
                local height = #char_data
377-
			Mesh.Scale = Mesh.Scale + v3(1,0,1)
377+
                local width = #char_data[1]
378-
			Explosion.Transparency = Explosion.Transparency + .025
378+
                local pixel_h = 1 / height
379-
			wait()
379+
                local pixel_w = 1 / width
380-
		until Explosion.Transparency >= 1
380+
                local pixel_size = UDim2.new(pixel_w, 0, pixel_h, 0)
381-
		Explosion:Destroy()
381+
                local frame = Instance.new("Frame")
382-
	end)()
382+
                frame.BackgroundTransparency = 1
383
                frame.Name = ""
384-
--
384+
                for y = 1, height do
385-
function Stomp()
385+
                        local row = char_data[y]
386-
	if State == 'Walking' or State == 'Idle' then
386+
                        for x = 1, width do
387-
		if StompDB == false then
387+
                                local opacity = row[x]
388-
			StompDB = true
388+
                                if opacity ~= 0 then
389-
			State = 'Attacking'
389+
                                        local pixel = Instance.new("Frame", frame)
390-
			Human.WalkSpeed = 0
390+
                                        pixel.BackgroundColor3 = color
391-
			--
391+
                                        pixel.BorderSizePixel = 0
392-
			xSound('138186576',Char.Head,1)
392+
                                        pixel.Name = ""
393-
			for _=0,1,.05 do
393+
                                        pixel.Position = UDim2.new(x * pixel_w, 0, y * pixel_h, 0) - pixel_size
394-
				xlerp(tw,ts,.2)
394+
                                        pixel.Size = pixel_size -- + UDim2.new(0, 0, 0, 1) -- correction
395-
				xlerp(hw,hs*ca(40,0,0)*cn(0,-1,-1.5),.2)
395+
                                        -- ^ never mind that correction, fixed by changing font size to 12x16 instead of 13x17
396-
				xlerp(rlw,rls*ca(20,0,0),.2)
396+
                                        if opacity then
397-
				xlerp(llw,lls*cn(0,-2,1.25),.2)
397+
                                                pixel.BackgroundTransparency = 1 - opacity
398-
				xlerp(raw,ras*ca(20,0,-20)*cn(-.5,-.5,0),.2)
398+
                                        end
399-
				xlerp(law,las*ca(20,0,0),.2)
399+
                                end
400-
				wait()
400+
                        end
401-
			end
401+
                end
402-
			coroutine.wrap(function()
402+
                font_obj[code] = {frame, height, width}
403-
				local Explosion = xNew{'Part',Char,Anchored = true,CanCollide = false,FormFactor = 'Custom',BrickColor = bn('Earth green')}
403+
        end
404-
				local Mesh = xNew{'SpecialMesh', Explosion,MeshType = 'FileMesh', MeshId = 'http://www.roblox.com/asset/?id=3270017'}
404+
        return font_obj
405-
				Explosion.CFrame = rp.CFrame * cn(0,-7,0)*ca(90,0,0)
405+
406-
				Mesh.Scale = v3(5,5,10)
406+
function DrawTextNetwork(text, font, size, delay_offset)
407-
				repeat
407+
        if #text == 0 then
408-
					Mesh.Scale = Mesh.Scale + v3(2,2,.5)
408+
                text = " "
409-
					Explosion.Transparency = Explosion.Transparency + .01
409+
        end
410-
					wait()
410+
        local frame = Instance.new("Frame")
411-
				until Explosion.Transparency >= 1
411+
        frame.BackgroundTransparency = 1
412-
				Explosion:Destroy()
412+
        frame.BorderSizePixel = 0
413-
			end)()
413+
        local objects = {}
414-
			coroutine.wrap(function()
414+
        local length = #text
415-
				local Already = {}
415+
        local height = 0
416-
				for i=1,50,2 do
416+
        local width = 0
417-
					wait(.1)
417+
        for i = 1, length do
418-
					local Hit = NewHitbox(i*2,Char.Torso.Position)
418+
                local character = sub(text, i, i)
419-
					for _,v in pairs(Hit) do
419+
                local code = asc(character)
420-
						if not Already[v] then
420+
                local char_data = assert(font[code] or FONT_SYMBOL_MISSING, "FONT ERROR: '" .. character .. "' (" .. code .. ") not found")
421-
							v.Humanoid.MaxHealth = 100
421+
                local char_proto, char_h, char_w = unpack(char_data)
422-
							v.Humanoid.Health = v.Humanoid.Health - 300000000000
422+
                objects[i] = char_data
423-
							if sit then
423+
                height = max(char_h, height)
424-
								v.Humanoid.Sit = true
424+
                width = width + char_w
425-
							end
425+
        end
426-
							Already[v] = true
426+
        local offset = 0
427-
						end
427+
        local punctuation_delay = 0
428
        for i = 1, length do
429-
				end
429+
                delay(delay_offset + (i + punctuation_delay - 1) / 30, function()
430-
			end)()
430+
                        local char_data = objects[i]
431-
			--attack
431+
                        local char_proto, char_h, char_w = unpack(char_data)
432-
			for _=0,1,.05 do
432+
                        local char_obj = char_proto:Clone()
433-
				xlerp(tw,ts,.3)
433+
                        char_obj.Position = UDim2.new(offset / width, 0, 0, 0)
434-
				xlerp(hw,hs*ca(40,0,0)*cn(0,-1,-1.5),.3)
434+
                        char_obj.Size = UDim2.new(char_w / width, 0, 1, 0)
435-
				xlerp(rlw,rls*ca(20,0,0),.3)
435+
                        char_obj.Parent = frame
436-
				xlerp(llw,lls*cn(0,0,1.25),.3)
436+
                        offset = offset + char_w
437-
				xlerp(raw,ras*ca(20,0,-20)*cn(-.5,-.5,0),.3)
437+
                end)
438-
				xlerp(law,las*ca(20,0,0),.3)
438+
                local character = sub(text, i, i)
439-
				wait()
439+
                if character == "." then
440-
			end
440+
                        punctionation_delay = punctuation_delay + 3
441-
			State = 'Idle'
441+
                elseif character == "?" or character == "!" then
442-
			Human.WalkSpeed = 50
442+
                        punctionation_delay = punctuation_delay + 2
443-
			coroutine.wrap(function()
443+
                elseif character == ";" or character == "~" then
444-
				wait(0)
444+
                        punctionation_delay = punctuation_delay + 1
445-
				StompDB = false
445+
                end
446-
			end)()
446+
        end
447
        local ratio = (height == 0) and (0) or (width / height)
448
        frame.Size = UDim2.new(size.X.Scale * ratio, size.X.Offset * ratio, size.Y.Scale, size.Y.Offset)
449
        return frame, height, width, (length + punctuation_delay) / 30
450-
--
450+
451-
function Charge()
451+
function DrawMultilineTextNetwork(text, font, size, delay_offset, ...)
452-
	if State == 'Walking' or State == 'Idle' then
452+
        local align = TextAlignment(...)
453-
		State = 'Charge'
453+
        local frame = Instance.new("Frame")
454-
		for _, controller in pairs(game:GetService("ControllerService"):GetChildren()) do
454+
        frame.BackgroundTransparency = 1
455-
			controller.Parent = workspace
455+
        frame.BorderSizePixel = 0
456
        local height = 0
457-
		local function Exp()
457+
        local width = 0
458-
			local Explosion = xNew{'Part',Char,Anchored = true,CanCollide = false,FormFactor = 'Custom',BrickColor = bn('White')}
458+
        local objects = {}
459-
			local Mesh = xNew{'SpecialMesh', Explosion,MeshType = 'FileMesh', MeshId = 'http://www.roblox.com/asset/?id=20329976'}
459+
        for line in gmatch(text .. "\n", "([^\n]*)\n") do
460-
			Explosion.CFrame = rp.CFrame * cn(0,0,-15)*ca(70,0,0)
460+
                local line_obj, line_h, line_w, line_delay = DrawTextNetwork(line, font, size, delay_offset)
461-
			Mesh.Scale = v3(1,6,1)
461+
                insert(objects, {line_obj, line_h, line_w})
462-
			repeat
462+
                height = height + line_h
463-
				Char.Head.Velocity=Char.Head.CFrame.lookVector*100
463+
                width = max(line_w, width)
464-
				Mesh.Scale = Mesh.Scale + v3(1,.5,1)
464+
                delay_offset = delay_offset + line_delay
465-
				Explosion.Transparency = Explosion.Transparency + .05
465+
        end
466-
				wait()
466+
        local offset = 0
467-
			until Explosion.Transparency >= 1
467+
        for index, line_data in ipairs(objects) do
468-
			Explosion:Destroy()
468+
                local line_obj, line_h, line_w = unpack(line_data)
469
                local align_offset
470-
		coroutine.wrap(function()
470+
                if align == TextAlignment.Left then
471-
			wait(0)
471+
                        align_offset = 0
472-
			Human.WalkSpeed = 80
472+
                elseif align == TextAlignment.Center then
473-
			Char.Head.Velocity=Char.Head.CFrame.lookVector*200
473+
                        align_offset = 0.5 - line_w / width / 2
474-
			for _=1, 10 do
474+
                elseif align == TextAlignment.Right then
475-
				coroutine.wrap(Exp)()
475+
                        align_offset = 1 - line_w / width
476-
				local Hit = NewHitbox(10,Char.Torso.Position)
476+
                end
477-
				for _,v in pairs(Hit) do
477+
                line_obj.Position = UDim2.new(align_offset, 0, offset / height, 0)
478-
					v.Humanoid.MaxHealth = 100
478+
                line_obj.Parent = frame
479-
					v.Humanoid.Health = v.Humanoid.Health - 100000000000
479+
                offset = offset + line_h
480-
				end
480+
        end
481-
				wait(0)
481+
        local line_count = #objects
482-
				xSound('10730819',tr,.8)
482+
        local ratio = (height == 0) and (0) or (line_count * width / height)
483-
				Char.Head.Velocity=Char.Head.CFrame.lookVector*100
483+
        frame.Size = UDim2.new(size.X.Scale * ratio, size.X.Offset * ratio, size.Y.Scale * line_count, size.Y.Offset * line_count)
484-
			end
484+
        return frame, height, width
485-
			Human.WalkSpeed = 50
485+
486-
			State = 'Idle'
486+
487-
		end)()
487+
 
488-
		--
488+
LoadFixedFont(FONT_CUSTOM_A, FONT_CUSTOM_A_SRC, 8, 6)
489-
		for _=0,1,.05 do
489+
ChatBubble.FONT_DEFAULT = FONT_CUSTOM_A
490-
			Char.Head.Velocity=Char.Head.CFrame.lookVector*100
490+
ChatBubble.SetTheme("Rainbow")
491-
			xlerp(tw,ts*ca(0,-90,0),.4)
491+
 
492-
			xlerp(hw,hs*ca(0,90,0),.4)
492+
chat_bubbles = {}
493-
			xlerp(raw,ras*ca(-90,0,-90)*cn(0,-1,0),.4)
493+
 
494-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.4)
494+
function CreateChatBubble(bubble_info)
495-
			xlerp(rlw,rls*ca(0,0,10)*cn(1,0,0),.4)
495+
        local creation_time, text, backup = bubble_info[1], bubble_info[2], bubble_info[8]
496-
			xlerp(llw,lls*ca(0,0,10)*cn(1,0,0),.4)
496+
        local billboard, frame, label
497-
			wait()
497+
        if backup and false then
498
                billboard = backup:Clone()
499-
		--
499+
                frame = billboard.Frame
500
                label = frame.Label
501
                bubble_info[5] = billboard
502-
function Combo()
502+
                bubble_info[6] = frame
503-
	if State == 'Idle' or State == 'Walking' then
503+
                bubble_info[7] = label
504-
		State = 'Attacking'
504+
                billboard.Parent = Workspace
505-
		Human.WalkSpeed = 3
505+
        else
506-
		for _=0,1,.2 do
506+
                label = DrawMultilineTextNetwork(text, bubble_info[9], UDim2.new(0, 12, 0, 16), creation_time - time(), "Center")
507-
			xlerp(tw,ts*ca(0,20,0),.4)
507+
                label.Name = "Label"
508-
			xlerp(hw,hs*ca(0,30,0),.4)
508+
                label.Position = UDim2.new(0, 16, 0, 16)
509-
			xlerp(raw,ras*ca(0,180,-90)*cn(-1,-1,0),.4)
509+
                billboard = Instance.new("BillboardGui", Workspace)
510-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.4)
510+
                billboard.Adornee = chatAdornee
511-
			xlerp(rlw,rls*ca(20,0,0)*cn(0,0,-1),.4)
511+
                billboard.AlwaysOnTop = true
512-
			xlerp(llw,lls*cn(0,0,1.25),.4)
512+
                billboard.Size = UDim2.new(label.Size.X.Scale, label.Size.X.Offset + 32, label.Size.Y.Scale, label.Size.Y.Offset + 32)
513-
			wait()
513+
                billboard.SizeOffset = Vector2.new(0, 0)
514
                billboard.StudsOffset = Vector3.new(0, 1, 0)
515-
		local Already = {}
515+
                frame = Instance.new("Frame", billboard)
516-
		xSound('231731980',tr,1.3)
516+
                bubble_info[5] = billboard
517-
		for _=0,1,.1 do
517+
                bubble_info[6] = frame
518-
			xlerp(tw,ts*ca(0,-30,0),.4)
518+
                bubble_info[7] = label
519-
			xlerp(hw,hs*ca(0,-50,0),.4)
519+
                local background_color = bubble_info[10]
520-
			xlerp(raw,ras*ca(160,180,-130)*cn(2,-1,1),.4)
520+
                if type(background_color) == "function" then
521-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.4)
521+
                        background_color(bubble_info)
522-
			xlerp(rlw,rls*ca(20,0,0)*cn(0,0,-1),.4)
522+
                else
523-
			xlerp(llw,lls*cn(0,0,1.25),.4)
523+
                        frame.BackgroundColor3 = background_color
524-
			xlerp(haw,has*ca(40,0,0),.4)
524+
                end
525-
			wait()
525+
                frame.BackgroundTransparency = 0.3
526-
			local Hit = NewHitbox(15,(Blade.CFrame).p)
526+
                frame.BorderSizePixel = 0
527-
			for _,v in pairs(Hit) do
527+
                frame.ClipsDescendants = true
528-
				if not Already[v] then
528+
                frame.Name = "Frame"
529-
					v.Humanoid.MaxHealth = 100
529+
                frame.Size = UDim2.new(1, 0, 0, 0)
530-
					v.Humanoid.Health = v.Humanoid.Health - 300000000000
530+
                label.Parent = frame
531-
					Already[v] = true
531+
                -- bubble_info[8] = billboard:Clone()
532-
				end
532+
        end
533-
			end
533+
534
local tween_time = 0.3
535-
		----Combo2
535+
function ConfigureChatBubble(bubble_info)
536-
		for _=0,1,.2 do
536+
        local creation_time, destruction_time, billboard, frame = bubble_info[1], bubble_info[3], bubble_info[5], bubble_info[6]
537-
			xlerp(tw,ts*ca(0,-35,0),.4)
537+
        if not billboard or billboard.Parent ~= workspace then
538-
			xlerp(haw,has,.4)
538+
                CreateChatBubble(bubble_info)
539-
			xlerp(hw,hs*ca(0,-30,0),.4)
539+
                billboard, frame = bubble_info[5], bubble_info[6]
540-
			xlerp(raw,ras*ca(-120,0,-70)*cn(1,-1,0),.4)
540+
        end
541-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.4)
541+
        if billboard.Adornee ~= chatAdornee then
542-
			xlerp(rlw,rls*ca(20,0,0)*cn(0,0,-1),.4)
542+
                billboard.Adornee = chatAdornee
543-
			xlerp(llw,lls*cn(0,0,1.25),.4)
543+
        end
544-
			wait()
544+
        local current_time = time()
545
        local elapsed_time = current_time - creation_time
546-
		xSound('231731980',tr,1)
546+
        local remaining_time = destruction_time - current_time
547-
		local Already = {}
547+
        if remaining_time < 0 then
548-
		for _=0,1,.1 do
548+
                bubble_info[4] = false
549-
			xlerp(tw,ts*ca(0,20,0),.4)
549+
                billboard:Destroy()
550-
			xlerp(hw,hs*ca(0,30,0),.4)
550+
                return false
551-
			xlerp(raw,ras*ca(30,0,-90)*cn(0,-1,0),.4)
551+
        elseif remaining_time < tween_time then
552-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.4)
552+
                local tween_progress = math.sin(remaining_time * math.pi / (tween_time * 2))
553-
			xlerp(rlw,rls*ca(20,0,0)*cn(0,0,-1),.4)
553+
                frame.Size = UDim2.new(1, 0, tween_progress, 0)
554-
			xlerp(llw,lls*cn(0,0,1.25),.4)
554+
        elseif elapsed_time < tween_time then
555-
			wait()
555+
                local tween_progress = math.sin(elapsed_time * math.pi / (tween_time * 2))
556-
			local Hit = NewHitbox(15,(Blade.CFrame).p)
556+
                frame.Size = UDim2.new(1, 0, tween_progress, 0)
557-
			for _,v in pairs(Hit) do
557+
        elseif frame.Size ~= UDim2.new(1, 0, 1, 0) then
558-
				if not Already[v] then
558+
                frame.Size = UDim2.new(1, 0, 1, 0)
559-
					v.Humanoid.MaxHealth = 100
559+
        end
560-
					v.Humanoid.Health = v.Humanoid.Health - 3000000000000
560+
        return true
561-
					Already[v] = true
561+
562-
				end
562+
function ChatBubble.MainLoop()
563-
			end
563+
        local offset = 0
564
        local removing = {}
565-
		--Combo 3
565+
        for index, bubble_info in ipairs(chat_bubbles) do
566-
		for _=0,1,.1 do
566+
                if not ConfigureChatBubble(bubble_info) then
567-
			xlerp(tw,ts,.3)
567+
                        removing[#removing + 1] = index - #removing
568-
			xlerp(hw,hs,.3)
568+
                else
569-
			xlerp(haw,has,.3)
569+
                        local billboard, frame = bubble_info[5], bubble_info[6]
570-
			xlerp(raw,ras*ca(-140,0,0)*cn(0,-1.5,0),.3)
570+
                        local billboard_h = billboard.Size.Y.Offset
571-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.3)
571+
                        local bubble_h = frame.Size.Y.Scale * billboard_h
572-
			xlerp(rlw,rls*ca(20,0,0)*cn(0,0,-1),.3)
572+
                        offset = 8 + offset + bubble_h
573-
			xlerp(llw,lls*cn(0,0,1.25),.4)
573+
                        billboard.SizeOffset = Vector2.new(0, offset / billboard_h - 0.5)
574-
			wait()
574+
                end
575
        end
576-
		xSound('231731980',tr,.8)
576+
        for index, bubble_index in ipairs(removing) do
577-
		local Already = {}
577+
                table.remove(chat_bubbles, bubble_index)
578-
		for _=0,1,.1 do
578+
        end
579-
			xlerp(tw,ts*ca(15,0,0)*cn(0,1.5,0),.4)
579+
        RunService.Stepped:wait()
580-
			xlerp(hw,hs,.4)
580+
581-
			xlerp(raw,ras*ca(-20,0,0)*cn(0,0,0),.4)
581+
function WrapText(text, character_limit, line_length_limit)
582-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.4)
582+
        if #text > character_limit then
583-
			xlerp(haw,has*ca(20,0,0),.4)
583+
                text = string.sub(text, 1, character_limit - 3) .. "..."
584-
			wait()
584+
        end
585-
			local Hit = NewHitbox(10,(Blade.CFrame).p)
585+
        local text_length = #text
586-
			for _,v in pairs(Hit) do
586+
        local line_length = 0
587-
				if not Already[v] then
587+
        local i = 0
588-
					v.Humanoid.MaxHealth = 100
588+
        while i <= text_length do
589-
					v.Humanoid.Health = v.Humanoid.Health - 300000000000
589+
                i = i + 1
590-
					Already[v] = true
590+
                local character = string.sub(text, i, i)
591-
				end
591+
                if character == "\t" then
592-
			end
592+
                        local tabulation_size = 4 - line_length % 4
593
                        line_length = line_length + tabulation_size
594-
		wait(.2)
594+
                        if line_length >= line_length_limit then
595-
		State = 'Idle'
595+
                                tabulation_size = line_length - line_length_limit
596-
		Human.WalkSpeed = 50
596+
                                line_length = 0
597
                                text_length = text_length + tabulation_size
598
                                text = string.sub(text, 1, i - 1) .. string.rep(" ", tabulation_size) .. "\n" .. string.sub(text, i + 1)
599-
--
599+
                                i = i + tabulation_size + 1
600-
function SwordSlam()
600+
                        else
601-
	if State == 'Walking' or State == 'Idle' then
601+
                                text_length = text_length + tabulation_size - 1
602-
		State = 'Attacking'
602+
                                text = string.sub(text, 1, i - 1) .. string.rep(" ", tabulation_size) .. string.sub(text, i + 1)
603-
		Human.WalkSpeed = 0
603+
                                i = i + tabulation_size - 1
604-
		for _=0,1,.05 do
604+
                        end
605-
			xlerp(tw,ts,.2)
605+
                elseif character == "\n" then
606-
			xlerp(hw,hs,.2)
606+
                        line_length = 0
607-
			xlerp(raw,ras*ca(-140,0,0)*cn(0,-1.5,0),.2)
607+
                else
608-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.2)
608+
                        line_length = line_length + 1
609-
			xlerp(rlw,rls*ca(20,0,0)*cn(0,0,-1),.2)
609+
                        if line_length >= line_length_limit then
610-
			xlerp(llw,lls*cn(0,0,1.25),.2)
610+
                                local k = i - line_length + 1
611-
			wait()
611+
                                local success = false
612
                                for j = i, k, -1 do
613-
		coroutine.wrap(function()
613+
                                        if string.match(string.sub(text, j, j), "[ \t]") then
614-
		wait()
614+
                                                text = string.sub(text, 1, j - 1) .. "\n" .. string.sub(text, j + 1)
615-
		xSound('10730819',tr,.5)
615+
                                                text_length = text_length + 1
616-
		local Explosion = xNew{'Part',Char,Anchored = true,CanCollide = false,FormFactor = 'Custom',BrickColor = bn('dsasda')}
616+
                                                success = true
617-
		local Mesh = xNew{'SpecialMesh', Explosion,MeshType = 'FileMesh', MeshId = 'http://www.roblox.com/asset/?id=20329976'}
617+
                                                break
618-
		Explosion.CFrame = rp.CFrame * cn(0,-5,-20)
618+
                                        end
619-
		Mesh.Scale = v3(1,5,1)
619+
                                end
620-
		repeat
620+
                                if not success then
621-
			Mesh.Scale = Mesh.Scale + v3(1,1,1)
621+
                                        text = string.sub(text, 1, i) .. "\n" .. string.sub(text, i + 1)
622-
			Explosion.Transparency = Explosion.Transparency + .025
622+
                                        text_length = text_length + 1
623-
			wait()
623+
                                end
624-
		until Explosion.Transparency >= 1
624+
                                i = i + 1
625-
		Explosion:Destroy()
625+
                                line_length = 0
626-
		end)()
626+
                        end
627-
		for _=0,1,.15 do
627+
                end
628-
			xlerp(tw,ts*ca(15,0,0)*cn(0,1.5,0),.4)
628+
        end
629-
			xlerp(hw,hs,.4)
629+
        if #text > character_limit then
630-
			xlerp(raw,ras*ca(-20,0,0)*cn(0,0,0),.4)
630+
                text = string.sub(text, 1, character_limit - 3) .. "..."
631-
			xlerp(law,las*ca(0,0,40)*cn(1,-.5,0),.4)
631+
        end
632-
			xlerp(haw,has*ca(20,0,0),.4)
632+
        return text
633-
			wait()
633+
634
function ChatBubble.Create(text, theme)
635-
		local Hit = NewHitbox(40,(rp.CFrame * cn(0,-5,-20)).p)
635+
        local text = WrapText(text, 200, 30)
636-
		for _,v in pairs(Hit) do
636+
        local creation_time = time()
637-
		v.Humanoid.MaxHealth = 100
637+
        local bubble_info = {creation_time, text, creation_time + 6 + #text / 15, true}
638-
		v.Humanoid.Health = v.Humanoid.Health - 100000000000
638+
        local previousTheme
639-
		if sit then
639+
        if theme then
640-
			v.Humanoid.Sit = true
640+
                previousTheme = ChatBubble.GetTheme()
641
                ChatBubble.SetTheme(theme)
642
        end
643-
		wait(0)
643+
        bubble_info[9] = ChatBubble.font
644-
		State = 'Idle'
644+
        bubble_info[10] = ChatBubble.background_color
645-
		Human.WalkSpeed = 50
645+
        if previousTheme then
646
                ChatBubble.SetTheme(previousTheme)
647
        end
648-
--
648+
        table.insert(chat_bubbles, 1, bubble_info)
649-
CanBoom = true
649+
650-
function Fire(Part)
650+
TaskScheduler.Start(function()
651-
	local Flame = Instance.new("ParticleEmitter",Part)
651+
        while true do
652-
	Flame.LightEmission = 0.21
652+
                ChatBubble.MainLoop()
653-
	Flame.Size = NumberSequence.new(15)
653+
        end
654-
	Flame.Texture = "http://www.roblox.com/asset/?id=366803190"
654+
655-
	Flame.Transparency = NumberSequence.new(0.5)
655+
 
656-
	Flame.LockedToPart = true
656+
PyramidCharacter = {};
657-
	Flame.Lifetime = NumberRange.new(0.1,0.8)
657+
 
658-
	Flame.Rate = 40
658+
local stock_triangle = Instance.new("WedgePart")
659-
	Flame.VelocitySpread = 2
659+
stock_triangle.Anchored = true
660
stock_triangle.BottomSurface = "Smooth"
661-
Mouse.KeyDown:connect(function(key)
661+
stock_triangle.FormFactor = "Custom"
662-
	if key == ' ' then
662+
stock_triangle.Locked = true
663-
		if State == 'Walking' or State == 'Idle' then
663+
stock_triangle.TopSurface = "Smooth"
664-
			if JumpDB == false then
664+
local stock_triangle_mesh = Instance.new("SpecialMesh", stock_triangle)
665-
				JumpDB = true
665+
stock_triangle_mesh.MeshType = "Wedge"
666-
				State = 'Jumping'
666+
local triangles = {}
667-
				Human.Jump = true
667+
function PyramidCharacter.CreateTriangle(v1, v2, v3, properties, parent, index)
668-
				Human.WalkSpeed = 50
668+
        local triangleInfo = triangles[index]
669-
				wait(0)
669+
        local side1 = (v1 - v2).magnitude
670-
				State = 'Falling'
670+
        local side2 = (v2 - v3).magnitude
671-
				coroutine.wrap(function()
671+
        local side3 = (v3 - v1).magnitude
672-
					wait(0)
672+
        local sqrside1 = side1 * side1
673-
					JumpDB = false
673+
        local sqrside2 = side2 * side2
674-
				end)()
674+
        local sqrside3 = side3 * side3
675-
			end
675+
        if sqrside3 + sqrside1 == sqrside2 then
676
                v1, v2, v3 = v1, v2, v3
677-
	elseif key == 'z' and Mana >= 400 then
677+
        elseif sqrside1 + sqrside2 == sqrside3 then
678-
		Mana = Mana-400
678+
                v1, v2, v3 = v2, v3, v1
679-
		Combo()
679+
        elseif sqrside2 + sqrside3 == sqrside1 then
680-
	elseif key == 'x' and Mana >= 300 then
680+
                v1, v2, v3 = v3, v1, v2
681-
		Mana = Mana-300
681+
        elseif sqrside1 >= sqrside2 and sqrside1 >= sqrside3 then
682-
		Charge()
682+
                v1, v2, v3 = v1, v2, v3
683-
	elseif key == 'c' and Mana >= 250 then
683+
        elseif sqrside2 >= sqrside3 and sqrside2 >= sqrside1 then
684-
		Mana = Mana-250
684+
                v1, v2, v3 = v2, v3, v1
685-
		SwordSlam()
685+
        else
686-
	elseif key == 'v' and Mana >= 100 then
686+
                v1, v2, v3 = v3, v1, v2
687-
		Mana = Mana-100
687+
        end
688-
		Stomp()
688+
        local model, part1, part2, mesh1, mesh2
689-
	elseif key == "p" and Mana >= 1000 then
689+
        if triangleInfo then
690-
		Mana = Mana-1000
690+
                model, part1, part2, mesh1, mesh2 = unpack(triangleInfo)
691-
		Stomp()
691+
                if not (model.Parent == parent and part1.Parent == model and part2.Parent == model and mesh1.Parent == part1 and mesh2.Parent == part2) then
692-
		wait()
692+
                        if model.Parent then
693-
		SwordSlam()
693+
                                model:Destroy()
694-
		wait()
694+
                        end                    
695-
		Combo()
695+
                        model = nil
696-
		wait()
696+
                end
697-
		Combo()
697+
        else
698-
	elseif key == "f" and Mana >= 800 and CanBoom then
698+
                triangleInfo = {}
699-
		Mana = Mana - 800
699+
                triangles[index] = triangleInfo
700-
		CanBoom = false
700+
        end
701-
		local P = Instance.new("Part",Char)
701+
        if not model then
702-
		P.Name = "Boom"
702+
                model = Instance.new("Model")
703-
		P.Anchored = true
703+
                part1 = stock_triangle:Clone()
704-
		P.Transparency = 1
704+
                part2 = stock_triangle:Clone()
705-
		Fire(P)
705+
                mesh1 = part1.Mesh
706-
		P.Material = "Neon"
706+
                mesh2 = part2.Mesh
707-
		P.BrickColor = BrickColor.new("Crimson")
707+
                part1.Parent = model
708-
		P.TopSurface = "Smooth"
708+
                part2.Parent = model
709-
		P.CFrame = Torso.CFrame
709+
                triangleInfo[1] = model
710-
		P.CanCollide = false
710+
                triangleInfo[2] = part1
711-
		xSound(161451748,workspace,0.9)
711+
                triangleInfo[3] = part2
712-
		function Hit(hit)
712+
                triangleInfo[4] = mesh1
713-
			if hit.Parent and hit.Parent:findFirstChild("Humanoid") then
713+
                triangleInfo[5] = mesh2
714-
				if hit.Parent:findFirstChild("Torso") and hit.Parent.Name ~= Player.Character.Name and hit.Parent:findFirstChild("Flamed") == nil then
714+
        end
715-
					local Z = Instance.new("StringValue",hit.Parent)
715+
        for key, value in pairs(properties) do
716-
					Z.Name = "Flamed"
716+
                part1[key] = value
717-
					local Torsoo = hit.Parent:findFirstChild("Torso")
717+
                part2[key] = value
718-
					Torsoo.Anchored = true
718+
        end
719-
					for i,v in pairs(hit.Parent:GetChildren()) do
719+
        local cframe = CFrame.new(v1, v2)
720-
						Fire(v)
720+
        local relpos = cframe:pointToObjectSpace(v3)
721
        cframe = cframe * CFrame.fromEulerAnglesXYZ(0, 0, -math.atan2(relpos.x, relpos.y))
722-
					if hit.Parent:findFirstChild("Humanoid") then
722+
        local rel1 = cframe:pointToObjectSpace(v1)
723-
						local H = hit.Parent:findFirstChild("Humanoid")
723+
        local rel2 = cframe:pointToObjectSpace(v2)
724-
						H.MaxHealth = math.huge
724+
        local rel3 = cframe:pointToObjectSpace(v3)
725-
						H.WalkSpeed = 0
725+
        local height = rel3.y
726-
						H.JumpPower = 0
726+
        local width1 = rel3.z
727-
						wait()
727+
        local width2 = rel2.z - rel3.z
728-
						Torsoo.Anchored = false
728+
        local relcenter1 = Vector3.new(0, height / 2, width1 / 2)
729-
						H:remove()
729+
        local center1 = cframe:pointToWorldSpace(relcenter1)
730-
						if hit.Parent then
730+
        local relcenter2 = Vector3.new(0, height / 2, width2 / 2 + width1)
731-
							hit.Parent:BreakJoints()
731+
        local center2 = cframe:pointToWorldSpace(relcenter2)
732-
						end
732+
        height = math.abs(height)
733
        width1 = math.abs(width1)
734-
				end
734+
        width2 = math.abs(width2)
735-
			end
735+
        if not part1.Anchored then
736
                part1.Anchored = true
737-
		P.Touched:connect(Hit)
737+
        end
738-
		for i=1,100 do
738+
        part1.Size = Vector3.new(0.2, height, width1)
739-
			wait(0.1)
739+
        part1.CFrame = cframe * CFrame.fromEulerAnglesXYZ(0, math.pi, 0) - cframe.p + center1  
740-
			P.CFrame = Torso.CFrame
740+
        mesh1.Scale = Vector3.new(0, height / part1.Size.y, width1 / part1.Size.z)
741-
			P.Size = Vector3.new(P.Size.X + 0.5,P.Size.Y + 0.5,P.Size.Z + 0.5)
741+
        if not part2.Anchored then
742-
			P.CFrame = Torso.CFrame
742+
                part2.Anchored = true
743
        end
744-
		P:remove()
744+
        part2.Size = Vector3.new(0.2, height, width1)
745-
		wait(0)
745+
        part2.CFrame = cframe - cframe.p + center2
746-
		CanBoom = true
746+
        mesh2.Scale = Vector3.new(0, height / part1.Size.y, width2 / part2.Size.z)
747-
		
747+
        model.Parent = parent
748
        return model
749
end
750-
--
750+
PyramidCharacter.head_properties = {BrickColor = BrickColor.new(Color3.new(1, 1, 1)), Transparency = 0.5}
751-
Human.Changed:connect(function()
751+
PyramidCharacter.head_radius = math.pi
752-
	if State ~= 'Jumping' then
752+
PyramidCharacter.center = CFrame.new(0, 10, 0)
753-
		Human.Jump = false
753+
PyramidCharacter.point1 = Vector3.new()
754
PyramidCharacter.point2 = Vector3.new()
755
PyramidCharacter.point3 = Vector3.new()
756
PyramidCharacter.point4 = Vector3.new()
757-
Human.FreeFalling:connect(function(a)
757+
PyramidCharacter.core_mesh_scale = Vector3.new(0.833, 0.833, 0.833)
758-
	if a then
758+
PyramidCharacter.visible = false
759-
		if State == 'Walking' or State == 'Idle' then
759+
function PyramidCharacter.Teleport(location)
760-
			State = 'Falling'
760+
        PyramidCharacter.point1 = location
761
        PyramidCharacter.point2 = location
762-
	elseif State == 'Jumping' or State == 'Falling' then
762+
        PyramidCharacter.point3 = location
763-
		State = 'Idle'
763+
        PyramidCharacter.point4 = location
764-
		if FallTime > 10 then
764+
765-
			print('Boom!')
765+
local stock_core = Instance.new("Part")
766-
			JumpExplode()
766+
stock_core.Anchored = true
767
stock_core.BottomSurface = "Smooth"
768-
		Human.WalkSpeed = 50
768+
stock_core.Color = Color3.new(1, 1, 1)
769-
		FallTime = 0
769+
stock_core.FormFactor = "Custom"
770
stock_core.Locked = true
771
stock_core.Name = "CubePyramid"
772-
--
772+
stock_core.Size = Vector3.new(0.5, 0.5, 0.5)
773-
wait(0)
773+
stock_core.TopSurface = "Smooth"
774-
game:GetService('RunService').RenderStepped:connect(function()
774+
PyramidCharacter.stock_core = stock_core
775-
	UpdateState()
775+
PyramidCharacter.core = stock_core:Clone()
776-
	if State == 'Jumping' or State == 'Falling' then
776+
PyramidCharacter.Archivable = false
777-
		FallTime = FallTime + .1
777+
PyramidCharacter.core_mesh = Instance.new("BlockMesh", core)
778-
		xlerp(tw,ts,.3)
778+
PyramidCharacter.core_lights = {}
779-
		xlerp(hw,hs*ca(40,0,0)*cn(0,-1,-1.5),.2)
779+
PyramidCharacter.coreLightCount = 1
780-
		xlerp(raw,ras*ca(0,0,-90)*cn(-1,-1,0),.2)
780+
for index = 1, PyramidCharacter.coreLightCount do
781-
		xlerp(law,las*ca(0,0,90)*cn(1,-1,0),.2)
781+
        PyramidCharacter.core_lights[index] = Instance.new("PointLight", core)
782-
		xlerp(rlw,rls*ca(20,0,0),.2)
782+
783-
		xlerp(llw,lls*cn(0,-.5,1.25),.2)
783+
PyramidCharacter.camera_distance = (Camera.Focus.p - Camera.CoordinateFrame.p).magnitude
784-
	elseif State == 'Idle' then
784+
PyramidCharacter.camera_position = Vector3.new()
785-
		xlerp(tw,ts*ca(0,25,0),.1)
785+
Camera.Changed:connect(function(property)
786-
		xlerp(hw,hs*ca(0,-25,0),.1)
786+
        if PyramidCharacter.visible then
787-
		xlerp(raw,ras*ca(20,0,-20)*cn(-.5,-.5,0),.1)
787+
                if property == "CoordinateFrame" then
788-
		xlerp(law,las*ca(20,0,0),.1)
788+
                        local cframe, focus = Camera.CoordinateFrame, Camera.Focus
789-
		xlerp(rlw,rls*ca(20,0,0)*cn(0,0,-1),.1)
789+
                        local eventTime = time()
790-
		xlerp(llw,lls*cn(0,0,1.25),.1)
790+
                        local connection
791-
		xlerp(haw,has,.4)
791+
                        connection = Camera.Changed:connect(function()
792-
	elseif State == 'Walking' then
792+
                                connection:disconnect()
793-
		xlerp(tw,ts,.15)
793+
                                if eventTime == time() and Camera.Focus ~= focus then
794-
		xlerp(hw,hs,.15)
794+
                                        local camera_distance = PyramidCharacter.camera_distance
795-
		--xlerp(law,las*ca(30,0,0),.3)
795+
                                        Camera.Focus = Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance)
796-
		--xlerp(raw,ras*ca(20,0,-40)*cn(-1,-.5,0),.15)
796+
                                        PyramidCharacter.camera_position = (Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance)).p
797-
		xlerp(raw,ras*ca(20,0,-20)*cn(-.5,-.5,0),.1)
797+
                                end
798-
		xlerp(law,las*ca(20,0,0),.1)
798+
                        end)
799-
		if WalkReverse then
799+
                        coroutine.yield()
800-
			xlerp(rlw,rls*ca(30,0,0)*cn(0,-1,-1.5),.05)
800+
                        if Camera.Focus == focus then
801-
			xlerp(llw,lls*ca(-30,0,0)*cn(0,-1,1.5),.05)
801+
                                PyramidCharacter.camera_distance = (focus.p - cframe.p).magnitude
802-
		else
802+
                        else
803-
			xlerp(rlw,rls*ca(-30,0,0)*cn(0,-1,1.5),.05)
803+
                                local camera_distance = PyramidCharacter.camera_distance
804-
			xlerp(llw,lls*ca(30,0,0)*cn(0,-1,-1.5),.05)
804+
                                Camera.Focus = Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance)
805
                                PyramidCharacter.camera_position = (Camera.CoordinateFrame * CFrame.new(0, 0, -camera_distance)).p
806
                        end
807-
	fenbarmana2:TweenSize(UDim2.new(4*Mana/MaxMana,0,0.2,0),nil,1,0.4,true)
807+
                        if connection.connected then
808-
	fenbarmana4.Text="[Mana]->                   [->  "..Mana.." <-]                    <-[Mana]"
808+
                                connection:disconnect()
809-
	if Mana>=MaxMana then
809+
                        end
810-
		Mana=MaxMana
810+
                end
811-
	else
811+
        end
812-
		if mananum<=8 then
812+
813-
			mananum=mananum+1
813+
function PyramidCharacter.Animate()
814-
		else
814+
        local total_time = time()
815-
			mananum=0
815+
        local core = PyramidCharacter.core
816-
			Mana=Mana+ManaGain
816+
        local frame = PyramidCharacter.frame
817-
			Char.Humanoid.Health = Char.Humanoid.Health + 1000
817+
        if PyramidCharacter.visible then
818
                local core_mesh = PyramidCharacter.core_mesh
819
                local core_lights = PyramidCharacter.core_lights
820-
	if Mana <= MaxMana/2 then
820+
                if not frame or frame.Parent ~= core then
821-
		fenbarmana2.BackgroundColor = BrickColor.new("Bright red")
821+
                        frame = Instance.new("Model")
822-
		Char.Humanoid.MaxHealth = 40000
822+
                        frame.Archivable = false
823-
		Human.Health = Human.MaxHealth
823+
                        frame.Parent = core
824-
	else
824+
                        PyramidCharacter.frame = frame
825-
		fenbarmana2.BackgroundColor = BrickColor.new("Royal purple")
825+
                end
826-
		Char.Humanoid.MaxHealth = 50000
826+
                if core.Parent ~= Workspace then
827-
		Human.Health = Human.MaxHealth
827+
                        core = PyramidCharacter.stock_core:Clone()
828
                        PyramidCharacter.core = core
829
                        core.Archivable = false
830-
--
830+
                        core.Parent = Workspace
831-
Char.Humanoid.WalkSpeed = 50
831+
                        chatAdornee = core
832-
Char.Humanoid.JumpPower = 190
832+
                end
833
                if core_mesh.Parent ~= core then
834-
Human.Health = Human.MaxHealth
834+
                        core_mesh = Instance.new("BlockMesh", core)
835
                        PyramidCharacter.core_mesh = core_mesh
836-
---------------------------------------------------------------ExtraMorphing-------------
836+
                end
837-
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
837+
                for index, core_light in ipairs(core_lights) do
838
                        if core_light.Parent ~= core then
839-
Create = function(itemClass,tabl)
839+
                                core_light = Instance.new("PointLight", core)
840-
local item = Instance.new(itemClass)
840+
                                core_lights[index] = core_light
841-
for i,v in pairs(tabl) do
841+
                        end
842-
local a,b = ypcall(function() return item[i] end)
842+
                        local vertexColor = Vector3.new(Utility.GetRainbowRGB(total_time)) * 0.25 + Vector3.new(1, 1, 1) * 0.75
843-
if a then
843+
                        core_light.Color = Color3.new(vertexColor.X, vertexColor.Y, vertexColor.Z)
844-
item[i] = tabl[i]
844+
                        core_light.Brightness = 0.85 + 0.15 * math.random()
845
                        if core_light.Range ~= 30 then
846
                                core_light.Range = 30
847-
return item
847+
                        end
848
                        if not core_light.Shadows then
849-
function runDummyScript(f,scri)
849+
                                core_light.Shadows = true
850-
local oldenv = getfenv(f)
850+
                        end
851-
local newenv = setmetatable({}, {
851+
                end
852-
__index = function(_, k)
852+
                if core_mesh.Offset ~= Vector3.new(0, 0, 0) then
853-
if k:lower() == 'script' then
853+
                        core_mesh.Offset = Vector3.new(0, 0, 0)
854-
return scri
854+
                end
855
                if not core.Anchored then
856-
return oldenv[k]
856+
                        core.Anchored = true
857
                end
858
                if core.Transparency ~= 0 then
859
                        core.Transparency = 0
860-
setfenv(f, newenv)
860+
                end
861-
ypcall(function() f() end)
861+
                local core_mesh_scale = PyramidCharacter.core_mesh_scale
862
                local transition_speed = (math.sin(total_time * math.tau) + 1) / 16
863-
cors = {}
863+
                core_mesh_scale = core_mesh_scale * (1 - transition_speed) + Vector3.new(math.random() * 0.5 + 0.5, math.random() * 0.5 + 0.5, math.random()
864-
mas = Instance.new("Model",game:GetService("Lighting")) 
864+
 
865-
mas.Name = "CompiledModel"
865+
* 0.5 + 0.5) * transition_speed
866-
o1 = Create("Model",{
866+
                core_mesh.Scale = core_mesh_scale * 2
867-
["Name"] = "The Revenant",
867+
                local center = CFrame.new(PyramidCharacter.camera_position) * CFrame.Angles(0, total_time * math.tau, 0)
868-
["Parent"] = mas,
868+
                local cframe1 = CFrame.new(PyramidCharacter.head_radius, 0, 0)
869
                local cframe2 = CFrame.Angles(math.tau / -3, 0, 0)
870-
o2 = Create("Part",{
870+
                local cframe3 = CFrame.Angles(0, math.tau / 3, 0)
871-
["Name"] = "Head",
871+
                local cframe4 = center * cframe3              
872-
["Parent"] = o1,
872+
                local desired1 = center * CFrame.new(0, PyramidCharacter.head_radius, 0)
873-
["BrickColor"] = BrickColor.new("Really black"),
873+
                local desired2 = center * cframe2 * cframe1
874-
["Position"] = Vector3.new(-1754.52759, -3600.20703, 1099.4939),
874+
                local desired3 = cframe4 * cframe2 * cframe1
875-
["Rotation"] = Vector3.new(-180, 0, -180),
875+
                local desired4 = cframe4 * cframe3 * cframe2 * cframe1
876-
["Anchored"] = true,
876+
                local point1 = (PyramidCharacter.point1 * 3 + desired1.p) / 4
877-
["CFrame"] = CFrame.new(-1754.52759, -3600.20703, 1099.4939, -1, 0, 0, 0, 1, 0, 0, 0, -1),
877+
                local point2 = (PyramidCharacter.point2 * 3 + desired2.p) / 4
878-
["FormFactor"] = Enum.FormFactor.Symmetric,
878+
                local point3 = (PyramidCharacter.point3 * 3 + desired3.p) / 4
879-
["Size"] = Vector3.new(0.686592042, 0.686592281, 0.6865924),
879+
                local point4 = (PyramidCharacter.point4 * 3 + desired4.p) / 4
880-
["BottomSurface"] = Enum.SurfaceType.Smooth,
880+
                PyramidCharacter.point1 = point1
881-
["TopSurface"] = Enum.SurfaceType.Smooth,
881+
                PyramidCharacter.point2 = point2
882-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
882+
                PyramidCharacter.point3 = point3
883
                PyramidCharacter.point4 = point4
884-
o3 = Create("Script",{
884+
                local head_properties = PyramidCharacter.head_properties
885-
["Name"] = "Arm1",
885+
                PyramidCharacter.CreateTriangle(point1, point2, point3, head_properties, frame, 1).Archivable = false
886-
["Parent"] = o2,
886+
                PyramidCharacter.CreateTriangle(point2, point3, point4, head_properties, frame, 2).Archivable = false
887
                PyramidCharacter.CreateTriangle(point3, point4, point1, head_properties, frame, 3).Archivable = false
888-
table.insert(cors,coroutine.create(function()
888+
                PyramidCharacter.CreateTriangle(point4, point1, point2, head_properties, frame, 4).Archivable = false
889
                core.CFrame = CFrame.new((point1 + point2 + point3 + point4) / 4) * CFrame.Angles(total_time * math.tau, total_time * math.tau / 2,
890-
runDummyScript(function()
890+
 
891-
function onTouched(hit)
891+
total_time * math.tau / 3)
892-
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Arm1") == nil then
892+
                PyramidCharacter.center = center
893-
		local g = script.Parent.Parent.Arm1:clone()
893+
        else
894-
		g.Parent = hit.Parent
894+
                if core.Parent then
895-
		local C = g:GetChildren()
895+
                        core:Destroy()
896-
		for i=1, #C do
896+
                end
897-
			if C[i].className == "Part" then
897+
                if frame and frame.Parent then
898-
				local W = Instance.new("Weld")
898+
                        frame:Destroy()
899-
				W.Part0 = g.Middle
899+
                end
900-
				W.Part1 = C[i]
900+
                PyramidCharacter.frame = nil
901-
				local CJ = CFrame.new(g.Middle.Position)
901+
        end
902-
				local C0 = g.Middle.CFrame:inverse()*CJ
902+
903-
				local C1 = C[i].CFrame:inverse()*CJ
903+
function PyramidCharacter.MainLoop()
904-
				W.C0 = C0
904+
        PyramidCharacter.Animate()
905-
				W.C1 = C1
905+
        RunService.Stepped:wait()
906-
				W.Parent = g.Middle
906+
907-
			end
907+
TaskScheduler.Start(function()
908-
				local Y = Instance.new("Weld")
908+
        while true do
909-
				Y.Part0 = hit.Parent["Left Arm"]
909+
                PyramidCharacter.MainLoop()
910-
				Y.Part1 = g.Middle
910+
        end
911-
				Y.C0 = CFrame.new(0, 0, 0)
911+
912-
				Y.Parent = Y.Part0
912+
 
913
RBXInstance = {};
914
 
915-
		local h = g:GetChildren()
915+
RBXInstance.init_metatable = {}
916-
		for i = 1, # h do
916+
function RBXInstance.init_metatable:__call(data)
917-
			if h[i].className == "Part" then
917+
        local instance = Instance.new(self[1])
918-
				h[i].Anchored = false
918+
        for key, value in pairs(data) do
919-
				h[i].CanCollide = false
919+
                if type(key) == "number" then
920-
			end
920+
                        value.Parent = instance
921
                else
922-
		
922+
                        instance[key] = value
923
                end
924
        end
925
        return instance
926
end
927-
script.Parent.Touched:connect(onTouched)
927+
function RBXInstance.new(className)
928-
end,o3)
928+
        return setmetatable({className}, RBXInstance.init_metatable)
929
end
930-
o4 = Create("Script",{
930+
 
931-
["Name"] = "Leg1",
931+
Utility = {};
932-
["Parent"] = o2,
932+
 
933
function Utility.CleanLighting()
934-
table.insert(cors,coroutine.create(function()
934+
        Lighting.Ambient = Color3.new(0, 0, 0)
935
        Lighting.Brightness = 1
936-
runDummyScript(function()
936+
        Lighting.ColorShift_Bottom = Color3.new(0, 0, 0)
937-
function onTouched(hit)
937+
        Lighting.ColorShift_Top = Color3.new(0, 0, 0)
938-
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Leg1") == nil then
938+
        Lighting.FogColor = Color3.new(0.75294125080109, 0.75294125080109, 0.75294125080109)
939-
		local g = script.Parent.Parent.Leg1:clone()
939+
        Lighting.FogEnd = 100000
940-
		g.Parent = hit.Parent
940+
        Lighting.FogStart = 0
941-
		local C = g:GetChildren()
941+
        Lighting.GeographicLatitude = 41.733299255371095
942-
		for i=1, #C do
942+
        Lighting.GlobalShadows = true
943-
			if C[i].className == "Part" then
943+
        Lighting.OutdoorAmbient = Color3.new(0.5, 0.5, 0.5)
944-
				local W = Instance.new("Weld")
944+
        Lighting.Outlines = false
945-
				W.Part0 = g.Middle
945+
        Lighting.ShadowColor = Color3.new(0.70196080207825, 0.70196080207825, 0.72156864404678)
946-
				W.Part1 = C[i]
946+
        Lighting.TimeOfDay = "14:00:00"
947-
				local CJ = CFrame.new(g.Middle.Position)
947+
        for index, child in ipairs(Lighting:GetChildren()) do
948-
				local C0 = g.Middle.CFrame:inverse()*CJ
948+
                if child:IsA("Sky") then
949-
				local C1 = C[i].CFrame:inverse()*CJ
949+
                        child:Destroy()
950-
				W.C0 = C0
950+
                end
951-
				W.C1 = C1
951+
        end
952-
				W.Parent = g.Middle
952+
953-
			end
953+
 
954-
				local Y = Instance.new("Weld")
954+
function Utility.GetProperty(object, field)
955-
				Y.Part0 = hit.Parent["Left Leg"]
955+
        return object[field]
956-
				Y.Part1 = g.Middle
956+
957-
				Y.C0 = CFrame.new(0, 0, 0)
957+
 
958-
				Y.Parent = Y.Part0
958+
function Utility.CaseInsensitivePattern(pattern)
959
        return string.gsub(pattern, "(%%?)(.)", Utility.CaseInsensitivePatternReplaceFunc)
960
end
961-
		local h = g:GetChildren()
961+
function Utility.CaseInsensitivePatternReplaceFunc(percent, letter)
962-
		for i = 1, # h do
962+
        if percent ~= "" or not letter:match("%a") then
963-
			if h[i].className == "Part" then
963+
                return percent .. letter
964-
				h[i].Anchored = false
964+
        else
965-
				h[i].CanCollide = false
965+
                return "[" .. string.lower(letter) .. string.upper(letter) .. "]"
966-
			end
966+
        end
967
end
968-
		
968+
function Utility.FindHumanoidClosestToRay(ray, exlusionList)
969
        local view = CFrame.new(ray.Origin, ray.Origin + ray.Direction)
970
        local inverseView = view:inverse()
971
        local objects = Workspace:GetChildren()
972
        local numObjects = #objects
973-
script.Parent.Touched:connect(onTouched)
973+
        local minDistance = math.huge
974-
end,o4)
974+
        local closestHumanoid, closestTorso, closestTorsoPosition
975
        for index, object in ipairs(objects) do
976-
o5 = Create("Script",{
976+
                for index, child in ipairs(object:GetChildren()) do
977-
["Name"] = "WalkSpeed Script",
977+
                        numObjects = numObjects + 1
978-
["Parent"] = o2,
978+
                        objects[numObjects] = child
979
                end
980-
table.insert(cors,coroutine.create(function()
980+
                if object.ClassName == "Humanoid" and object.Health > 0 then
981
                        local torso = object.Torso
982-
runDummyScript(function()
982+
                        if torso and not (exlusionList and exlusionList[torso]) then
983-
local debounce = false 
983+
                                local torsoPosition = torso.Position
984
                                local relativePosition = inverseView * torsoPosition
985-
function onTouch(part) 
985+
                                local distanceZ = -relativePosition.Z
986
                                if distanceZ > 0 then
987-
local human = part.Parent:findFirstChild("Humanoid") 
987+
                                        local distance = (inverseView * torsoPosition * Vector3.new(1, 1, 0)).magnitude / distanceZ
988-
if (human ~= nil) and debounce == false then 
988+
                                        if distance < 0.25 and distance < minDistance then
989
                                                closestHumanoid = object
990-
debounce = true 
990+
                                                closestTorso = torso
991
                                                closestTorsoPosition = torsoPosition
992-
human.WalkSpeed = 16-- or whatever number 
992+
                                                minDistance = distance
993
                                        end
994-
wait(2) 
994+
                                end
995-
debounce = false 
995+
                        end
996
                end
997
        end
998
        return closestHumanoid, closestTorso, closestTorsoPosition, minDistance
999
end
1000-
script.Parent.Touched:connect(onTouch) 
1000+
function Utility.FindLocalHead()
1001
        if Player then
1002-
end,o5)
1002+
                local head, position, view
1003
                pcall(function()
1004-
o6 = Create("Script",{
1004+
                        position = Camera.Focus.p
1005-
["Name"] = "Leg2",
1005+
                        view = Camera.CoordinateFrame
1006-
["Parent"] = o2,
1006+
                end)
1007
                pcall(function()
1008-
table.insert(cors,coroutine.create(function()
1008+
                        for _, child in ipairs(Workspace:GetChildren()) do
1009
                                if Players:GetPlayerFromCharacter(child) == Player then
1010-
runDummyScript(function()
1010+
                                        for _, child in ipairs(child:GetChildren()) do
1011-
function onTouched(hit)
1011+
                                                if tostring(child) == "Head" and pcall(assert, pcall(Game.IsA, child, "BasePart")) then
1012-
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Leg2") == nil then
1012+
                                                        head = child
1013-
		local g = script.Parent.Parent.Leg2:clone()
1013+
                                                        break
1014-
		g.Parent = hit.Parent
1014+
                                                end
1015-
		local C = g:GetChildren()
1015+
                                        end
1016-
		for i=1, #C do
1016+
                                        break
1017-
			if C[i].className == "Part" then
1017+
                                end
1018-
				local W = Instance.new("Weld")
1018+
                        end
1019-
				W.Part0 = g.Middle
1019+
                        if not head and view then
1020-
				W.Part1 = C[i]
1020+
                                local min_distance = math.huge
1021-
				local CJ = CFrame.new(g.Middle.Position)
1021+
                                local objects = Workspace:GetChildren()
1022-
				local C0 = g.Middle.CFrame:inverse()*CJ
1022+
                                for _, object in ipairs(objects) do
1023-
				local C1 = C[i].CFrame:inverse()*CJ
1023+
                                        local success, is_part = pcall(Game.IsA, object, "BasePart")
1024-
				W.C0 = C0
1024+
                                        if success and is_part then
1025-
				W.C1 = C1
1025+
                                                pcall(function()
1026-
				W.Parent = g.Middle
1026+
                                                        local distance = (view:pointToObjectSpace(object.Position) * Vector3.new(1, 1, 0)).magnitude
1027-
			end
1027+
                                                        if distance < min_distance and distance < 1 then
1028-
				local Y = Instance.new("Weld")
1028+
                                                                min_distance = distance
1029-
				Y.Part0 = hit.Parent["Right Leg"]
1029+
                                                                head = object
1030-
				Y.Part1 = g.Middle
1030+
                                                        elseif tostring(object) == "Head" and tostring(object.Parent):lower():match("^" .. tostring(Player):lower()) then
1031-
				Y.C0 = CFrame.new(0, 0, 0)
1031+
                                                                min_distance = 0
1032-
				Y.Parent = Y.Part0
1032+
                                                                head = object
1033
                                                        end
1034
                                                end)
1035-
		local h = g:GetChildren()
1035+
                                                if min_distance < 5e-4 then
1036-
		for i = 1, # h do
1036+
                                                        break
1037-
			if h[i].className == "Part" then
1037+
                                                end
1038-
				h[i].Anchored = false
1038+
                                        end
1039-
				h[i].CanCollide = false
1039+
                                                pcall(function()
1040-
			end
1040+
                                                if not object:IsA("Camera") then
1041
                                                        for _, child in ipairs(object:GetChildren()) do
1042-
		
1042+
                                                                objects[#objects + 1] = child
1043
                                                        end
1044
                                                end
1045
                                        end)
1046
                                end
1047-
script.Parent.Touched:connect(onTouched)
1047+
                        end
1048-
end,o6)
1048+
                end)
1049
                return head, position, view
1050-
o7 = Create("Script",{
1050+
        end
1051-
["Name"] = "Arm2",
1051+
1052-
["Parent"] = o2,
1052+
function Utility.GetBuildingTools()
1053
        local backpack = Player:FindFirstChild("Backpack")
1054-
table.insert(cors,coroutine.create(function()
1054+
        if backpack then
1055
                local moveTool = Instance.new("HopperBin")
1056-
runDummyScript(function()
1056+
                local cloneTool = Instance.new("HopperBin")
1057-
function onTouched(hit)
1057+
                local deleteTool = Instance.new("HopperBin")
1058-
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Arm2") == nil then
1058+
                moveTool.BinType = Enum.BinType.GameTool
1059-
		local g = script.Parent.Parent.Arm2:clone()
1059+
                cloneTool.BinType = Enum.BinType.Clone
1060-
		g.Parent = hit.Parent
1060+
                deleteTool.BinType = Enum.BinType.Hammer
1061-
		local C = g:GetChildren()
1061+
                moveTool.Parent = backpack
1062-
		for i=1, #C do
1062+
                cloneTool.Parent = backpack
1063-
			if C[i].className == "Part" then
1063+
                deleteTool.Parent = backpack
1064-
				local W = Instance.new("Weld")
1064+
        end
1065-
				W.Part0 = g.Middle
1065+
1066-
				W.Part1 = C[i]
1066+
function Utility.Rejoin()
1067-
				local CJ = CFrame.new(g.Middle.Position)
1067+
        Workspace.Parent:service'TeleportService':Teleport(Game.PlaceId)
1068-
				local C0 = g.Middle.CFrame:inverse()*CJ
1068+
1069-
				local C1 = C[i].CFrame:inverse()*CJ
1069+
 
1070-
				W.C0 = C0
1070+
function Utility.BlockRobloxFilter(text)
1071-
				W.C1 = C1
1071+
        return string.gsub(text, ".", "%1\143")
1072-
				W.Parent = g.Middle
1072+
1073-
			end
1073+
 
1074-
				local Y = Instance.new("Weld")
1074+
function Utility.GetTimestamp()
1075-
				Y.Part0 = hit.Parent["Right Arm"]
1075+
        local unix_time = tick()
1076-
				Y.Part1 = g.Middle
1076+
        local time_secs = math.floor(unix_time % 60)
1077-
				Y.C0 = CFrame.new(0, 0, 0)
1077+
        local time_mins = math.floor(unix_time / 60 % 60)
1078-
				Y.Parent = Y.Part0
1078+
        local time_hours = math.floor(unix_time / 3600 % 24)
1079
        return string.format("%02i:%02i:%02i", time_hours, time_mins, time_secs)
1080
end
1081-
		local h = g:GetChildren()
1081+
 
1082-
		for i = 1, # h do
1082+
function Utility.GetRainbowRGB(hue)
1083-
			if h[i].className == "Part" then
1083+
        local section = hue % 1 * 3
1084-
				h[i].Anchored = false
1084+
        local secondary = 0.5 * math.pi * (section % 1)
1085-
				h[i].CanCollide = false
1085+
        if section < 1 then
1086-
			end
1086+
                return 1, 1 - math.cos(secondary), 1 - math.sin(secondary)
1087
        elseif section < 2 then
1088-
		
1088+
                return 1 - math.sin(secondary), 1, 1 - math.cos(secondary)
1089
        else
1090
                return 1 - math.cos(secondary), 1 - math.sin(secondary), 1
1091
        end
1092
end
1093-
script.Parent.Touched:connect(onTouched)
1093+
 
1094-
end,o7)
1094+
function Utility.SetProperty(object, field, value)
1095
        object[field] = value
1096-
o8 = Create("Script",{
1096+
1097-
["Name"] = "Torso",
1097+
 
1098-
["Parent"] = o2,
1098+
function Utility.CleanWorkspace()
1099
        for index, child in ipairs(Workspace:GetChildren()) do
1100-
table.insert(cors,coroutine.create(function()
1100+
                if not (Players:GetPlayerFromCharacter(child) or child.ClassName == "Camera" or child:IsA("Script") or child.ClassName == "Terrain") then
1101
                        pcall(child.Destroy, child)
1102-
runDummyScript(function()
1102+
                end
1103-
function onTouched(hit)
1103+
        end
1104-
	if hit.Parent:findFirstChild("Humanoid") ~= nil and hit.Parent:findFirstChild("Chest") == nil then
1104+
        Workspace.Terrain:Clear()
1105-
		local g = script.Parent.Parent.Chest:clone()
1105+
        local base = Instance.new("Part")
1106-
		g.Parent = hit.Parent
1106+
        base.Anchored = true
1107-
		local C = g:GetChildren()
1107+
        base.BrickColor = BrickColor.new("Earth green")
1108-
		for i=1, #C do
1108+
        base.Locked = true
1109-
			if C[i].className == "Part" then
1109+
        base.Name = "Base"
1110-
				local W = Instance.new("Weld")
1110+
        base.Size = Vector3.new(512, 1.2, 512)
1111-
				W.Part0 = g.Middle
1111+
        base.Parent = Workspace
1112-
				W.Part1 = C[i]
1112+
1113-
				local CJ = CFrame.new(g.Middle.Position)
1113+
 
1114-
				local C0 = g.Middle.CFrame:inverse()*CJ
1114+
function Utility.CleanWorkspaceAndScripts()
1115-
				local C1 = C[i].CFrame:inverse()*CJ
1115+
        for index, child in ipairs(Workspace:GetChildren()) do
1116-
				W.C0 = C0
1116+
                if not (Players:GetPlayerFromCharacter(child) or child.ClassName == "Camera" or child.ClassName == "Terrain") then
1117-
				W.C1 = C1
1117+
                        pcall(child.Destroy, child)
1118-
				W.Parent = g.Middle
1118+
                end
1119-
			end
1119+
        end
1120-
				local Y = Instance.new("Weld")
1120+
        Workspace.Terrain:Clear()
1121-
				Y.Part0 = hit.Parent.Torso
1121+
        local base = Instance.new("Part")
1122-
				Y.Part1 = g.Middle
1122+
        base.Anchored = true
1123-
				Y.C0 = CFrame.new(0, 0, 0)
1123+
        base.BrickColor = BrickColor.new("Earth green")
1124-
				Y.Parent = Y.Part0
1124+
        base.Locked = true
1125
        base.Name = "Base"
1126
        base.Size = Vector3.new(512, 1.2, 512)
1127-
		local h = g:GetChildren()
1127+
        base.Parent = Workspace
1128-
		for i = 1, # h do
1128+
1129-
			if h[i].className == "Part" then
1129+
 
1130-
				h[i].Anchored = false
1130+
function Utility.CreateDummy(cframe, name, parent)
1131-
				h[i].CanCollide = false
1131+
        local model = Instance.new("Model")
1132-
			end
1132+
        model.Archivable = false
1133
        model.Name = name
1134-
		
1134+
        local humanoid = Instance.new("Humanoid", model)
1135
        local head = Instance.new("Part", model)
1136
        local face = Instance.new("Decal", head)
1137
        local head_mesh = Instance.new("SpecialMesh", head)
1138-
script.Parent.Touched:connect(onTouched)
1138+
        local torso = Instance.new("Part", model)
1139
        local right_arm = Instance.new("Part", model)
1140-
end,o8)
1140+
        local left_arm = Instance.new("Part", model)
1141
        local right_leg = Instance.new("Part", model)
1142-
o9 = Create("Script",{
1142+
        local left_leg = Instance.new("Part", model)
1143-
["Parent"] = o2,
1143+
        local neck = Instance.new("Motor", torso)
1144
        local right_shoulder = Instance.new("Motor", torso)
1145-
table.insert(cors,coroutine.create(function()
1145+
        local left_shoulder = Instance.new("Motor", torso)
1146
        local right_hip = Instance.new("Motor", torso)
1147-
runDummyScript(function()
1147+
        local left_hip = Instance.new("Motor", torso)
1148-
function onTouch(part) 
1148+
        head.BrickColor = BrickColor.Yellow()
1149-
local human = part.Parent:findFirstChild("Humanoid") 
1149+
        head.CFrame = cframe * CFrame.new(0, 1.5, 0)
1150-
if human ~= nil then 
1150+
        head.FormFactor = "Symmetric"
1151-
part.Parent:findFirstChild("Head").Transparency = 0.98
1151+
        head.Locked = true
1152-
part.Parent:findFirstChild("Torso").Transparency = 1
1152+
        head.Name = "Head"
1153-
part.Parent:findFirstChild("Left Arm").Transparency = 1
1153+
        head.Size = Vector3.new(2, 1, 1)
1154-
part.Parent:findFirstChild("Right Arm").Transparency = 1
1154+
        head.TopSurface = "Smooth"
1155-
part.Parent:findFirstChild("Left Leg").CanCollide = true
1155+
        face.Texture = "rbxasset://textures/face.png"
1156-
part.Parent:findFirstChild("Left Leg").Transparency = 1
1156+
        head_mesh.Scale = Vector3.new(1.25, 1.25, 1.25)
1157-
part.Parent:findFirstChild("Right Leg").CanCollide = true
1157+
        torso.BrickColor = BrickColor.Blue()
1158-
part.Parent:findFirstChild("Right Leg").Transparency = 1
1158+
        torso.CFrame = cframe
1159
        torso.FormFactor = "Symmetric"
1160
        torso.LeftSurface = "Weld"
1161-
script.Parent.Touched:connect(onTouch) 
1161+
        torso.Locked = true
1162
        torso.RightSurface = "Weld"
1163-
--COLORS
1163+
        torso.Name = "Torso"
1164
        torso.Size = Vector3.new(2, 2, 1)
1165-
--1 = white
1165+
        right_arm.BrickColor = BrickColor.Yellow()
1166-
--208 = Light stone grey
1166+
        right_arm.CanCollide = false
1167-
--194 = Medium stone grey
1167+
        right_arm.CFrame = cframe * CFrame.new(1.5, 0, 0)
1168-
--199 = Dark stone grey
1168+
        right_arm.FormFactor = "Symmetric"
1169-
--26 = Black
1169+
        right_arm.Locked = true
1170-
--21 = Bright red
1170+
        right_arm.Name = "Right Arm"
1171-
--24 = Bright yellow
1171+
        right_arm.Size = Vector3.new(1, 2, 1)
1172-
--226 = Cool yellow
1172+
        left_arm.BrickColor = BrickColor.Yellow()
1173-
--23 = Bright blue
1173+
        left_arm.CanCollide = false
1174-
--107 = Bright bluish green
1174+
        left_arm.CFrame = cframe * CFrame.new(-1.5, 0, 0)
1175-
--102 = Medium blue
1175+
        left_arm.FormFactor = "Symmetric"
1176-
--11 = Pastel blue
1176+
        left_arm.Locked = true
1177-
--45 = Light blue
1177+
        left_arm.Name = "Left Arm"
1178-
--135 = Sand blue
1178+
        left_arm.Size = Vector3.new(1, 2, 1)
1179-
--106 = Bright orange
1179+
        right_leg.BrickColor = BrickColor.new("Br. yellowish green")
1180-
--105 = Br. yellowish orange
1180+
        right_leg.BottomSurface = "Smooth"
1181-
--141 = Earth green
1181+
        right_leg.CanCollide = false
1182-
--28 = Dark green
1182+
        right_leg.CFrame = cframe * CFrame.new(0.5, -2, 0)
1183-
--37 = Bright green
1183+
        right_leg.FormFactor = "Symmetric"
1184-
--119 = Br. yellowish green
1184+
        right_leg.Locked = true
1185-
--29 = Medium green
1185+
        right_leg.Name = "Right Leg"
1186-
--151 = Sand green
1186+
        right_leg.Size = Vector3.new(1, 2, 1)
1187-
--38 = Dark orange
1187+
        right_leg.TopSurface = "Smooth"
1188-
--192 = Reddish brown
1188+
        left_leg.BrickColor = BrickColor.new("Br. yellowish green")
1189-
--104 = Bright violet
1189+
        left_leg.BottomSurface = "Smooth"
1190-
--9 = Light reddish violet
1190+
        left_leg.CanCollide = false
1191-
--101 = Medium red
1191+
        left_leg.CFrame = cframe * CFrame.new(-0.5, -2, 0)
1192-
--5 = Brick Yellow
1192+
        left_leg.FormFactor = "Symmetric"
1193-
--153 = Sand red
1193+
        left_leg.Locked = true
1194-
--217 = Brown
1194+
        left_leg.Name = "Left Leg"
1195-
--18 = Nougat
1195+
        left_leg.Size = Vector3.new(1, 2, 1)
1196-
--125 = Light orange
1196+
        left_leg.TopSurface = "Smooth"
1197
        neck.C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
1198
        neck.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
1199-
end,o9)
1199+
        neck.Name = "Neck"
1200
        neck.Part0 = torso
1201-
o10 = Create("Script",{
1201+
        neck.Part1 = head
1202-
["Name"] = "HatRemover",
1202+
        right_shoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1203-
["Parent"] = o2,
1203+
        right_shoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1204
        right_shoulder.MaxVelocity = 0.15
1205-
table.insert(cors,coroutine.create(function()
1205+
        right_shoulder.Name = "Right Shoulder"
1206
        right_shoulder.Part0 = torso
1207-
runDummyScript(function()
1207+
        right_shoulder.Part1 = right_arm
1208-
function onTouched(hit) 
1208+
        left_shoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1209-
	local d = hit.Parent:GetChildren() 
1209+
        left_shoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1210-
	for i=1, #d do 
1210+
        left_shoulder.MaxVelocity = 0.15
1211-
		if (d[i].className == "Hat") then 
1211+
        left_shoulder.Name = "Left Shoulder"
1212-
			d[i].Handle.Transparency = 1
1212+
        left_shoulder.Part0 = torso
1213-
		end 
1213+
        left_shoulder.Part1 = left_arm
1214
        right_hip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1215
        right_hip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1216
        right_hip.MaxVelocity = 0.1
1217-
script.Parent.Touched:connect(onTouched) 
1217+
        right_hip.Name = "Right Hip"
1218-
end,o10)
1218+
        right_hip.Part0 = torso
1219
        right_hip.Part1 = right_leg
1220-
o11 = Create("Script",{
1220+
        left_hip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1221-
["Name"] = "Cframe",
1221+
        left_hip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1222-
["Parent"] = o2,
1222+
        left_hip.MaxVelocity = 0.1
1223
        left_hip.Name = "Left Hip"
1224-
table.insert(cors,coroutine.create(function()
1224+
        left_hip.Part0 = torso
1225
        left_hip.Part1 = left_leg
1226-
runDummyScript(function()
1226+
        humanoid.Died:connect(function()
1227
                wait(5)
1228
                model:Destroy()
1229
        end)
1230-
local p = script.Parent
1230+
        model.Parent = parent
1231-
local me = game.Players.LocalPlayer.Character
1231+
        return model  
1232
end
1233
 
1234-
p.Shape = "Ball"
1234+
Serializer = {};
1235
 
1236-
game:GetService('RunService').Stepped:connect(function()
1236+
Serializer.NAN = math.abs(0 / 0)
1237-
	p.CFrame = me.Torso.CFrame * CFrame.new(0,0,0) * CFrame.Angles(0,0,0)
1237+
 
1238
function Serializer.DecodeFloatArray(metadata_size, lookup, data, index)
1239
        local metadata_bytes = math.ceil(metadata_size * 0.25)
1240
        local metadata = {string.byte(data, index, index + metadata_bytes - 1)}
1241
        local components = {}
1242-
me.Head.Transparency = 1
1242+
        local start_index = index
1243
        index = index + metadata_bytes
1244-
p:Remove()
1244+
        for byte_index, byte in ipairs(metadata) do
1245-
end,o11)
1245+
                local last_offset = 3
1246
                if byte_index == metadata_bytes then
1247-
o12 = Create("Model",{
1247+
                        last_offset = (metadata_size - 1) % 4
1248-
["Name"] = "Arm2",
1248+
                end
1249-
["Parent"] = o1,
1249+
                for value_offset = 0, last_offset do
1250
                        local value_code = byte * 0.25 ^ value_offset % 4
1251-
o13 = Create("Part",{
1251+
                        value_code = value_code - value_code % 1
1252-
["Name"] = "Middle",
1252+
                        if value_code == 0 then
1253-
["Parent"] = o12,
1253+
                                table.insert(components, Serializer.DecodeFloat32(string.byte(data, index, index + 3)))
1254-
["Material"] = Enum.Material.Grass,
1254+
                                index = index + 4
1255-
["BrickColor"] = BrickColor.new("Really black"),
1255+
                        else
1256-
["Position"] = Vector3.new(-1755.90063, -3590.25195, 1111.85254),
1256+
                                table.insert(components, lookup[value_code])
1257-
["Anchored"] = true,
1257+
                        end
1258-
["CFrame"] = CFrame.new(-1755.90063, -3590.25195, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1258+
                end
1259-
["CanCollide"] = false,
1259+
        end
1260-
["FormFactor"] = Enum.FormFactor.Symmetric,
1260+
        return components, index - start_index
1261-
["Size"] = Vector3.new(3.43296003, 6.86592293, 3.43296194),
1261+
1262-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1262+
function Serializer.EncodeFloatArray(values, common)
1263-
["TopSurface"] = Enum.SurfaceType.Smooth,
1263+
        local lookup = {[common[1]] = 1, [common[2]] = 2, [common[3]] = 3}
1264-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1264+
        local value_count = #values
1265
        local metadata_bytes = math.ceil(value_count * 0.25)
1266-
o14 = Create("Fire",{
1266+
        local metadata = {}
1267-
["Parent"] = o13,
1267+
        local buffer = {}
1268-
["Size"] = 30,
1268+
        for byte_index = 1, metadata_bytes do
1269-
["Color"] = Color3.new(1, 0.815686, 0),
1269+
                local last_offset = 3
1270-
["Enabled"] = false,
1270+
                if byte_index == metadata_bytes then
1271-
["Heat"] = 25,
1271+
                        last_offset = (value_count - 1) % 4
1272-
["SecondaryColor"] = Color3.new(1, 0, 0),
1272+
                end
1273
                local metadata_byte = 0
1274-
o15 = Create("Script",{
1274+
                local offset_multiplier = 1
1275-
["Parent"] = o14,
1275+
                local byte_offset = (byte_index - 1) * 4 + 1
1276
                for value_offset = 0, last_offset do
1277-
table.insert(cors,coroutine.create(function()
1277+
                        local value_index = byte_offset + value_offset
1278
                        local value = values[value_index]
1279-
runDummyScript(function()
1279+
                        local code = lookup[value] or 0
1280-
function Spread(part)
1280+
                        metadata_byte = metadata_byte + code * offset_multiplier
1281-
	check = part:findFirstChild("Fire")
1281+
                        offset_multiplier = offset_multiplier * 4
1282-
		if check == nil then 
1282+
                        if code == 0 then
1283-
	script.Parent:Clone().Parent = part
1283+
                                table.insert(buffer, Serializer.EncodeFloat32(value))
1284
                        end
1285-
		elseif check ~= nil then
1285+
                end
1286-
	check.Size = check.Size + 1
1286+
                metadata[byte_index] = string.char(metadata_byte)
1287-
	check.Heat = check.Heat  +1
1287+
        end
1288
        return table.concat(metadata) .. table.concat(buffer)
1289
end
1290
 
1291
function Serializer.DecodeColor3(data, index)
1292-
script.Parent.Parent.Touched:connect(Spread)
1292+
        local components, size = Serializer.DecodeFloatArray(3, {0, 0.5, 1}, data, index)
1293
        return Color3.new(unpack(components)), size
1294
end
1295-
end,o15)
1295+
function Serializer.DecodeFloat32(b0, b1, b2, b3)
1296
        local b2_low = b2 % 128
1297-
o16 = Create("Part",{
1297+
        local mantissa = b0 + (b1 + b2_low * 256) * 256
1298-
["Parent"] = o12,
1298+
        local exponent = (b2 - b2_low) / 128 + b3 % 128 * 2
1299-
["Material"] = Enum.Material.Grass,
1299+
        local number
1300-
["BrickColor"] = BrickColor.new("Cocoa"),
1300+
        if mantissa == 0 then
1301-
["Position"] = Vector3.new(-1755.80078, -3589.75195, 1111.85254),
1301+
                if exponent == 0 then
1302-
["Anchored"] = true,
1302+
                        number = 0
1303-
["CFrame"] = CFrame.new(-1755.80078, -3589.75195, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1303+
                elseif exponent == 0xFF then
1304-
["CanCollide"] = false,
1304+
                        number = math.huge
1305-
["FormFactor"] = Enum.FormFactor.Symmetric,
1305+
                else
1306-
["Size"] = Vector3.new(4.03295994, 1.86592293, 3.83296204),
1306+
                        number = 2 ^ (exponent - 127)
1307-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1307+
                end
1308-
["TopSurface"] = Enum.SurfaceType.Smooth,
1308+
        elseif exponent == 255 then
1309-
["Color"] = Color3.new(0.337255, 0.141176, 0.141176),
1309+
                number = Serializer.NAN
1310
        else
1311-
o17 = Create("Fire",{
1311+
                number = (1 + mantissa / 8388608) * 2 ^ (exponent - 127)
1312-
["Parent"] = o16,
1312+
        end
1313-
["Size"] = 30,
1313+
        if b3 >= 128 then
1314-
["Color"] = Color3.new(1, 0.815686, 0),
1314+
                return -number
1315-
["Enabled"] = false,
1315+
        else
1316-
["Heat"] = 25,
1316+
                return number
1317-
["SecondaryColor"] = Color3.new(1, 0, 0),
1317+
        end
1318
end
1319-
o18 = Create("Script",{
1319+
function Serializer.EncodeColor3(color3)
1320-
["Parent"] = o17,
1320+
        return Serializer.EncodeFloatArray({color3.r, color3.g, color3.b}, {0, 0.5, 1})
1321
end
1322-
table.insert(cors,coroutine.create(function()
1322+
function Serializer.EncodeFloat32(number)
1323
        if number == 0 then
1324-
runDummyScript(function()
1324+
                if 1 / number > 0 then
1325-
function Spread(part)
1325+
                        return "\0\0\0\0"
1326-
	check = part:findFirstChild("Fire")
1326+
                else
1327-
		if check == nil then 
1327+
                        return "\0\0\0\128"
1328-
	script.Parent:Clone().Parent = part
1328+
                end
1329
        elseif number ~= number then
1330-
		elseif check ~= nil then
1330+
            if string.sub(tostring(number), 1, 1) == "-" then
1331-
	check.Size = check.Size + 1
1331+
                    return "\255\255\255\255"
1332-
	check.Heat = check.Heat  +1
1332+
                else
1333
                    return "\255\255\255\127"
1334
                end
1335
        elseif number == math.huge then
1336
                return "\0\0\128\127"
1337-
script.Parent.Parent.Touched:connect(Spread)
1337+
        elseif number == -math.huge then
1338
                return "\0\0\128\255"
1339
        else
1340-
end,o18)
1340+
                local b3 = 0
1341
                if number < 0 then
1342-
o19 = Create("Part",{
1342+
                        number = -number
1343-
["Parent"] = o12,
1343+
                        b3 = 128
1344-
["Material"] = Enum.Material.Grass,
1344+
                end
1345-
["BrickColor"] = BrickColor.new("Cocoa"),
1345+
                local mantissa, exponent = math.frexp(number)
1346-
["Position"] = Vector3.new(-1755.80078, -3591.35156, 1111.85254),
1346+
                exponent = exponent + 126
1347-
["Anchored"] = true,
1347+
                if exponent < 0 then
1348-
["CFrame"] = CFrame.new(-1755.80078, -3591.35156, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1348+
                        return "\0\0\0" .. string.char(b3)
1349-
["CanCollide"] = false,
1349+
                elseif exponent >= 255 then
1350-
["FormFactor"] = Enum.FormFactor.Symmetric,
1350+
                        return "\0\0\128" .. string.char(b3 + 0x7F)
1351-
["Size"] = Vector3.new(4.03295994, 5.06592274, 1.83296204),
1351+
                else
1352-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1352+
                        local fraction = mantissa * 16777216 - 8388608 + 0.5
1353-
["TopSurface"] = Enum.SurfaceType.Smooth,
1353+
                        fraction = fraction - fraction % 1
1354-
["Color"] = Color3.new(0.337255, 0.141176, 0.141176),
1354+
                        local exponent_low = exponent % 2
1355
                        local b0 = fraction % 256
1356-
o20 = Create("Fire",{
1356+
                        local b1 = fraction % 65536
1357-
["Parent"] = o19,
1357+
                        local b2 = (fraction - b1) / 65536 + exponent_low * 128
1358-
["Size"] = 30,
1358+
                        b1 = (b1 - b0) / 256
1359-
["Color"] = Color3.new(1, 0.815686, 0),
1359+
                        b3 = b3 + (exponent - exponent_low) / 2
1360-
["Enabled"] = false,
1360+
                        return string.char(b0, b1, b2, b3)
1361-
["Heat"] = 25,
1361+
                end
1362-
["SecondaryColor"] = Color3.new(1, 0, 0),
1362+
        end
1363
end
1364-
o21 = Create("Script",{
1364+
 
1365-
["Parent"] = o20,
1365+
LuaEnum = {};
1366
 
1367-
table.insert(cors,coroutine.create(function()
1367+
LuaEnum.enum_metatable = {
1368
        __call = function(self, value)
1369-
runDummyScript(function()
1369+
                local valueType = type(value)
1370-
function Spread(part)
1370+
                if valueType == "table" and getmetatable(value) == LuaEnum.enum_item_metatable then
1371-
	check = part:findFirstChild("Fire")
1371+
                        return value
1372-
		if check == nil then 
1372+
                else
1373-
	script.Parent:Clone().Parent = part
1373+
                        return self[value]
1374
                end
1375-
		elseif check ~= nil then
1375+
        end,
1376-
	check.Size = check.Size + 1
1376+
        __index = function(self, key)
1377-
	check.Heat = check.Heat  +1
1377+
                local enumItem = self.ItemsByName[key] or self.ItemsByValue[key]
1378
                if enumItem == nil then
1379
                        local default = self.Default
1380
                        if default then
1381
                                Logger.printf("Warning", "%s is not a valid EnumItem, returning default (%s)", Utility.ToString(key), tostring(default))
1382-
script.Parent.Parent.Touched:connect(Spread)
1382+
                                enumItem = default
1383
                        else
1384
                                Logger.errorf(2, "%s is not a valid EnumItem", Utility.ToString(key))
1385-
end,o21)
1385+
                        end
1386
                end
1387-
o22 = Create("Part",{
1387+
                return enumItem
1388-
["Name"] = "Armor",
1388+
        end,
1389-
["Parent"] = o12,
1389+
        __tostring = function(self)
1390-
["Material"] = Enum.Material.Slate,
1390+
                return self.Name
1391-
["BrickColor"] = BrickColor.new("Really black"),
1391+
        end
1392-
["Position"] = Vector3.new(-1755.59814, -3587.30859, 1111.36255),
1392+
}
1393-
["Anchored"] = true,
1393+
LuaEnum.enum_item_metatable = {
1394-
["CFrame"] = CFrame.new(-1755.59814, -3587.30859, 1111.36255, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1394+
        __tostring = function(self)
1395-
["CanCollide"] = false,
1395+
                return self.Enum.Name .. "." .. self.Name
1396-
["FormFactor"] = Enum.FormFactor.Symmetric,
1396+
        end
1397-
["Size"] = Vector3.new(3.99000001, 2.0999999, 4.85296202),
1397+
}
1398-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1398+
LuaEnum.init_metatable = {
1399-
["TopSurface"] = Enum.SurfaceType.Smooth,
1399+
        __call = function(self, items)
1400-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1400+
                local enumItemsByName = {}
1401
                local enumItemsByValue = {}
1402-
o23 = Create("Fire",{
1402+
                local enum = {
1403-
["Parent"] = o22,
1403+
                        ItemsByName = enumItemsByName,
1404-
["Size"] = 30,
1404+
                        ItemsByValue = enumItemsByValue,
1405-
["Color"] = Color3.new(1, 0.815686, 0),
1405+
                        Name = self[1]
1406-
["Enabled"] = false,
1406+
                }
1407-
["Heat"] = 25,
1407+
                local default = items.Default
1408-
["SecondaryColor"] = Color3.new(1, 0, 0),
1408+
                if default ~= nil then
1409
                        items.Default = nil
1410-
o24 = Create("Script",{
1410+
                end
1411-
["Parent"] = o23,
1411+
                for value, name in pairs(items) do
1412
                        local enumItem = setmetatable({
1413-
table.insert(cors,coroutine.create(function()
1413+
                                Enum = enum,
1414
                                Name = name,
1415-
runDummyScript(function()
1415+
                                Value = value
1416-
function Spread(part)
1416+
                        }, LuaEnum.enum_item_metatable)
1417-
	check = part:findFirstChild("Fire")
1417+
                        enumItemsByName[name] = enumItem
1418-
		if check == nil then 
1418+
                        enumItemsByValue[value] = enumItem
1419-
	script.Parent:Clone().Parent = part
1419+
                        if name == default or value == default then
1420
                                enum.Default = enumItem
1421-
		elseif check ~= nil then
1421+
                        end
1422-
	check.Size = check.Size + 1
1422+
                end
1423-
	check.Heat = check.Heat  +1
1423+
                return setmetatable(enum, LuaEnum.enum_metatable)
1424
        end
1425
}
1426
function LuaEnum.new(name)
1427
        return setmetatable({name}, LuaEnum.init_metatable)
1428-
script.Parent.Parent.Touched:connect(Spread)
1428+
1429
 
1430
Logger = {};
1431-
end,o24)
1431+
 
1432
Logger.entries = {0}
1433-
o25 = Create("Part",{
1433+
Logger.MessageType = LuaEnum.new "MessageType" {
1434-
["Name"] = "Armor",
1434+
        "Output",
1435-
["Parent"] = o12,
1435+
        "Info",
1436-
["Material"] = Enum.Material.Slate,
1436+
        "Warning",
1437-
["BrickColor"] = BrickColor.new("Really black"),
1437+
        "Severe",
1438-
["Position"] = Vector3.new(-1755.30298, -3587.26367, 1111.39258),
1438+
        "Error",
1439-
["Anchored"] = true,
1439+
        Default = "Severe"
1440-
["CFrame"] = CFrame.new(-1755.30298, -3587.26367, 1111.39258, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1440+
}
1441-
["CanCollide"] = false,
1441+
Logger.MESSAGE_TYPE_SETTINGS = {
1442-
["FormFactor"] = Enum.FormFactor.Symmetric,
1442+
        { -- Output
1443-
["Size"] = Vector3.new(4.93999958, 3.38999987, 3.0129621),
1443+
                Font = "Arial",
1444-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1444+
                TextColor3 = Color3.new(0, 0, 0)
1445-
["TopSurface"] = Enum.SurfaceType.Smooth,
1445+
        },
1446-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1446+
        { -- Info
1447
                Font = "Arial",
1448-
o26 = Create("Fire",{
1448+
                TextColor3 = Color3.new(0, 0, 1)
1449-
["Parent"] = o25,
1449+
        },
1450-
["Size"] = 30,
1450+
        { -- Warning
1451-
["Color"] = Color3.new(1, 0.815686, 0),
1451+
                Font = "ArialBold",
1452-
["Enabled"] = false,
1452+
                TextColor3 = Color3.new(1, 0.5, 0)
1453-
["Heat"] = 25,
1453+
        },
1454-
["SecondaryColor"] = Color3.new(1, 0, 0),
1454+
        { -- Severe/Error
1455
                Font = "ArialBold",
1456-
o27 = Create("Script",{
1456+
                TextColor3 = Color3.new(1, 0, 0)
1457-
["Parent"] = o26,
1457+
        }
1458
}
1459-
table.insert(cors,coroutine.create(function()
1459+
Logger.MAX_ENTRIES = 160
1460
Logger.WARNING_TRACE_ITEM_COUNT = 5
1461-
runDummyScript(function()
1461+
Logger.rbxPrint = getfenv(RbxUtility.CreateSignal).print
1462-
function Spread(part)
1462+
function Logger.error(level, message)
1463-
	check = part:findFirstChild("Fire")
1463+
        message = message .. "\n" .. Logger.StackTraceToString(Logger.GenerateStackTrace(level + 1))
1464-
		if check == nil then 
1464+
        Logger.AddEntry {Logger.MessageType.Error, message}
1465-
	script.Parent:Clone().Parent = part
1465+
        error(level + 1, message)
1466
end
1467-
		elseif check ~= nil then
1467+
function Logger.errorf(level, messageFormat, ...)
1468-
	check.Size = check.Size + 1
1468+
        Logger.error(level + 1, string.format(messageFormat, ...))
1469-
	check.Heat = check.Heat  +1
1469+
1470
function Logger.print(messageType, message, level)
1471
        messageType = Logger.MessageType(messageType)
1472
        local entry = {messageType, message}
1473
        Logger.rbxPrint(Logger.EntryToString(entry))
1474-
script.Parent.Parent.Touched:connect(Spread)
1474+
        Logger.AddEntry(entry)
1475
        if level ~= false and messageType.Value >= Logger.MessageType.Warning.Value then
1476
                local maxItems
1477-
end,o27)
1477+
                if messageType.Value >= Logger.MessageType.Severe.Value then
1478
                        maxItems = math.huge
1479-
o28 = Create("Part",{
1479+
                else
1480-
["Name"] = "Armor",
1480+
                        maxItems = Logger.WARNING_TRACE_ITEM_COUNT
1481-
["Parent"] = o12,
1481+
                end
1482-
["Material"] = Enum.Material.Slate,
1482+
                local trace = Logger.GenerateStackTrace((level or 1) + 1, math.huge, 10, maxItems + 1)
1483-
["BrickColor"] = BrickColor.new("Really black"),
1483+
                local traceLength = #trace
1484-
["Position"] = Vector3.new(-1752.87793, -3586.97266, 1111.12756),
1484+
                local stackTraceMessage
1485-
["Rotation"] = Vector3.new(-5.22349401e-005, 1.91785184e-005, -22.583704),
1485+
                local suffix = ""
1486-
["Anchored"] = true,
1486+
                if traceLength > maxItems then
1487-
["CFrame"] = CFrame.new(-1752.87793, -3586.97266, 1111.12756, 0.923319459, 0.384032726, 3.34728298e-007, -0.384032726, 0.923319459, 9.11671691e-007, 4.10506154e-008, -9.70310793e-007, 1),
1487+
                        trace[traceLength] = nil
1488-
["CanCollide"] = false,
1488+
                        suffix = "\n..."
1489-
["FormFactor"] = Enum.FormFactor.Symmetric,
1489+
                end
1490-
["Size"] = Vector3.new(3.64999938, 1.13, 1.68296218),
1490+
                Logger.print("Info", "Stack trace:\n" .. Logger.StackTraceToString(trace) .. suffix .. "\nStack end", false)
1491-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1491+
        end
1492-
["TopSurface"] = Enum.SurfaceType.Smooth,
1492+
1493-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1493+
function Logger.printf(messageType, messageFormat, ...)
1494
        Logger.print(messageType, string.format(messageFormat, ...), 2)
1495-
o29 = Create("Fire",{
1495+
1496-
["Parent"] = o28,
1496+
function Logger.AddEntry(entry)
1497-
["Size"] = 30,
1497+
        local entries = Logger.entries
1498-
["Color"] = Color3.new(1, 0.815686, 0),
1498+
        if entries[1] >= Logger.MAX_ENTRIES then
1499-
["Enabled"] = false,
1499+
                local first = entries[2]
1500-
["Heat"] = 25,
1500+
                local nextFirst = first[2]
1501-
["SecondaryColor"] = Color3.new(1, 0, 0),
1501+
                first[1] = nil
1502
                first[2] = nil
1503-
o30 = Create("Script",{
1503+
                entries[1] = entries[1] - 1
1504-
["Parent"] = o29,
1504+
                entries[2] = nextFirst
1505
                if not nextFirst then
1506-
table.insert(cors,coroutine.create(function()
1506+
                        entries[3] = nil
1507
                end
1508-
runDummyScript(function()
1508+
        end
1509-
function Spread(part)
1509+
        local last = entries[3]
1510-
	check = part:findFirstChild("Fire")
1510+
        local node = {entry}
1511-
		if check == nil then 
1511+
        if last then
1512-
	script.Parent:Clone().Parent = part
1512+
                entries[3] = node
1513
                last[2] = node
1514-
		elseif check ~= nil then
1514+
        else
1515-
	check.Size = check.Size + 1
1515+
                entries[2] = node
1516-
	check.Heat = check.Heat  +1
1516+
                entries[3] = node
1517
        end
1518
        entries[1] = entries[1] + 1
1519
end
1520
function Logger.NodeIterator(list, node)
1521-
script.Parent.Parent.Touched:connect(Spread)
1521+
        if node then
1522
                node = node[2]
1523
        else
1524-
end,o30)
1524+
                node = list[2]
1525
        end
1526-
o31 = Create("Part",{
1526+
        if node then
1527-
["Name"] = "Armor",
1527+
                return node, node[1]
1528-
["Parent"] = o12,
1528+
        end
1529-
["Material"] = Enum.Material.Slate,
1529+
1530-
["BrickColor"] = BrickColor.new("Really black"),
1530+
function Logger.EntryToString(entry)
1531-
["Position"] = Vector3.new(-1751.26221, -3587.58008, 1111.57251),
1531+
        local messageType, message = entry[1], tostring(entry[2])
1532-
["Rotation"] = Vector3.new(-0.000566392206, -5.4949076e-005, 9.08247471),
1532+
        if messageType and messageType.Value >= Logger.MessageType.Info.Value then
1533-
["Anchored"] = true,
1533+
                return messageType.Name .. ": " .. message
1534-
["CFrame"] = CFrame.new(-1751.26221, -3587.58008, 1111.57251, 0.987462223, -0.157856047, -9.59042268e-007, 0.157856047, 0.987462223, 9.88540887e-006, -6.13453551e-007, -9.91285833e-006, 1),
1534+
        else
1535-
["CanCollide"] = false,
1535+
                return message
1536-
["FormFactor"] = Enum.FormFactor.Symmetric,
1536+
        end
1537-
["Size"] = Vector3.new(0.200000003, 4.40999985, 4.29296207),
1537+
1538-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1538+
function Logger.GenerateStackTrace(level, maxLevel, maxTailCalls, maxTraceItems)
1539-
["TopSurface"] = Enum.SurfaceType.Smooth,
1539+
        level = level + 2
1540-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1540+
        if maxLevel == nil then
1541
                maxLevel = math.huge
1542-
o32 = Create("Fire",{
1542+
        else
1543-
["Parent"] = o31,
1543+
                maxLevel = maxLevel + 2
1544-
["Size"] = 30,
1544+
        end
1545-
["Color"] = Color3.new(1, 0.815686, 0),
1545+
        maxTailCalls = maxTailCalls or 10
1546-
["Enabled"] = false,
1546+
        maxTraceItems = maxTraceItems or math.huge
1547-
["Heat"] = 25,
1547+
        local trace = {}
1548-
["SecondaryColor"] = Color3.new(1, 0, 0),
1548+
        local numTailCalls = 0
1549
        while level <= maxLevel and numTailCalls <= maxTailCalls and #trace < maxTraceItems do
1550-
o33 = Create("Script",{
1550+
                local success, errorMessage = xpcall(function() error("-", level + 1) end, function(...) return ... end)
1551-
["Parent"] = o32,
1551+
                if errorMessage == "-" then
1552
                        numTailCalls = numTailCalls + 1
1553-
table.insert(cors,coroutine.create(function()
1553+
                else
1554
                        if numTailCalls > 0 then
1555-
runDummyScript(function()
1555+
                                local traceSize = #trace
1556-
function Spread(part)
1556+
                                if traceSize > 0 then
1557-
	check = part:findFirstChild("Fire")
1557+
                                        trace[#trace][3] = numTailCalls
1558-
		if check == nil then 
1558+
                                end
1559-
	script.Parent:Clone().Parent = part
1559+
                                numTailCalls = 0
1560
                        end
1561-
		elseif check ~= nil then
1561+
                        local script, line = string.match(errorMessage, "(.*):(%d+)")
1562-
	check.Size = check.Size + 1
1562+
                        trace[#trace + 1] = {script, tonumber(line), 0}
1563-
	check.Heat = check.Heat  +1
1563+
                end
1564
                level = level + 1
1565
        end
1566
        return trace
1567
end
1568-
script.Parent.Parent.Touched:connect(Spread)
1568+
function Logger.StackTraceToString(trace)
1569
        local buffer = {}
1570
        for _, data in ipairs(trace) do
1571-
end,o33)
1571+
                buffer[#buffer + 1] = string.format("Script %q, line %d", data[1], data[2])
1572
                local numTailCalls = data[3]
1573-
o34 = Create("Part",{
1573+
                if numTailCalls == 1 then
1574-
["Name"] = "Armor",
1574+
                        buffer[#buffer + 1] = "... 1 tail call"
1575-
["Parent"] = o12,
1575+
                elseif numTailCalls > 1 then
1576-
["Material"] = Enum.Material.Slate,
1576+
                        buffer[#buffer + 1] = string.format("... %d tail calls", numTailCalls)
1577-
["BrickColor"] = BrickColor.new("Really black"),
1577+
                end
1578-
["Position"] = Vector3.new(-1753.77808, -3592.89307, 1111.12756),
1578+
        end
1579-
["Rotation"] = Vector3.new(-5.22349401e-005, 1.91785184e-005, -22.583704),
1579+
        return table.concat(buffer, "\n")
1580-
["Anchored"] = true,
1580+
1581-
["CFrame"] = CFrame.new(-1753.77808, -3592.89307, 1111.12756, 0.923319459, 0.384032726, 3.34728298e-007, -0.384032726, 0.923319459, 9.11671691e-007, 4.10506154e-008, -9.70310793e-007, 1),
1581+
function Logger.MessageOutFunc(message, messageType)
1582-
["CanCollide"] = false,
1582+
        if AdvancedGUI and AdvancedGUI.Print then
1583-
["FormFactor"] = Enum.FormFactor.Symmetric,
1583+
                local messageTypeValue
1584-
["Size"] = Vector3.new(3.64999938, 1.13, 1.68296218),
1584+
                if messageType == Enum.MessageType.MessageOutput then
1585-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1585+
                        local tagName, untaggedMessage = string.match(message, "(%a+): (.*)")
1586-
["TopSurface"] = Enum.SurfaceType.Smooth,
1586+
                        if tagName == "Info" or tagName == "Warning" or tagName == "Severe" then
1587-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1587+
                                messageTypeValue = Logger.MessageType[tagName].Value
1588
                                message = untaggedMessage
1589-
o35 = Create("Fire",{
1589+
                        else
1590-
["Parent"] = o34,
1590+
                                messageTypeValue = Logger.MessageType.Output.Value
1591-
["Size"] = 30,
1591+
                        end
1592-
["Color"] = Color3.new(1, 0.815686, 0),
1592+
                else
1593-
["Enabled"] = false,
1593+
                        messageTypeValue = messageType.Value + 1
1594-
["Heat"] = 25,
1594+
                end
1595-
["SecondaryColor"] = Color3.new(1, 0, 0),
1595+
                AdvancedGUI.PrintFormat(Logger.MESSAGE_TYPE_SETTINGS[messageTypeValue], message)
1596
        end
1597-
o36 = Create("Script",{
1597+
1598-
["Parent"] = o35,
1598+
function print(...)
1599
        local args = {...}
1600-
table.insert(cors,coroutine.create(function()
1600+
        local buffer = {}
1601
        for index = 1, select("#", ...) do
1602-
runDummyScript(function()
1602+
                buffer[index] = tostring(args[index])
1603-
function Spread(part)
1603+
        end
1604-
	check = part:findFirstChild("Fire")
1604+
        local message = table.concat(buffer, "\t")
1605-
		if check == nil then 
1605+
        Logger.print("Output", message)
1606-
	script.Parent:Clone().Parent = part
1606+
1607
 
1608-
		elseif check ~= nil then
1608+
CharacterAppearance = {};
1609-
	check.Size = check.Size + 1
1609+
 
1610-
	check.Heat = check.Heat  +1
1610+
CharacterAppearance.defaultAppearanceId = 2
1611
CharacterAppearance.stock = {}
1612
function CharacterAppearance.Create(properties)
1613
        local id = properties.Id
1614
        local bodyColors = Instance.new("BodyColors")
1615-
script.Parent.Parent.Touched:connect(Spread)
1615+
        bodyColors.HeadColor = properties.HeadColor
1616
        bodyColors.TorsoColor = properties.TorsoColor
1617
        bodyColors.RightArmColor = properties.RightArmColor
1618-
end,o36)
1618+
        bodyColors.LeftArmColor = properties.LeftArmColor
1619
        bodyColors.RightLegColor = properties.RightLegColor
1620-
o37 = Create("Part",{
1620+
        bodyColors.LeftLegColor = properties.LeftLegColor
1621-
["Name"] = "Armor",
1621+
        local characterObjects = {bodyColors}
1622-
["Parent"] = o12,
1622+
        local headObjects = {} 
1623-
["Material"] = Enum.Material.Slate,
1623+
        local data = {
1624-
["BrickColor"] = BrickColor.new("Really black"),
1624+
                characterObjects = characterObjects,
1625-
["Position"] = Vector3.new(-1752.16235, -3593.50049, 1111.57251),
1625+
                headObjects = headObjects,
1626-
["Rotation"] = Vector3.new(-5.22349401e-005, 1.91785184e-005, -22.583704),
1626+
                tshirt = properties.TShirt
1627-
["Anchored"] = true,
1627+
        }
1628-
["CFrame"] = CFrame.new(-1752.16235, -3593.50049, 1111.57251, 0.923319459, 0.384032726, 3.34728298e-007, -0.384032726, 0.923319459, 9.11671691e-007, 4.10506154e-008, -9.70310793e-007, 1),
1628+
        for _, assetId in ipairs(properties.CharacterAssets) do
1629-
["CanCollide"] = false,
1629+
                TaskScheduler.Start(CharacterAppearance.LoadAsset, characterObjects, assetId)
1630-
["FormFactor"] = Enum.FormFactor.Symmetric,
1630+
        end
1631-
["Size"] = Vector3.new(0.200000003, 4.40999985, 4.29296207),
1631+
        for _, assetId in ipairs(properties.HeadAssets) do
1632-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1632+
                TaskScheduler.Start(CharacterAppearance.LoadAsset, headObjects, assetId)
1633-
["TopSurface"] = Enum.SurfaceType.Smooth,
1633+
        end
1634-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1634+
        CharacterAppearance.stock[id] = data
1635
end
1636-
o38 = Create("Fire",{
1636+
function CharacterAppearance.GetDefaultAppearance()
1637-
["Parent"] = o37,
1637+
        return CharacterAppearance.stock[CharacterAppearance.defaultAppearanceId]
1638-
["Size"] = 30,
1638+
1639-
["Color"] = Color3.new(1, 0.815686, 0),
1639+
function CharacterAppearance.LoadAsset(objects, assetId)
1640-
["Enabled"] = false,
1640+
        local asset = InsertService:LoadAsset(assetId)
1641-
["Heat"] = 25,
1641+
        for _, child in ipairs(asset:GetChildren()) do
1642-
["SecondaryColor"] = Color3.new(1, 0, 0),
1642+
                child.Archivable = true
1643
                table.insert(objects, child:Clone())
1644-
o39 = Create("Script",{
1644+
        end
1645-
["Parent"] = o38,
1645+
1646
CharacterAppearance.Create {
1647-
table.insert(cors,coroutine.create(function()
1647+
        Id = 1,
1648
        HeadColor = BrickColor.new("Institutional white"),
1649-
runDummyScript(function()
1649+
        TorsoColor = BrickColor.new("Institutional white"),
1650-
function Spread(part)
1650+
        RightArmColor = BrickColor.new("Institutional white"),
1651-
	check = part:findFirstChild("Fire")
1651+
        LeftArmColor = BrickColor.new("Institutional white"),
1652-
		if check == nil then 
1652+
        RightLegColor = BrickColor.new("Institutional white"),
1653-
	script.Parent:Clone().Parent = part
1653+
        LeftLegColor = BrickColor.new("Institutional white"),
1654
        CharacterAssets = {
1655-
		elseif check ~= nil then
1655+
                90825058, 90825211,
1656-
	check.Size = check.Size + 1
1656+
                27112056, 27112052,
1657-
	check.Heat = check.Heat  +1
1657+
                27112039, 27112025,
1658
                27112068, 38322996
1659
        },
1660
        HeadAssets = {
1661
                20722130,
1662-
script.Parent.Parent.Touched:connect(Spread)
1662+
                8330576
1663
        }
1664
}
1665-
end,o39)
1665+
CharacterAppearance.Create {
1666
        Id = 2,
1667-
o40 = Create("Model",{
1667+
        HeadColor = BrickColor.new("Institutional white"),
1668-
["Name"] = "Chest",
1668+
        TorsoColor = BrickColor.new("Institutional white"),
1669-
["Parent"] = o1,
1669+
        RightArmColor = BrickColor.new("Institutional white"),
1670
        LeftArmColor = BrickColor.new("Institutional white"),
1671-
o41 = Create("Part",{
1671+
        RightLegColor = BrickColor.new("Institutional white"),
1672-
["Name"] = "Middle",
1672+
        LeftLegColor = BrickColor.new("Institutional white"),
1673-
["Parent"] = o40,
1673+
        CharacterAssets = {
1674-
["Material"] = Enum.Material.Grass,
1674+
                90825058, 90825211,
1675-
["BrickColor"] = BrickColor.new("Really black"),
1675+
                11748356, 1029025,
1676-
["Position"] = Vector3.new(-1761.05005, -3590.25195, 1111.85254),
1676+
                1235488, 27112056,
1677-
["Anchored"] = true,
1677+
                27112052, 27112039,
1678-
["CFrame"] = CFrame.new(-1761.05005, -3590.25195, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1678+
                27112025, 27112068
1679-
["CanCollide"] = false,
1679+
        },
1680-
["FormFactor"] = Enum.FormFactor.Symmetric,
1680+
        HeadAssets = {
1681-
["Size"] = Vector3.new(6.86592007, 6.86592293, 3.43296194),
1681+
                20722130
1682-
["BottomSurface"] = Enum.SurfaceType.Smooth,
1682+
        }
1683-
["TopSurface"] = Enum.SurfaceType.Smooth,
1683+
}
1684-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1684+
CharacterAppearance.Create {
1685
        Id = 3,
1686-
o42 = Create("Fire",{
1686+
        HeadColor = BrickColor.new("Pastel brown"),
1687-
["Parent"] = o41,
1687+
        TorsoColor = BrickColor.new("Pastel brown"),
1688-
["Size"] = 30,
1688+
        RightArmColor = BrickColor.new("Pastel brown"),
1689-
["Color"] = Color3.new(1, 0.815686, 0),
1689+
        LeftArmColor = BrickColor.new("Pastel brown"),
1690-
["Enabled"] = false,
1690+
        RightLegColor = BrickColor.new("White"),
1691-
["Heat"] = 25,
1691+
        LeftLegColor = BrickColor.new("White"),
1692-
["SecondaryColor"] = Color3.new(1, 0, 0),
1692+
        CharacterAssets = {
1693
                134289125, 48474356,
1694-
o43 = Create("Script",{
1694+
                100339040, 46302558,
1695-
["Parent"] = o42,
1695+
                153955895
1696
        },
1697-
table.insert(cors,coroutine.create(function()
1697+
        HeadAssets = {},
1698
        TShirt = "rbxassetid://148856353"
1699-
runDummyScript(function()
1699+
}
1700-
function Spread(part)
1700+
CharacterAppearance.Create {
1701-
	check = part:findFirstChild("Fire")
1701+
        Id = 4,
1702-
		if check == nil then 
1702+
        HeadColor = BrickColor.new("Pastel brown"),
1703-
	script.Parent:Clone().Parent = part
1703+
        TorsoColor = BrickColor.new("Pastel brown"),
1704
        RightArmColor = BrickColor.new("Pastel brown"),
1705-
		elseif check ~= nil then
1705+
        LeftArmColor = BrickColor.new("Pastel brown"),
1706-
	check.Size = check.Size + 1
1706+
        RightLegColor = BrickColor.new("White"),
1707-
	check.Heat = check.Heat  +1
1707+
        LeftLegColor = BrickColor.new("White"),
1708
        CharacterAssets = {
1709
                129458426, 96678344, 184489190
1710
        },
1711
        HeadAssets = {},
1712-
script.Parent.Parent.Touched:connect(Spread)
1712+
        TShirt = "rbxassetid://160146697"
1713
}
1714
 
1715-
end,o43)
1715+
GraphicalEffects = {};
1716
 
1717-
o44 = Create("Part",{
1717+
local MESH_IDS = {"rbxassetid://15310891"}
1718-
["Parent"] = o40,
1718+
local SOUND_IDS = {"rbxassetid://2248511", "rbxassetid://1369158"}
1719-
["BrickColor"] = BrickColor.new("Really black"),
1719+
local TEXTURE_IDS = {"rbxassetid://36527089", "rbxassetid://122610943", "rbxassetid://126561317", "rbxassetid://127033719"}
1720-
["Position"] = Vector3.new(-1761.05005, -3585.10156, 1111.85254),
1720+
local preloadConnections = {}
1721-
["Velocity"] = Vector3.new(0, -1, 0),
1721+
local reloadingPreloads = false
1722-
["Anchored"] = true,
1722+
function GraphicalEffects.InitPreloads()
1723-
["CFrame"] = CFrame.new(-1761.05005, -3585.10156, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1723+
        local preload_part = Instance.new("Part")
1724-
["CanCollide"] = false,
1724+
        GraphicalEffects.preload_part = preload_part
1725-
["FormFactor"] = Enum.FormFactor.Symmetric,
1725+
        preload_part.Anchored = true
1726-
["Size"] = Vector3.new(6.86592007, 3.43296146, 3.43296194),
1726+
        preload_part.Archivable = false
1727-
["TopSurface"] = Enum.SurfaceType.Smooth,
1727+
        preload_part.BottomSurface = "Smooth"
1728-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1728+
        preload_part.CanCollide = false
1729
        preload_part.CFrame = CFrame.new(math.huge, math.huge, math.huge)
1730-
o45 = Create("SpecialMesh",{
1730+
        preload_part.FormFactor = "Custom"
1731-
["Parent"] = o44,
1731+
        preload_part.Locked = true
1732-
["Scale"] = Vector3.new(1.20000005, 1.20000005, 1.20000005),
1732+
        preload_part.Name = "Asset Preloader"
1733
        preload_part.Size = Vector3.new(0.2, 0.2, 0.2)
1734-
o46 = Create("Fire",{
1734+
        preload_part.TopSurface = "Smooth"
1735-
["Parent"] = o44,
1735+
        preload_part.Transparency = 1
1736-
["Size"] = 30,
1736+
        preloadConnections[preload_part] = preload_part.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged)
1737-
["Color"] = Color3.new(1, 0.815686, 0),
1737+
        for _, mesh_id in ipairs(MESH_IDS) do
1738-
["Enabled"] = false,
1738+
                local mesh = Instance.new("SpecialMesh")
1739-
["Heat"] = 25,
1739+
                mesh.MeshType = "FileMesh"
1740-
["SecondaryColor"] = Color3.new(1, 0, 0),
1740+
                mesh.MeshId = mesh_id
1741
                preloadConnections[mesh] = mesh.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged)
1742-
o47 = Create("Script",{
1742+
                mesh.Parent = preload_part
1743-
["Parent"] = o46,
1743+
        end
1744
        for _, sound_id in ipairs(SOUND_IDS) do
1745-
table.insert(cors,coroutine.create(function()
1745+
                local sound = Instance.new("Sound")
1746
                sound.SoundId = sound_id
1747-
runDummyScript(function()
1747+
                sound.Volume = 0
1748-
function Spread(part)
1748+
                preloadConnections[sound] = sound.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged)
1749-
	check = part:findFirstChild("Fire")
1749+
                sound.Parent = preload_part
1750-
		if check == nil then 
1750+
        end
1751-
	script.Parent:Clone().Parent = part
1751+
        for _, texture_id in ipairs(TEXTURE_IDS) do
1752
                local decal = Instance.new("Decal")
1753-
		elseif check ~= nil then
1753+
                decal.Texture = texture_id
1754-
	check.Size = check.Size + 1
1754+
                preloadConnections[decal] = decal.AncestryChanged:connect(GraphicalEffects.PreloadsAncestryChanged)
1755-
	check.Heat = check.Heat  +1
1755+
                decal.Parent = preload_part
1756
        end
1757
        preload_part.Parent = Workspace
1758
end
1759
function GraphicalEffects.PreloadsAncestryChanged(child, parent)
1760-
script.Parent.Parent.Touched:connect(Spread)
1760+
        if not reloadingPreloads and parent ~= GraphicalEffects.preload_part and parent ~= Workspace then
1761
                reloadingPreloads = true
1762
                for _, connection in pairs(preloadConnections) do
1763-
end,o47)
1763+
                        connection:disconnect()
1764
                        preloadConnections[_] = nil
1765-
o48 = Create("Part",{
1765+
                end
1766-
["Name"] = "Hat",
1766+
                wait(1)
1767-
["Parent"] = o40,
1767+
                reloadingPreloads = false
1768-
["Material"] = Enum.Material.Concrete,
1768+
                GraphicalEffects.InitPreloads()
1769-
["BrickColor"] = BrickColor.new("Really black"),
1769+
        end
1770-
["Position"] = Vector3.new(-1761.05005, -3584.1377, 1111.85254),
1770+
1771-
["Anchored"] = true,
1771+
GraphicalEffects.InitPreloads()
1772-
["CFrame"] = CFrame.new(-1761.05005, -3584.1377, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
1772+
-- Hyper beam
1773-
["CanCollide"] = false,
1773+
function GraphicalEffects.FireSpaceHyperBeam(target, power, duration, radius, height, deviation)
1774-
["FormFactor"] = Enum.FormFactor.Symmetric,
1774+
        local stepTime, gameTime = 1 / 30, TaskScheduler.GetCurrentTime()
1775-
["Size"] = Vector3.new(6.86592007, 3.43296146, 3.43296194),
1775+
        local frames = duration * 30
1776-
["BottomSurface"] = Enum.SurfaceType.Weld,
1776+
        local beamColorOffset = 0.75 * tick() -- math.random()
1777-
["TopSurface"] = Enum.SurfaceType.Smooth,
1777+
        local blastPressure = power * 62500 + 250000
1778-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
1778+
        local beamPart = Instance.new("Part")
1779
        local beamMesh = Instance.new("SpecialMesh", beamPart)
1780-
o49 = Create("Fire",{
1780+
        local explosion = Instance.new("Explosion")
1781-
["Parent"] = o48,
1781+
        local sound = Instance.new("Sound", beamPart)
1782-
["Size"] = 30,
1782+
        beamPart.Anchored = true
1783-
["Color"] = Color3.new(1, 0.815686, 0),
1783+
        beamPart.CanCollide = false
1784-
["Enabled"] = false,
1784+
        beamPart.CFrame = CFrame.new(target, target + Vector3.new(deviation * (math.random() - 0.5), deviation * (math.random() - 0.5), height))
1785-
["Heat"] = 25,
1785+
        beamPart.FormFactor = "Custom"
1786-
["SecondaryColor"] = Color3.new(1, 0, 0),
1786+
        beamPart.Locked = true
1787
        beamPart.Size = Vector3.new(0.2, 0.2, 0.2)
1788-
o50 = Create("Script",{
1788+
        beamMesh.MeshId = "rbxassetid://15310891"
1789-
["Parent"] = o49,
1789+
        beamMesh.MeshType = "FileMesh"
1790
        beamMesh.TextureId = "rbxassetid://36527089"
1791-
table.insert(cors,coroutine.create(function()
1791+
        local beamGlowPart1 = beamPart:Clone()
1792
        local beamGlowMesh1 = beamMesh:Clone()
1793-
runDummyScript(function()
1793+
        local beamGlowPart2 = beamPart:Clone()
1794-
function Spread(part)
1794+
        local beamGlowMesh2 = beamMesh:Clone()
1795-
	check = part:findFirstChild("Fire")
1795+
        local beamLight = Instance.new("PointLight", beamPart)
1796-
		if check == nil then 
1796+
        beamLight.Range = power * 2
1797-
	script.Parent:Clone().Parent = part
1797+
        beamLight.Shadows = true
1798
        explosion.BlastPressure = blastPressure
1799-
		elseif check ~= nil then
1799+
        explosion.BlastRadius = power
1800-
	check.Size = check.Size + 1
1800+
        explosion.Position = target
1801-
	check.Heat = check.Heat  +1
1801+
        sound.SoundId = "rbxassetid://2248511"
1802
        sound.Volume = 1
1803
        local explosionHitConnection = explosion.Hit:connect(function(part, distance)
1804
                if not part.Anchored and part:GetMass() < power * power then
1805
                        pcall(part.BreakJoints, part)
1806-
script.Parent.Parent.Touched:connect(Spread)
1806+
                        part.Color = Color3.new(Utility.GetRainbowRGB(1.5 * gameTime + beamColorOffset))
1807
                end
1808
        end)
1809-
end,o50)
1809+
        beamPart.Transparency = 0.5
1810
        beamPart.Archivable = false
1811-
o51 = Create("SpecialMesh",{
1811+
        beamGlowPart1.Transparency = 0.75
1812-
["Parent"] = o48,
1812+
        beamGlowPart2.Transparency = 0.75
1813-
["MeshId"] = "http://www.roblox.com/asset/?id=16150814",
1813+
        beamGlowMesh1.Parent = beamGlowPart1
1814-
["Scale"] = Vector3.new(4, 4, 4),
1814+
        beamGlowPart1.Parent = beamPart
1815-
["TextureId"] = "http://www.roblox.com/asset/?id=16150799",
1815+
        beamGlowMesh2.Parent = beamGlowPart2
1816-
["VertexColor"] = Vector3.new(0.200000003, 0.200000003, 0.200000003),
1816+
        beamGlowPart2.Parent = beamPart
1817-
["MeshType"] = Enum.MeshType.FileMesh,
1817+
        beamPart.Parent = workspace
1818
        explosion.Parent = workspace
1819-
o52 = Create("Part",{
1819+
        for frame = 1, frames do
1820-
["Parent"] = o40,
1820+
                local progress = frame / frames
1821-
["Transparency"] = 1,
1821+
                local alpha = 1 - math.sin(0.5 * math.pi * progress)
1822-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1822+
                local scale = 0.4 * alpha
1823-
["Rotation"] = Vector3.new(91.8079071, -3.89169359, 131.856094),
1823+
                local glowScale1 = alpha * (0.5 + 0.5 * math.sin(math.tau * (8 * gameTime + beamColorOffset)))
1824-
["Anchored"] = true,
1824+
                local glowScale2 = alpha * (0.5 + 0.5 * math.cos(math.tau * (8 * gameTime + beamColorOffset)))
1825-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.665723264, -0.74310571, -0.0678706542, 0.0217668079, 0.0715781152, -0.997199297, 0.7458812, -0.66533494, -0.0314760283),
1825+
                local vertexColor =  Vector3.new(Utility.GetRainbowRGB(1.5 * gameTime + beamColorOffset))
1826-
["CanCollide"] = false,
1826+
                beamLight.Brightness = 1 - progress
1827-
["Locked"] = true,
1827+
                beamLight.Color = Color3.new(vertexColor.x, vertexColor.y, vertexColor.z)
1828-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1828+
                beamMesh.Scale = Vector3.new(radius * scale, 9000, radius * scale)
1829
                beamMesh.VertexColor = vertexColor
1830-
o53 = Create("ParticleEmitter",{
1830+
                beamGlowMesh1.Scale = Vector3.new(1.2 * radius * glowScale1, 9000, 1.2 * radius * glowScale1)
1831-
["Parent"] = o52,
1831+
                beamGlowMesh1.VertexColor = vertexColor
1832-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1832+
                beamGlowMesh2.Scale = Vector3.new(1.2 * radius * glowScale2, 9000, 1.2 * radius * glowScale2)
1833-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1833+
                beamGlowMesh2.VertexColor = vertexColor
1834-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1834+
                RunService.Stepped:wait()
1835-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1835+
                gameTime = TaskScheduler.GetCurrentTime()
1836-
["Speed"] = NumberRange.new(10,10),
1836+
                if frame <= 2 then
1837
                        local explosion = Instance.new("Explosion")
1838-
o54 = Create("Part",{
1838+
                        explosion.BlastPressure = (1 - progress) * blastPressure
1839-
["Parent"] = o40,
1839+
                        explosion.BlastRadius = (1 - progress) * power
1840-
["Transparency"] = 1,
1840+
                        explosion.Position = target
1841-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1841+
                        explosion.Parent = Workspace
1842-
["Rotation"] = Vector3.new(85.7094498, 5.97641565e-006, -1.68086683e-006),
1842+
                        if frame == 2 then
1843-
["Anchored"] = true,
1843+
                                sound:Play()
1844-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 1, 2.93366611e-008, 1.04308128e-007, -1.04308128e-007, 0.0748144686, -0.997199237, 3.20142135e-008, 0.997197449, 0.0748144463),
1844+
                        end
1845-
["CanCollide"] = false,
1845+
                end
1846-
["Locked"] = true,
1846+
        end
1847-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1847+
        pcall(beamPart.Destroy, beamPart)
1848
        explosionHitConnection:disconnect()
1849-
o55 = Create("ParticleEmitter",{
1849+
1850-
["Parent"] = o54,
1850+
function GraphicalEffects.SpaceHyperBeam(target, power, duration, radius, height, deviation)
1851-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1851+
        TaskScheduler.Start(GraphicalEffects.FireSpaceHyperBeam, target, power or 12, duration or 1.5, radius or 6, height or 600, deviation or 20)
1852-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1852+
1853-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1853+
 
1854-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1854+
function GraphicalEffects.CrystalRing(data)
1855-
["Speed"] = NumberRange.new(10,10),
1855+
        data = data or {}
1856
        local crystal_count = data.crystal_count or 10
1857-
o56 = Create("Part",{
1857+
        local crystal_color = data.crystal_color or BrickColor.new("Bright red")
1858-
["Parent"] = o40,
1858+
        local crystal_scale = data.crystal_scale or Vector3.new(2 / 3, 2, 2 / 3)
1859-
["Transparency"] = 1,
1859+
        local fade_out_color = data.fade_out_color or BrickColor.new("Really black")
1860-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1860+
        local radius = radius or 1.25 * crystal_count / math.pi
1861-
["Rotation"] = Vector3.new(88.6520844, 4.07365465, -46.3612671),
1861+
        local spawn_duration = data.spawn_duration or 0.065
1862-
["Anchored"] = true,
1862+
        local full_spawn_duration = spawn_duration * crystal_count
1863-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.6883654, 0.721877038, 0.0710387975, 0.031986922, 0.0676305369, -0.997199357, -0.72465837, 0.688708603, 0.0234639738),
1863+
        local float_duration = data.float_duration or 5
1864-
["CanCollide"] = false,
1864+
        local wave_amplitude = data.wave_amplitude or 0.5
1865-
["Locked"] = true,
1865+
        local wave_period = data.wave_period or 1
1866-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1866+
        local appear_duration = data.appear_duration or 0.1
1867
        local disappear_duration = data.disappear_duration or 0.5
1868-
o57 = Create("ParticleEmitter",{
1868+
        local base_part = data.base_part
1869-
["Parent"] = o56,
1869+
        local offset_cframe
1870-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1870+
        if data.position then
1871-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1871+
                offset_cframe = CFrame.new(data.position)
1872-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1872+
                if base_part then
1873-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1873+
                        offset_cframe = base_part.CFrame:toObjectSpace(offset_cframe)
1874-
["Speed"] = NumberRange.new(10,10),
1874+
                end
1875
        else
1876-
o58 = Create("Part",{
1876+
                offset_cframe = CFrame.new()
1877-
["Parent"] = o40,
1877+
        end
1878-
["Transparency"] = 1,
1878+
        local crystal_template = Instance.new("Part")
1879-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1879+
        crystal_template.Anchored = true
1880-
["Rotation"] = Vector3.new(88.6522293, 4.07362413, -60.6914787),
1880+
        crystal_template.Locked = true
1881-
["Anchored"] = true,
1881+
        crystal_template.CanCollide = false
1882-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.488275468, 0.869793534, 0.0710382611, 0.0142543819, 0.0734416321, -0.997199357, -0.872573256, 0.487919807, 0.0234614406),
1882+
        crystal_template.BottomSurface = "Smooth"
1883-
["CanCollide"] = false,
1883+
        crystal_template.TopSurface = "Smooth"
1884-
["Locked"] = true,
1884+
        crystal_template.BrickColor = crystal_color
1885-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1885+
        crystal_template.FormFactor = "Symmetric"
1886
        crystal_template.Size = Vector3.new(1, 1, 1)
1887-
o59 = Create("ParticleEmitter",{
1887+
        local crystal_light = Instance.new("PointLight", crystal_template)
1888-
["Parent"] = o58,
1888+
        crystal_light.Brightness = 0.1 / crystal_count
1889-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1889+
        crystal_light.Color = crystal_color.Color
1890-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1890+
        crystal_light.Name = "Light"
1891-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1891+
        crystal_light.Range = radius
1892-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1892+
        crystal_light.Shadows = true
1893-
["Speed"] = NumberRange.new(10,10),
1893+
        local crystal_mesh = Instance.new("SpecialMesh", crystal_template)
1894
        crystal_mesh.MeshId = "rbxassetid://9756362"
1895-
o60 = Create("Part",{
1895+
        crystal_mesh.MeshType = "FileMesh"
1896-
["Parent"] = o40,
1896+
        crystal_mesh.Name = "Mesh"
1897-
["Transparency"] = 1,
1897+
        crystal_mesh.Scale = crystal_scale
1898-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1898+
        local crystal_model = Instance.new("Model")
1899-
["Rotation"] = Vector3.new(88.652298, 4.07355118, -54.170784),
1899+
        crystal_model.Archivable = false
1900-
["Anchored"] = true,
1900+
        crystal_model.Name = "Crystal Model"
1901-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.583892345, 0.808717191, 0.0710370019, 0.0225025266, 0.0713460743, -0.997199595, -0.811519146, 0.583854675, 0.023460323),
1901+
        crystal_model.Parent = Workspace
1902-
["CanCollide"] = false,
1902+
        local crystals = {}
1903-
["Locked"] = true,
1903+
        local lights = {}
1904-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1904+
        local meshes = {}
1905
        for index = 1, crystal_count do
1906-
o61 = Create("ParticleEmitter",{
1906+
                local crystal = crystal_template:Clone()
1907-
["Parent"] = o60,
1907+
                crystal.Parent = crystal_model
1908-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1908+
                crystals[index] = crystal
1909-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1909+
                lights[index] = crystal.Light
1910-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1910+
                meshes[index] = crystal.Mesh
1911-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1911+
        end
1912-
["Speed"] = NumberRange.new(10,10),
1912+
        local start_time = tick()
1913
        repeat
1914-
o62 = Create("Part",{
1914+
                local base_cframe = offset_cframe
1915-
["Parent"] = o40,
1915+
                if base_part then
1916-
["Transparency"] = 1,
1916+
                        base_cframe = base_part.CFrame * base_cframe
1917-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1917+
                end
1918-
["Rotation"] = Vector3.new(92.5079422, 3.48240304, -100.481056),
1918+
                local elapsed_time = tick() - start_time
1919-
["Anchored"] = true,
1919+
                for index, crystal in ipairs(crystals) do
1920-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.181574538, 0.981499434, 0.0607419871, 0.031988997, 0.0676312596, -0.997199178, -0.98285675, -0.179122493, -0.0436771102),
1920+
                        local crystal_time = elapsed_time - index * spawn_duration
1921-
["CanCollide"] = false,
1921+
                        local disappear_time = crystal_time - float_duration
1922-
["Locked"] = true,
1922+
                        local offset
1923-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1923+
                        if crystal_time < 0 then
1924
                                offset = 0
1925-
o63 = Create("ParticleEmitter",{
1925+
                        elseif crystal_time < appear_duration then
1926-
["Parent"] = o62,
1926+
                                offset = radius * crystal_time / appear_duration
1927-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1927+
                        else
1928-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1928+
                                offset = radius
1929-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1929+
                        end
1930-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1930+
                        local wave_offset
1931-
["Speed"] = NumberRange.new(10,10),
1931+
                        if disappear_time >= 0 then
1932
                                local disappear_progress = disappear_time / disappear_duration
1933-
o64 = Create("Part",{
1933+
                                if disappear_progress > 1 then
1934-
["Parent"] = o40,
1934+
                                        if crystal.Parent then
1935-
["Transparency"] = 1,
1935+
                                                crystal:Destroy()
1936-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1936+
                                        end
1937-
["Rotation"] = Vector3.new(88.6522217, 4.07366323, -71.6749725),
1937+
                                else
1938-
["Anchored"] = true,
1938+
                                        local inverse_progress = 1 - disappear_progress
1939-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.313612849, 0.946889937, 0.0710389465, 7.52419567e-007, 0.0748128816, -0.997199416, -0.949550927, 0.312734067, 0.0234616306),
1939+
                                        local light = lights[index]
1940-
["CanCollide"] = false,
1940+
                                        local mesh = meshes[index]
1941-
["Locked"] = true,
1941+
                                        crystal.BrickColor = fade_out_color
1942-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1942+
                                        light.Brightness = 2 * inverse_progress
1943
                                        light.Range = 2 * radius
1944-
o65 = Create("ParticleEmitter",{
1944+
                                        mesh.Scale = crystal_scale * inverse_progress
1945-
["Parent"] = o64,
1945+
                                end
1946-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1946+
                                wave_offset = 0
1947-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1947+
                        else
1948-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1948+
                                wave_offset = wave_amplitude * math.sin(math.tau * (elapsed_time - index / crystal_count * 3) / wave_period)
1949-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1949+
                        end
1950-
["Speed"] = NumberRange.new(10,10),
1950+
                        local rotation_angle = (tick() * 0.5 + (index - 1) / crystal_count) % 1 * math.tau
1951
                        crystal.CFrame = base_cframe * CFrame.Angles(0, rotation_angle, 0) * CFrame.new(0, wave_offset, -offset)
1952-
o66 = Create("Part",{
1952+
                end
1953-
["Parent"] = o40,
1953+
                RunService.Stepped:wait()
1954-
["Transparency"] = 1,
1954+
        until elapsed_time >= float_duration + full_spawn_duration + disappear_duration
1955-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1955+
        if crystal_model.Parent then
1956-
["Rotation"] = Vector3.new(88.6522217, 4.07363415, -54.7600021),
1956+
                crystal_model:Destroy()
1957-
["Anchored"] = true,
1957+
        end
1958-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.575544894, 0.814678848, 0.0710384399, 0.0217674468, 0.0715756118, -0.997199476, -0.817480505, 0.575478315, 0.0234615691),
1958+
1959-
["CanCollide"] = false,
1959+
 
1960-
["Locked"] = true,
1960+
GraphicalEffects.magicCircleData = {}
1961-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1961+
GraphicalEffects.MAGIC_CIRCLE_DEFAULT_OFFSET = 6.25
1962
function GraphicalEffects.AnimateMagicCircle(data)
1963-
o67 = Create("ParticleEmitter",{
1963+
        local frame, direction, magic_circle_model, magic_circle_part, magic_circle_light, magic_circle_decal_back, magic_circle_decal_front, duration,
1964-
["Parent"] = o66,
1964+
 
1965-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1965+
stay, magic_circle_adornee_func, magic_circle_offset = unpack(data)
1966-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1966+
        frame = frame + 1
1967-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1967+
        data[1] = frame
1968-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1968+
        local transparency = (frame / duration) ^ stay
1969-
["Speed"] = NumberRange.new(10,10),
1969+
        local opacity = 1 - transparency
1970
        if frame == duration then
1971-
o68 = Create("Part",{
1971+
                pcall(Game.Destroy, magic_circle_model)
1972-
["Parent"] = o40,
1972+
                GraphicalEffects.magicCircleData[data] = nil
1973-
["Transparency"] = 1,
1973+
        else
1974-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1974+
                if magic_circle_model.Parent ~= Workspace then
1975-
["Rotation"] = Vector3.new(88.6522293, 4.07363319, -64.9099731),
1975+
                        pcall(Utility.SetProperty, magic_circle_model, "Parent", Workspace)
1976-
["Anchored"] = true,
1976+
                end
1977-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.422970563, 0.903354645, 0.071038425, 0.00881337654, 0.0742913932, -0.997199476, -0.90610069, 0.422411412, 0.0234615393),
1977+
                local magic_circle_adornee = magic_circle_adornee_func()
1978-
["CanCollide"] = false,
1978+
                magic_circle_position = magic_circle_adornee.Position + direction * magic_circle_offset
1979-
["Locked"] = true,
1979+
                local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction) * CFrame.Angles(0, 0, math.tau * frame /
1980-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1980+
 
1981
25)
1982-
o69 = Create("ParticleEmitter",{
1982+
                magic_circle_part.CFrame = magic_circle_cframe
1983-
["Parent"] = o68,
1983+
                magic_circle_light.Brightness = opacity
1984-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
1984+
                magic_circle_decal_back.Transparency = transparency
1985-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
1985+
                magic_circle_decal_front.Transparency = transparency
1986-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
1986+
        end
1987-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
1987+
1988-
["Speed"] = NumberRange.new(10,10),
1988+
function GraphicalEffects.CreateMagicCircle(target, magic_circle_scale, magic_circle_image, light_color, duration, stay, magic_circle_adornee_func,
1989
 
1990-
o70 = Create("Part",{
1990+
magic_circle_offset)
1991-
["Parent"] = o40,
1991+
        local magic_circle_adornee = magic_circle_adornee_func()
1992-
["Transparency"] = 1,
1992+
        if magic_circle_adornee then
1993-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
1993+
                local origin = magic_circle_adornee.Position
1994-
["Rotation"] = Vector3.new(85.7858124, 0.805993795, 6.10579872),
1994+
                local direction = (target - origin).unit
1995-
["Anchored"] = true,
1995+
                local magic_circle_position = origin + direction * magic_circle_offset
1996-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.994228899, -0.106354184, 0.0140667818, 0.0217652507, 0.0715764016, -0.997199416, 0.105049394, 0.99174881, 0.0734781027),
1996+
                local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction)
1997-
["CanCollide"] = false,
1997+
                local magic_circle_model = Instance.new("Model")
1998-
["Locked"] = true,
1998+
                local magic_circle_part = Instance.new("Part", magic_circle_model)
1999-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
1999+
                local magic_circle_mesh = Instance.new("BlockMesh", magic_circle_part)
2000
                local magic_circle_light = Instance.new("PointLight", magic_circle_part)
2001-
o71 = Create("ParticleEmitter",{
2001+
                local magic_circle_decal_back = Instance.new("Decal", magic_circle_part)
2002-
["Parent"] = o70,
2002+
                local magic_circle_decal_front = Instance.new("Decal", magic_circle_part)
2003-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2003+
                magic_circle_model.Archivable = false
2004-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2004+
                magic_circle_part.Anchored = true
2005-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2005+
                magic_circle_part.BottomSurface = "Smooth"
2006-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2006+
                magic_circle_part.CanCollide = false
2007-
["Speed"] = NumberRange.new(10,10),
2007+
                magic_circle_part.CFrame = magic_circle_cframe
2008
                magic_circle_part.FormFactor = "Custom"
2009-
o72 = Create("Part",{
2009+
                magic_circle_part.Locked = true
2010-
["Parent"] = o40,
2010+
                magic_circle_part.Size = Vector3.new(0.2, 0.2, 0.2)
2011-
["Transparency"] = 1,
2011+
                magic_circle_part.TopSurface = "Smooth"
2012-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2012+
                magic_circle_part.Transparency = 1
2013-
["Rotation"] = Vector3.new(90.5981674, 4.24854565, -80.5159073),
2013+
                magic_circle_mesh.Scale = Vector3.new(60, 60, 0) * magic_circle_scale
2014-
["Anchored"] = true,
2014+
                magic_circle_light.Color = light_color
2015-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.164320961, 0.983621061, 0.0740831718, 0.0225036014, 0.0713462606, -0.997199535, -0.986150265, 0.165527821, -0.0104111936),
2015+
                magic_circle_light.Range = 16 * magic_circle_scale
2016-
["CanCollide"] = false,
2016+
                magic_circle_light.Shadows = true
2017-
["Locked"] = true,
2017+
                magic_circle_decal_back.Face = "Back"
2018-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2018+
                magic_circle_decal_back.Texture = magic_circle_image
2019
                magic_circle_decal_front.Face = "Front"
2020-
o73 = Create("ParticleEmitter",{
2020+
                magic_circle_decal_front.Texture = magic_circle_image
2021-
["Parent"] = o72,
2021+
                magic_circle_model.Parent = Workspace
2022-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2022+
                local data = {0, direction, magic_circle_model, magic_circle_part, magic_circle_light, magic_circle_decal_back, magic_circle_decal_front,
2023-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2023+
 
2024-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2024+
duration, stay, magic_circle_adornee_func, magic_circle_offset}
2025-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2025+
                GraphicalEffects.magicCircleData[data] = true
2026-
["Speed"] = NumberRange.new(10,10),
2026+
                return data
2027
        end
2028-
o74 = Create("Part",{
2028+
2029-
["Parent"] = o40,
2029+
 
2030-
["Transparency"] = 1,
2030+
GraphicalEffects.missileData = {}
2031-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2031+
GraphicalEffects.missileParts = {}
2032-
["Rotation"] = Vector3.new(92.5080032, 3.48228145, -108.879791),
2032+
function GraphicalEffects.AnimateMissile(data)
2033-
["Anchored"] = true,
2033+
        local frame, missilePart, targetPart, timeCreated, direction, touchedConnection, explodeRequested, bodyGyro, swooshSound, magicCircleData, lifeTime,
2034-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.322986245, 0.944452524, 0.0607398674, 0.021769356, 0.07157664, -0.997199357, -0.946153343, -0.32075882, -0.0436782129),
2034+
 
2035-
["CanCollide"] = false,
2035+
pointOnPart, flipped = unpack(data)
2036-
["Locked"] = true,
2036+
        frame = frame + 1
2037-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2037+
        data[1] = frame
2038
        if flipped then
2039-
o75 = Create("ParticleEmitter",{
2039+
                direction = -direction
2040-
["Parent"] = o74,
2040+
        end
2041-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2041+
        if frame <= 10 then
2042-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2042+
                if frame == 2 then
2043-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2043+
                        swooshSound:Play()
2044-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2044+
                end
2045-
["Speed"] = NumberRange.new(10,10),
2045+
                missilePart.Anchored = true
2046
                local progress = frame / 10
2047-
o76 = Create("Part",{
2047+
                missilePart.Size = Vector3.new(1, 1, progress * 4)
2048-
["Parent"] = o40,
2048+
                local magicCirclePart = magicCircleData[4]
2049-
["Transparency"] = 1,
2049+
                local magicCirclePosition = magicCirclePart.Position
2050-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2050+
                local missileOffset = 2 * progress * direction
2051-
["Rotation"] = Vector3.new(90.5981445, 4.24865246, -91.2550812),
2051+
                local missilePosition = magicCirclePosition + missileOffset
2052-
["Anchored"] = true,
2052+
                missilePart.CFrame = CFrame.new(missilePosition, missilePosition + direction)
2053-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.0218434073, 0.997012675, 0.0740850344, 0.0088143833, 0.0742918178, -0.997199416, -0.999722719, -0.0211290903, -0.0104107056),
2053+
                --missilePart.Transparency = 0.5 * (1 - progress)
2054-
["CanCollide"] = false,
2054+
                if frame == 10 then
2055-
["Locked"] = true,
2055+
                        touchedConnection = missilePart.Touched:connect(function(hit)
2056-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2056+
                                if hit.CanCollide and hit.Parent and not GraphicalEffects.missileParts[hit] then
2057
                                        touchedConnection:disconnect()
2058-
o77 = Create("ParticleEmitter",{
2058+
                                        data[7] = true
2059-
["Parent"] = o76,
2059+
                                end
2060-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2060+
                        end)
2061-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2061+
                        data[6] = touchedConnection
2062-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2062+
                end
2063-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2063+
        else
2064-
["Speed"] = NumberRange.new(10,10),
2064+
                missilePart.Anchored = false
2065
                local missilePosition = missilePart.Position
2066-
o78 = Create("Part",{
2066+
                local targetPosition = targetPart.CFrame * pointOnPart
2067-
["Parent"] = o40,
2067+
                local distanceVector = targetPosition - missilePosition
2068-
["Transparency"] = 1,
2068+
                local elapsedTime = time() - timeCreated
2069-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2069+
                local targetParent = targetPart.Parent
2070-
["Rotation"] = Vector3.new(90.5981445, 4.2486515, -81.1051102),
2070+
                if explodeRequested or (targetParent and distanceVector.magnitude < 10) or elapsedTime > lifeTime then
2071-
["Anchored"] = true,
2071+
                        GraphicalEffects.missileData[data] = nil
2072-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.15419735, 0.985258758, 0.0740850121, 0.0217685215, 0.071575813, -0.997199357, -0.9878003, 0.155377954, -0.0104107037),
2072+
                        GraphicalEffects.missileParts[missilePart] = nil
2073-
["CanCollide"] = false,
2073+
                        touchedConnection:disconnect()
2074-
["Locked"] = true,
2074+
                        if missilePart.Parent then
2075-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2075+
                                missilePart:Destroy()
2076
                                local explosion = Instance.new("Explosion")
2077-
o79 = Create("ParticleEmitter",{
2077+
                                explosion.BlastRadius = 12.5
2078-
["Parent"] = o78,
2078+
                                explosion.Position = missilePosition
2079-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2079+
                                local explosionHitConnection = explosion.Hit:connect(function(hit, distance)
2080-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2080+
                                        local missileData = GraphicalEffects.missileParts[hit]
2081-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2081+
                                        if missileData and distance < 3 then
2082-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2082+
                                                missileData[7] = true
2083-
["Speed"] = NumberRange.new(10,10),
2083+
                                        else
2084
                                                pcall(hit.BreakJoints, hit)
2085-
o80 = Create("Part",{
2085+
                                        end
2086-
["Parent"] = o40,
2086+
                                end)
2087-
["Transparency"] = 1,
2087+
                                explosion.Parent = Workspace
2088-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2088+
                                TaskScheduler.Schedule(1, explosionHitConnection.disconnect, explosionHitConnection)
2089-
["Rotation"] = Vector3.new(92.5080032, 3.48227262, -114.811272),
2089+
                        end
2090-
["Anchored"] = true,
2090+
                else
2091-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.418855935, 0.906019092, 0.0607397109, 0.0142561644, 0.0734429136, -0.997199357, -0.907940924, -0.416816145, -0.0436781682),
2091+
                        local targetInWorkspace = targetPart:IsDescendantOf(Workspace)
2092-
["CanCollide"] = false,
2092+
                        if targetInWorkspace then
2093-
["Locked"] = true,
2093+
                                direction = distanceVector.unit
2094-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2094+
                                data[5] = direction
2095
                        end
2096-
o81 = Create("ParticleEmitter",{
2096+
                        local speed = 14 + elapsedTime * 10
2097-
["Parent"] = o80,
2097+
                        local gyroD
2098-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2098+
                        if elapsedTime < 42.5 and targetInWorkspace then
2099-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2099+
                                gyroD = 1000 - elapsedTime * 15
2100-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2100+
                        else
2101-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2101+
                                gyroD = 100
2102-
["Speed"] = NumberRange.new(10,10),
2102+
                                bodyGyro.maxTorque = Vector3.new(0, 0, 0)
2103
                                if elapsedTime + 7.5 < lifeTime then
2104-
o82 = Create("Part",{
2104+
                                        data[11] = elapsedTime + 7.5
2105-
["Parent"] = o40,
2105+
                                end
2106-
["Transparency"] = 1,
2106+
                        end
2107-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2107+
                        bodyGyro.D = gyroD
2108-
["Rotation"] = Vector3.new(92.5080185, 3.48230243, -125.794777),
2108+
                        bodyGyro.cframe = CFrame.new(Vector3.new(), direction)
2109-
["Anchored"] = true,
2109+
                        missilePart.Velocity = missilePart.CFrame.lookVector * speed
2110-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.583803773, 0.809619486, 0.0607402325, 2.25007534e-006, 0.0748144388, -0.997199237, -0.811894834, -0.582167447, -0.0436785743),
2110+
                end
2111-
["CanCollide"] = false,
2111+
        end
2112-
["Locked"] = true,
2112+
2113-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2113+
function GraphicalEffects.ShootMissile(targetPart, pointOnPart, direction, magic_circle_adornee_func, magic_circle_offset, flipped)
2114
        if not magic_circle_offset then
2115-
o83 = Create("ParticleEmitter",{
2115+
                magic_circle_offset = GraphicalEffects.MAGIC_CIRCLE_DEFAULT_OFFSET
2116-
["Parent"] = o82,
2116+
        end
2117-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2117+
        local targetPosition = targetPart.Position
2118-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2118+
        local headPosition = chatAdornee.Position
2119-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2119+
        local origin = CFrame.new(headPosition, headPosition + direction) + direction * magic_circle_offset
2120-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2120+
        local missilePart = Instance.new("Part")
2121-
["Speed"] = NumberRange.new(10,10),
2121+
        local antiGravityForce = Instance.new("BodyForce", missilePart)
2122
        local bodyGyro = Instance.new("BodyGyro", missilePart)
2123-
o84 = Create("Part",{
2123+
        local explosionSound = Instance.new("Sound", missilePart)
2124-
["Parent"] = o40,
2124+
        local swooshSound = Instance.new("Sound", missilePart)
2125-
["Transparency"] = 1,
2125+
        antiGravityForce.force = Vector3.new(0, 196.2 * 4, 0)
2126-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2126+
        bodyGyro.D = 1000
2127-
["Rotation"] = Vector3.new(90.5981445, 4.24864292, -87.0365982),
2127+
        bodyGyro.maxTorque = Vector3.new(1, 1, 1)
2128-
["Anchored"] = true,
2128+
        explosionSound.PlayOnRemove = true
2129-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.0515560172, 0.995918393, 0.0740848705, 0.0142553989, 0.0734420046, -0.997199357, -0.998568416, 0.0524677485, -0.0104107074),
2129+
        explosionSound.SoundId = "rbxasset://sounds/collide.wav"
2130-
["CanCollide"] = false,
2130+
        explosionSound.Volume = 1
2131-
["Locked"] = true,
2131+
        missilePart.Anchored = true
2132-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2132+
        missilePart.BackSurface = "Studs"
2133
        missilePart.BottomSurface = "Studs"
2134-
o85 = Create("ParticleEmitter",{
2134+
        missilePart.BrickColor = BrickColor.Red()
2135-
["Parent"] = o84,
2135+
        missilePart.CFrame = origin
2136-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2136+
        missilePart.FormFactor = "Custom"
2137-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2137+
        missilePart.FrontSurface = "Studs"
2138-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2138+
        missilePart.LeftSurface = "Studs"
2139-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2139+
        missilePart.Locked = true
2140-
["Speed"] = NumberRange.new(10,10),
2140+
        missilePart.RightSurface = "Studs"
2141
        missilePart.Size = Vector3.new(1, 1, 0.2)
2142-
o86 = Create("Part",{
2142+
        missilePart.TopSurface = "Studs"
2143-
["Parent"] = o40,
2143+
        --missilePart.Transparency = 0.5
2144-
["Transparency"] = 1,
2144+
        swooshSound.Looped = true
2145-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2145+
        swooshSound.SoundId = "rbxasset://sounds/Rocket whoosh 01.wav"
2146-
["Rotation"] = Vector3.new(90.5980301, 4.24873638, -72.7063599),
2146+
        swooshSound.Volume = 0.7
2147-
["Anchored"] = true,
2147+
        local magicCircleData = GraphicalEffects.CreateMagicCircle(headPosition + direction * 1000, 0.875, "rbxassetid://127033719", Color3.new(1, 1, 1),
2148-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.296452016, 0.952169955, 0.0740864947, 0.0319880433, 0.0676306561, -0.997199297, -0.95451194, 0.297991157, -0.0104086772),
2148+
 
2149-
["CanCollide"] = false,
2149+
40, 4, magic_circle_adornee_func or function() return chatAdornee end, magic_circle_offset)
2150-
["Locked"] = true,
2150+
        local data = {0, missilePart, targetPart, time(), direction, false, false, bodyGyro, swooshSound, magicCircleData, 50, pointOnPart, flipped}
2151-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2151+
        missilePart.Parent = Workspace
2152
        GraphicalEffects.missileData[data] = true
2153-
o87 = Create("ParticleEmitter",{
2153+
        GraphicalEffects.missileParts[missilePart] = data
2154-
["Parent"] = o86,
2154+
2155-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2155+
 
2156-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2156+
function GraphicalEffects.CubicInterpolate(y0, y1, y2, y3, mu)
2157-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2157+
        local a0, a1, a2, a3, mu2
2158-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2158+
        mu2 = mu * mu
2159-
["Speed"] = NumberRange.new(10,10),
2159+
        a0 = y3 - y2 - y0 + y1
2160
        a1 = y0 - y1 - a0
2161-
o88 = Create("Part",{
2161+
        a2 = y2 - y0
2162-
["Parent"] = o40,
2162+
        a3 = y1
2163-
["Transparency"] = 1,
2163+
        return a0 * mu * mu2 + a1 * mu2 + a2 * mu + a3
2164-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2164+
2165-
["Rotation"] = Vector3.new(90.5981522, 4.24868107, -98.0200729),
2165+
function GraphicalEffects.JointCrap(model, cycletime)
2166-
["Anchored"] = true,
2166+
        if model then
2167-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.139136612, 0.987498105, 0.0740855336, 1.6912818e-006, 0.0748133883, -0.997199357, -0.990273178, -0.13874647, -0.0104108211),
2167+
                local cycletime = cycletime or (0.75 * (1 + math.random() * 4))
2168-
["CanCollide"] = false,
2168+
                local offsetradius = 0.75
2169-
["Locked"] = true,
2169+
                local rotationoffset = math.pi
2170-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2170+
                local joints = {}
2171
                local stack = model:GetChildren()
2172-
o89 = Create("ParticleEmitter",{
2172+
                while #stack ~= 0 do
2173-
["Parent"] = o88,
2173+
                        local object = stack[#stack]
2174-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2174+
                        table.remove(stack)
2175-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2175+
                        for index, child in ipairs(object:GetChildren()) do
2176-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2176+
                                table.insert(stack, child)
2177-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2177+
                        end
2178-
["Speed"] = NumberRange.new(10,10),
2178+
                        if object:IsA("JointInstance") then
2179
                                table.insert(joints, object)
2180-
o90 = Create("Part",{
2180+
                        end
2181-
["Parent"] = o40,
2181+
                end
2182-
["Transparency"] = 1,
2182+
                local rot0 = {}
2183-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2183+
                local rot1 = {}
2184-
["Rotation"] = Vector3.new(86.5763168, 2.58728242, -20.1215248),
2184+
                local rot2 = {}
2185-
["Anchored"] = true,
2185+
                local rot3 = {}
2186-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.938007891, 0.343661755, 0.0451412499, 0.0217661932, 0.0715755075, -0.997199476, -0.345929593, 0.93636179, 0.0596581995),
2186+
                local rot4 = {}
2187-
["CanCollide"] = false,
2187+
                for index, joint in ipairs(joints) do
2188-
["Locked"] = true,
2188+
                        local pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius
2189-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2189+
                        local rot = Vector3.new(math.random(), math.random(), math.random()) * rotationoffset
2190
                        rot0[index] = {joint.C0, joint.C1}
2191-
o91 = Create("ParticleEmitter",{
2191+
                        rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau))
2192-
["Parent"] = o90,
2192+
                        rot2[index] = {pos, rot}
2193-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2193+
                        pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius
2194-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2194+
                        rot = rot + Vector3.new(math.random(), math.random(), math.random()) * rotationoffset
2195-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2195+
                        rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau))
2196-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2196+
                        rot3[index] = {pos, rot}
2197-
["Speed"] = NumberRange.new(10,10),
2197+
                        pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius
2198
                        rot = rot + Vector3.new(math.random(), math.random(), math.random()) * rotationoffset
2199-
o92 = Create("Part",{
2199+
                        rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau))
2200-
["Parent"] = o40,
2200+
                        rot4[index] = {pos, rot}
2201-
["Transparency"] = 1,
2201+
                end
2202-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2202+
                while model.Parent do
2203-
["Rotation"] = Vector3.new(88.1726608, 3.88256121, -39.4587975),
2203+
                        for i, j in ipairs(joints) do
2204-
["Anchored"] = true,
2204+
                                local pos = Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5).unit * offsetradius
2205-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.770309925, 0.634064615, 0.067711629, 0.0319868773, 0.0676303059, -0.997199357, -0.636866927, 0.770317078, 0.0318146087),
2205+
                                local rot = rot4[i][2] + Vector3.new(math.random(), math.random(), math.random()) * rotationoffset
2206-
["CanCollide"] = false,
2206+
                                rot = Vector3.new(rot.x % (math.tau), rot.y % (math.tau), rot.z % (math.tau))
2207-
["Locked"] = true,
2207+
                                rot1[i], rot2[i], rot3[i], rot4[i] = rot2[i], rot3[i], rot4[i], {pos, rot}
2208-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2208+
                        end
2209
                        local start = tick()
2210-
o93 = Create("ParticleEmitter",{
2210+
                        while true do
2211-
["Parent"] = o92,
2211+
                                local ctime = tick()
2212-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2212+
                                local elapsed = ctime - start
2213-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2213+
                                if elapsed > cycletime then
2214-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2214+
                                        break
2215-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2215+
                                end
2216-
["Speed"] = NumberRange.new(10,10),
2216+
                                local progress = elapsed / cycletime
2217
                                for index, joint in ipairs(joints) do
2218-
o94 = Create("Part",{
2218+
                                        local v0, v1, v2, v3, v4 = rot0[index], rot1[index], rot2[index], rot3[index], rot4[index]
2219-
["Parent"] = o40,
2219+
                                        local p1, p2, p3, p4, r1, r2, r3, r4 = v1[1], v2[1], v3[1], v4[1], v1[2], v2[2], v3[2], v4[2]
2220-
["Transparency"] = 1,
2220+
                                        local px = GraphicalEffects.CubicInterpolate(p1.x, p2.x, p3.x, p4.x, progress)
2221-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2221+
                                        local py = GraphicalEffects.CubicInterpolate(p1.y, p2.y, p3.y, p4.y, progress)
2222-
["Rotation"] = Vector3.new(86.5764236, 2.58725405, -19.5322876),
2222+
                                        local pz = GraphicalEffects.CubicInterpolate(p1.z, p2.z, p3.z, p4.z, progress)
2223-
["Anchored"] = true,
2223+
                                        local rx = GraphicalEffects.CubicInterpolate(r1.x, r2.x, r3.x, r4.x, progress)
2224-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.941492617, 0.33399722, 0.0451407582, 0.0225012712, 0.0713459849, -0.997199714, -0.336281836, 0.93987, 0.0596563518),
2224+
                                        local ry = GraphicalEffects.CubicInterpolate(r1.y, r2.y, r3.y, r4.y, progress)
2225-
["CanCollide"] = false,
2225+
                                        local rz = GraphicalEffects.CubicInterpolate(r1.z, r2.z, r3.z, r4.z, progress)
2226-
["Locked"] = true,
2226+
                                        local cframe = CFrame.new(px, py, pz) * CFrame.Angles(rx, ry, rz)
2227-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2227+
                                        joint.C0 = v0[1] * cframe
2228
                                        joint.C1 = v0[2] * cframe:inverse()
2229-
o95 = Create("ParticleEmitter",{
2229+
                                end
2230-
["Parent"] = o94,
2230+
                                RunService.Stepped:wait()
2231-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2231+
                        end
2232-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2232+
                end
2233-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2233+
        end
2234-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2234+
2235-
["Speed"] = NumberRange.new(10,10),
2235+
 
2236
GraphicalEffects.LASER_WIDTH = 0.15
2237-
o96 = Create("Part",{
2237+
GraphicalEffects.LASER_MAGIC_CIRCLE_DISTANCE = 6.25
2238-
["Parent"] = o40,
2238+
GraphicalEffects.laser_data = {}
2239-
["Transparency"] = 1,
2239+
--GraphicalEffects.fragmentation = {}
2240-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2240+
function GraphicalEffects.AnimateLaserOfDeath(data)
2241-
["Rotation"] = Vector3.new(85.7859116, 0.806017935, 6.69499683),
2241+
        local frame, directionOrientation, direction, magic_circle_model, laser_part, laser_mesh, magic_circle_part, magic_circle_light,
2242-
["Anchored"] = true,
2242+
 
2243-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.993082643, -0.116572484, 0.0140672028, 0.0225003324, 0.0713469088, -0.997199535, 0.115242243, 0.990616262, 0.0734762773),
2243+
magic_circle_decal_back, magic_circle_decal_front, sound, laser_scale, fragmentation_size, duration, laser_lights, laser_effects, stay, light_effects =
2244-
["CanCollide"] = false,
2244+
 
2245-
["Locked"] = true,
2245+
unpack(data)
2246-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2246+
        local laser_color = laser_part.Color
2247
        frame = frame + 1
2248-
o97 = Create("ParticleEmitter",{
2248+
        data[1] = frame
2249-
["Parent"] = o96,
2249+
        local transparency = (frame / duration) ^ stay
2250-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2250+
        local opacity = 1 - transparency
2251-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2251+
        if frame == 2 then
2252-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2252+
                sound:Play()
2253-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2253+
        end
2254-
["Speed"] = NumberRange.new(10,10),
2254+
        if frame == duration then
2255
                pcall(Game.Destroy, magic_circle_model)
2256-
o98 = Create("Part",{
2256+
                GraphicalEffects.laser_data[data] = nil
2257-
["Parent"] = o40,
2257+
        else
2258-
["Transparency"] = 1,
2258+
                if magic_circle_model.Parent ~= Workspace then
2259-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2259+
                        pcall(Utility.SetProperty, magic_circle_model, "Parent", Workspace)
2260-
["Rotation"] = Vector3.new(85.78582, 0.805994451, 0.174329057),
2260+
                end
2261-
["Anchored"] = true,
2261+
                local laser_distance = 0
2262-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.999896467, -0.00304231024, 0.014066793, 0.0142521039, 0.0734422281, -0.997199416, 0.00200076075, 0.997294903, 0.0734779537),
2262+
                local origin = chatAdornee.CFrame
2263-
["CanCollide"] = false,
2263+
                if not light_effects then
2264-
["Locked"] = true,
2264+
                        direction = (origin * directionOrientation - origin.p).unit
2265-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2265+
                end
2266
                local magic_circle_position = origin.p + direction * GraphicalEffects.LASER_MAGIC_CIRCLE_DISTANCE
2267-
o99 = Create("ParticleEmitter",{
2267+
                local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction) * CFrame.Angles(0, 0, math.tau * frame /
2268-
["Parent"] = o98,
2268+
 
2269-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2269+
25)
2270-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2270+
                local loop_scale = (laser_scale - 1) / 10
2271-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2271+
                for x_offset = -loop_scale, loop_scale, 2 do
2272-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2272+
                        for y_offset = -loop_scale, loop_scale, 2 do
2273-
["Speed"] = NumberRange.new(10,10),
2273+
                                local origin_position = magic_circle_cframe * Vector3.new(x_offset, y_offset, 0)
2274
                                for index = 1, 8 do
2275-
o100 = Create("Part",{
2275+
                                        local part, position
2276-
["Parent"] = o40,
2276+
                                        for ray_index = 1, 10 do
2277-
["Transparency"] = 1,
2277+
                                                local ray = Ray.new(origin_position + direction * (999 * (ray_index - 1)), direction * 999)
2278-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2278+
                                                part, position = Workspace:FindPartOnRay(ray, magic_circle_model)
2279-
["Rotation"] = Vector3.new(86.5761871, 2.58722425, -11.7227564),
2279+
                                                if part then
2280-
["Anchored"] = true,
2280+
                                                        break
2281-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.978144228, 0.202969119, 0.0451402366, 0.0319857337, 0.067630738, -0.997199416, -0.205453068, 0.976846695, 0.0596604981),
2281+
                                                end
2282-
["CanCollide"] = false,
2282+
                                        end
2283-
["Locked"] = true,
2283+
                                        if part then
2284-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2284+
                                                laser_distance = (position - origin_position).magnitude
2285
                                                if frame % 8 == 1 and index == 1 then
2286-
o101 = Create("ParticleEmitter",{
2286+
                                                        Instance.new("Explosion", Workspace).Position = position
2287-
["Parent"] = o100,
2287+
                                                end
2288-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2288+
                                                if not part:IsA("Terrain") then
2289-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2289+
                                                        pcall(part.BreakJoints, part)
2290-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2290+
                                                        local is_block = part:IsA("Part") and part.Shape == Enum.PartType.Block
2291-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2291+
                                                        local mass = part:GetMass()
2292-
["Speed"] = NumberRange.new(10,10),
2292+
                                                        local size = part.Size
2293
                                                        if (is_block and ((size.X < fragmentation_size and size.Y < fragmentation_size and size.Z <
2294-
o102 = Create("Part",{
2294+
 
2295-
["Parent"] = o40,
2295+
fragmentation_size) or (not part.Anchored and mass < 750))) or (not is_block and mass < 250000) then
2296-
["Transparency"] = 1,
2296+
                                                                local part_transparency = math.max(part.Transparency + 0.007 * fragmentation_size, 0.5)
2297-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2297+
                                                                if part_transparency >= 0.5 then -- temporarily to minimize debris
2298-
["Rotation"] = Vector3.new(85.7857819, 0.806004465, -10.809165),
2298+
                                                                        pcall(Game.Destroy, part)
2299-
["Anchored"] = true,
2299+
                                                                else
2300-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.982160211, 0.187519893, 0.0140669681, -1.57952309e-006, 0.0748129785, -0.997199416, -0.188046604, 0.979407728, 0.073478587),
2300+
                                                                        local cframe = part.CFrame
2301-
["CanCollide"] = false,
2301+
                                                                        part.Anchored = false
2302-
["Locked"] = true,
2302+
                                                                        part.BrickColor = BrickColor.new("Medium stone grey")
2303-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2303+
                                                                        part.CanCollide = true
2304
                                                                        if part:IsA("FormFactorPart") then
2305-
o103 = Create("ParticleEmitter",{
2305+
                                                                                part.FormFactor = "Custom"
2306-
["Parent"] = o102,
2306+
                                                                        end
2307-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2307+
                                                                        part.Size = size - Vector3.new(0.135, 0.135, 0.135) * fragmentation_size
2308-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2308+
                                                                        part.Transparency = part_transparency
2309-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2309+
                                                                        part.CFrame = cframe + direction * 5
2310-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2310+
                                                                        part.Velocity = part.Velocity + direction * 40
2311-
["Speed"] = NumberRange.new(10,10),
2311+
                                                                end
2312
                                                        elseif is_block then
2313-
o104 = Create("Part",{
2313+
                                                                local parts = {part}
2314-
["Parent"] = o40,
2314+
                                                                local model = Instance.new("Model", part.Parent)
2315-
["Transparency"] = 1,
2315+
                                                                model.Name = "Fragments"
2316-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2316+
                                                                if size.X >= fragmentation_size then
2317-
["Rotation"] = Vector3.new(85.7858124, 0.805993795, -4.04415083),
2317+
                                                                        size = Vector3.new(0.5, 1, 1) * size
2318-
["Anchored"] = true,
2318+
                                                                        local archivable = part.Archivable
2319-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.99741137, 0.0705181807, 0.0140667818, 0.00881107524, 0.0742917582, -0.997199416, -0.0713654235, 0.994740188, 0.0734780729),
2319+
                                                                        local cframe = part.CFrame
2320-
["CanCollide"] = false,
2320+
                                                                        part.FormFactor = "Custom"
2321-
["Locked"] = true,
2321+
                                                                        part.Size = size
2322-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2322+
                                                                        part.Archivable = true
2323
                                                                        local part_clone = part:Clone()
2324-
o105 = Create("ParticleEmitter",{
2324+
                                                                        part.Archivable = archivable
2325-
["Parent"] = o104,
2325+
                                                                        part_clone.Archivable = archivable
2326-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2326+
                                                                        part.CFrame = cframe * CFrame.new(-0.5 * size.X, 0, 0)
2327-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2327+
                                                                        part_clone.CFrame = cframe * CFrame.new(0.5 * size.X, 0, 0)
2328-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2328+
                                                                        part_clone.Parent = model
2329-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2329+
                                                                        parts[2] = part_clone
2330-
["Speed"] = NumberRange.new(10,10),
2330+
                                                                end
2331
                                                                if size.Y >= fragmentation_size then
2332-
o106 = Create("Part",{
2332+
                                                                        size = Vector3.new(1, 0.5, 1) * size
2333-
["Parent"] = o40,
2333+
                                                                        for part_index = 1, #parts do
2334-
["Transparency"] = 1,
2334+
                                                                                local part = parts[part_index]
2335-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2335+
                                                                                local archivable = part.Archivable
2336-
["Rotation"] = Vector3.new(86.5763245, 2.5872798, -26.05299),
2336+
                                                                                local cframe = part.CFrame
2337-
["Anchored"] = true,
2337+
                                                                                part.FormFactor = "Custom"
2338-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.897472501, 0.438754529, 0.0451412052, 0.0142531395, 0.0734415054, -0.997199476, -0.440840036, 0.895600855, 0.0596581101),
2338+
                                                                                part.Size = size
2339-
["CanCollide"] = false,
2339+
                                                                                part.Archivable = true
2340-
["Locked"] = true,
2340+
                                                                                local part_clone = part:Clone()
2341-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2341+
                                                                                part.Archivable = archivable
2342
                                                                                part_clone.Archivable = archivable
2343-
o107 = Create("ParticleEmitter",{
2343+
                                                                                part.CFrame = cframe * CFrame.new(0, -0.5 * size.Y, 0)
2344-
["Parent"] = o106,
2344+
                                                                                part_clone.CFrame = cframe * CFrame.new(0, 0.5 * size.Y, 0)
2345-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2345+
                                                                                part_clone.Parent = model
2346-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2346+
                                                                                table.insert(parts, part_clone)
2347-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2347+
                                                                        end
2348-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2348+
                                                                end
2349-
["Speed"] = NumberRange.new(10,10),
2349+
                                                                if size.Z >= fragmentation_size then
2350
                                                                        size = Vector3.new(1, 1, 0.5) * size
2351-
o108 = Create("Part",{
2351+
                                                                        for part_index = 1, #parts do
2352-
["Parent"] = o40,
2352+
                                                                                local part = parts[part_index]
2353-
["Transparency"] = 1,
2353+
                                                                                local archivable = part.Archivable
2354-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2354+
                                                                                local cframe = part.CFrame
2355-
["Rotation"] = Vector3.new(86.5763168, 2.58728147, -30.271471),
2355+
                                                                                part.FormFactor = "Custom"
2356-
["Anchored"] = true,
2356+
                                                                                part.Size = size
2357-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.862766325, 0.503583789, 0.045141235, 0.00881213322, 0.07429111, -0.997199476, -0.505526066, 0.860746384, 0.0596582144),
2357+
                                                                                part.Archivable = true
2358-
["CanCollide"] = false,
2358+
                                                                                local part_clone = part:Clone()
2359-
["Locked"] = true,
2359+
                                                                                part.Archivable = archivable
2360-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2360+
                                                                                part_clone.Archivable = archivable
2361
                                                                                part.CFrame = cframe * CFrame.new(0, 0, -0.5 * size.Z)
2362-
o109 = Create("ParticleEmitter",{
2362+
                                                                                part_clone.CFrame = cframe * CFrame.new(0, 0, 0.5 * size.Z)
2363-
["Parent"] = o108,
2363+
                                                                                part_clone.Parent = model
2364-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2364+
                                                                                table.insert(parts, part_clone)
2365-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2365+
                                                                        end
2366-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2366+
                                                                end
2367-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2367+
                                                                for _, part in ipairs(parts) do
2368-
["Speed"] = NumberRange.new(10,10),
2368+
                                                                        part:MakeJoints()
2369
                                                                end
2370-
o110 = Create("Part",{
2370+
                                                        else
2371-
["Parent"] = o40,
2371+
                                                                break
2372-
["Transparency"] = 1,
2372+
                                                        end
2373-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2373+
                                                end
2374-
["Rotation"] = Vector3.new(85.7857132, 0.805881739, 14.504549),
2374+
                                        else
2375-
["Anchored"] = true,
2375+
                                                laser_distance = 9990
2376-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.968032002, -0.250432104, 0.0140648261, 0.0319848694, 0.0676316917, -0.997199297, 0.248779178, 0.965768933, 0.0734796599),
2376+
                                                break
2377-
["CanCollide"] = false,
2377+
                                        end
2378-
["Locked"] = true,
2378+
                                end
2379-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2379+
                        end
2380
                end
2381-
o111 = Create("ParticleEmitter",{
2381+
                local laser_cframe = magic_circle_cframe * CFrame.Angles(-0.5 * math.pi, 0, 0)
2382-
["Parent"] = o110,
2382+
                local laser_width = GraphicalEffects.LASER_WIDTH * opacity * laser_scale
2383-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2383+
                local laser_mesh_offset = Vector3.new(0, 0.5 * laser_distance, 0)      
2384-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2384+
                laser_part.CFrame = laser_cframe
2385-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2385+
                if laser_effects then
2386-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2386+
                        local laser_effect_data_1, laser_effect_data_2 = laser_effects[1], laser_effects[2]
2387-
["Speed"] = NumberRange.new(10,10),
2387+
                        local laser_effect_1, laser_effect_mesh_1 = laser_effect_data_1[1], laser_effect_data_1[2]
2388
                        local laser_effect_2, laser_effect_mesh_2 = laser_effect_data_2[1], laser_effect_data_2[2]
2389-
o112 = Create("Part",{
2389+
                        laser_effect_1.CFrame = laser_cframe
2390-
["Parent"] = o40,
2390+
                        laser_effect_2.CFrame = laser_cframe
2391-
["Transparency"] = 1,
2391+
                        laser_effect_mesh_1.Offset = laser_mesh_offset
2392-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2392+
                        laser_effect_mesh_2.Offset = laser_mesh_offset
2393-
["Rotation"] = Vector3.new(88.1727982, 3.88255501, -58.0075073),
2393+
                        local game_time = time()
2394-
["Anchored"] = true,
2394+
                        local effect_scale_1 = 0.5 + 0.5 * math.sin(16 * math.pi * game_time)
2395-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.528592288, 0.846171021, 0.0677115172, 0.00881337747, 0.0742911473, -0.997199416, -0.848830044, 0.527707875, 0.03181215),
2395+
                        local effect_scale_2 = 0.5 + 0.5 * math.cos(16 * math.pi * game_time)
2396-
["CanCollide"] = false,
2396+
                        laser_effect_mesh_1.Scale = 5 * Vector3.new(laser_width * effect_scale_1, laser_distance, laser_width * effect_scale_1)
2397-
["Locked"] = true,
2397+
                        laser_effect_mesh_2.Scale = 5 * Vector3.new(laser_width * effect_scale_2, laser_distance, laser_width * effect_scale_2)
2398-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2398+
                        laser_width = laser_width * 0.25
2399
                end
2400-
o113 = Create("ParticleEmitter",{
2400+
                laser_mesh.Offset = laser_mesh_offset                  
2401-
["Parent"] = o112,
2401+
                laser_mesh.Scale = 5 * Vector3.new(laser_width, laser_distance, laser_width)
2402-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2402+
                magic_circle_part.CFrame = magic_circle_cframe
2403-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2403+
                magic_circle_light.Brightness = opacity
2404-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2404+
                magic_circle_decal_back.Transparency = transparency
2405-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2405+
                magic_circle_decal_front.Transparency = transparency
2406-
["Speed"] = NumberRange.new(10,10),
2406+
                if light_effects then
2407
                        for index, data in ipairs(laser_lights) do
2408-
o114 = Create("Part",{
2408+
                                local laser_spotlight_part, laser_spotlight = data[1], data[2]
2409-
["Parent"] = o40,
2409+
                                local laser_spotlight_offset = 30 * (index - 1)
2410-
["Transparency"] = 1,
2410+
                                if laser_spotlight_offset <= laser_distance then
2411-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2411+
                                        laser_spotlight_part.CFrame = magic_circle_cframe * CFrame.new(0, 0, -laser_spotlight_offset)
2412-
["Rotation"] = Vector3.new(92.5079803, 3.48217797, -108.290573),
2412+
                                        laser_spotlight.Brightness = opacity
2413-
["Anchored"] = true,
2413+
                                        laser_spotlight.Enabled = true
2414-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.3132568, 0.947724164, 0.0607380643, 0.0225044452, 0.0713471472, -0.997199416, -0.949401677, -0.311012, -0.0436778031),
2414+
                                else
2415-
["CanCollide"] = false,
2415+
                                        laser_spotlight.Enabled = false
2416-
["Locked"] = true,
2416+
                                end
2417-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2417+
                        end
2418
                end
2419-
o115 = Create("ParticleEmitter",{
2419+
        end
2420-
["Parent"] = o114,
2420+
2421-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2421+
function GraphicalEffects.ShootLaserOfDeath(target, data)
2422-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2422+
        if chatAdornee then
2423-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2423+
                data = data or {}
2424-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2424+
                local brickcolor = data.brickcolor or BrickColor.new("Really black")
2425-
["Speed"] = NumberRange.new(10,10),
2425+
                local duration = data.duration or 40
2426
                local fragmentation_size = data.fragmentation_size or 3
2427-
o116 = Create("Part",{
2427+
                local laser_scale = data.laser_scale or 1
2428-
["Parent"] = o40,
2428+
                local light_color = data.light_color or Color3.new(1, 0.5, 1)
2429-
["Transparency"] = 1,
2429+
                local magic_circle_image = data.magic_circle_image or "rbxassetid://122610943"
2430-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2430+
                local magic_circle_scale = data.magic_circle_scale or 1
2431-
["Rotation"] = Vector3.new(88.1727982, 3.88255286, -47.8575058),
2431+
                local sound_volume = data.sound_volume or 1 / 3
2432-
["Anchored"] = true,
2432+
                local special_effects = data.special_effects
2433-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.669436872, 0.73977679, 0.06771148, 0.0217674114, 0.0715753064, -0.997199416, -0.742550015, 0.669034898, 0.0318121836),
2433+
                local stay = data.stay or 4
2434-
["CanCollide"] = false,
2434+
                local origin = chatAdornee.CFrame
2435-
["Locked"] = true,
2435+
                local directionOrientation = origin:pointToObjectSpace(target)
2436-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2436+
                local direction = (target - origin.p).unit
2437
                local magic_circle_position = origin.p + direction * GraphicalEffects.LASER_MAGIC_CIRCLE_DISTANCE
2438-
o117 = Create("ParticleEmitter",{
2438+
                local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction)
2439-
["Parent"] = o116,
2439+
                local magic_circle_model = Instance.new("Model")
2440-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2440+
                local laser_part = Instance.new("Part", magic_circle_model)
2441-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2441+
                local laser_mesh = Instance.new("CylinderMesh", laser_part)
2442-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2442+
                local magic_circle_part = Instance.new("Part", magic_circle_model)
2443-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2443+
                local magic_circle_mesh = Instance.new("BlockMesh", magic_circle_part)
2444-
["Speed"] = NumberRange.new(10,10),
2444+
                local magic_circle_light = Instance.new("PointLight", magic_circle_part)
2445
                local magic_circle_decal_back = Instance.new("Decal", magic_circle_part)
2446-
o118 = Create("Part",{
2446+
                local magic_circle_decal_front = Instance.new("Decal", magic_circle_part)
2447-
["Parent"] = o40,
2447+
                local sound = Instance.new("Sound", magic_circle_part)
2448-
["Transparency"] = 1,
2448+
                sound.Pitch = 1.25
2449-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2449+
                sound.SoundId = "rbxassetid://2248511"
2450-
["Rotation"] = Vector3.new(88.1727905, 3.88258696, -64.7724915),
2450+
                sound.Volume = sound_volume
2451-
["Anchored"] = true,
2451+
                magic_circle_model.Archivable = false
2452-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.42523545, 0.902546406, 0.067712076, 7.84173608e-007, 0.074812673, -0.997199357, -0.905082703, 0.424043894, 0.0318123475),
2452+
                laser_part.Anchored = true
2453-
["CanCollide"] = false,
2453+
                laser_part.BottomSurface = "Smooth"
2454-
["Locked"] = true,
2454+
                laser_part.BrickColor = brickcolor
2455-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2455+
                laser_part.CanCollide = false
2456
                laser_part.CFrame = magic_circle_cframe * CFrame.Angles(-0.5 * math.pi, 0, 0)
2457-
o119 = Create("ParticleEmitter",{
2457+
                laser_part.FormFactor = "Custom"
2458-
["Parent"] = o118,
2458+
                laser_part.Locked = true
2459-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2459+
                laser_part.Size = Vector3.new(0.2, 0.2, 0.2)
2460-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2460+
                laser_part.TopSurface = "Smooth"
2461-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2461+
                laser_mesh.Offset = Vector3.new(0, 0, 0)
2462-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2462+
                laser_mesh.Name = "Mesh"
2463-
["Speed"] = NumberRange.new(10,10),
2463+
                laser_mesh.Scale = 5 * laser_scale * Vector3.new(GraphicalEffects.LASER_WIDTH, 0, GraphicalEffects.LASER_WIDTH)
2464
                magic_circle_part.Anchored = true
2465-
o120 = Create("Part",{
2465+
                magic_circle_part.BottomSurface = "Smooth"
2466-
["Parent"] = o40,
2466+
                magic_circle_part.CanCollide = false
2467-
["Transparency"] = 1,
2467+
                magic_circle_part.CFrame = magic_circle_cframe
2468-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2468+
                magic_circle_part.FormFactor = "Custom"
2469-
["Rotation"] = Vector3.new(88.1728058, 3.88254642, -53.78899),
2469+
                magic_circle_part.Locked = true
2470-
["Anchored"] = true,
2470+
                magic_circle_part.Size = Vector3.new(0.2, 0.2, 0.2)
2471-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.589404881, 0.80499506, 0.0677113682, 0.0142543623, 0.0734413564, -0.997199476, -0.807711899, 0.588718295, 0.0318120643),
2471+
                magic_circle_part.TopSurface = "Smooth"
2472-
["CanCollide"] = false,
2472+
                magic_circle_part.Transparency = 1
2473-
["Locked"] = true,
2473+
                magic_circle_mesh.Scale = Vector3.new(60, 60, 0) * magic_circle_scale
2474-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2474+
                magic_circle_light.Color = light_color
2475
                magic_circle_light.Range = 16 * magic_circle_scale
2476-
o121 = Create("ParticleEmitter",{
2476+
                magic_circle_light.Shadows = true
2477-
["Parent"] = o120,
2477+
                magic_circle_decal_back.Face = "Back"
2478-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2478+
                magic_circle_decal_back.Texture = magic_circle_image
2479-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2479+
                magic_circle_decal_front.Face = "Front"
2480-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2480+
                magic_circle_decal_front.Texture = magic_circle_image
2481-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2481+
                magic_circle_model.Parent = Workspace
2482-
["Speed"] = NumberRange.new(10,10),
2482+
                local laser_color = brickcolor.Color
2483
                local laser_lights = {}
2484-
o122 = Create("Part",{
2484+
                local light_effects = laser_color.r + laser_color.g + laser_color.b > 0.25
2485-
["Parent"] = o40,
2485+
                if light_effects then
2486-
["Transparency"] = 1,
2486+
                        local laser_spotlight_part_template = Instance.new("Part")
2487-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2487+
                        local laser_spotlight_light_template = Instance.new("SpotLight", laser_spotlight_part_template)
2488-
["Rotation"] = Vector3.new(92.5080032, 3.48228097, -119.029747),
2488+
                        laser_spotlight_part_template.Anchored = true
2489-
["Anchored"] = true,
2489+
                        laser_spotlight_part_template.Anchored = true
2490-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.484367788, 0.872753441, 0.0607398599, 0.00881505013, 0.0742927566, -0.997199357, -0.874820292, -0.482474804, -0.043678198),
2490+
                        laser_spotlight_part_template.BottomSurface = "Smooth"
2491-
["CanCollide"] = false,
2491+
                        laser_spotlight_part_template.CanCollide = false
2492-
["Locked"] = true,
2492+
                        laser_spotlight_part_template.FormFactor = "Custom"
2493-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2493+
                        laser_spotlight_part_template.Locked = true
2494
                        laser_spotlight_part_template.Size = Vector3.new(0.2, 0.2, 0.2)
2495-
o123 = Create("ParticleEmitter",{
2495+
                        laser_spotlight_part_template.TopSurface = "Smooth"
2496-
["Parent"] = o122,
2496+
                        laser_spotlight_part_template.Transparency = 1
2497-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2497+
                        laser_spotlight_light_template.Angle = 45
2498-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2498+
                        laser_spotlight_light_template.Color = laser_color
2499-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2499+
                        laser_spotlight_light_template.Enabled = true
2500-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2500+
                        laser_spotlight_light_template.Name = "Light"
2501-
["Speed"] = NumberRange.new(10,10),
2501+
                        laser_spotlight_light_template.Range = 60
2502
                        for index = 1, 40 do
2503-
o124 = Create("Part",{
2503+
                                local laser_spotlight_part = laser_spotlight_part_template:Clone()
2504-
["Parent"] = o40,
2504+
                                laser_spotlight_part.CFrame = magic_circle_cframe * CFrame.new(0, 0, -30 * (index - 1))
2505-
["Transparency"] = 1,
2505+
                                laser_spotlight_part.Parent = magic_circle_model
2506-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2506+
                                laser_lights[index] = {laser_spotlight_part, laser_spotlight_part.Light}
2507-
["Rotation"] = Vector3.new(86.5762939, 2.58730626, -37.0364799),
2507+
                        end
2508-
["Anchored"] = true,
2508+
                end
2509-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.797438562, 0.601709425, 0.0451416671, -4.47034836e-007, 0.0748125091, -0.997199535, -0.603400409, 0.795203745, 0.0596586503),
2509+
                local laser_effects
2510-
["CanCollide"] = false,
2510+
                if special_effects then
2511-
["Locked"] = true,
2511+
                        laser_effects = {}
2512-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2512+
                        local laser_effect_1 = laser_part:Clone()
2513
                        laser_effect_1.BrickColor = special_effects
2514-
o125 = Create("ParticleEmitter",{
2514+
                        laser_effect_1.Transparency = 0.5
2515-
["Parent"] = o124,
2515+
                        local laser_effect_2 = laser_effect_1:Clone()
2516-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2516+
                        laser_effects[1], laser_effects[2] = {laser_effect_1, laser_effect_1.Mesh}, {laser_effect_2, laser_effect_2.Mesh}
2517-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2517+
                        laser_effect_1.Parent = magic_circle_model
2518-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2518+
                        laser_effect_2.Parent = magic_circle_model
2519-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2519+
                end
2520-
["Speed"] = NumberRange.new(10,10),
2520+
                GraphicalEffects.laser_data[{0, directionOrientation, direction, magic_circle_model, laser_part, laser_mesh, magic_circle_part,
2521
 
2522-
o126 = Create("Part",{
2522+
magic_circle_light, magic_circle_decal_back, magic_circle_decal_front, sound, laser_scale, fragmentation_size, duration, laser_lights, laser_effects, stay,
2523-
["Parent"] = o40,
2523+
 
2524-
["Transparency"] = 1,
2524+
light_effects}] = true
2525-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2525+
        end
2526-
["Rotation"] = Vector3.new(88.1728821, 3.88248229, -47.2683334),
2526+
2527-
["Anchored"] = true,
2527+
 
2528-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.67700851, 0.732853889, 0.0677102506, 0.022502467, 0.0713458061, -0.997199595, -0.735631049, 0.676635146, 0.0318107568),
2528+
function GraphicalEffects.SpawnSapientRock(position)
2529-
["CanCollide"] = false,
2529+
        local part = Instance.new("Part", Workspace)
2530-
["Locked"] = true,
2530+
        local size = 8 + math.random(0, 5)
2531-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2531+
        part.BottomSurface = "Smooth"
2532
        part.TopSurface = "Smooth"
2533-
o127 = Create("ParticleEmitter",{
2533+
        part.Material = "Slate"
2534-
["Parent"] = o126,
2534+
        part.Locked = true
2535-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2535+
        part.Shape = "Ball"
2536-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2536+
        part.FormFactor = "Custom"
2537-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2537+
        part.Size = Vector3.new(size, size, size)
2538-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2538+
        part.Position = position
2539-
["Speed"] = NumberRange.new(10,10),
2539+
        local bodypos = Instance.new("BodyPosition", part)
2540
        bodypos.maxForce = Vector3.new(0, 0, 0)
2541-
o128 = Create("Part",{
2541+
        local angry = false
2542-
["Parent"] = o40,
2542+
        local damage_ready = true
2543-
["Transparency"] = 1,
2543+
        local torso_following
2544-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2544+
        local torso_changed = -1000
2545-
["Rotation"] = Vector3.new(94.2613144, -0.499827653, -175.694702),
2545+
        local touched_conn = part.Touched:connect(function(hit)
2546-
["Anchored"] = true,
2546+
                local character = hit.Parent
2547-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.997140229, 0.0750680491, -0.00872352719, 0.0142532885, 0.0734430179, -0.997199416, -0.0742171258, -0.994470239, -0.0743027255),
2547+
                if character then
2548-
["CanCollide"] = false,
2548+
                        local humanoid
2549-
["Locked"] = true,
2549+
                        for _, child in ipairs(character:GetChildren()) do
2550-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2550+
                                if child:IsA("Humanoid") then
2551
                                        humanoid = child
2552-
o129 = Create("ParticleEmitter",{
2552+
                                        break
2553-
["Parent"] = o128,
2553+
                                end
2554-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2554+
                        end
2555-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2555+
                        if humanoid then
2556-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2556+
                                if angry then
2557-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2557+
                                        if damage_ready then
2558-
["Speed"] = NumberRange.new(10,10),
2558+
                                                damage_ready = false
2559
                                                humanoid:TakeDamage(100)
2560-
o130 = Create("Part",{
2560+
                                                wait(1)
2561-
["Parent"] = o40,
2561+
                                                damage_ready = true
2562-
["Transparency"] = 1,
2562+
                                                angry = false
2563-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2563+
                                                part.BrickColor = BrickColor.new("Medium stone grey")
2564-
["Rotation"] = Vector3.new(94.261322, -0.499826789, -179.913193),
2564+
                                        end
2565-
["Anchored"] = true,
2565+
                                else
2566-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.999960899, 0.00151503831, -0.00872351229, 0.00881218165, 0.0742927045, -0.997199416, -0.000862813671, -0.997235537, -0.0743029192),
2566+
                                        local torso = humanoid.Torso
2567-
["CanCollide"] = false,
2567+
                                        if torso then
2568-
["Locked"] = true,
2568+
                                                torso_following = torso
2569-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2569+
                                                torso_changed = tick()
2570
                                        end
2571-
o131 = Create("ParticleEmitter",{
2571+
                                end
2572-
["Parent"] = o130,
2572+
                        end
2573-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2573+
                end
2574-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2574+
        end)
2575-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2575+
        TaskScheduler.Start(function()
2576-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2576+
                while part.Parent == Workspace do
2577-
["Speed"] = NumberRange.new(10,10),
2577+
                        if torso_following then
2578
                                bodypos.position = torso_following.Position
2579-
o132 = Create("Part",{
2579+
                                if tick() - torso_changed > 60 or not torso_following.Parent then
2580-
["Parent"] = o40,
2580+
                                        torso_following = nil
2581-
["Transparency"] = 1,
2581+
                                        bodypos.maxForce = Vector3.new(0, 0, 0)
2582-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2582+
                                        angry = false
2583-
["Rotation"] = Vector3.new(94.2613602, -0.499834061, 173.321823),
2583+
                                        part.BrickColor = BrickColor.new("Medium stone grey")
2584-
["Anchored"] = true,
2584+
                                else
2585-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.993177116, -0.116288163, -0.00872363895, -5.81145287e-007, 0.0748140141, -0.997199237, 0.116614863, -0.990393817, -0.0743034109),
2585+
                                        local speed = angry and Vector3.new(16, 16, 16) or Vector3.new(6, 0, 6)
2586-
["CanCollide"] = false,
2586+
                                        bodypos.maxForce = part:GetMass() * speed
2587-
["Locked"] = true,
2587+
                                        if part.Position.Y < -250 then
2588-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2588+
                                                part.Velocity = Vector3.new()
2589
                                                part.Position = torso_following.Position + Vector3.new(0, 80, 0)
2590-
o133 = Create("ParticleEmitter",{
2590+
                                                part.BrickColor = BrickColor.new("Bright red")
2591-
["Parent"] = o132,
2591+
                                                angry = true
2592-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2592+
                                                torso_changed = tick()
2593-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2593+
                                        end
2594-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2594+
                                end
2595-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2595+
                        end
2596-
["Speed"] = NumberRange.new(10,10),
2596+
                        RunService.Stepped:wait()
2597
                end
2598-
o134 = Create("Part",{
2598+
                touched_conn:disconnect()
2599-
["Parent"] = o40,
2599+
        end)
2600-
["Transparency"] = 1,
2600+
        TaskScheduler.Start(function()
2601-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2601+
                while part.Parent == Workspace do
2602-
["Rotation"] = Vector3.new(92.5135651, 3.47827554, -114.90554),
2602+
                        wait(25 + math.random() * 10)
2603-
["Anchored"] = true,
2603+
                        local next_size = 8 + math.random() * 5
2604-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.42034781, 0.905332446, 0.0606700778, 0.014252793, 0.07344383, -0.997199297, -0.907251179, -0.41830501, -0.0437752716),
2604+
                        if math.random(100) == 1 then
2605-
["CanCollide"] = false,
2605+
                                next_size = next_size * (2 + 6 * math.random())
2606-
["Locked"] = true,
2606+
                        end
2607-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2607+
                        next_size = math.floor(next_size + 0.5)
2608
                        local start_time = tick()
2609-
o135 = Create("ParticleEmitter",{
2609+
                        local mesh = Instance.new("SpecialMesh", part)
2610-
["Parent"] = o134,
2610+
                        mesh.MeshType = "Sphere"
2611-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2611+
                        repeat
2612-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2612+
                                local elapsed_time = tick() - start_time
2613-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2613+
                                local alpha = math.cos(elapsed_time * math.pi * 0.5)
2614-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2614+
                                local interpolated_size = size * alpha + next_size * (1 - alpha)
2615-
["Speed"] = NumberRange.new(10,10),
2615+
                                local size_vector = Vector3.new(interpolated_size, interpolated_size, interpolated_size)
2616
                                local cframe = part.CFrame
2617-
o136 = Create("Part",{
2617+
                                part.Size = size_vector
2618-
["Parent"] = o40,
2618+
                                part.CFrame = cframe
2619-
["Transparency"] = 1,
2619+
                                mesh.Scale = size_vector / part.Size
2620-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2620+
                                RunService.Stepped:wait()
2621-
["Rotation"] = Vector3.new(93.6014633, -2.333462, 147.101608),
2621+
                        until tick() - start_time >= 1
2622-
["Anchored"] = true,
2622+
                        mesh:Destroy()
2623-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.838938951, -0.542700648, -0.0407153368, -1.86264515e-008, 0.0748138502, -0.997199237, 0.544225812, -0.836587727, -0.0627640337),
2623+
                        local cframe = part.CFrame
2624-
["CanCollide"] = false,
2624+
                        part.Size = Vector3.new(next_size, next_size, next_size)
2625-
["Locked"] = true,
2625+
                        part.CFrame = cframe
2626-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2626+
                        size = next_size
2627
                end
2628-
o137 = Create("ParticleEmitter",{
2628+
        end)
2629-
["Parent"] = o136,
2629+
2630-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2630+
 
2631-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2631+
function GraphicalEffects.MainLoop()
2632-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2632+
        RunService.Stepped:wait()
2633-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2633+
        for data in pairs(GraphicalEffects.magicCircleData) do
2634-
["Speed"] = NumberRange.new(10,10),
2634+
                GraphicalEffects.AnimateMagicCircle(data)
2635
        end
2636-
o138 = Create("Part",{
2636+
        for data in pairs(GraphicalEffects.laser_data) do
2637-
["Parent"] = o40,
2637+
                GraphicalEffects.AnimateLaserOfDeath(data)
2638-
["Transparency"] = 1,
2638+
        end
2639-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2639+
        for data in pairs(GraphicalEffects.missileData) do
2640-
["Rotation"] = Vector3.new(92.1031647, -3.74052405, 119.376282),
2640+
                GraphicalEffects.AnimateMissile(data)
2641-
["Anchored"] = true,
2641+
        end
2642-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.489498109, -0.869560719, -0.0652380958, 5.23403287e-007, 0.0748140067, -0.997199237, 0.87200439, -0.488126427, -0.0366207063),
2642+
2643-
["CanCollide"] = false,
2643+
TaskScheduler.Start(function()
2644-
["Locked"] = true,
2644+
        while true do
2645-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2645+
                GraphicalEffects.MainLoop()
2646
        end
2647-
o139 = Create("ParticleEmitter",{
2647+
2648-
["Parent"] = o138,
2648+
 
2649-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2649+
PlayerControl = {};
2650-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2650+
 
2651-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2651+
PlayerControl.fly_acceleration = 10
2652-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2652+
PlayerControl.fly_basespeed = 250
2653-
["Speed"] = NumberRange.new(10,10),
2653+
PlayerControl.fly_speed = PlayerControl.fly_basespeed
2654
PlayerControl.featherfallEnabled = true
2655-
o140 = Create("Part",{
2655+
PlayerControl.pushable = false
2656-
["Parent"] = o40,
2656+
PlayerControl.rolling = false
2657-
["Transparency"] = 1,
2657+
PlayerControl.rollingAngle = 0
2658-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2658+
PlayerControl.rollingOffset = 0
2659-
["Rotation"] = Vector3.new(93.6014328, -2.33343935, 158.085083),
2659+
PlayerControl.rollingMaxOffset = 3
2660-
["Anchored"] = true,
2660+
PlayerControl.rollingSpeed = 1 / 50
2661-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.926969826, -0.372919947, -0.0407149419, 0.01425381, 0.073442772, -0.997199357, 0.374865085, -0.924952507, -0.0627634823),
2661+
PlayerControl.characterEnabled = false
2662-
["CanCollide"] = false,
2662+
PlayerControl.characterMode = "normal"
2663-
["Locked"] = true,
2663+
local character = nil
2664-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2664+
local flying, flyingMomentum, flyingTilt = false, Vector3.new(), 0
2665
local pose, regeneratingHealth, jumpDebounce = "Standing", false, false
2666-
o141 = Create("ParticleEmitter",{
2666+
-- TODO: make local variables public
2667-
["Parent"] = o140,
2667+
local model, bodyColors, leftArmMesh, leftLegMesh, rightArmMesh, rightLegMesh, torsoMesh, wildcardHat, wildcardHandle, wildcardMesh, pants, shirt, humanoid,
2668-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2668+
 
2669-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2669+
head, leftArm, leftLeg, rightArm, rightLeg, torso, rootPart, rootJoint, face, soundFreeFalling, soundGettingUp, soundRunning, leftHip, leftShoulder,
2670-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2670+
 
2671-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2671+
rightHip, rightShoulder, neck, wildcardWeld, feetPart, feetWeld, feetTouchInterest, bodyGyro, bodyVelocity, headMesh, torsoLight
2672-
["Speed"] = NumberRange.new(10,10),
2672+
local AnimateCharacter
2673
local UserInterface = game:service'UserInputService'
2674-
o142 = Create("Part",{
2674+
local chatBubbles = {}
2675-
["Parent"] = o40,
2675+
local chatCharacterLimit = 240
2676-
["Transparency"] = 1,
2676+
function PlayerControl.CreateCharacter()
2677-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2677+
        local characterMode = PlayerControl.characterMode
2678-
["Rotation"] = Vector3.new(92.1031418, -3.74048948, 130.359772),
2678+
        if characterMode == "normal" then
2679-
["Anchored"] = true,
2679+
                if not PlayerControl.characterEnabled then
2680-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.646205604, -0.760369897, -0.0652374923, 0.0142543968, 0.0734428242, -0.997199357, 0.763030291, -0.645324588, -0.0366203785),
2680+
                        return
2681-
["CanCollide"] = false,
2681+
                end
2682-
["Locked"] = true,
2682+
                local appearance = CharacterAppearance.GetDefaultAppearance()
2683-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2683+
                local active = true
2684
                local torsoCFrame = (torso and torso.CFrame) or PlayerControl.torso_cframe or CFrame.new(0, 10, 0)
2685-
o143 = Create("ParticleEmitter",{
2685+
                if torsoCFrame.p.Y < -450 then
2686-
["Parent"] = o142,
2686+
                        torsoCFrame = CFrame.new(0, 10, 0)
2687-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2687+
                end
2688-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2688+
                local rootPartCFrame = (rootPart and rootPart.CFrame) or PlayerControl.torso_cframe or CFrame.new(0, 10, 0)
2689-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2689+
                if rootPartCFrame.p.Y < -450 then
2690-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2690+
                        rootPartCFrame = CFrame.new(0, 10, 0)
2691-
["Speed"] = NumberRange.new(10,10),
2691+
                end
2692
                local cameraCFrame = Camera.CoordinateFrame
2693-
o144 = Create("Part",{
2693+
                local connections = {}
2694-
["Parent"] = o40,
2694+
                local feetTouching = {}
2695-
["Transparency"] = 1,
2695+
                local previousWalkSpeed = 0
2696-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2696+
                local prevLeftHip, prevLeftShoulder, prevRightHip, prevRightShoulder = leftHip, leftShoulder, rightHip, rightShoulder
2697-
["Rotation"] = Vector3.new(92.1032867, -3.74049091, 144.690002),
2697+
                model = Instance.new("Model")
2698-
["Anchored"] = true,
2698+
                humanoid = Instance.new("Humanoid", model)
2699-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.814298451, -0.576768756, -0.0652375147, 0.0319872722, 0.067631647, -0.997199297, 0.579564393, -0.814103067, -0.0366229154),
2699+
                head = Instance.new("Part", model)
2700-
["CanCollide"] = false,
2700+
                leftArm = Instance.new("Part", model)
2701-
["Locked"] = true,
2701+
                leftLeg = Instance.new("Part", model)
2702-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2702+
                rightArm = Instance.new("Part", model)
2703
                rightLeg = Instance.new("Part", model)
2704-
o145 = Create("ParticleEmitter",{
2704+
                torso = Instance.new("Part", model)
2705-
["Parent"] = o144,
2705+
                rootPart = Instance.new("Part", model)
2706-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2706+
                soundFallingDown = Instance.new("Sound", head)
2707-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2707+
                soundFreeFalling = Instance.new("Sound", head)
2708-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2708+
                soundGettingUp = Instance.new("Sound", head)
2709-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2709+
                soundJumping = Instance.new("Sound", head)
2710-
["Speed"] = NumberRange.new(10,10),
2710+
                soundRunning = Instance.new("Sound", head)
2711
                leftHip = Instance.new("Motor", torso)
2712-
o146 = Create("Part",{
2712+
                leftShoulder = Instance.new("Motor", torso)
2713-
["Parent"] = o40,
2713+
                rightHip = Instance.new("Motor", torso)
2714-
["Transparency"] = 1,
2714+
                rightShoulder = Instance.new("Motor", torso)
2715-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2715+
                neck = Instance.new("Motor", torso)
2716-
["Rotation"] = Vector3.new(93.6015625, -2.33337355, 172.415314),
2716+
                rootJoint = Instance.new("Motor", rootPart)
2717-
["Anchored"] = true,
2717+
                feetPart = Instance.new("Part", model)
2718-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.990429044, -0.131882057, -0.0407137945, 0.0319866985, 0.0676317811, -0.997199297, 0.134265944, -0.988955557, -0.062765792),
2718+
                feetWeld = Instance.new("Weld", torso)
2719-
["CanCollide"] = false,
2719+
                bodyGyro = Instance.new("BodyGyro", rootPart)
2720-
["Locked"] = true,
2720+
                bodyVelocity = Instance.new("BodyVelocity", rootPart)
2721-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2721+
                model.Archivable = false
2722
                model.Name = user_name or Player.Name
2723-
o147 = Create("ParticleEmitter",{
2723+
                model.PrimaryPart = head
2724-
["Parent"] = o146,
2724+
                humanoid.LeftLeg = leftLeg
2725-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2725+
                humanoid.RightLeg = rightLeg
2726-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2726+
                humanoid.Torso = rootPart
2727-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2727+
                head.CFrame = torsoCFrame * CFrame.new(0, 1.5, 0)
2728-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2728+
                head.FormFactor = "Symmetric"
2729-
["Speed"] = NumberRange.new(10,10),
2729+
                head.Locked = true
2730
                head.Name = "Head"
2731-
o148 = Create("Part",{
2731+
                head.Size = Vector3.new(2, 1, 1)
2732-
["Parent"] = o40,
2732+
                head.TopSurface = "Smooth"
2733-
["Transparency"] = 1,
2733+
                leftArm.CanCollide = false
2734-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2734+
                leftArm.CFrame = torsoCFrame * CFrame.new(-1.5, 0, 0)
2735-
["Rotation"] = Vector3.new(92.1031494, -3.7404964, 136.291245),
2735+
                leftArm.FormFactor = "Symmetric"
2736-
["Anchored"] = true,
2736+
                leftArm.Locked = true
2737-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.721321881, -0.689520895, -0.0652376115, 0.0217675827, 0.0715767443, -0.997199416, 0.692257822, -0.72072053, -0.0366205126),
2737+
                leftArm.Name = "Left Arm"
2738-
["CanCollide"] = false,
2738+
                leftArm.Size = Vector3.new(1, 2, 1)
2739-
["Locked"] = true,
2739+
                leftLeg.BottomSurface = "Smooth"
2740-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2740+
                leftLeg.CanCollide = false
2741
                leftLeg.CFrame = torsoCFrame * CFrame.new(-0.5, -2, 0)
2742-
o149 = Create("ParticleEmitter",{
2742+
                leftLeg.FormFactor = "Symmetric"
2743-
["Parent"] = o148,
2743+
                leftLeg.Locked = true
2744-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2744+
                leftLeg.Name = "Left Leg"
2745-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2745+
                leftLeg.Size = Vector3.new(1, 2, 1)
2746-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2746+
                leftLeg.TopSurface = "Smooth"
2747-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2747+
                rightArm.CanCollide = false
2748-
["Speed"] = NumberRange.new(10,10),
2748+
                rightArm.CFrame = torsoCFrame * CFrame.new(1.5, 0, 0)
2749
                rightArm.FormFactor = "Symmetric"
2750-
o150 = Create("Part",{
2750+
                rightArm.Locked = true
2751-
["Parent"] = o40,
2751+
                rightArm.Name = "Right Arm"
2752-
["Transparency"] = 1,
2752+
                rightArm.Size = Vector3.new(1, 2, 1)
2753-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2753+
                rightLeg.BottomSurface = "Smooth"
2754-
["Rotation"] = Vector3.new(93.6013336, -2.33342433, 164.605774),
2754+
                rightLeg.CanCollide = false
2755-
["Anchored"] = true,
2755+
                rightLeg.CFrame = torsoCFrame * CFrame.new(0.5, -2, 0)
2756-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.963322699, -0.265238851, -0.0407146811, 0.0225021094, 0.0713472068, -0.997199535, 0.267400384, -0.961539388, -0.0627617538),
2756+
                rightLeg.FormFactor = "Symmetric"
2757-
["CanCollide"] = false,
2757+
                rightLeg.Locked = true
2758-
["Locked"] = true,
2758+
                rightLeg.Name = "Right Leg"
2759-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2759+
                rightLeg.Size = Vector3.new(1, 2, 1)
2760
                rightLeg.TopSurface = "Smooth"
2761-
o151 = Create("ParticleEmitter",{
2761+
                torso.CFrame = torsoCFrame
2762-
["Parent"] = o150,
2762+
                torso.FormFactor = "Symmetric"
2763-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2763+
                torso.LeftSurface = "Weld"
2764-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2764+
                torso.Locked = true
2765-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2765+
                torso.RightSurface = "Weld"
2766-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2766+
                torso.Name = "Torso"
2767-
["Speed"] = NumberRange.new(10,10),
2767+
                torso.Size = Vector3.new(2, 2, 1)
2768
                rootPart.BottomSurface = "Smooth"
2769-
o152 = Create("Part",{
2769+
                rootPart.BrickColor = BrickColor.Blue()
2770-
["Parent"] = o40,
2770+
                rootPart.CFrame = rootPartCFrame
2771-
["Transparency"] = 1,
2771+
                rootPart.FormFactor = "Symmetric"
2772-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2772+
                rootPart.LeftSurface = "Weld"
2773-
["Rotation"] = Vector3.new(93.6014404, -2.33344245, 164.016571),
2773+
                rootPart.Locked = true
2774-
["Anchored"] = true,
2774+
                rootPart.RightSurface = "Weld"
2775-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.960544229, -0.275131136, -0.0407149941, 0.0217670128, 0.071576722, -0.997199357, 0.277274162, -0.958738506, -0.0627636239),
2775+
                rootPart.Name = "HumanoidRootPart"
2776-
["CanCollide"] = false,
2776+
                rootPart.Size = Vector3.new(2, 2, 1)
2777-
["Locked"] = true,
2777+
                rootPart.TopSurface = "Smooth"
2778-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2778+
                rootPart.Transparency = 1
2779
                soundFreeFalling.Archivable = false
2780-
o153 = Create("ParticleEmitter",{
2780+
                soundFreeFalling.SoundId = "rbxasset://sounds/swoosh.wav"
2781-
["Parent"] = o152,
2781+
                soundGettingUp.Archivable = false
2782-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2782+
                soundGettingUp.SoundId = "rbxasset://sounds/hit.wav"
2783-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2783+
                soundRunning.Archivable = false
2784-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2784+
                soundRunning.SoundId = "rbxasset://sounds/bfsl-minifigfoots1.mp3"
2785-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2785+
                soundRunning.Looped = true
2786-
["Speed"] = NumberRange.new(10,10),
2786+
                leftHip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
2787
                leftHip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
2788-
o154 = Create("Part",{
2788+
                leftHip.MaxVelocity = 0.1
2789-
["Parent"] = o40,
2789+
                leftHip.Name = "Left Hip"
2790-
["Transparency"] = 1,
2790+
                leftHip.Part0 = torso
2791-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2791+
                leftHip.Part1 = leftLeg
2792-
["Rotation"] = Vector3.new(93.6014404, -2.33344316, 153.866592),
2792+
                leftShoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
2793-
["Anchored"] = true,
2793+
                leftShoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
2794-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.897026539, -0.440097481, -0.040715009, 0.00881273672, 0.0742924362, -0.997199357, 0.441888869, -0.894871473, -0.0627636313),
2794+
                leftShoulder.MaxVelocity = 0.15
2795-
["CanCollide"] = false,
2795+
                leftShoulder.Name = "Left Shoulder"
2796-
["Locked"] = true,
2796+
                leftShoulder.Part0 = torso
2797-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2797+
                leftShoulder.Part1 = leftArm
2798
                rightHip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
2799-
o155 = Create("ParticleEmitter",{
2799+
                rightHip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
2800-
["Parent"] = o154,
2800+
                rightHip.MaxVelocity = 0.1
2801-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2801+
                rightHip.Name = "Right Hip"
2802-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2802+
                rightHip.Part0 = torso
2803-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2803+
                rightHip.Part1 = rightLeg
2804-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2804+
                rightShoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
2805-
["Speed"] = NumberRange.new(10,10),
2805+
                rightShoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
2806
                rightShoulder.MaxVelocity = 0.15
2807-
o156 = Create("Part",{
2807+
                rightShoulder.Name = "Right Shoulder"
2808-
["Parent"] = o40,
2808+
                rightShoulder.Part0 = torso
2809-
["Transparency"] = 1,
2809+
                rightShoulder.Part1 = rightArm
2810-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2810+
                if prevLeftHip then
2811-
["Rotation"] = Vector3.new(92.5135727, 3.47828579, -108.974068),
2811+
                        leftHip.CurrentAngle = prevLeftHip.CurrentAngle
2812-
["Anchored"] = true,
2812+
                        leftHip.DesiredAngle = prevLeftHip.DesiredAngle
2813-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.324541301, 0.943923831, 0.0606702566, 0.0217660815, 0.0715779364, -0.997199297, -0.945621192, -0.322310954, -0.0437753312),
2813+
                end
2814-
["CanCollide"] = false,
2814+
                if prevLeftShoulder then
2815-
["Locked"] = true,
2815+
                        leftShoulder.CurrentAngle = prevLeftShoulder.CurrentAngle
2816-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2816+
                        leftShoulder.DesiredAngle = prevLeftShoulder.DesiredAngle
2817
                end
2818-
o157 = Create("ParticleEmitter",{
2818+
                if prevRightHip then
2819-
["Parent"] = o156,
2819+
                        rightHip.CurrentAngle = prevRightHip.CurrentAngle
2820-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2820+
                        rightHip.DesiredAngle = prevRightHip.DesiredAngle
2821-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2821+
                end
2822-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2822+
                if prevRightShoulder then
2823-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2823+
                        rightShoulder.CurrentAngle = prevRightShoulder.CurrentAngle
2824-
["Speed"] = NumberRange.new(10,10),
2824+
                        rightShoulder.DesiredAngle = prevRightShoulder.DesiredAngle
2825
                end
2826-
o158 = Create("Part",{
2826+
                neck.C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
2827-
["Parent"] = o40,
2827+
                neck.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
2828-
["Transparency"] = 1,
2828+
                neck.Name = "Neck"
2829-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2829+
                neck.Part0 = torso
2830-
["Rotation"] = Vector3.new(94.2613297, -0.499825507, -169.763214),
2830+
                neck.Part1 = head
2831-
["Anchored"] = true,
2831+
                rootJoint.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
2832-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.984044254, 0.177709699, -0.00872348994, 0.0217664987, 0.0715771168, -0.997199357, -0.176587358, -0.981476426, -0.0743029416),
2832+
                rootJoint.C1 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
2833-
["CanCollide"] = false,
2833+
                rootJoint.Name = "RootJoint"
2834-
["Locked"] = true,
2834+
                rootJoint.Part0 = rootPart
2835-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2835+
                rootJoint.Part1 = torso
2836
                feetPart.BottomSurface = "Smooth"
2837-
o159 = Create("ParticleEmitter",{
2837+
                feetPart.CanCollide = false
2838-
["Parent"] = o158,
2838+
                feetPart.CFrame = torsoCFrame * CFrame.new(0, -3.1, 0)
2839-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2839+
                feetPart.FormFactor = "Custom"
2840-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2840+
                feetPart.Locked = true
2841-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2841+
                feetPart.Name = "Platform"
2842-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2842+
                feetPart.Size = Vector3.new(1.8, 0.2, 0.8)
2843-
["Speed"] = NumberRange.new(10,10),
2843+
                feetPart.TopSurface = "Smooth"
2844
                feetPart.Transparency = 1
2845-
o160 = Create("Part",{
2845+
                feetWeld.C0 = CFrame.new(0, -3, 0)
2846-
["Parent"] = o40,
2846+
                feetWeld.C1 = CFrame.new(0, 0.1, 0)
2847-
["Transparency"] = 1,
2847+
                feetWeld.Name = "PlatformWeld"
2848-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2848+
                feetWeld.Part0 = torso
2849-
["Rotation"] = Vector3.new(94.2614059, -0.499709398, -161.364487),
2849+
                feetWeld.Part1 = feetPart
2850-
["Anchored"] = true,
2850+
                table.insert(connections, feetPart.Touched:connect(function(hit)
2851-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.947534502, 0.31953451, -0.00872146338, 0.0319862142, 0.0676321536, -0.997199357, -0.318049282, -0.945157945, -0.0743042678),
2851+
                        feetTouching[hit] = true
2852-
["CanCollide"] = false,
2852+
                end))
2853-
["Locked"] = true,
2853+
                table.insert(connections, feetPart.TouchEnded:connect(function(hit)
2854-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2854+
                        feetTouching[hit] = nil
2855
                end))
2856-
o161 = Create("ParticleEmitter",{
2856+
                feetTouchInterest = feetPart:FindFirstChild("TouchInterest")
2857-
["Parent"] = o160,
2857+
                bodyGyro.D = 3250
2858-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2858+
                bodyGyro.P = 400000
2859-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2859+
                bodyGyro.maxTorque = Vector3.new(1000000000, 0, 1000000000)
2860-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2860+
                bodyVelocity.P = 5000
2861-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2861+
                bodyVelocity.maxForce = Vector3.new(0, 0, 0)
2862-
["Speed"] = NumberRange.new(10,10),
2862+
                bodyVelocity.velocity = Vector3.new(0, 0, 0)
2863
                torsoLight = Instance.new("PointLight", torso)
2864-
o162 = Create("Part",{
2864+
                torsoLight.Brightness = 0.4
2865-
["Parent"] = o40,
2865+
                torsoLight.Color = Color3.new(1, 1, 1)
2866-
["Transparency"] = 1,
2866+
                torsoLight.Range = 16
2867-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2867+
                torsoLight.Shadows = true
2868-
["Rotation"] = Vector3.new(94.2612228, -0.499854535, -169.174011),
2868+
                local ff1, ff2, ff3, ff4, ff5, ff6, ff7, ff8, ff9 = Instance.new("ForceField", head), Instance.new("ForceField", leftArm), Instance.new("ForceField", leftLeg), Instance.new("ForceField", rightArm), Instance.new("ForceField", rightLeg), Instance.new("ForceField", torso), Instance.new("ForceField", wildcardHandle), Instance.new("ForceField", feetPart), Instance.new("ForceField", rootPart)
2869-
["Anchored"] = true,
2869+
                local forcefields = {[ff1] = head, [ff2] = leftArm, [ff3] = leftLeg, [ff4] = rightArm, [ff5] = rightLeg, [ff6] = torso, [ff7] = wildcardHandle, [ff8] = feetPart, [ff9] = rootPart}    
2870-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.982164741, 0.187819839, -0.00872399658, 0.0225015879, 0.0713475794, -0.997199476, -0.186671242, -0.979608715, -0.0743010864),
2870+
                local objects = {[humanoid] = true, [head] = true, [leftArm] = true, [leftLeg] = true, [rightArm] = true, [rightLeg] = true, [torso] = true, [rootPart] = true, [rootJoint] = true, [soundFreeFalling] = true, [soundGettingUp] = true, [soundRunning] = true, [leftHip] = true, [leftShoulder] = true, [rightHip] = true, [rightShoulder] = true, [neck] = true, [feetPart] = true, [feetWeld] = true, [feetTouchInterest] = true, [bodyGyro] = true, [bodyVelocity] = true, [ff1] = true, [ff2] = true, [ff3] = true, [ff4] = true, [ff5] = true, [ff6] = true, [ff7] = true, [ff8] = true, [ff9] = true}            
2871-
["CanCollide"] = false,
2871+
                local tshirtUrl = appearance.tshirt
2872-
["Locked"] = true,
2872+
                if tshirtUrl then
2873-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2873+
                        local tshirt = Instance.new("Decal", torso)
2874
                        tshirt.Name = "roblox"
2875-
o163 = Create("ParticleEmitter",{
2875+
                        tshirt.Texture = tshirtUrl
2876-
["Parent"] = o162,
2876+
                        objects[tshirt] = true
2877-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2877+
                end
2878-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2878+
                for _, template in ipairs(appearance.characterObjects) do
2879-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2879+
                        local object = template:Clone()
2880-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2880+
                        local newObjects = {object}
2881-
["Speed"] = NumberRange.new(10,10),
2881+
                        for _, object in ipairs(newObjects) do
2882
                                objects[object] = true
2883-
o164 = Create("Part",{
2883+
                                for _, child in ipairs(object:GetChildren()) do
2884-
["Parent"] = o40,
2884+
                                        table.insert(newObjects, child)
2885-
["Transparency"] = 1,
2885+
                                end                            
2886-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2886+
                        end
2887-
["Rotation"] = Vector3.new(92.1030655, -3.74043012, 136.880478),
2887+
                        if object:IsA("BodyColors") then
2888-
["Anchored"] = true,
2888+
                                head.BrickColor = object.HeadColor
2889-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.7283746, -0.682066679, -0.0652364641, 0.0225026757, 0.0713472888, -0.997199476, 0.684809685, -0.727801323, -0.0366190374),
2889+
                                leftArm.BrickColor = object.LeftArmColor
2890-
["CanCollide"] = false,
2890+
                                leftLeg.BrickColor = object.LeftLegColor
2891-
["Locked"] = true,
2891+
                                rightArm.BrickColor = object.RightArmColor
2892-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2892+
                                rightLeg.BrickColor = object.RightLegColor
2893
                                torso.BrickColor = object.TorsoColor
2894-
o165 = Create("ParticleEmitter",{
2894+
                        elseif object:IsA("Hat") then
2895-
["Parent"] = o164,
2895+
                                local handle = object:FindFirstChild("Handle")
2896-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2896+
                                if handle and handle:IsA("BasePart") then
2897-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2897+
                                        local weld = Instance.new("Weld", head)
2898-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2898+
                                        weld.C0 = CFrame.new(0, 0.5, 0)
2899-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2899+
                                        local attachmentPos = object.AttachmentPos
2900-
["Speed"] = NumberRange.new(10,10),
2900+
                                        local attachmentRight = object.AttachmentRight
2901
                                        local attachmentUp = object.AttachmentUp
2902-
o166 = Create("Part",{
2902+
                                        local attachmentForward = object.AttachmentForward
2903-
["Parent"] = o40,
2903+
                                        weld.C1 = CFrame.new(attachmentPos.X, attachmentPos.Y, attachmentPos.Z,
2904-
["Transparency"] = 1,
2904+
                                                                                 attachmentRight.X, attachmentUp.X, -attachmentForward.X,
2905-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2905+
                                                                                 attachmentRight.Y, attachmentUp.Y, -attachmentForward.Y,
2906-
["Rotation"] = Vector3.new(93.7929153, 2.0070765, -152.154175),
2906+
                                                                                 attachmentRight.Z, attachmentUp.Z, -attachmentForward.Z)
2907-
["Anchored"] = true,
2907+
                                        weld.Name = "HeadWeld"
2908-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.883665204, 0.466807544, 0.0350229293, -9.01520252e-007, 0.0748142153, -0.997199297, -0.468119651, -0.881188631, -0.0661100745),
2908+
                                        weld.Part0 = head
2909-
["CanCollide"] = false,
2909+
                                        weld.Part1 = handle
2910-
["Locked"] = true,
2910+
                                        handle.Parent = model
2911-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2911+
                                        local antiGravity = Instance.new("BodyForce", handle)
2912
                                        antiGravity.force = Vector3.new(0, handle:GetMass() * 196.2, 0)
2913-
o167 = Create("ParticleEmitter",{
2913+
                                        objects[object] = false
2914-
["Parent"] = o166,
2914+
                                        object.Parent = nil
2915-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2915+
                                        objects[weld] = true
2916-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2916+
                                end
2917-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2917+
                        end
2918-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2918+
                        object.Parent = model
2919-
["Speed"] = NumberRange.new(10,10),
2919+
                end
2920
                local facePresent = false
2921-
o168 = Create("Part",{
2921+
                local headMeshPresent = false
2922-
["Parent"] = o40,
2922+
                for _, template in ipairs(appearance.headObjects) do
2923-
["Transparency"] = 1,
2923+
                        local object = template:Clone()
2924-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2924+
                        local newObjects = {object}
2925-
["Rotation"] = Vector3.new(93.7928925, 2.00720692, -126.840439),
2925+
                        for _, object in ipairs(newObjects) do
2926-
["Anchored"] = true,
2926+
                                objects[object] = true
2927-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.599220753, 0.799817324, 0.0350252055, 0.031986054, 0.067632474, -0.997199237, -0.79994458, -0.596421063, -0.0661095679),
2927+
                                for _, child in ipairs(object:GetChildren()) do
2928-
["CanCollide"] = false,
2928+
                                        table.insert(newObjects, child)
2929-
["Locked"] = true,
2929+
                                end                            
2930-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2930+
                        end
2931
                        if object:IsA("DataModelMesh") then
2932-
o169 = Create("ParticleEmitter",{
2932+
                                headMeshPresent = true
2933-
["Parent"] = o168,
2933+
                        elseif object:IsA("Decal") then
2934-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2934+
                                facePresent = true
2935-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2935+
                        end
2936-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2936+
                        object.Parent = head
2937-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2937+
                end
2938-
["Speed"] = NumberRange.new(10,10),
2938+
                if not facePresent then
2939
                        local face = Instance.new("Decal", head)
2940-
o170 = Create("Part",{
2940+
                        face.Texture = "rbxasset://textures/face.png"
2941-
["Parent"] = o40,
2941+
                        objects[face] = true
2942-
["Transparency"] = 1,
2942+
                end
2943-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2943+
                if not headMeshPresent then
2944-
["Rotation"] = Vector3.new(92.513504, 3.47841239, -100.575317),
2944+
                        local headMesh = Instance.new("SpecialMesh", head)
2945-
["Anchored"] = true,
2945+
                        headMesh.Scale = Vector3.new(1.25, 1.25, 1.25)
2946-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.18318972, 0.981203556, 0.060672462, 0.0319859311, 0.0676330775, -0.997199237, -0.982557118, -0.180735588, -0.0437742099),
2946+
                        objects[headMesh] = true
2947-
["CanCollide"] = false,
2947+
                end
2948-
["Locked"] = true,
2948+
                table.insert(connections, model.DescendantAdded:connect(function(object)
2949-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2949+
                        local success, is_localscript = pcall(Game.IsA, object, "LocalScript")
2950
                        if success and is_localscript then
2951-
o171 = Create("ParticleEmitter",{
2951+
                                pcall(Utility.SetProperty, object, "Disabled", true)
2952-
["Parent"] = o170,
2952+
                                local changed_connection = pcall(object.Changed.connect, object.Changed, function(property)
2953-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2953+
                                        if property == "Disabled" and not object.Disabled then
2954-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2954+
                                                pcall(Utility.SetProperty, object, "Disabled", true)
2955-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2955+
                                                object:Destroy()
2956-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2956+
                                        end
2957-
["Speed"] = NumberRange.new(10,10),
2957+
                                end)
2958
                        end
2959-
o172 = Create("Part",{
2959+
                        if not objects[object] then
2960-
["Parent"] = o40,
2960+
                                object:Destroy()
2961-
["Transparency"] = 1,
2961+
                        end
2962-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2962+
                end))
2963-
["Rotation"] = Vector3.new(93.7928848, 2.00706434, -135.239212),
2963+
                model.Parent = Workspace
2964-
["Anchored"] = true,
2964+
                Player.Character = model
2965-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.709617138, 0.703716636, 0.035022717, 0.0217662603, 0.0715773031, -0.997199297, -0.704251409, -0.706866026, -0.0661095232),
2965+
                Camera.CameraSubject = humanoid
2966-
["CanCollide"] = false,
2966+
                Camera.CameraType = "Track"
2967-
["Locked"] = true,
2967+
                Camera.CoordinateFrame = cameraCFrame
2968-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2968+
                local IsStanding
2969
                local RegenerateHealth
2970-
o173 = Create("ParticleEmitter",{
2970+
                local ResetCharacter
2971-
["Parent"] = o172,
2971+
                function IsStanding()
2972-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2972+
                        return not not next(feetTouching)
2973-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2973+
                end
2974-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2974+
                function RegenerateHealth()
2975-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2975+
                        if humanoid.Health < 1 then
2976-
["Speed"] = NumberRange.new(10,10),
2976+
                                humanoid.Health = 100
2977
                        elseif not regeneratingHealth then
2978-
o174 = Create("Part",{
2978+
                                regeneratingHealth = true
2979-
["Parent"] = o40,
2979+
                                local elapsedTime = wait(1)
2980-
["Transparency"] = 1,
2980+
                                regeneratingHealth = false
2981-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
2981+
                                if humanoid.Health < 100 then
2982-
["Rotation"] = Vector3.new(92.5135727, 3.47828293, -119.124016),
2982+
                                        humanoid.Health = math.min(humanoid.Health + elapsedTime, 100)
2983-
["Anchored"] = true,
2983+
                                end
2984-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.485805035, 0.87195915, 0.0606702045, 0.00881163031, 0.0742934197, -0.997199297, -0.874022782, -0.483909011, -0.0437753089),
2984+
                        end
2985-
["CanCollide"] = false,
2985+
                end
2986-
["Locked"] = true,
2986+
                function ResetCharacter()
2987-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
2987+
                        for index, connection in ipairs(connections) do
2988
                                connection:disconnect()
2989-
o175 = Create("ParticleEmitter",{
2989+
                        end
2990-
["Parent"] = o174,
2990+
                        active = false
2991-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
2991+
                end
2992-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
2992+
                table.insert(connections, model.AncestryChanged:connect(ResetCharacter))
2993-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
2993+
                table.insert(connections, model.DescendantRemoving:connect(function(object)
2994-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
2994+
                        local parent = forcefields[object]
2995-
["Speed"] = NumberRange.new(10,10),
2995+
                        if parent then
2996
                                forcefields[object] = nil
2997-
o176 = Create("Part",{
2997+
                                local new_forcefield = Instance.new("ForceField")
2998-
["Parent"] = o40,
2998+
                                forcefields[new_forcefield] = parent
2999-
["Transparency"] = 1,
2999+
                                objects[new_forcefield] = true
3000-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3000+
                                new_forcefield.Parent = parent
3001-
["Rotation"] = Vector3.new(93.7928848, 2.00706506, -145.38916),
3001+
                        elseif objects[object] then
3002-
["Anchored"] = true,
3002+
                                ResetCharacter()
3003-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.822523952, 0.567651212, 0.0350227281, 0.00881189853, 0.0742928758, -0.997199297, -0.568662286, -0.819910288, -0.0661095232),
3003+
                        end
3004-
["CanCollide"] = false,
3004+
                end))
3005-
["Locked"] = true,
3005+
                table.insert(connections, humanoid.HealthChanged:connect(RegenerateHealth))
3006-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3006+
                table.insert(connections, humanoid.Climbing:connect(function() pose = "Climbing" end))
3007
                table.insert(connections, humanoid.FallingDown:connect(function(state)  pose = "FallingDown" end))
3008-
o177 = Create("ParticleEmitter",{
3008+
                table.insert(connections, humanoid.FreeFalling:connect(function(state) pose = "FreeFall" if state then soundFreeFalling:Play() else
3009-
["Parent"] = o176,
3009+
 
3010-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3010+
soundFreeFalling:Pause() end end))
3011-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3011+
                table.insert(connections, humanoid.GettingUp:connect(function(state) pose = "GettingUp" if state then soundGettingUp:Play() else
3012-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3012+
 
3013-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3013+
soundGettingUp:Pause() end end))
3014-
["Speed"] = NumberRange.new(10,10),
3014+
                table.insert(connections, humanoid.PlatformStanding:connect(function() pose = "PlatformStanding" end))
3015
                table.insert(connections, humanoid.Seated:connect(function() pose = "Seated" end))
3016-
o178 = Create("Part",{
3016+
                table.insert(connections, humanoid.Swimming:connect(function(speed) if speed > 0 then pose = "Swimming" else pose = "Standing" end end))
3017-
["Parent"] = o40,
3017+
                local previousRootPartCFrame = rootPart.CFrame
3018-
["Transparency"] = 1,
3018+
                TaskScheduler.Start(function()
3019-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3019+
                        while active do
3020-
["Rotation"] = Vector3.new(94.2905273, 0.0145034799, -154.495163),
3020+
                                local totalTime = TaskScheduler.GetCurrentTime()
3021-
["Anchored"] = true,
3021+
                                local stepTime = 1 / 60
3022-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.902548909, 0.430587351, 0.000253133476, 0.0319863558, 0.0676319897, -0.997199237, -0.429397821, -0.90001142, -0.0748138651),
3022+
                                if not PlayerControl.characterEnabled then
3023-
["CanCollide"] = false,
3023+
                                        ResetCharacter()
3024-
["Locked"] = true,
3024+
                                        break
3025-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3025+
                                end
3026
                                torsoLight.Brightness = 0.5 + 0.15 * math.sin(totalTime * 0.75 * math.pi)
3027-
o179 = Create("ParticleEmitter",{
3027+
                                local featherfallEnabled = PlayerControl.IsFeatherfallEnabled()
3028-
["Parent"] = o178,
3028+
                                local rootPartCFrame = rootPart.CFrame
3029-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3029+
                                if not jumpDebounce and UserInterface:IsKeyDown(Enum.KeyCode.Space) then
3030-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3030+
                                        if humanoid.Sit then
3031-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3031+
                                                humanoid.Sit = false
3032-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3032+
                                        end
3033-
["Speed"] = NumberRange.new(10,10),
3033+
                                        if IsStanding() then
3034
                                                jumpDebounce = true
3035-
o180 = Create("Part",{
3035+
                                                pose = "Jumping"
3036-
["Parent"] = o40,
3036+
                                                rootPart.Velocity = Vector3.new(rootPart.Velocity.X, 50, rootPart.Velocity.Z)
3037-
["Transparency"] = 1,
3037+
                                                torso.Velocity = Vector3.new(torso.Velocity.X, 50, torso.Velocity.Z)                                           
3038-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3038+
                                                TaskScheduler.Schedule(1, function()
3039-
["Rotation"] = Vector3.new(93.7928162, 2.00698066, -134.649948),
3039+
                                                        if pose == "Jumping" then
3040-
["Anchored"] = true,
3040+
                                                                pose = "FreeFall"
3041-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.70234257, 0.710977197, 0.0350212567, 0.0225013494, 0.0713477731, -0.997199535, -0.711483479, -0.699586332, -0.0661083013),
3041+
                                                        end
3042-
["CanCollide"] = false,
3042+
                                                        jumpDebounce = false
3043-
["Locked"] = true,
3043+
                                                        humanoid.Jump = false
3044-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3044+
                                                end)
3045
                                        end
3046-
o181 = Create("ParticleEmitter",{
3046+
                                end
3047-
["Parent"] = o180,
3047+
                                local cameraCFrame = Camera.CoordinateFrame
3048-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3048+
                                local cameraDirection = cameraCFrame.lookVector
3049-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3049+
                                if flying then
3050-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3050+
                                        if PlayerControl.rolling then
3051-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3051+
                                                local rootPartCFrame = rootPart.CFrame
3052-
["Speed"] = NumberRange.new(10,10),
3052+
                                                local speed = (rootPartCFrame - rootPartCFrame.p):pointToObjectSpace(rootPart.Velocity).Y
3053
                                                local decay = 0.5 ^ stepTime
3054-
o182 = Create("Part",{
3054+
                                                if math.abs(speed) <= 50 then
3055-
["Parent"] = o40,
3055+
                                                        PlayerControl.rollingAngle = (((PlayerControl.rollingAngle + 0.5) % 1 - 0.5) * decay) % 1
3056-
["Transparency"] = 1,
3056+
                                                        PlayerControl.rollingOffset = PlayerControl.rollingOffset * decay
3057-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3057+
                                                else
3058-
["Rotation"] = Vector3.new(93.7928848, 2.00705934, -141.17067),
3058+
                                                        PlayerControl.rollingAngle = (PlayerControl.rollingAngle + stepTime * speed * PlayerControl.rollingSpeed) % 1
3059-
["Anchored"] = true,
3059+
                                                        PlayerControl.rollingOffset = (PlayerControl.rollingOffset + PlayerControl.rollingMaxOffset * (1 / decay - 1)) * decay
3060-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.7785393, 0.626618087, 0.0350226313, 0.0142530277, 0.0734432712, -0.997199297, -0.627434313, -0.775858164, -0.0661094338),
3060+
                                                end
3061-
["CanCollide"] = false,
3061+
                                                rootJoint.C0 = (CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0) * CFrame.Angles(PlayerControl.rollingAngle * 2 * math.pi, 0, 0)) * CFrame.new(0, -PlayerControl.rollingOffset, 0)
3062-
["Locked"] = true,
3062+
                                        else
3063-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3063+
                                                rootJoint.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
3064
                                                PlayerControl.rollingAngle = 0
3065-
o183 = Create("ParticleEmitter",{
3065+
                                                PlayerControl.rollingOffset = 0
3066-
["Parent"] = o182,
3066+
                                        end
3067-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3067+
                                        rightShoulder.MaxVelocity = 0.5
3068-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3068+
                                        leftShoulder.MaxVelocity = 0.5
3069-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3069+
                                        rightShoulder.DesiredAngle = 0
3070-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3070+
                                        leftShoulder.DesiredAngle = 0
3071-
["Speed"] = NumberRange.new(10,10),
3071+
                                        rightHip.DesiredAngle = 0
3072
                                        leftHip.DesiredAngle = 0
3073-
o184 = Create("Part",{
3073+
                                        bodyGyro.D = 500
3074-
["Parent"] = o40,
3074+
                                        bodyGyro.P = 1e6
3075-
["Transparency"] = 1,
3075+
                                        bodyGyro.maxTorque = Vector3.new(1e6, 1e6, 1e6)
3076-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3076+
                                        bodyVelocity.P = 1250
3077-
["Rotation"] = Vector3.new(92.5135956, 3.47830582, -125.889046),
3077+
                                        bodyVelocity.maxForce = Vector3.new(1e6, 1e6, 1e6)
3078-
["Anchored"] = true,
3078+
                                        local movementRight = 0
3079-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.585137486, 0.808661342, 0.0606706068, -1.21444464e-006, 0.074814707, -0.997199297, -0.810934246, -0.583497524, -0.0437757187),
3079+
                                        local movementForward = 0
3080-
["CanCollide"] = false,
3080+
                                        local movementUp = 0
3081-
["Locked"] = true,
3081+
                                        if UserInterface:IsKeyDown(Enum.KeyCode.A) and not UserInterface:IsKeyDown(Enum.KeyCode.D) then
3082-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3082+
                                                movementRight = -1
3083
                                        elseif UserInterface:IsKeyDown(Enum.KeyCode.D) then
3084-
o185 = Create("ParticleEmitter",{
3084+
                                                movementRight = 1
3085-
["Parent"] = o184,
3085+
                                        end
3086-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3086+
                                        if UserInterface:IsKeyDown(Enum.KeyCode.W) then
3087-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3087+
                                                movementUp = 0.2
3088-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3088+
                                                if not UserInterface:IsKeyDown(Enum.KeyCode.S) then
3089-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3089+
                                                        movementForward = -1
3090-
["Speed"] = NumberRange.new(10,10),
3090+
                                                end
3091
                                        elseif UserInterface:IsKeyDown(Enum.KeyCode.S) then
3092-
o186 = Create("Part",{
3092+
                                                movementForward = 1
3093-
["Parent"] = o40,
3093+
                                        end
3094-
["Transparency"] = 1,
3094+
                                        local movement = PlayerControl.fly_acceleration * cameraCFrame:vectorToWorldSpace(Vector3.new(movementRight, movementUp, movementForward))
3095-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3095+
                                        local previousMomentum = flyingMomentum
3096-
["Rotation"] = Vector3.new(92.5135498, 3.47817874, -108.384872),
3096+
                                        local previousTilt = flyingTilt
3097-
["Anchored"] = true,
3097+
                                        flyingMomentum = movement + flyingMomentum * (1 - PlayerControl.fly_acceleration / PlayerControl.fly_speed)
3098-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.314817429, 0.947211266, 0.0606683902, 0.022501193, 0.0713484362, -0.997199476, -0.948885441, -0.312570006, -0.0437749177),
3098+
                                        flyingTilt = ((flyingMomentum * Vector3.new(1, 0, 1)).unit:Cross((previousMomentum * Vector3.new(1, 0, 1)).unit)).Y
3099-
["CanCollide"] = false,
3099+
                                        if flyingTilt ~= flyingTilt or flyingTilt == math.huge then
3100-
["Locked"] = true,
3100+
                                                flyingTilt = 0
3101-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3101+
                                        end
3102
                                        local absoluteTilt = math.abs(flyingTilt)
3103-
o187 = Create("ParticleEmitter",{
3103+
                                        if absoluteTilt > 0.06 or absoluteTilt < 0.0001 then
3104-
["Parent"] = o186,
3104+
                                                if math.abs(previousTilt) > 0.0001 then
3105-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3105+
                                                        flyingTilt = previousTilt * 0.9
3106-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3106+
                                                else
3107-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3107+
                                                        flyingTilt = 0
3108-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3108+
                                                end
3109-
["Speed"] = NumberRange.new(10,10),
3109+
                                        else
3110
                                                flyingTilt = previousTilt * 0.77 + flyingTilt * 0.25
3111-
o188 = Create("Part",{
3111+
                                        end
3112-
["Parent"] = o40,
3112+
                                        previousTilt = flyingTilt
3113-
["Transparency"] = 1,
3113+
                                        if flyingMomentum.magnitude < 0.1 then
3114-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3114+
                                                flyingMomentum = Vector3.new(0, 0, 0)
3115-
["Rotation"] = Vector3.new(94.2904892, 0.0143754138, -179.808853),
3115+
--                                              bodyGyro.cframe = cameraCFrame
3116-
["Anchored"] = true,
3116+
                                        else
3117-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.999994397, 0.00333616044, 0.000250898302, -4.09781933e-007, 0.0748139843, -0.997199297, -0.00334567297, -0.997191966, -0.0748133287),
3117+
                                                local momentumOrientation = CFrame.new(Vector3.new(0, 0, 0), flyingMomentum)
3118-
["CanCollide"] = false,
3118+
                                                local tiltOrientation = CFrame.Angles(0, 0, -20 * flyingTilt)
3119-
["Locked"] = true,
3119+
                                                bodyGyro.cframe = momentumOrientation * tiltOrientation * CFrame.Angles(-0.5 * math.pi * math.min(flyingMomentum.magnitude / PlayerControl.fly_speed, 1), 0, 0)
3120-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3120+
                                        end
3121
                                        bodyVelocity.velocity = flyingMomentum + Vector3.new(0, 0.15695775618683547, 0)
3122-
o189 = Create("ParticleEmitter",{
3122+
                                        rootPart.Velocity = flyingMomentum
3123-
["Parent"] = o188,
3123+
                                        previousMomentum = flyingMomentum
3124-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3124+
                                else
3125-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3125+
                                        rootJoint.C0 = CFrame.new(0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
3126-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3126+
                                        PlayerControl.rollingAngle = 0
3127-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3127+
                                        PlayerControl.rollingOffset = 0
3128-
["Speed"] = NumberRange.new(10,10),
3128+
                                        bodyGyro.D = 3250
3129
                                        bodyGyro.P = 400000
3130-
o190 = Create("Part",{
3130+
                                        bodyVelocity.P = 5000
3131-
["Parent"] = o40,
3131+
                                        local cameraDirection = cameraCFrame.lookVector
3132-
["Transparency"] = 1,
3132+
                                        local walkDirection = Vector3.new(0, 0, 0)
3133-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3133+
                                        local walkSpeed = 16
3134-
["Rotation"] = Vector3.new(94.290451, 0.0143788289, -168.825333),
3134+
                                        if UserInterface:IsKeyDown(Enum.KeyCode.W) then
3135-
["Anchored"] = true,
3135+
                                                if UserInterface:IsKeyDown(Enum.KeyCode.A) then
3136-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.981041014, 0.193800449, 0.000250957906, 0.0142534375, 0.0734428689, -0.997199416, -0.193275839, -0.978288114, -0.0748125464),
3136+
                                                        walkDirection = Vector3.new(cameraDirection.X + cameraDirection.Z, 0, cameraDirection.Z - cameraDirection.X).unit
3137-
["CanCollide"] = false,
3137+
                                                elseif UserInterface:IsKeyDown(Enum.KeyCode.D) then
3138-
["Locked"] = true,
3138+
                                                        walkDirection = Vector3.new(cameraDirection.X - cameraDirection.Z, 0, cameraDirection.Z + cameraDirection.X).unit
3139-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3139+
                                                else
3140
                                                        walkDirection = Vector3.new(cameraDirection.X, 0, cameraDirection.Z).unit
3141-
o191 = Create("ParticleEmitter",{
3141+
                                                end
3142-
["Parent"] = o190,
3142+
                                        elseif UserInterface:IsKeyDown(Enum.KeyCode.S) then
3143-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3143+
                                                if UserInterface:IsKeyDown(Enum.KeyCode.A) then
3144-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3144+
                                                        walkDirection = Vector3.new(-cameraDirection.X + cameraDirection.Z, 0, -cameraDirection.Z - cameraDirection.X).unit
3145-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3145+
                                                elseif UserInterface:IsKeyDown(Enum.KeyCode.D) then
3146-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3146+
                                                        walkDirection = Vector3.new(-cameraDirection.X - cameraDirection.Z, 0, -cameraDirection.Z + cameraDirection.X).unit
3147-
["Speed"] = NumberRange.new(10,10),
3147+
                                                else
3148
                                                        walkDirection = Vector3.new(-cameraDirection.X, 0, -cameraDirection.Z).unit
3149-
o192 = Create("Part",{
3149+
                                                end
3150-
["Parent"] = o40,
3150+
                                        elseif UserInterface:IsKeyDown(Enum.KeyCode.A) then
3151-
["Transparency"] = 1,
3151+
                                                walkDirection = Vector3.new(cameraDirection.Z, 0, -cameraDirection.X).unit
3152-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3152+
                                        elseif UserInterface:IsKeyDown(Enum.KeyCode.D) then
3153-
["Rotation"] = Vector3.new(92.1031494, -3.7404964, 126.141289),
3153+
                                                walkDirection = Vector3.new(-cameraDirection.Z, 0, cameraDirection.X).unit
3154-
["Anchored"] = true,
3154+
                                        else
3155-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.588522196, -0.805844843, -0.0652376115, 0.00881329924, 0.0742925704, -0.997199416, 0.808432996, -0.587447941, -0.0366205201),
3155+
                                                walkSpeed = 0
3156-
["CanCollide"] = false,
3156+
                                        end
3157-
["Locked"] = true,
3157+
                                        if walkSpeed ~= previousWalkSpeed then
3158-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3158+
                                                if walkSpeed > 0 then
3159
                                                        soundRunning:Play()
3160-
o193 = Create("ParticleEmitter",{
3160+
                                                else
3161-
["Parent"] = o192,
3161+
                                                        soundRunning:Pause()
3162-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3162+
                                                end
3163-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3163+
                                        end
3164-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3164+
                                        if walkSpeed > 0 then
3165-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3165+
                                                if pose ~= "Jumping" then
3166-
["Speed"] = NumberRange.new(10,10),
3166+
                                                        if IsStanding() then
3167
                                                                pose = "Running"
3168-
o194 = Create("Part",{
3168+
                                                        else
3169-
["Parent"] = o40,
3169+
                                                                pose = "FreeFall"
3170-
["Transparency"] = 1,
3170+
                                                        end
3171-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3171+
                                                end
3172-
["Rotation"] = Vector3.new(94.2903519, 0.0143369939, -162.304688),
3172+
                                                bodyGyro.cframe = CFrame.new(Vector3.new(), walkDirection)
3173-
["Anchored"] = true,
3173+
                                                bodyGyro.maxTorque = Vector3.new(1000000000, 1000000000, 1000000000)
3174-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.952686429, 0.303955168, 0.000250227749, 0.022501722, 0.0713474005, -0.997199476, -0.303121299, -0.950010955, -0.0748109668),
3174+
                                                bodyVelocity.maxForce = Vector3.new(1000000, maxForceY, 1000000)
3175-
["CanCollide"] = false,
3175+
                                        else
3176-
["Locked"] = true,
3176+
                                                if pose ~= "Jumping" then
3177-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3177+
                                                        if IsStanding() then
3178
                                                                pose = "Standing"
3179-
o195 = Create("ParticleEmitter",{
3179+
                                                        else
3180-
["Parent"] = o194,
3180+
                                                                pose = "FreeFall"
3181-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3181+
                                                        end
3182-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3182+
                                                end
3183-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3183+
                                                -- TODO: find and fix bug that causes torso to rotate back to some angle
3184-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3184+
                                                bodyGyro.maxTorque = Vector3.new(1000000000, 1000000000, 1000000000) -- Vector3.new(1000000000, 0, 1000000000)
3185-
["Speed"] = NumberRange.new(10,10),
3185+
                                                if PlayerControl.pushable then
3186
                                                        bodyVelocity.maxForce = Vector3.new(0, 0, 0)
3187-
o196 = Create("Part",{
3187+
                                                else
3188-
["Parent"] = o40,
3188+
                                                        bodyVelocity.maxForce = Vector3.new(1000000, 0, 1000000)
3189-
["Transparency"] = 1,
3189+
                                                end
3190-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3190+
                                        end
3191-
["Rotation"] = Vector3.new(94.2904587, 0.014379683, -173.043854),
3191+
                                        if featherfallEnabled then
3192-
["Anchored"] = true,
3192+
                                                local velocity = rootPart.Velocity
3193-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.992639124, 0.12110962, 0.000250972807, 0.00881235301, 0.0742925704, -0.997199416, -0.120788924, -0.989854991, -0.0748127401),
3193+
                                                if velocity.Y > 50 then
3194-
["CanCollide"] = false,
3194+
                                                        rootPart.Velocity = Vector3.new(velocity.X, 50, velocity.Z)
3195-
["Locked"] = true,
3195+
                                                elseif velocity.Y < -50 then
3196-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3196+
                                                        rootPart.Velocity = Vector3.new(velocity.X, -50, velocity.Z)
3197
                                                end
3198-
o197 = Create("ParticleEmitter",{
3198+
                                                local distanceVector = rootPartCFrame.p - previousRootPartCFrame.p
3199-
["Parent"] = o196,
3199+
                                                local offsetX, offsetY, offsetZ = distanceVector.X, distanceVector.Y, distanceVector.Z
3200-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3200+
                                                local MAX_MOVEMENT = 50 * 0.03333333507180214
3201-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3201+
                                                if offsetX > MAX_MOVEMENT then
3202-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3202+
                                                        offsetX = MAX_MOVEMENT
3203-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3203+
                                                elseif offsetX < -MAX_MOVEMENT then
3204-
["Speed"] = NumberRange.new(10,10),
3204+
                                                        offsetX = -MAX_MOVEMENT
3205
                                                end
3206-
o198 = Create("Part",{
3206+
                                                if offsetY > MAX_MOVEMENT then
3207-
["Parent"] = o40,
3207+
                                                        offsetY = MAX_MOVEMENT
3208-
["Transparency"] = 1,
3208+
                                                elseif offsetY < -MAX_MOVEMENT then
3209-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3209+
                                                        offsetY = -MAX_MOVEMENT
3210-
["Rotation"] = Vector3.new(94.2904587, 0.0143822441, -162.89386),
3210+
                                                end
3211-
["Anchored"] = true,
3211+
                                                if offsetZ > MAX_MOVEMENT then
3212-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.955761433, 0.294142872, 0.000251017511, 0.0217666402, 0.0715769008, -0.997199416, -0.29333657, -0.953077495, -0.0748127103),
3212+
                                                        offsetZ = MAX_MOVEMENT
3213-
["CanCollide"] = false,
3213+
                                                elseif offsetZ < -MAX_MOVEMENT then
3214-
["Locked"] = true,
3214+
                                                        offsetZ = -MAX_MOVEMENT
3215-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3215+
                                                end
3216
                                                local offset = Vector3.new(offsetX, offsetY, offsetZ)
3217-
o199 = Create("ParticleEmitter",{
3217+
                                                if offset ~= distanceVector then
3218-
["Parent"] = o198,
3218+
                                                        rootPartCFrame = previousRootPartCFrame + offset
3219-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3219+
                                                        --rootPart.CFrame = rootPartCFrame
3220-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3220+
                                                end
3221-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3221+
                                        end
3222-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3222+
                                        local walkingVelocity = walkDirection * walkSpeed
3223-
["Speed"] = NumberRange.new(10,10),
3223+
                                        bodyVelocity.velocity = walkingVelocity
3224
                                        if not jumpDebounce and math.abs(rootPart.Velocity.Y) <= 0.1 then
3225-
o200 = Create("Part",{
3225+
                                                rootPart.Velocity = Vector3.new(walkingVelocity.X, rootPart.Velocity.Y, walkingVelocity.Z)
3226-
["Parent"] = o40,
3226+
                                        end
3227-
["Transparency"] = 1,
3227+
                                        previousWalkSpeed = walkSpeed
3228-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3228+
                                        if pose == "Jumping" or jumpDebounce then
3229-
["Rotation"] = Vector3.new(89.8953552, -4.28925848, 105.515739),
3229+
                                                rightShoulder.MaxVelocity = 0.5
3230-
["Anchored"] = true,
3230+
                                                leftShoulder.MaxVelocity = 0.5
3231-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.266753852, -0.960858285, -0.0747917816, 0.0217667986, 0.0715778098, -0.997199297, 0.963518798, -0.267634332, 0.00182124786),
3231+
                                                rightShoulder.DesiredAngle = 3.14
3232-
["CanCollide"] = false,
3232+
                                                leftShoulder.DesiredAngle = -3.14
3233-
["Locked"] = true,
3233+
                                                rightHip.DesiredAngle = 0
3234-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3234+
                                                leftHip.DesiredAngle = 0
3235
                                        elseif pose == "FreeFall" then
3236-
o201 = Create("ParticleEmitter",{
3236+
                                                rightShoulder.MaxVelocity = 0.5
3237-
["Parent"] = o200,
3237+
                                                leftShoulder.MaxVelocity = 0.5
3238-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3238+
                                                rightShoulder.DesiredAngle = 3.14
3239-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3239+
                                                leftShoulder.DesiredAngle = -3.14
3240-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3240+
                                                rightHip.DesiredAngle = 0
3241-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3241+
                                                leftHip.DesiredAngle = 0
3242-
["Speed"] = NumberRange.new(10,10),
3242+
                                        elseif pose == "Seated" then
3243
                                                rightShoulder.MaxVelocity = 0.15
3244-
o202 = Create("Part",{
3244+
                                                leftShoulder.MaxVelocity = 0.15
3245-
["Parent"] = o40,
3245+
                                                rightShoulder.DesiredAngle = 3.14 / 2
3246-
["Transparency"] = 1,
3246+
                                                leftShoulder.DesiredAngle = -3.14 / 2
3247-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3247+
                                                rightHip.DesiredAngle = 3.14 / 2
3248-
["Rotation"] = Vector3.new(89.8953171, -4.28915977, 106.104965),
3248+
                                                leftHip.DesiredAngle = -3.14 / 2
3249-
["Anchored"] = true,
3249+
                                        else
3250-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.276620984, -0.958064437, -0.0747900605, 0.0225019082, 0.0713483319, -0.997199476, 0.960715652, -0.277528822, 0.00182191283),
3250+
                                                local climbFudge = 0
3251-
["CanCollide"] = false,
3251+
                                                local amplitude
3252-
["Locked"] = true,
3252+
                                                local frequency
3253-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3253+
                                                if pose == "Running" then
3254
                                                        rightShoulder.MaxVelocity = 0.15
3255-
o203 = Create("ParticleEmitter",{
3255+
                                                        leftShoulder.MaxVelocity = 0.15
3256-
["Parent"] = o202,
3256+
                                                        amplitude = 1
3257-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3257+
                                                        frequency = 9
3258-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3258+
                                                elseif (pose == "Climbing") then
3259-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3259+
                                                        rightShoulder.MaxVelocity = 0.5
3260-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3260+
                                                        leftShoulder.MaxVelocity = 0.5
3261-
["Speed"] = NumberRange.new(10,10),
3261+
                                                        amplitude = 1
3262
                                                        frequency = 9
3263-
o204 = Create("Part",{
3263+
                                                        climbFudge = 3.14
3264-
["Parent"] = o40,
3264+
                                                else
3265-
["Transparency"] = 1,
3265+
                                                        amplitude = 0.1
3266-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3266+
                                                        frequency = 1
3267-
["Rotation"] = Vector3.new(91.8080521, -3.89170218, 140.254837),
3267+
                                                end
3268-
["Anchored"] = true,
3268+
                                                local desiredAngle = amplitude * math.sin(totalTime * frequency)
3269-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.767122865, -0.637899756, -0.0678708032, 0.0319866836, 0.0676331818, -0.997199178, 0.640702367, -0.767143786, -0.031478513),
3269+
                                                rightShoulder.DesiredAngle = desiredAngle + climbFudge
3270-
["CanCollide"] = false,
3270+
                                                leftShoulder.DesiredAngle = desiredAngle - climbFudge
3271-
["Locked"] = true,
3271+
                                                rightHip.DesiredAngle = -desiredAngle
3272-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3272+
                                                leftHip.DesiredAngle = -desiredAngle
3273
                                        end
3274-
o205 = Create("ParticleEmitter",{
3274+
                                end
3275-
["Parent"] = o204,
3275+
                                previousRootPartCFrame = rootPartCFrame
3276-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3276+
                                RunService.RenderStepped:wait()
3277-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3277+
                        end
3278-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3278+
                        if model.Parent ~= nil then
3279-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3279+
                                model.Parent = nil
3280-
["Speed"] = NumberRange.new(10,10),
3280+
                        end
3281
                        PlayerControl.CreateCharacter()
3282-
o206 = Create("Part",{
3282+
                end)
3283-
["Parent"] = o40,
3283+
                humanoid.Health = 100
3284-
["Transparency"] = 1,
3284+
                character = model
3285-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3285+
                chatAdornee = head
3286-
["Rotation"] = Vector3.new(91.8078308, -3.89162207, 132.445297),
3286+
        elseif characterMode == "pyramid" then
3287-
["Anchored"] = true,
3287+
                if PlayerControl.characterEnabled then
3288-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.67332983, -0.736220598, -0.0678694025, 0.0225019008, 0.0713486224, -0.997199476, 0.738999724, -0.672970235, -0.0314746276),
3288+
                        Camera.CameraType = "Fixed"
3289-
["CanCollide"] = false,
3289+
                        PyramidCharacter.camera_distance = (Camera.Focus.p - Camera.CoordinateFrame.p).magnitude
3290-
["Locked"] = true,
3290+
                        PyramidCharacter.camera_position = Camera.Focus.p
3291-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3291+
                        PyramidCharacter.Teleport(Camera.Focus.p)
3292
                        PyramidCharacter.visible = true
3293-
o207 = Create("ParticleEmitter",{
3293+
                        Player.Character = nil
3294-
["Parent"] = o206,
3294+
                else
3295-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3295+
                        PyramidCharacter.visible = false
3296-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3296+
                end
3297-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3297+
        end
3298-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3298+
3299-
["Speed"] = NumberRange.new(10,10),
3299+
function PlayerControl.GetCharacter()
3300
        return character
3301-
o208 = Create("Part",{
3301+
3302-
["Parent"] = o40,
3302+
function PlayerControl.GetHead()
3303-
["Transparency"] = 1,
3303+
        local characterMode = PlayerControl.characterMode
3304-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3304+
        if characterMode == "normal" then
3305-
["Rotation"] = Vector3.new(87.9093552, -3.74753022, 71.7991714),
3305+
                return head
3306-
["Anchored"] = true,
3306+
        elseif characterMode == "pyramid" then
3307-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.311680853, -0.947936237, -0.065360114, 0.0142536219, 0.0734435916, -0.997199297, 0.950079978, 0.309875667, 0.0364025161),
3307+
                return PyramidCharacter.core
3308-
["CanCollide"] = false,
3308+
        end
3309-
["Locked"] = true,
3309+
3310-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3310+
function PlayerControl.GetHumanoid()
3311
        return humanoid
3312-
o209 = Create("ParticleEmitter",{
3312+
3313-
["Parent"] = o208,
3313+
function PlayerControl.GetRootPart()
3314-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3314+
        return rootPart
3315-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3315+
3316-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3316+
function PlayerControl.GetTorso()
3317-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3317+
        return torso
3318-
["Speed"] = NumberRange.new(10,10),
3318+
3319
function PlayerControl.IsEnabled()
3320-
o210 = Create("Part",{
3320+
        return PlayerControl.characterEnabled
3321-
["Parent"] = o40,
3321+
3322-
["Transparency"] = 1,
3322+
function PlayerControl.IsFeatherfallEnabled()
3323-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3323+
        return PlayerControl.featherfallEnabled
3324-
["Rotation"] = Vector3.new(87.9093552, -3.74753881, 67.5806808),
3324+
3325-
["Anchored"] = true,
3325+
function PlayerControl.IsPushable()
3326-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.380566627, -0.922440886, -0.065360263, 0.00881247222, 0.0742932856, -0.997199237, 0.924711466, 0.378924072, 0.0364025608),
3326+
        return PlayerControl.pushable
3327-
["CanCollide"] = false,
3327+
3328-
["Locked"] = true,
3328+
function PlayerControl.IsRolling()
3329-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3329+
        return PlayerControl.rolling
3330
end
3331-
o211 = Create("ParticleEmitter",{
3331+
function PlayerControl.ResetCharacter()
3332-
["Parent"] = o210,
3332+
        if character and character.Parent then
3333-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3333+
                character.Parent = nil
3334-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3334+
        end
3335-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3335+
        PyramidCharacter.visible = false
3336-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3336+
3337-
["Speed"] = NumberRange.new(10,10),
3337+
function PlayerControl.SetEnabled(state, no_animation)
3338
        state = not not state
3339-
o212 = Create("Part",{
3339+
        if state ~= PlayerControl.characterEnabled then
3340-
["Parent"] = o40,
3340+
                PlayerControl.characterEnabled = state
3341-
["Transparency"] = 1,
3341+
                local characterMode = PlayerControl.characterMode
3342-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3342+
                if characterMode == "normal" then
3343-
["Rotation"] = Vector3.new(87.9093399, -3.74756861, 60.8156891),
3343+
                        local torso = PlayerControl.GetRootPart()
3344-
["Anchored"] = true,
3344+
                        local rootPart = PlayerControl.GetRootPart()
3345-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.486577958, -0.871188819, -0.0653607845, -3.83704901e-007, 0.0748147219, -0.997199297, 0.873637259, 0.485214263, 0.0364029035),
3345+
                        if rootPart then
3346-
["CanCollide"] = false,
3346+
                                if PlayerControl.characterEnabled then
3347-
["Locked"] = true,
3347+
                                        local torso_cframe = Camera.Focus:toWorldSpace(PlayerControl.hide_torso_object_cframe)
3348-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3348+
                                        PlayerControl.torso_cframe = torso_cframe
3349
                                        torso.CFrame = torso_cframe
3350-
o213 = Create("ParticleEmitter",{
3350+
                                        rootPart.CFrame = torso_cframe
3351-
["Parent"] = o212,
3351+
                                else
3352-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3352+
                                        PlayerControl.hide_torso_object_cframe = Camera.Focus:toObjectSpace(rootPart.CFrame)
3353-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3353+
                                end
3354-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3354+
                        else
3355-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3355+
                                PlayerControl.torso_cframe = Camera.Focus
3356-
["Speed"] = NumberRange.new(10,10),
3356+
                        end
3357
                        if PlayerControl.characterEnabled then
3358-
o214 = Create("Part",{
3358+
                                PlayerControl.CreateCharacter()
3359-
["Parent"] = o40,
3359+
                                RunService.Stepped:wait()
3360-
["Transparency"] = 1,
3360+
                                coroutine.yield()
3361-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3361+
                                if not no_animation then
3362-
["Rotation"] = Vector3.new(89.8953552, -4.28925848, 95.3657913),
3362+
                                        GraphicalEffects.CrystalRing({base_part = PlayerControl.GetTorso(), crystal_color = BrickColor.new("Institutional white"), float_duration = 2})
3363-
["Anchored"] = true,
3363+
                                end            
3364-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.0932519436, -0.992829502, -0.0747917816, 0.00881233905, 0.0742934793, -0.997199297, 0.995603502, -0.0936497822, 0.00182124041),
3364+
                        else
3365-
["CanCollide"] = false,
3365+
                                Player.Character = nil
3366-
["Locked"] = true,
3366+
                                Camera.CameraType = "Fixed"
3367-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3367+
                                if not no_animation then
3368
                                        GraphicalEffects.CrystalRing({position = PlayerControl.GetTorso().Position, crystal_color = BrickColor.new("Institutional white"), float_duration = 2})
3369-
o215 = Create("ParticleEmitter",{
3369+
                                end
3370-
["Parent"] = o214,
3370+
                        end
3371-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3371+
                else
3372-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3372+
                        if state then
3373-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3373+
                                PlayerControl.CreateCharacter()
3374-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3374+
                                RunService.Stepped:wait()
3375-
["Speed"] = NumberRange.new(10,10),
3375+
                                coroutine.yield()
3376
                                if not no_animation then
3377-
o216 = Create("Part",{
3377+
                                        GraphicalEffects.CrystalRing({base_part = PyramidCharacter.core, crystal_color = BrickColor.new("Institutional white"), float_duration = 2})
3378-
["Parent"] = o40,
3378+
                                end
3379-
["Transparency"] = 1,
3379+
                        else
3380-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3380+
                                PyramidCharacter.visible = false
3381-
["Rotation"] = Vector3.new(89.8954849, -4.28933144, 113.914505),
3381+
                                if not no_animation then
3382-
["Anchored"] = true,
3382+
                                        GraphicalEffects.CrystalRing({position = PyramidCharacter.core.Position, crystal_color = BrickColor.new("Institutional white"), float_duration = 2})
3383-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.404237568, -0.911590993, -0.0747930482, 0.0319866538, 0.067632921, -0.997199178, 0.914094567, -0.405497104, 0.00181907415),
3383+
                                end
3384-
["CanCollide"] = false,
3384+
                        end
3385-
["Locked"] = true,
3385+
                end
3386-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3386+
        end
3387
end
3388-
o217 = Create("ParticleEmitter",{
3388+
function PlayerControl.SetFeatherfallEnabled(state)
3389-
["Parent"] = o216,
3389+
        state = not not state
3390-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3390+
        if state ~= PlayerControl.featherfallEnabled then
3391-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3391+
                PlayerControl.featherfallEnabled = state
3392-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3392+
                if state then
3393-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3393+
                        Logger.print("Info", "Featherfall enabled in PlayerControl")
3394-
["Speed"] = NumberRange.new(10,10),
3394+
                else
3395
                        Logger.print("Info", "Featherfall disabled in PlayerControl")
3396-
o218 = Create("Part",{
3396+
                end
3397-
["Parent"] = o40,
3397+
        end
3398-
["Transparency"] = 1,
3398+
3399-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3399+
function PlayerControl.SetPushable(state)
3400-
["Rotation"] = Vector3.new(89.8953552, -4.28925085, 99.5842743),
3400+
        state = not not state
3401-
["Anchored"] = true,
3401+
        if state ~= PlayerControl.pushable then
3402-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.166031793, -0.983280063, -0.0747916475, 0.0142535102, 0.07344383, -0.997199297, 0.986017346, -0.166632652, 0.00182126649),
3402+
                PlayerControl.pushable = state
3403-
["CanCollide"] = false,
3403+
                if state then
3404-
["Locked"] = true,
3404+
                        Logger.print("Info", "Pushing enabled in PlayerControl")
3405-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3405+
                else
3406
                        Logger.print("Info", "Pushing disabled in PlayerControl")
3407-
o219 = Create("ParticleEmitter",{
3407+
                end
3408-
["Parent"] = o218,
3408+
        end
3409-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3409+
3410-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3410+
function PlayerControl.SetRolling(state)
3411-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3411+
        state = not not state
3412-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3412+
        if state ~= PlayerControl.rolling then
3413-
["Speed"] = NumberRange.new(10,10),
3413+
                PlayerControl.rolling = state
3414
                if state then
3415-
o220 = Create("Part",{
3415+
                        Logger.print("Info", "Rolling fly mode enabled in PlayerControl")
3416-
["Parent"] = o40,
3416+
                else
3417-
["Transparency"] = 1,
3417+
                        Logger.print("Info", "Rolling fly mode disabled in PlayerControl")
3418-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3418+
                end
3419-
["Rotation"] = Vector3.new(89.8953476, -4.2892952, 88.6007767),
3419+
        end
3420-
["Anchored"] = true,
3420+
3421-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.0243502744, -0.99690181, -0.0747924149, -5.30853868e-007, 0.0748149008, -0.997199297, 0.999703526, 0.0242818799, 0.0018213205),
3421+
function PlayerControl.StartFlying()
3422-
["CanCollide"] = false,
3422+
        PlayerControl.fly_speed = PlayerControl.fly_basespeed
3423-
["Locked"] = true,
3423+
        if torso then
3424-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3424+
                flyingMomentum = torso.Velocity + torso.CFrame.lookVector * 3 + Vector3.new(0, 10, 0)
3425
        else
3426-
o221 = Create("ParticleEmitter",{
3426+
                flyingMomentum = Vector3.new()
3427-
["Parent"] = o220,
3427+
        end
3428-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3428+
        flyingTilt = 0
3429-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3429+
        flying = true
3430-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3430+
3431-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3431+
function PlayerControl.StopFlying()
3432-
["Speed"] = NumberRange.new(10,10),
3432+
        if bodyGyro.cframe then
3433
                local lookVector = bodyGyro.cframe.lookVector
3434-
o222 = Create("Part",{
3434+
                if lookVector.X ~= 0 or lookVector.Z ~= 0 then
3435-
["Parent"] = o40,
3435+
                        bodyGyro.cframe = CFrame.new(Vector3.new(), Vector3.new(lookVector.X, 0, lookVector.Z))
3436-
["Transparency"] = 1,
3436+
                end
3437-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3437+
        end
3438-
["Rotation"] = Vector3.new(87.9094315, -3.74766088, 86.1293869),
3438+
        flying = false
3439-
["Anchored"] = true,
3439+
3440-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.0673592016, -0.99558562, -0.0653623864, 0.0319867022, 0.0676326752, -0.997199178, 0.997216046, 0.065079622, 0.0364012159),
3440+
local previousTime = 0
3441-
["CanCollide"] = false,
3441+
 
3442-
["Locked"] = true,
3442+
ControllerCommands = {};
3443-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3443+
 
3444
ControllerCommands = {};
3445-
o223 = Create("ParticleEmitter",{
3445+
 
3446-
["Parent"] = o222,
3446+
ControllerCommands.BALEFIRE_SPEED = 40
3447-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3447+
function ControllerCommands.BalefireAtMouse()
3448-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3448+
        local head = chatAdornee
3449-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3449+
        if head then
3450-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3450+
                local target = Mouse.Hit.p
3451-
["Speed"] = NumberRange.new(10,10),
3451+
                local origin = head.Position
3452
                local direction = (target - origin).unit
3453-
o224 = Create("Part",{
3453+
                local explosionCount = 0
3454-
["Parent"] = o40,
3454+
                local animation_frame = 0
3455-
["Transparency"] = 1,
3455+
                local magic_circle_position = origin + direction * 4
3456-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3456+
                local magic_circle_cframe = CFrame.new(magic_circle_position, magic_circle_position + direction)
3457-
["Rotation"] = Vector3.new(87.9093704, -3.74743366, 78.3198776),
3457+
                local magic_circle_part = Instance.new("Part")
3458-
["Anchored"] = true,
3458+
                local magic_circle_mesh = Instance.new("BlockMesh", magic_circle_part)
3459-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.202014804, -0.977199256, -0.0653584376, 0.0225019958, 0.0713481307, -0.997199476, 0.979124069, 0.199977919, 0.036402341),
3459+
                local magic_circle_light = Instance.new("PointLight", magic_circle_part)
3460-
["CanCollide"] = false,
3460+
                local magic_circle_decal_back = Instance.new("Decal", magic_circle_part)
3461-
["Locked"] = true,
3461+
                local magic_circle_decal_front = Instance.new("Decal", magic_circle_part)
3462-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3462+
                magic_circle_part.Anchored = true
3463
                magic_circle_part.Archivable = false
3464-
o225 = Create("ParticleEmitter",{
3464+
                magic_circle_part.BottomSurface = "Smooth"
3465-
["Parent"] = o224,
3465+
                magic_circle_part.CanCollide = false
3466-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3466+
                magic_circle_part.CFrame = magic_circle_cframe
3467-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3467+
                magic_circle_part.FormFactor = "Custom"
3468-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3468+
                magic_circle_part.Locked = true
3469-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3469+
                magic_circle_part.Size = Vector3.new(0.2, 0.2, 0.2)
3470-
["Speed"] = NumberRange.new(10,10),
3470+
                magic_circle_part.TopSurface = "Smooth"
3471
                magic_circle_part.Transparency = 1
3472-
o226 = Create("Part",{
3472+
                magic_circle_mesh.Scale = Vector3.new(60, 60, 0)
3473-
["Parent"] = o40,
3473+
                magic_circle_light.Color = Color3.new(1, 0.5, 1)
3474-
["Transparency"] = 1,
3474+
                magic_circle_light.Range = 16
3475-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3475+
                magic_circle_light.Shadows = true
3476-
["Rotation"] = Vector3.new(87.9093552, -3.7475431, 77.7306519),
3476+
                magic_circle_decal_back.Face = "Back"
3477-
["Anchored"] = true,
3477+
                magic_circle_decal_back.Texture = "rbxassetid://122610943"
3478-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.212053299, -0.975070119, -0.0653603375, 0.0217668973, 0.0715776533, -0.997199237, 0.977015674, 0.210036218, 0.0364025459),
3478+
                magic_circle_decal_front.Face = "Front"
3479-
["CanCollide"] = false,
3479+
                magic_circle_decal_front.Texture = "rbxassetid://122610943"
3480-
["Locked"] = true,
3480+
                local function NextExplosion()
3481-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3481+
                        explosionCount = explosionCount + 1
3482
                        Instance.new("Explosion", Workspace).Position = origin + direction * (explosionCount * 8 + 4)
3483-
o227 = Create("ParticleEmitter",{
3483+
                end
3484-
["Parent"] = o226,
3484+
                local function AnimateMagicCircle()
3485-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3485+
                        animation_frame = animation_frame + 1
3486-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3486+
                        local transparency = (animation_frame / 40) ^ 3
3487-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3487+
                        if animation_frame == 40 then
3488-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3488+
                                pcall(Game.Destroy, magic_circle_part)
3489-
["Speed"] = NumberRange.new(10,10),
3489+
                        else
3490
                                if magic_circle_part.Parent ~= Workspace then
3491-
o228 = Create("Part",{
3491+
                                        pcall(Utility.SetProperty, magic_circle_part, "Parent", Workspace)
3492-
["Parent"] = o40,
3492+
                                end
3493-
["Transparency"] = 1,
3493+
                                head = PlayerControl.GetHead()
3494-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3494+
                                if head then
3495-
["Rotation"] = Vector3.new(91.8079071, -3.89169359, 121.706116),
3495+
                                        magic_circle_position = head.Position + direction * 4
3496-
["Anchored"] = true,
3496+
                                end
3497-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.524350643, -0.848793328, -0.0678706542, 0.00881229527, 0.0742937326, -0.997199297, 0.851456881, -0.523479283, -0.0314760059),
3497+
                                magic_circle_part.CFrame = CFrame.new(magic_circle_position, magic_circle_position + direction) * CFrame.Angles(0, 0,
3498-
["CanCollide"] = false,
3498+
 
3499-
["Locked"] = true,
3499+
math.tau * animation_frame / 40 * 1.5)
3500-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3500+
                                magic_circle_light.Brightness = 1 - transparency
3501
                                magic_circle_decal_back.Transparency = transparency
3502-
o229 = Create("ParticleEmitter",{
3502+
                                magic_circle_decal_front.Transparency = transparency
3503-
["Parent"] = o228,
3503+
                        end
3504-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3504+
                end
3505-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3505+
                magic_circle_part.Parent = Workspace
3506-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3506+
                for i = 1, 40 do
3507-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3507+
                        Delay((i - 1) / ControllerCommands.BALEFIRE_SPEED, NextExplosion)
3508-
["Speed"] = NumberRange.new(10,10),
3508+
                        Delay((i - 1) / 30, AnimateMagicCircle)
3509
                end
3510-
o230 = Create("Part",{
3510+
                for i = 1, 20 do
3511-
["Parent"] = o40,
3511+
                        Delay((i - 1) / ControllerCommands.BALEFIRE_SPEED, NextExplosion)
3512-
["Transparency"] = 1,
3512+
                end
3513-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3513+
        end
3514-
["Rotation"] = Vector3.new(91.8079071, -3.89168763, 125.924606),
3514+
3515-
["Anchored"] = true,
3515+
function ControllerCommands.ControlRandomDummy()
3516-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.585367382, -0.807922482, -0.0678705499, 0.0142534673, 0.0734440908, -0.997199297, 0.810642779, -0.584694326, -0.0314759463),
3516+
        local dummies = {}
3517-
["CanCollide"] = false,
3517+
        local numDummies = 0
3518-
["Locked"] = true,
3518+
        for _, character in ipairs(Workspace:GetChildren()) do
3519-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3519+
                local name = tostring(character)
3520
                if name == "???" or name == "Dummy" then
3521-
o231 = Create("ParticleEmitter",{
3521+
                        local head, humanoid
3522-
["Parent"] = o230,
3522+
                        for _, child in ipairs(character:GetChildren()) do
3523-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3523+
                                local className = child.ClassName
3524-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3524+
                                if className == "Part" and tostring(child) == "Head" then
3525-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3525+
                                        head = child
3526-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3526+
                                        if humanoid then
3527-
["Speed"] = NumberRange.new(10,10),
3527+
                                                break
3528
                                        end
3529-
o232 = Create("Part",{
3529+
                                elseif className == "Humanoid" then
3530-
["Parent"] = o40,
3530+
                                        if child.Health > 0 then
3531-
["Transparency"] = 1,
3531+
                                                humanoid = child
3532-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3532+
                                                if head then
3533-
["Rotation"] = Vector3.new(85.7094803, 3.41509462e-006, 6.7649889),
3533+
                                                        break
3534-
["Anchored"] = true,
3534+
                                                end
3535-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.99303776, -0.117797188, 5.96046448e-008, 0.00881272554, 0.0742930025, -0.997199297, 0.117467135, 0.9902547, 0.0748138353),
3535+
                                        else
3536-
["CanCollide"] = false,
3536+
                                                break
3537-
["Locked"] = true,
3537+
                                        end
3538-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3538+
                                end
3539
                        end
3540-
o233 = Create("ParticleEmitter",{
3540+
                        if head and humanoid then
3541-
["Parent"] = o232,
3541+
                                numDummies = numDummies + 1
3542-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3542+
                                dummies[numDummies] = {character, head, humanoid}
3543-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3543+
                        end
3544-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3544+
                end
3545-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3545+
        end
3546-
["Speed"] = NumberRange.new(10,10),
3546+
        if numDummies > 0 then
3547
                local dummy = dummies[math.random(numDummies)]
3548-
o234 = Create("Part",{
3548+
                Player.Character = dummy[1]
3549-
["Parent"] = o40,
3549+
                chatAdornee = dummy[2]
3550-
["Transparency"] = 1,
3550+
                Camera.CameraSubject = dummy[3]
3551-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3551+
                Camera.CameraType = "Track"
3552-
["Rotation"] = Vector3.new(85.7094879, 5.12264205e-006, 10.98349),
3552+
        end
3553-
["Anchored"] = true,
3553+
3554-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.981682122, -0.190526128, 8.94069672e-008, 0.014253851, 0.0734433234, -0.997199416, 0.189992264, 0.978931069, 0.0748137087),
3554+
function ControllerCommands.Decalify(textures, exclusion)
3555-
["CanCollide"] = false,
3555+
        local objects = Workspace:GetChildren()
3556-
["Locked"] = true,
3556+
        for _, object in ipairs(objects) do
3557-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3557+
                if not exclusion[object] then
3558
                        for _, child in ipairs(object:GetChildren()) do
3559-
o235 = Create("ParticleEmitter",{
3559+
                                objects[#objects + 1] = child
3560-
["Parent"] = o234,
3560+
                        end
3561-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3561+
                        if object:IsA("BasePart") then
3562-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3562+
                                local texture = textures[math.random(#textures)]
3563-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3563+
                                local face_left = Instance.new("Decal", object)
3564-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3564+
                                face_left.Face = Enum.NormalId.Left
3565-
["Speed"] = NumberRange.new(10,10),
3565+
                                face_left.Texture = texture
3566
                                local face_right = Instance.new("Decal", object)
3567-
o236 = Create("Part",{
3567+
                                face_right.Face = Enum.NormalId.Right
3568-
["Parent"] = o40,
3568+
                                face_right.Texture = texture
3569-
["Transparency"] = 1,
3569+
                                local face_bottom = Instance.new("Decal", object)
3570-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3570+
                                face_bottom.Face = Enum.NormalId.Bottom
3571-
["Rotation"] = Vector3.new(85.7094803, 1.70754731e-006, 16.9149685),
3571+
                                face_bottom.Texture = texture
3572-
["Anchored"] = true,
3572+
                                local face_top = Instance.new("Decal", object)
3573-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.956737638, -0.290952176, 2.98023224e-008, 0.0217670985, 0.0715773255, -0.997199297, 0.290136814, 0.954056323, 0.07481388),
3573+
                                face_top.Face = Enum.NormalId.Top
3574-
["CanCollide"] = false,
3574+
                                face_top.Texture = texture
3575-
["Locked"] = true,
3575+
                                local face_front = Instance.new("Decal", object)
3576-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3576+
                                face_front.Face = Enum.NormalId.Front
3577
                                face_front.Texture = texture
3578-
o237 = Create("ParticleEmitter",{
3578+
                                local face_back = Instance.new("Decal", object)
3579-
["Parent"] = o236,
3579+
                                face_back.Face = Enum.NormalId.Back
3580-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3580+
                                face_back.Texture = texture
3581-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3581+
                        end
3582-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3582+
                end
3583-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3583+
        end
3584-
["Speed"] = NumberRange.new(10,10),
3584+
3585
 
3586-
o238 = Create("Part",{
3586+
function ControllerCommands.ExplodeAtMouse()
3587-
["Parent"] = o40,
3587+
        local explosion = Instance.new("Explosion")
3588-
["Transparency"] = 1,
3588+
        explosion.Position = Mouse.Hit.p
3589-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3589+
        explosion.Parent = Workspace
3590-
["Rotation"] = Vector3.new(85.7095795, 4.39693431e-005, 17.5041828),
3590+
3591-
["Anchored"] = true,
3591+
function ControllerCommands.LaserAtMouse()
3592-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.953695059, -0.300775439, 7.67409801e-007, 0.0225021988, 0.0713478252, -0.997199476, 0.299932599, 0.951022446, 0.074812144),
3592+
        GraphicalEffects.ShootLaserOfDeath(Mouse.Hit.p)
3593-
["CanCollide"] = false,
3593+
3594-
["Locked"] = true,
3594+
function ControllerCommands.BigLaser(target)
3595-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3595+
        GraphicalEffects.ShootLaserOfDeath(target, {brickcolor = BrickColor.new("New Yeller"), duration = 80, fragmentation_size = 6,laser_scale = 30, light_color = Color3.new(1, 0.5, 0), magic_circle_image = "rbxassetid://126561317", magic_circle_scale = 1.5, sound_volume = 1,special_effects = BrickColor.new("Deep orange"), stay = 2})
3596
end
3597-
o239 = Create("ParticleEmitter",{
3597+
function ControllerCommands.BigLaserAtMouse()
3598-
["Parent"] = o238,
3598+
        ControllerCommands.BigLaser(Mouse.Hit.p)
3599-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3599+
3600-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3600+
function ControllerCommands.ShootMissile(targetPart, pointOnPart, direction)
3601-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3601+
        GraphicalEffects.ShootMissile(targetPart, pointOnPart, direction)
3602-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3602+
3603-
["Speed"] = NumberRange.new(10,10),
3603+
function ControllerCommands.ShootMissileAtMouse(amount, spread, delayTime)
3604
        local exclusionList = {}
3605-
o240 = Create("Part",{
3605+
        local playerHead = PlayerControl.GetHead()
3606-
["Parent"] = o40,
3606+
        local playerTorso = PlayerControl.GetTorso()
3607-
["Transparency"] = 1,
3607+
        if playerHead and playerTorso then
3608-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3608+
                exclusionList[playerTorso] = true
3609-
["Rotation"] = Vector3.new(85.7094116, -0.000123370293, 25.3137016),
3609+
                local humanoid, torso = Utility.FindHumanoidClosestToRay(Mouse.UnitRay, exclusionList)
3610-
["Anchored"] = true,
3610+
                local targetPart, pointOnPart
3611-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.903980315, -0.427574009, -2.15321779e-006, 0.0319868661, 0.0676323473, -0.997199237, 0.426376015, 0.9014467, 0.0748150349),
3611+
                if humanoid and torso then
3612-
["CanCollide"] = false,
3612+
                        targetPart, pointOnPart = torso, Vector3.new()
3613-
["Locked"] = true,
3613+
                else
3614-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3614+
                        local target = Mouse.Target
3615
                        if target then
3616-
o241 = Create("ParticleEmitter",{
3616+
                                targetPart, pointOnPart = target, target.CFrame:pointToObjectSpace(Mouse.Hit.p)
3617-
["Parent"] = o240,
3617+
                        else
3618-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3618+
                                return
3619-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3619+
                        end
3620-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3620+
                end
3621-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3621+
                if targetPart then
3622-
["Speed"] = NumberRange.new(10,10),
3622+
                        local direction = (Mouse.Hit.p - playerHead.Position).unit
3623
                        delayTime = delayTime or 0
3624-
o242 = Create("Part",{
3624+
                        for index = 1, amount do
3625-
["Parent"] = o40,
3625+
                                local angles = math.tau * (index - 0.5) * spread / amount * Vector3.new(math.random() - 0.5, math.random() - 0.5,math.random() - 0.5).unit
3626-
["Transparency"] = 1,
3626+
                                TaskScheduler.Schedule(delayTime * (index - 1), ControllerCommands.ShootMissile, targetPart, pointOnPart, CFrame.Angles(angles.X, angles.Y, angles.Z) * direction)
3627-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3627+
                        end
3628-
["Rotation"] = Vector3.new(86.2003632, -1.99434543, 27.6544552),
3628+
                end
3629-
["Anchored"] = true,
3629+
        end
3630-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.885226369, -0.463856965, -0.0348008648, -3.94880772e-007, 0.0748145506, -0.997199237, 0.465160698, 0.882745445, 0.0662276074),
3630+
3631-
["CanCollide"] = false,
3631+
function ControllerCommands.ShootMissileAroundMouse(amount, offset, delayTime)
3632-
["Locked"] = true,
3632+
        local exclusionList = {}
3633-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3633+
        local playerHead = PlayerControl.GetHead()
3634
        local playerTorso = PlayerControl.GetTorso()
3635-
o243 = Create("ParticleEmitter",{
3635+
        if playerHead and playerTorso then
3636-
["Parent"] = o242,
3636+
                exclusionList[playerTorso] = true
3637-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3637+
                local humanoid, torso = Utility.FindHumanoidClosestToRay(Mouse.UnitRay, exclusionList)
3638-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3638+
                local targetPart, pointOnPart
3639-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3639+
                if humanoid and torso then
3640-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3640+
                        targetPart, pointOnPart = torso, Vector3.new()
3641-
["Speed"] = NumberRange.new(10,10),
3641+
                else
3642
                        local target = Mouse.Target
3643-
o244 = Create("Part",{
3643+
                        if target then
3644-
["Parent"] = o40,
3644+
                                targetPart, pointOnPart = target, target.CFrame:pointToObjectSpace(Mouse.Hit.p)
3645-
["Transparency"] = 1,
3645+
                        else
3646-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3646+
                                return
3647-
["Rotation"] = Vector3.new(86.2003937, -1.99432755, 38.6379433),
3647+
                        end
3648-
["Anchored"] = true,
3648+
                end
3649-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.780633986, -0.624018788, -0.0348005518, 0.0142535642, 0.0734434575, -0.997199297, 0.624826014, 0.777950108, 0.0662269443),
3649+
                if targetPart then
3650-
["CanCollide"] = false,
3650+
                        delayTime = delayTime or 0
3651-
["Locked"] = true,
3651+
                        local index = 1
3652-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3652+
                        local targetPoint = targetPart.CFrame * pointOnPart
3653
                        local rotation_offset_angles = math.tau * Vector3.new(math.random() - 0.5, math.random() - 0.5, 0).unit
3654-
o245 = Create("ParticleEmitter",{
3654+
                        local rotation_offset = CFrame.Angles(rotation_offset_angles.x, rotation_offset_angles.y, 0)
3655-
["Parent"] = o244,
3655+
                        local angle_x = 0
3656-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3656+
                        local angle_x_step = math.tau / math.phi
3657-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3657+
                        for i = 1, 8 * amount do
3658-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3658+
                                angle_x = angle_x + angle_x_step
3659-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3659+
                                local direction = rotation_offset * (CFrame.Angles(0, math.tau * index / amount, 0) * CFrame.Angles(angle_x, 0,0).lookVector)
3660-
["Speed"] = NumberRange.new(10,10),
3660+
                                local blocked = Workspace:FindPartOnRay(Ray.new(targetPoint, direction * offset), targetPart.Parent)
3661
                                if not blocked then
3662-
o246 = Create("Part",{
3662+
                                        local p0, p1, p2, p3 = targetPart, pointOnPart, direction, offset; GraphicalEffects.ShootMissile(p0, p1, p2, function() return p0 end, p3, true)
3663-
["Parent"] = o40,
3663+
                                        index = index + 1
3664-
["Transparency"] = 1,
3664+
                                        if index > amount then
3665-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3665+
                                                break
3666-
["Rotation"] = Vector3.new(86.200386, -1.99447691, 52.9681625),
3666+
                                        end
3667-
["Anchored"] = true,
3667+
                                end
3668-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.601893902, -0.797817409, -0.0348031595, 0.031986624, 0.067632556, -0.997199178, 0.797935426, 0.599093735, 0.0662271008),
3668+
                        end
3669-
["CanCollide"] = false,
3669+
                end
3670-
["Locked"] = true,
3670+
        end
3671-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3671+
3672
 
3673-
o247 = Create("ParticleEmitter",{
3673+
function ControllerCommands.HugeExplosionOfDoom(position)
3674-
["Parent"] = o246,
3674+
        local connections = {}
3675-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3675+
        local parts = {}
3676-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3676+
        local cframe = CFrame.new(position)
3677-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3677+
        local function ExplosionHit(part)
3678-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3678+
                if part:GetMass() < 10000 and part.Parent ~= Camera then
3679-
["Speed"] = NumberRange.new(10,10),
3679+
                        parts[part] = true
3680
                        part.Anchored = true
3681-
o248 = Create("Part",{
3681+
                        part:BreakJoints()
3682-
["Parent"] = o40,
3682+
                        part.BrickColor = BrickColor.new("Instituational white")
3683-
["Transparency"] = 1,
3683+
                end
3684-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3684+
        end
3685-
["Rotation"] = Vector3.new(86.200386, -1.99433267, 34.4194527),
3685+
        for i = 1, 4 do
3686-
["Anchored"] = true,
3686+
                local quantity = 0.5 * i * (1 + i)
3687-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.824422002, -0.56490469, -0.0348006412, 0.00881243497, 0.0742931217, -0.997199237, 0.565907061, 0.821804762, 0.0662270635),
3687+
                local fraction = math.tau / quantity
3688-
["CanCollide"] = false,
3688+
                for x = 1, quantity do
3689-
["Locked"] = true,
3689+
                        for y = 1, quantity do
3690-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3690+
                                local explosion = Instance.new("Explosion")
3691
                                connections[#connections + 1] = explosion.Hit:connect(ExplosionHit)
3692-
o249 = Create("ParticleEmitter",{
3692+
                                explosion.BlastRadius = 5
3693-
["Parent"] = o248,
3693+
                                explosion.Position = cframe * (CFrame.Angles(fraction * x, fraction * y, 0) * Vector3.new((i - 1) * 6, 0, 0))
3694-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3694+
                                explosion.Parent = Workspace
3695-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3695+
                        end
3696-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3696+
                end
3697-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3697+
                wait(0.075)
3698-
["Speed"] = NumberRange.new(10,10),
3698+
        end
3699
        for part in pairs(parts) do
3700-
o250 = Create("Part",{
3700+
                for _, child in ipairs(part:GetChildren()) do
3701-
["Parent"] = o40,
3701+
                        if child:IsA("BodyMover") then
3702-
["Transparency"] = 1,
3702+
                                child:Destroy()
3703-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3703+
                        end
3704-
["Rotation"] = Vector3.new(86.200386, -1.99433351, 44.5694199),
3704+
                end
3705-
["Anchored"] = true,
3705+
                local mass = part:GetMass()
3706-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.711969256, -0.701347888, -0.0348006561, 0.0217668451, 0.0715774819, -0.997199237, 0.701873243, 0.709216297, 0.0662270635),
3706+
                local velocity = CFrame.Angles(math.tau * math.random(), math.tau * math.random(), 0) * Vector3.new(25, 0, 0)
3707-
["CanCollide"] = false,
3707+
                local bodythrust = Instance.new("BodyThrust")
3708-
["Locked"] = true,
3708+
                bodythrust.force = mass * -velocity
3709-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3709+
                bodythrust.Parent = part
3710
                local bodyforce = Instance.new("BodyForce")
3711-
o251 = Create("ParticleEmitter",{
3711+
                bodyforce.force = mass * Vector3.new(0, 196.2, 0)
3712-
["Parent"] = o250,
3712+
                bodyforce.Parent = part
3713-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3713+
                part.Anchored = false
3714-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3714+
                part.Reflectance = 1
3715-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3715+
                part.RotVelocity = math.tau * Vector3.new(math.random() - 0.5, math.random() - 0.5, math.random() - 0.5)
3716-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3716+
                part.Transparency = 0.5
3717-
["Speed"] = NumberRange.new(10,10),
3717+
                part.Velocity = (part.CFrame - part.Position) * velocity
3718
        end
3719-
o252 = Create("Part",{
3719+
        for _, connection in ipairs(connections) do
3720-
["Parent"] = o40,
3720+
                connection:disconnect()
3721-
["Transparency"] = 1,
3721+
        end
3722-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3722+
        for i = 0, 99 do
3723-
["Rotation"] = Vector3.new(86.2004547, -1.99425054, 45.1586418),
3723+
                Delay(i / 10, function()
3724-
["Anchored"] = true,
3724+
                        for part in pairs(parts) do
3725-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.704719126, -0.708632469, -0.0347992107, 0.022501938, 0.0713479817, -0.997199416, 0.709129572, 0.70196116, 0.0662258714),
3725+
                                local new_transparency = 0.5 * (1 + i / 50)
3726-
["CanCollide"] = false,
3726+
                                part.Reflectance = 0.98 * part.Reflectance
3727-
["Locked"] = true,
3727+
                                if new_transparency > part.Transparency then
3728-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3728+
                                        part.Transparency = new_transparency
3729
                                end
3730-
o253 = Create("ParticleEmitter",{
3730+
                        end
3731-
["Parent"] = o252,
3731+
                end)
3732-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3732+
        end
3733-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3733+
        Delay(10, function()
3734-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3734+
                for part in pairs(parts) do
3735-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3735+
                        pcall(part.Destroy, part)
3736-
["Speed"] = NumberRange.new(10,10),
3736+
                end
3737
        end)
3738-
o254 = Create("Part",{
3738+
3739-
["Parent"] = o40,
3739+
function ControllerCommands.HugeExplosionOfDoomAtMouse()
3740-
["Transparency"] = 1,
3740+
        ControllerCommands.HugeExplosionOfDoom(Mouse.Hit.p)
3741-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3741+
3742-
["Rotation"] = Vector3.new(87.4747849, -3.46971107, 71.4232864),
3742+
 
3743-
["Anchored"] = true,
3743+
function ControllerCommands.SpaceHyperBeam(asd)
3744-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.317990065, -0.946160436, -0.0605208725, 0.0225017648, 0.0713482797, -0.997199416, 0.947826922, 0.315737069, 0.0439783558),
3744+
        GraphicalEffects.SpaceHyperBeam(asd)
3745-
["CanCollide"] = false,
3745+
3746-
["Locked"] = true,
3746+
function ControllerCommands.SpaceHyperBeamAtMouse()
3747-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3747+
        ControllerCommands.SpaceHyperBeam(Mouse.Hit.p)
3748
end
3749-
o255 = Create("ParticleEmitter",{
3749+
function ControllerCommands.ConcentratedSpaceHyperBeamAtMouse()
3750-
["Parent"] = o254,
3750+
        local p = Mouse.Hit.p; for i = 1, 50 do GraphicalEffects.SpaceHyperBeam(p) end
3751-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3751+
3752-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3752+
 
3753-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3753+
function ControllerCommands.TeleportCharacterToMouse()
3754-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3754+
        if PlayerControl.IsEnabled() then
3755-
["Speed"] = NumberRange.new(10,10),
3755+
                local torso = PlayerControl.GetTorso()
3756
                if torso then
3757-
o256 = Create("Part",{
3757+
                        local pos = Mouse.Hit.p + Vector3.new(0, 5, 0)
3758-
["Parent"] = o40,
3758+
                        torso.CFrame = CFrame.new(pos, pos + torso.CFrame.lookVector)
3759-
["Transparency"] = 1,
3759+
                end
3760-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3760+
        else
3761-
["Rotation"] = Vector3.new(87.474823, -3.469944, 79.232811),
3761+
                local new_focus_position = Mouse.Hit.p
3762-
["Anchored"] = true,
3762+
                local direction_vector = Camera.CoordinateFrame.lookVector
3763-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.186476216, -0.980593324, -0.060524933, 0.0319864899, 0.0676328763, -0.997199237, 0.981938541, 0.184017584, 0.0439776927),
3763+
                local new_focus = CFrame.new(new_focus_position, new_focus_position + direction_vector)
3764-
["CanCollide"] = false,
3764+
                Camera.CoordinateFrame = new_focus * CFrame.new(0, 0, 25)
3765-
["Locked"] = true,
3765+
                Camera.Focus = new_focus
3766-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3766+
        end
3767
end
3768-
o257 = Create("ParticleEmitter",{
3768+
 
3769-
["Parent"] = o256,
3769+
AdvancedGUI = {};
3770-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3770+
 
3771-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3771+
if not AdvancedGUI.GUI_BASE_COLOR then
3772-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3772+
        AdvancedGUI.GUI_BASE_COLOR = Color3.new(0, 0, 0)
3773-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3773+
3774-
["Speed"] = NumberRange.new(10,10),
3774+
function AdvancedGUI.GenerateChatColor(speakerName)
3775
        local chatColor = ChatColor.Get(speakerName).Color
3776-
o258 = Create("Part",{
3776+
        local brightness = chatColor.r + chatColor.g + chatColor.b
3777-
["Parent"] = o40,
3777+
        if brightness < 1.5 then
3778-
["Transparency"] = 1,
3778+
                chatColor = Color3.new(math.min(1, 0.4 + chatColor.r), math.min(1, 0.4 + chatColor.g), math.min(1, 0.4 + chatColor.b))
3779-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3779+
        else
3780-
["Rotation"] = Vector3.new(87.474762, -3.46981502, 60.6841011),
3780+
                chatColor = Color3.new(math.min(1, 0.05 + chatColor.r), math.min(1, 0.05 + chatColor.g), math.min(1, 0.05 + chatColor.b))
3781-
["Anchored"] = true,
3781+
        end
3782-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.488726914, -0.870335042, -0.060522683, 0.00881221518, 0.074293375, -0.997199237, 0.872392356, 0.486823827, 0.0439787731),
3782+
        return chatColor
3783-
["CanCollide"] = false,
3783+
3784-
["Locked"] = true,
3784+
GuiBase = {}
3785-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3785+
GuiBase.__index = GuiBase
3786
function GuiBase:new(data)
3787-
o259 = Create("ParticleEmitter",{
3787+
        local instance = setmetatable({}, self)
3788-
["Parent"] = o258,
3788+
        instance:Init(data)
3789-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3789+
        return instance
3790-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3790+
3791-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3791+
function GuiBase:Destroy()
3792-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3792+
        if self.parent then
3793-
["Speed"] = NumberRange.new(10,10),
3793+
                self.parent.children[self] = nil
3794
        end
3795-
o260 = Create("Part",{
3795+
        for child in pairs(self.children) do
3796-
["Parent"] = o40,
3796+
                child:Destroy()
3797-
["Transparency"] = 1,
3797+
        end
3798-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3798+
        self.m_base_instance:Destroy()
3799-
["Rotation"] = Vector3.new(87.4747696, -3.4698081, 64.9025879),
3799+
3800-
["Anchored"] = true,
3800+
function GuiBase:GetContentInstance(child)
3801-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.423380911, -0.903927863, -0.0605225638, 0.0142533705, 0.0734437481, -0.997199237, 0.905839682, 0.421331614, 0.0439787284),
3801+
        return self.m_base_instance
3802-
["CanCollide"] = false,
3802+
3803-
["Locked"] = true,
3803+
function GuiBase:Init()
3804-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3804+
        self.children = {}
3805
end
3806-
o261 = Create("ParticleEmitter",{
3806+
function GuiBase:IsA(className)
3807-
["Parent"] = o260,
3807+
        return className == "GuiBase"
3808-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3808+
3809-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3809+
function GuiBase:SetParent(parent)
3810-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3810+
        if parent ~= self.parent then
3811-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3811+
                if self.parent then
3812-
["Speed"] = NumberRange.new(10,10),
3812+
                        self.parent.children[self] = nil
3813
                end
3814-
o262 = Create("Part",{
3814+
                self.parent = parent
3815-
["Parent"] = o40,
3815+
                if parent then
3816-
["Transparency"] = 1,
3816+
                        parent.children[self] = true
3817-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3817+
                        self.m_base_instance.Parent = parent:GetContentInstance()
3818-
["Rotation"] = Vector3.new(87.4747391, -3.469841, 53.9191055),
3818+
                else
3819-
["Anchored"] = true,
3819+
                        self.m_base_instance.Parent = nil
3820-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.587847352, -0.806704819, -0.0605231375, -6.44475222e-007, 0.0748147741, -0.997199237, 0.808971882, 0.58619982, 0.0439791642),
3820+
                end
3821-
["CanCollide"] = false,
3821+
        end
3822-
["Locked"] = true,
3822+
3823-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3823+
GuiObject = setmetatable({}, GuiBase)
3824
GuiObject.__index = GuiObject
3825-
o263 = Create("ParticleEmitter",{
3825+
function GuiObject:Destroy()
3826-
["Parent"] = o262,
3826+
        self.DragBegin:disconnect()
3827-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3827+
        self.DragMove:disconnect()
3828-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3828+
        self.DragStopped:disconnect()
3829-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3829+
        self.MouseButton1Click:disconnect()
3830-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3830+
        self.MouseButton1Down:disconnect()
3831-
["Speed"] = NumberRange.new(10,10),
3831+
        self.MouseButton1Up:disconnect()
3832
        self.MouseButton2Down:disconnect()
3833-
o264 = Create("Part",{
3833+
        self.MouseButton2Up:disconnect()
3834-
["Parent"] = o40,
3834+
        self.MouseEnter:disconnect()
3835-
["Transparency"] = 1,
3835+
        self.MouseLeave:disconnect()
3836-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3836+
        GuiBase.Destroy(self)
3837-
["Rotation"] = Vector3.new(87.474762, -3.46981668, 70.8340683),
3837+
3838-
["Anchored"] = true,
3838+
function GuiObject:GetAbsolutePosition()
3839-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, 0.327703208, -0.942840219, -0.0605227128, 0.02176667, 0.0715778098, -0.997199237, 0.944529951, 0.325467318, 0.0439787768),
3839+
        return self.m_base_instance.AbsolutePosition
3840-
["CanCollide"] = false,
3840+
3841-
["Locked"] = true,
3841+
function GuiObject:GetAbsoluteSize()
3842-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3842+
        return self.m_base_instance.AbsoluteSize
3843
end
3844-
o265 = Create("ParticleEmitter",{
3844+
function GuiObject:GetPosition()
3845-
["Parent"] = o264,
3845+
        return self.position
3846-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3846+
3847-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3847+
function GuiObject:GetSize()
3848-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3848+
        return self.size
3849-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3849+
3850-
["Speed"] = NumberRange.new(10,10),
3850+
function GuiObject:Init()
3851
        GuiBase.Init(self)
3852-
o266 = Create("Part",{
3852+
        self.mouseDown = false
3853-
["Parent"] = o40,
3853+
        self.mouseOver = false
3854-
["Transparency"] = 1,
3854+
        self.DragBegin = RbxUtility.CreateSignal()
3855-
["Position"] = Vector3.new(-1761.44092, -3600.4082, 1108.44788),
3855+
        self.DragMove = RbxUtility.CreateSignal()
3856-
["Rotation"] = Vector3.new(91.8079224, -3.89172578, 114.941132),
3856+
        self.DragStopped = RbxUtility.CreateSignal()
3857-
["Anchored"] = true,
3857+
        self.MouseButton1Click = RbxUtility.CreateSignal()
3858-
["CFrame"] = CFrame.new(-1761.44092, -3600.4082, 1108.44788, -0.420714408, -0.904650569, -0.067871213, -6.10947609e-007, 0.0748151317, -0.997199237, 0.907193065, -0.419535309, -0.0314762108),
3858+
        self.MouseButton1Down = RbxUtility.CreateSignal()
3859-
["CanCollide"] = false,
3859+
        self.MouseButton1Up = RbxUtility.CreateSignal()
3860-
["Locked"] = true,
3860+
        self.MouseButton2Down = RbxUtility.CreateSignal()
3861-
["Size"] = Vector3.new(2.23000002, 0.200000003, 0.200000003),
3861+
        self.MouseButton2Up = RbxUtility.CreateSignal()
3862
        self.MouseEnter = RbxUtility.CreateSignal()
3863-
o267 = Create("ParticleEmitter",{
3863+
        self.MouseLeave = RbxUtility.CreateSignal()
3864-
["Parent"] = o266,
3864+
3865-
["Size"] = NumberSequence.new(2.7999999523163,2.7999999523163),
3865+
function GuiObject:IsA(className)
3866-
["Color"] = ColorSequence.new(Color3.new(0, 0, 0),Color3.new(0.129412, 0.129412, 0.129412)),
3866+
        return className == "GuiObject" or GuiBase.IsA(self, className)
3867-
["Texture"] = "rbxasset://textures/particles/explosion01_implosion_main.dds",
3867+
3868-
["Acceleration"] = Vector3.new(0, -0.899999976, 0),
3868+
function GuiObject:SetActive(active)
3869-
["Speed"] = NumberRange.new(10,10),
3869+
        if active ~= self.active then
3870
                self.active = active
3871-
o268 = Create("Part",{
3871+
        end
3872-
["Name"] = "PartWing",
3872+
3873-
["Parent"] = o40,
3873+
function GuiObject:SetBackgroundTransparency(backgroundTransparency)
3874-
["Material"] = Enum.Material.DiamondPlate,
3874+
        if backgroundTransparency ~= self.backgroundTransparency then
3875-
["BrickColor"] = BrickColor.new("Really black"),
3875+
                self.backgroundTransparency = backgroundTransparency
3876-
["Position"] = Vector3.new(-1765.06714, -3586.375, 1116.46716),
3876+
                self.m_base_instance.BackgroundTransparency = backgroundTransparency
3877-
["Rotation"] = Vector3.new(-31.8383636, -26.1270409, -15.2933931),
3877+
        end
3878-
["Anchored"] = true,
3878+
3879-
["CFrame"] = CFrame.new(-1765.06714, -3586.375, 1116.46716, 0.866026163, 0.23681061, -0.44036296, -1.43962566e-007, 0.880728126, 0.473622233, 0.499998778, -0.410169125, 0.762733698),
3879+
function GuiObject:SetColor(color)
3880-
["CanCollide"] = false,
3880+
        if color ~= self.color then
3881-
["FormFactor"] = Enum.FormFactor.Symmetric,
3881+
                self.color = color
3882-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
3882+
                self.m_base_instance.BackgroundColor3 = color
3883-
["BottomSurface"] = Enum.SurfaceType.Smooth,
3883+
        end
3884-
["TopSurface"] = Enum.SurfaceType.Smooth,
3884+
3885-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
3885+
function GuiObject:SetPosition(position)
3886
        if position ~= self.position then
3887-
o269 = Create("Fire",{
3887+
                self.position = position
3888-
["Parent"] = o268,
3888+
                self.m_base_instance.Position = position
3889-
["Size"] = 30,
3889+
        end
3890-
["Color"] = Color3.new(1, 0.815686, 0),
3890+
3891-
["Enabled"] = false,
3891+
function GuiObject:SetSize(size)
3892-
["Heat"] = 25,
3892+
        if size ~= self.size then
3893-
["SecondaryColor"] = Color3.new(1, 0, 0),
3893+
                self.size = size
3894
                self.m_base_instance.Size = size
3895-
o270 = Create("Script",{
3895+
        end
3896-
["Parent"] = o269,
3896+
3897
function GuiObject:SetVisible(visible)
3898-
table.insert(cors,coroutine.create(function()
3898+
        if visible ~= self.visible then
3899
                self.visible = visible
3900-
runDummyScript(function()
3900+
                self.m_base_instance.Visible = visible
3901-
function Spread(part)
3901+
        end
3902-
	check = part:findFirstChild("Fire")
3902+
3903-
		if check == nil then 
3903+
function GuiObject:SetZIndex(zIndex)
3904-
	script.Parent:Clone().Parent = part
3904+
        local stack = {self.m_base_instance}
3905
        repeat
3906-
		elseif check ~= nil then
3906+
                local object = stack[#stack]
3907-
	check.Size = check.Size + 1
3907+
                stack[#stack] = nil
3908-
	check.Heat = check.Heat  +1
3908+
                for _, child in ipairs(object:GetChildren()) do
3909
                        stack[#stack + 1] = child
3910
                end
3911
                object.ZIndex = zIndex
3912
        until #stack == 0
3913-
script.Parent.Parent.Touched:connect(Spread)
3913+
3914
GuiServiceClass = setmetatable({}, GuiBase)
3915
GuiServiceClass.__index = GuiServiceClass
3916-
end,o270)
3916+
function GuiServiceClass:CreateTextArea(text, font, fontSize, textColor3, textXAlignment, textYAlignment, maxWidth, minWidth)
3917
        local totalHeight = 0
3918-
o271 = Create("Part",{
3918+
        local frame = Instance.new("Frame")
3919-
["Name"] = "PartWing",
3919+
        frame.BackgroundTransparency = 1
3920-
["Parent"] = o40,
3920+
        local label = Instance.new("TextLabel")
3921-
["Material"] = Enum.Material.DiamondPlate,
3921+
        label.BackgroundTransparency = 1
3922-
["BrickColor"] = BrickColor.new("Really black"),
3922+
        label.Font = font
3923-
["Position"] = Vector3.new(-1757.6272, -3586.375, 1116.46716),
3923+
        label.FontSize = fontSize
3924-
["Rotation"] = Vector3.new(-30.7509575, 20.4207287, 17.368824),
3924+
        label.TextColor3 = textColor3
3925-
["Anchored"] = true,
3925+
        label.TextTransparency = 1
3926-
["CFrame"] = CFrame.new(-1757.6272, -3586.375, 1116.46716, 0.8944242, -0.279761165, 0.348911107, 0.0862824619, 0.873468339, 0.479174733, -0.438817233, -0.398480594, 0.805389702),
3926+
        label.TextWrapped = true
3927-
["CanCollide"] = false,
3927+
        label.TextXAlignment = textXAlignment
3928-
["FormFactor"] = Enum.FormFactor.Symmetric,
3928+
        label.TextYAlignment = textYAlignment
3929-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
3929+
        label.Parent = self.guiFrame
3930-
["BottomSurface"] = Enum.SurfaceType.Smooth,
3930+
        local index = 1
3931-
["TopSurface"] = Enum.SurfaceType.Smooth,
3931+
        while true do
3932-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
3932+
                local length = #text - index + 1
3933
                if length > 1024 then
3934-
o272 = Create("Fire",{
3934+
                        length = 1024
3935-
["Parent"] = o271,
3935+
                        local textBlock = string.sub(text, index, index + length - 1)
3936-
["Size"] = 30,
3936+
                        label.Text = textBlock
3937-
["Color"] = Color3.new(1, 0.815686, 0),
3937+
                        local height = 0
3938-
["Enabled"] = false,
3938+
                        local width = maxWidth
3939-
["Heat"] = 25,
3939+
                        repeat
3940-
["SecondaryColor"] = Color3.new(1, 0, 0),
3940+
                                height = height + 20
3941
                                label.Size = UDim2.new(0, width, 0, height)
3942-
o273 = Create("Script",{
3942+
                        until label.TextFits
3943-
["Parent"] = o272,
3943+
                        repeat
3944
                                height = height - 1
3945-
table.insert(cors,coroutine.create(function()
3945+
                                label.Size = UDim2.new(0, width, 0, height)
3946
                        until not label.TextFits
3947-
runDummyScript(function()
3947+
                        repeat
3948-
function Spread(part)
3948+
                                length = length - 10
3949-
	check = part:findFirstChild("Fire")
3949+
                                label.Text = string.sub(text, index, index + length - 1)
3950-
		if check == nil then 
3950+
                        until label.TextFits
3951-
	script.Parent:Clone().Parent = part
3951+
                        repeat
3952
                                length = length + 1
3953-
		elseif check ~= nil then
3953+
                                label.Text = string.sub(text, index, index + length - 1)
3954-
	check.Size = check.Size + 1
3954+
                        until not label.TextFits
3955-
	check.Heat = check.Heat  +1
3955+
                        local overflowCharacter = string.sub(text, index + length - 1, index + length - 1)
3956
                        length = length - 1
3957
                        label.Text = string.sub(text, index, index + length - 1)
3958
                        if overflowCharacter == "\n" then
3959
                                index = index + 1
3960-
script.Parent.Parent.Touched:connect(Spread)
3960+
                        end
3961
                        repeat
3962
                                height = height - 1
3963-
end,o273)
3963+
                                label.Size = UDim2.new(0, width, 0, height)
3964
                        until not label.TextFits
3965-
o274 = Create("Part",{
3965+
                        height = height + 1
3966-
["Name"] = "PartWing",
3966+
                        local blockLabel = label:Clone()
3967-
["Parent"] = o40,
3967+
                        blockLabel.Position = UDim2.new(0, 0, 0, totalHeight)
3968-
["Material"] = Enum.Material.DiamondPlate,
3968+
                        blockLabel.Size = UDim2.new(1, 0, 0, height)
3969-
["BrickColor"] = BrickColor.new("Really black"),
3969+
                        blockLabel.Parent = frame
3970-
["Position"] = Vector3.new(-1768.47729, -3580.29492, 1122.43713),
3970+
                        totalHeight = totalHeight + height
3971-
["Rotation"] = Vector3.new(-58.9302444, -16.5921669, -25.3577919),
3971+
                        index = index + length
3972-
["Anchored"] = true,
3972+
                else
3973-
["CFrame"] = CFrame.new(-1768.47729, -3580.29492, 1122.43713, 0.866024435, 0.410437077, -0.285557359, 3.18802017e-006, 0.571108341, 0.820874691, 0.500001609, -0.710898519, 0.494592458),
3973+
                        local textBlock = string.sub(text, index)
3974-
["CanCollide"] = false,
3974+
                        label.Text = textBlock
3975-
["FormFactor"] = Enum.FormFactor.Symmetric,
3975+
                        local height = 0
3976-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
3976+
                        local width = maxWidth
3977-
["BottomSurface"] = Enum.SurfaceType.Smooth,
3977+
                        repeat
3978-
["TopSurface"] = Enum.SurfaceType.Smooth,
3978+
                                height = height + 20
3979-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
3979+
                                label.Size = UDim2.new(0, width, 0, height)
3980
                        until label.TextFits
3981-
o275 = Create("Fire",{
3981+
                        repeat
3982-
["Parent"] = o274,
3982+
                                height = height - 1
3983-
["Size"] = 30,
3983+
                                label.Size = UDim2.new(0, width, 0, height)
3984-
["Color"] = Color3.new(1, 0.815686, 0),
3984+
                        until not label.TextFits
3985-
["Enabled"] = false,
3985+
                        height = height + 1
3986-
["Heat"] = 25,
3986+
                        if index == 1 then
3987-
["SecondaryColor"] = Color3.new(1, 0, 0),
3987+
                                repeat
3988
                                        width =  width - 10
3989-
o276 = Create("Script",{
3989+
                                        label.Size = UDim2.new(0, width, 0, height)
3990-
["Parent"] = o275,
3990+
                                until width < minWidth or not label.TextFits
3991
                                width = math.max(width, minWidth - 1)
3992-
table.insert(cors,coroutine.create(function()
3992+
                                repeat
3993
                                        width =  width + 1
3994-
runDummyScript(function()
3994+
                                        label.Size = UDim2.new(0, width, 0, height)
3995-
function Spread(part)
3995+
                                until label.TextFits
3996-
	check = part:findFirstChild("Fire")
3996+
                        end
3997-
		if check == nil then 
3997+
                        local blockLabel = label:Clone()
3998-
	script.Parent:Clone().Parent = part
3998+
                        blockLabel.Position = UDim2.new(0, 0, 0, totalHeight)
3999
                        blockLabel.Size = UDim2.new(1, 0, 0, height)
4000-
		elseif check ~= nil then
4000+
                        blockLabel.Parent = frame
4001-
	check.Size = check.Size + 1
4001+
                        label:Destroy()
4002-
	check.Heat = check.Heat  +1
4002+
                        frame.Size = UDim2.new(0, width, 0, totalHeight + height)
4003
                        return frame
4004
                end
4005
        end
4006
end
4007-
script.Parent.Parent.Touched:connect(Spread)
4007+
function GuiServiceClass:Destroy()
4008
        self.running = false
4009
        self.cameraPart:Destroy()
4010-
end,o276)
4010+
        self.cameraConnection:disconnect()
4011
        self.keyDownConnection:disconnect()
4012-
o277 = Create("Part",{
4012+
        self.mouseButton1DownConnection:disconnect()
4013-
["Name"] = "PartWing",
4013+
        self.mouseButton1UpConnection:disconnect()
4014-
["Parent"] = o40,
4014+
        self.mouseButton2DownConnection:disconnect()
4015-
["Material"] = Enum.Material.DiamondPlate,
4015+
        self.mouseButton2UpConnection:disconnect()
4016-
["BrickColor"] = BrickColor.new("Really black"),
4016+
        self.mouseMoveConnection:disconnect()
4017-
["Position"] = Vector3.new(-1753.96729, -3580.54297, 1123.09595),
4017+
        self.steppedConnection:disconnect()
4018-
["Rotation"] = Vector3.new(-49.5530434, 23.428503, -23.0137844),
4018+
4019-
["Anchored"] = true,
4019+
function GuiServiceClass:GetMousePosition()
4020-
["CFrame"] = CFrame.new(-1753.96729, -3580.54297, 1123.09595, 0.84452939, 0.358721286, 0.397604406, -0.532125711, 0.478816509, 0.698267221, 0.0601037443, -0.801282644, 0.595259428),
4020+
        local mouse = self.mouse
4021-
["CanCollide"] = false,
4021+
        return mouse.X, mouse.Y -- mouse.X, mouse.Y + 2 -- return mouse.X - 2, mouse.Y - 3
4022-
["FormFactor"] = Enum.FormFactor.Symmetric,
4022+
4023-
["Size"] = Vector3.new(1, 0.800000012, 11.6429615),
4023+
function GuiServiceClass:GetTextBounds(text, font, fontSize, alignX, alignY, width)
4024-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4024+
        local tempLabel = self.tempLabel
4025-
["TopSurface"] = Enum.SurfaceType.Smooth,
4025+
        tempLabel.Font = font
4026-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4026+
        tempLabel.FontSize = fontSize
4027
        tempLabel.Size = UDim2.new(0, width, 0, 4096)
4028-
o278 = Create("Fire",{
4028+
        tempLabel.Text = text
4029-
["Parent"] = o277,
4029+
        tempLabel.TextXAlignment = alignX
4030-
["Size"] = 30,
4030+
        tempLabel.TextYAlignment = alignY
4031-
["Color"] = Color3.new(1, 0.815686, 0),
4031+
        local textBounds = tempLabel.TextBounds
4032-
["Enabled"] = false,
4032+
        tempLabel.Text = ""
4033-
["Heat"] = 25,
4033+
        return textBounds
4034-
["SecondaryColor"] = Color3.new(1, 0, 0),
4034+
4035
function GuiServiceClass:Init(data)
4036-
o279 = Create("Script",{
4036+
        GuiBase.Init(self)
4037-
["Parent"] = o278,
4037+
        local _ = string.char
4038
        local camera = data.Camera
4039-
table.insert(cors,coroutine.create(function()
4039+
        local mouse = data.Mouse
4040
        local cameraPart = Instance.new("Part")
4041-
runDummyScript(function()
4041+
        local billboardGui = Instance.new("BillboardGui", cameraPart)
4042-
function Spread(part)
4042+
        guiFrame = Instance.new("Frame", billboardGui)
4043-
	check = part:findFirstChild("Fire")
4043+
        cameraPart.Anchored = true
4044-
		if check == nil then 
4044+
        cameraPart.BottomSurface = "Smooth"
4045-
	script.Parent:Clone().Parent = part
4045+
        cameraPart.CanCollide = false
4046
--      cameraPart.CFrame = CFrame.new(16384, 16384, 16384)
4047-
		elseif check ~= nil then
4047+
        cameraPart.FormFactor = "Custom"
4048-
	check.Size = check.Size + 1
4048+
        cameraPart.Locked = true
4049-
	check.Heat = check.Heat  +1
4049+
        cameraPart.Size = Vector3.new(0.2, 0.2, 0.2)
4050
        cameraPart.TopSurface = "Smooth"
4051
        cameraPart.Transparency = 1
4052
        billboardGui.Adornee = cameraPart
4053
        billboardGui.AlwaysOnTop = true
4054-
script.Parent.Parent.Touched:connect(Spread)
4054+
--      billboardGui.ExtentsOffset = Vector3.new(-16384, -16384, -16384)
4055
        guiFrame.BackgroundTransparency = 1
4056
        cameraPart.Parent = camera
4057-
end,o279)
4057+
        self.running = true
4058
        self.m_base_instance = guiFrame
4059-
o280 = Create("Part",{
4059+
        self.billboardGui = billboardGui
4060-
["Name"] = "PartWing",
4060+
        self.cameraPart = cameraPart
4061-
["Parent"] = o40,
4061+
        self.tempLabel = RBXInstance.new "TextLabel" {
4062-
["Material"] = Enum.Material.DiamondPlate,
4062+
                BackgroundTransparency = 1,
4063-
["BrickColor"] = BrickColor.new("Really black"),
4063+
                TextTransparency = 1,
4064-
["Position"] = Vector3.new(-1750.33691, -3580.7832, 1129.82141),
4064+
                TextWrapped = true,
4065-
["Rotation"] = Vector3.new(-49.5530853, 23.428484, 18.1905384),
4065+
                Parent = guiFrame
4066-
["Anchored"] = true,
4066+
        }
4067-
["CFrame"] = CFrame.new(-1750.33691, -3580.7832, 1129.82141, 0.871700943, -0.286441207, 0.397604108, -0.0849343687, 0.710780144, 0.698267698, -0.482621759, -0.642450809, 0.595259011),
4067+
        self.mnemonics = {}
4068-
["CanCollide"] = false,
4068+
        self.visible = true
4069-
["FormFactor"] = Enum.FormFactor.Symmetric,
4069+
        self.camera = camera
4070-
["Size"] = Vector3.new(1, 11.5900002, 1.35296154),
4070+
        self.mouse = mouse
4071-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4071+
        self.cameraConnection = camera.Changed:connect(function(property)
4072-
["TopSurface"] = Enum.SurfaceType.Smooth,
4072+
                self:UpdateView()
4073-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4073+
                if property == "CameraType" then
4074
                        if camera.CameraType ~= Enum.CameraType.Track and camera.CameraType ~= Enum.CameraType.Fixed then
4075-
o281 = Create("Fire",{
4075+
                                camera.CameraType = Enum.CameraType.Track
4076-
["Parent"] = o280,
4076+
                        end
4077-
["Size"] = 30,
4077+
                elseif property == "CoordinateFrame" and camera.CameraType ~= Enum.CameraType.Fixed then
4078-
["Color"] = Color3.new(1, 0.815686, 0),
4078+
                        local cframe, focus = camera.CoordinateFrame, camera.Focus
4079-
["Enabled"] = false,
4079+
                        local watchOffset = focus.p - cframe.p
4080-
["Heat"] = 25,
4080+
                        local error = watchOffset.unit - cframe.lookVector
4081-
["SecondaryColor"] = Color3.new(1, 0, 0),
4081+
                        if error.magnitude >= 1e-3 then
4082
                                local head = PlayerControl.GetHead()
4083-
o282 = Create("Script",{
4083+
                                local time1, velocity1
4084-
["Parent"] = o281,
4084+
                                if head then
4085
                                        time1 = time()
4086-
table.insert(cors,coroutine.create(function()
4086+
                                        velocity1 = head.Velocity
4087
                                end
4088-
runDummyScript(function()
4088+
                                if camera.Changed:wait() == "CoordinateFrame" then
4089-
function Spread(part)
4089+
                                        local position = cframe.p
4090-
	check = part:findFirstChild("Fire")
4090+
                                        if head then
4091-
		if check == nil then 
4091+
                                                local time2 = time()
4092-
	script.Parent:Clone().Parent = part
4092+
                                                local velocity2 = head.Velocity
4093
                                                position = position + 0.5 * (velocity1 + velocity2) * (time2 - time1)
4094-
		elseif check ~= nil then
4094+
                                        end
4095-
	check.Size = check.Size + 1
4095+
                                        camera.CoordinateFrame = CFrame.new(position, camera.Focus.p)
4096-
	check.Heat = check.Heat  +1
4096+
                                end
4097
                        end
4098
                end
4099
        end)
4100
        self.keyDownConnection = mouse.KeyDown:connect(function(key) self:KeyDown(key) end)
4101-
script.Parent.Parent.Touched:connect(Spread)
4101+
        self.mouseButton1DownConnection = mouse.Button1Down:connect(function() self:MouseButton1Down() end)
4102
        self.mouseButton1UpConnection = mouse.Button1Up:connect(function() self:MouseButton1Up() end)
4103
        self.mouseButton2DownConnection = mouse.Button2Down:connect(function() self:MouseButton2Down() end)
4104-
end,o282)
4104+
        self.mouseButton2UpConnection = mouse.Button2Up:connect(function() self:MouseButton2Up() end)
4105
        self.mouseMoveConnection = mouse.Move:connect(function() self:MouseMove() end)
4106-
o283 = Create("Part",{
4106+
        self.steppedConnection = RunService.RenderStepped:connect(function() self:UpdateObjects() self:UpdateView() end)
4107-
["Name"] = "PartWing",
4107+
        self.mousePreviousPosition = Vector2.new(self:GetMousePosition())
4108-
["Parent"] = o40,
4108+
4109-
["Material"] = Enum.Material.DiamondPlate,
4109+
function GuiServiceClass:IsA(className)
4110-
["BrickColor"] = BrickColor.new("Really black"),
4110+
        return className == "GuiService" or GuiBase.IsA(self, className)
4111-
["Position"] = Vector3.new(-1771.47314, -3579.17578, 1127.62634),
4111+
4112-
["Rotation"] = Vector3.new(-58.9302444, -16.5921669, -25.3577919),
4112+
function GuiServiceClass:KeyDown(key)
4113-
["Anchored"] = true,
4113+
        local mnemonicButton = self.mnemonics[string.upper(key)]
4114-
["CFrame"] = CFrame.new(-1771.47314, -3579.17578, 1127.62634, 0.866024435, 0.410437077, -0.285557359, 3.18802017e-006, 0.571108341, 0.820874691, 0.500001609, -0.710898519, 0.494592458),
4114+
        if mnemonicButton then
4115-
["CanCollide"] = false,
4115+
                mnemonicButton.Activated:fire()
4116-
["FormFactor"] = Enum.FormFactor.Symmetric,
4116+
        end
4117-
["Size"] = Vector3.new(1, 9.35999966, 1.15296268),
4117+
4118-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4118+
function GuiServiceClass:MouseButton1Down()
4119-
["TopSurface"] = Enum.SurfaceType.Smooth,
4119+
        local mouse = self.mouse
4120-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4120+
        local mouseX, mouseY = self:GetMousePosition()
4121
        local stack = {self}
4122-
o284 = Create("Fire",{
4122+
        local dragObjects = {}
4123-
["Parent"] = o283,
4123+
        self.dragObjects = dragObjects
4124-
["Size"] = 30,
4124+
        while #stack > 0 do
4125-
["Color"] = Color3.new(1, 0.815686, 0),
4125+
                local object = stack[#stack]
4126-
["Enabled"] = false,
4126+
                stack[#stack] = nil
4127-
["Heat"] = 25,
4127+
                if object.visible then
4128-
["SecondaryColor"] = Color3.new(1, 0, 0),
4128+
                        for child in pairs(object.children) do
4129
                                stack[#stack + 1] = child
4130-
o285 = Create("Script",{
4130+
                        end
4131-
["Parent"] = o284,
4131+
                        if object.active then
4132
                                local position = object:GetAbsolutePosition()
4133-
table.insert(cors,coroutine.create(function()
4133+
                                local size = object:GetAbsoluteSize()
4134
                                if mouseX >= position.X and mouseY >= position.Y and mouseX < position.X + size.X and mouseY < position.Y + size.Y then
4135-
runDummyScript(function()
4135+
                                        object.mouseDown = true
4136-
function Spread(part)
4136+
                                        dragObjects[object] = true
4137-
	check = part:findFirstChild("Fire")
4137+
                                        local mouseButton1Down = object.MouseButton1Down
4138-
		if check == nil then 
4138+
                                        if mouseButton1Down then
4139-
	script.Parent:Clone().Parent = part
4139+
                                                mouseButton1Down:fire()
4140
                                                if object.autoButtonColor then
4141-
		elseif check ~= nil then
4141+
                                                        local color = object.color
4142-
	check.Size = check.Size + 1
4142+
                                                        local transparency = object.backgroundTransparency
4143-
	check.Heat = check.Heat  +1
4143+
                                                        object.m_base_instance.BackgroundColor3 = Color3.new(math.min(color.r + 0.3, 1), math.min(color.g +
4144
 
4145
0.3, 1), math.min(color.b + 0.3, 1))
4146
                                                        object.m_base_instance.BackgroundTransparency = transparency
4147
                                                end
4148-
script.Parent.Parent.Touched:connect(Spread)
4148+
                                        end
4149
                                        object.DragBegin:fire()
4150
                                end
4151-
end,o285)
4151+
                        end
4152
                end
4153-
o286 = Create("Part",{
4153+
        end
4154-
["Name"] = "Armor",
4154+
        self.mousePreviousPosition = Vector2.new(mouseX, mouseY)
4155-
["Parent"] = o40,
4155+
4156-
["Material"] = Enum.Material.Slate,
4156+
function GuiServiceClass:MouseButton1Up()
4157-
["BrickColor"] = BrickColor.new("Really black"),
4157+
        local mouse = self.mouse
4158-
["Position"] = Vector3.new(-1761.06006, -3589.20313, 1111.66748),
4158+
        local mouseX, mouseY = self:GetMousePosition()
4159-
["Anchored"] = true,
4159+
        local stack = {self}
4160-
["CFrame"] = CFrame.new(-1761.06006, -3589.20313, 1111.66748, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4160+
        while #stack > 0 do
4161-
["CanCollide"] = false,
4161+
                local object = stack[#stack]
4162-
["FormFactor"] = Enum.FormFactor.Symmetric,
4162+
                stack[#stack] = nil
4163-
["Size"] = Vector3.new(7.20591974, 5.09000015, 4.622962),
4163+
                if object.visible then
4164-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4164+
                        for child in pairs(object.children) do
4165-
["TopSurface"] = Enum.SurfaceType.Smooth,
4165+
                                stack[#stack + 1] = child
4166-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4166+
                        end
4167
                        if object.active then
4168-
o287 = Create("Fire",{
4168+
                                local position = object:GetAbsolutePosition()
4169-
["Parent"] = o286,
4169+
                                local size = object:GetAbsoluteSize()
4170-
["Size"] = 30,
4170+
                                if mouseX >= position.X and mouseY >= position.Y and mouseX < position.X + size.X and mouseY < position.Y + size.Y then
4171-
["Color"] = Color3.new(1, 0.815686, 0),
4171+
                                        object.MouseButton1Up:fire()
4172-
["Enabled"] = false,
4172+
                                end
4173-
["Heat"] = 25,
4173+
                        end
4174-
["SecondaryColor"] = Color3.new(1, 0, 0),
4174+
                end
4175
        end
4176-
o288 = Create("Script",{
4176+
        local dragObjects = self.dragObjects
4177-
["Parent"] = o287,
4177+
        self.dragObjects = nil
4178
        if dragObjects then
4179-
table.insert(cors,coroutine.create(function()
4179+
                for dragObject in pairs(dragObjects) do
4180
                        dragObject.mouseDown = false
4181-
runDummyScript(function()
4181+
                        local position = dragObject:GetAbsolutePosition()
4182-
function Spread(part)
4182+
                        local size = dragObject:GetAbsoluteSize()
4183-
	check = part:findFirstChild("Fire")
4183+
                        if mouseX >= position.X and mouseY >= position.Y and mouseX < position.X + size.X and mouseY < position.Y + size.Y then
4184-
		if check == nil then 
4184+
                                dragObject.MouseButton1Click:fire()
4185-
	script.Parent:Clone().Parent = part
4185+
                                local activated = dragObject.Activated
4186
                                if activated then
4187-
		elseif check ~= nil then
4187+
                                        activated:fire()
4188-
	check.Size = check.Size + 1
4188+
                                end
4189-
	check.Heat = check.Heat  +1
4189+
                        end
4190
                        dragObject.DragStopped:fire()
4191
                        if dragObject.autoButtonColor then
4192
                                if dragObject.mouseOver then
4193
                                        local color = dragObject.color
4194-
script.Parent.Parent.Touched:connect(Spread)
4194+
                                        local transparency = dragObject.backgroundTransparency
4195
                                        dragObject.m_base_instance.BackgroundColor3 = Color3.new(math.max(color.r - 0.3, 0), math.max(color.g - 0.3, 0),
4196
 
4197-
end,o288)
4197+
math.max(color.b - 0.3, 0))
4198
                                        dragObject.m_base_instance.BackgroundTransparency = math.max(0, transparency - 0.2)
4199-
o289 = Create("Part",{
4199+
                                else
4200-
["Name"] = "Armor",
4200+
                                        dragObject.m_base_instance.BackgroundColor3 = dragObject.color
4201-
["Parent"] = o40,
4201+
                                        dragObject.m_base_instance.BackgroundTransparency = dragObject.backgroundTransparency
4202-
["Material"] = Enum.Material.Slate,
4202+
                                end
4203-
["BrickColor"] = BrickColor.new("Really black"),
4203+
                        end
4204-
["Position"] = Vector3.new(-1761.21021, -3587.50781, 1111.47754),
4204+
                        self.dragObject = nil
4205-
["Anchored"] = true,
4205+
                end
4206-
["CFrame"] = CFrame.new(-1761.21021, -3587.50781, 1111.47754, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4206+
        end
4207-
["CanCollide"] = false,
4207+
4208-
["FormFactor"] = Enum.FormFactor.Symmetric,
4208+
function GuiServiceClass:MouseButton2Down()
4209-
["Size"] = Vector3.new(9.6259203, 1.70000005, 4.86296177),
4209+
        local mouse = self.mouse
4210-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4210+
        local mouseX, mouseY = self:GetMousePosition()
4211-
["TopSurface"] = Enum.SurfaceType.Smooth,
4211+
        local stack = {self}
4212-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4212+
        while #stack > 0 do
4213
                local object = stack[#stack]
4214-
o290 = Create("Fire",{
4214+
                stack[#stack] = nil
4215-
["Parent"] = o289,
4215+
                if object.visible then
4216-
["Size"] = 30,
4216+
                        for child in pairs(object.children) do
4217-
["Color"] = Color3.new(1, 0.815686, 0),
4217+
                                stack[#stack + 1] = child
4218-
["Enabled"] = false,
4218+
                        end
4219-
["Heat"] = 25,
4219+
                        if object.active then
4220-
["SecondaryColor"] = Color3.new(1, 0, 0),
4220+
                                local position = object:GetAbsolutePosition()
4221
                                local size = object:GetAbsoluteSize()
4222-
o291 = Create("Script",{
4222+
                                if mouseX >= position.X and mouseY >= position.Y and mouseX < position.X + size.X and mouseY < position.Y + size.Y then
4223-
["Parent"] = o290,
4223+
                                        local mouseButton2Down = object.MouseButton2Down
4224
                                        if mouseButton2Down then
4225-
table.insert(cors,coroutine.create(function()
4225+
                                                mouseButton2Down:fire()
4226
                                        end
4227-
runDummyScript(function()
4227+
                                end
4228-
function Spread(part)
4228+
                        end
4229-
	check = part:findFirstChild("Fire")
4229+
                end
4230-
		if check == nil then 
4230+
        end
4231-
	script.Parent:Clone().Parent = part
4231+
        self.mousePreviousPosition = Vector2.new(mouseX, mouseY)
4232
end
4233-
		elseif check ~= nil then
4233+
function GuiServiceClass:MouseButton2Up()
4234-
	check.Size = check.Size + 1
4234+
        local mouse = self.mouse
4235-
	check.Heat = check.Heat  +1
4235+
        local mouseX, mouseY = self:GetMousePosition()
4236
        local stack = {self}
4237
        while #stack > 0 do
4238
                local object = stack[#stack]
4239
                stack[#stack] = nil
4240-
script.Parent.Parent.Touched:connect(Spread)
4240+
                if object.visible then
4241
                        for child in pairs(object.children) do
4242
                                stack[#stack + 1] = child
4243-
end,o291)
4243+
                        end
4244
                        if object.active then
4245-
o292 = Create("Part",{
4245+
                                local position = object:GetAbsolutePosition()
4246-
["Parent"] = o40,
4246+
                                local size = object:GetAbsoluteSize()
4247-
["Material"] = Enum.Material.Neon,
4247+
                                if mouseX >= position.X and mouseY >= position.Y and mouseX < position.X + size.X and mouseY < position.Y + size.Y then
4248-
["BrickColor"] = BrickColor.new("Really red"),
4248+
                                        local mouseButton2Up = object.MouseButton2Up
4249-
["Position"] = Vector3.new(-1761.64014, -3584.49756, 1109.07996),
4249+
                                        if mouseButton2Up then
4250-
["Anchored"] = true,
4250+
                                                mouseButton2Up:fire()
4251-
["CFrame"] = CFrame.new(-1761.64014, -3584.49756, 1109.07996, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4251+
                                        end
4252-
["CanCollide"] = false,
4252+
                                end
4253-
["Locked"] = true,
4253+
                        end
4254-
["Shape"] = Enum.PartType.Ball,
4254+
                end
4255-
["Size"] = Vector3.new(0.890000105, 0.890000105, 0.890000105),
4255+
        end
4256-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4256+
4257-
["TopSurface"] = Enum.SurfaceType.Smooth,
4257+
function GuiServiceClass:MouseMove()
4258-
["Color"] = Color3.new(1, 0, 0),
4258+
        self:UpdateObjects()
4259
        local dragObjects = self.dragObjects
4260-
o293 = Create("Part",{
4260+
        if dragObjects then
4261-
["Parent"] = o40,
4261+
                for dragObject in pairs(dragObjects) do
4262-
["Material"] = Enum.Material.Neon,
4262+
                        local mouse = self.mouse
4263-
["BrickColor"] = BrickColor.new("Really red"),
4263+
                        local mousePosition = Vector2.new(self:GetMousePosition())
4264-
["Position"] = Vector3.new(-1760.44019, -3584.49756, 1109.07996),
4264+
                        dragObject.DragMove:fire(mousePosition - self.mousePreviousPosition)
4265-
["Anchored"] = true,
4265+
                        self.mousePreviousPosition = mousePosition
4266-
["CFrame"] = CFrame.new(-1760.44019, -3584.49756, 1109.07996, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4266+
                end
4267-
["CanCollide"] = false,
4267+
        end
4268-
["Locked"] = true,
4268+
4269-
["Shape"] = Enum.PartType.Ball,
4269+
function GuiServiceClass:SetMnemonic(mnemonic, button)
4270-
["Size"] = Vector3.new(0.890000105, 0.890000105, 0.890000105),
4270+
        self.mnemonics[mnemonic] = button
4271-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4271+
4272-
["TopSurface"] = Enum.SurfaceType.Smooth,
4272+
function GuiServiceClass:UpdateObjects()
4273-
["Color"] = Color3.new(1, 0, 0),
4273+
        local mouse = self.mouse
4274
        local mouseX, mouseY = self:GetMousePosition()
4275-
o294 = Create("Part",{
4275+
        local stack = {self}
4276-
["Name"] = "PartWing",
4276+
        while #stack > 0 do
4277-
["Parent"] = o40,
4277+
                local object = stack[#stack]
4278-
["Material"] = Enum.Material.DiamondPlate,
4278+
                stack[#stack] = nil
4279-
["BrickColor"] = BrickColor.new("Really black"),
4279+
                if object.visible then
4280-
["Position"] = Vector3.new(-1757.6272, -3583.95947, 1116.17285),
4280+
                        for child in pairs(object.children) do
4281-
["Rotation"] = Vector3.new(-57.624279, 20.4207325, 17.3688202),
4281+
                                stack[#stack + 1] = child
4282-
["Anchored"] = true,
4282+
                        end
4283-
["CFrame"] = CFrame.new(-1757.6272, -3583.95947, 1116.17285, 0.8944242, -0.279761106, 0.348911166, -0.121389359, 0.599019885, 0.791479528, -0.430429846, -0.750272632, 0.501817882),
4283+
                        if object.active then
4284-
["CanCollide"] = false,
4284+
                                local position = object:GetAbsolutePosition()
4285-
["FormFactor"] = Enum.FormFactor.Symmetric,
4285+
                                local size = object:GetAbsoluteSize()
4286-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
4286+
                                if mouseX >= position.X and mouseY >= position.Y and mouseX < position.X + size.X and mouseY < position.Y + size.Y then
4287-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4287+
                                        if not object.mouseOver then
4288-
["TopSurface"] = Enum.SurfaceType.Smooth,
4288+
                                                object.mouseOver = true
4289-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4289+
                                                object.MouseEnter:fire()
4290
                                                if object.autoButtonColor then
4291-
o295 = Create("Fire",{
4291+
                                                        local color = object.color
4292-
["Parent"] = o294,
4292+
                                                        local transparency = object.backgroundTransparency
4293-
["Size"] = 30,
4293+
                                                        if object.mouseDown then
4294-
["Color"] = Color3.new(1, 0.815686, 0),
4294+
                                                                object.m_base_instance.BackgroundColor3 = Color3.new(math.min(color.r + 0.3, 1), math.min(color.g + 0.3, 1), math.min(color.b + 0.3, 1))
4295-
["Enabled"] = false,
4295+
                                                                object.m_base_instance.BackgroundTransparency = transparency
4296-
["Heat"] = 25,
4296+
                                                        else
4297-
["SecondaryColor"] = Color3.new(1, 0, 0),
4297+
                                                                object.m_base_instance.BackgroundColor3 = Color3.new(math.max(color.r - 0.3, 0), math.max(color.g - 0.3, 0), math.max(color.b - 0.3, 0))
4298
                                                                object.m_base_instance.BackgroundTransparency = math.max(0, transparency - 0.2)
4299-
o296 = Create("Script",{
4299+
                                                        end
4300-
["Parent"] = o295,
4300+
                                                end
4301
                                        end
4302-
table.insert(cors,coroutine.create(function()
4302+
                                else
4303
                                        if object.mouseOver then
4304-
runDummyScript(function()
4304+
                                                object.mouseOver = false
4305-
function Spread(part)
4305+
                                                object.MouseLeave:fire()
4306-
	check = part:findFirstChild("Fire")
4306+
                                                if object.autoButtonColor then
4307-
		if check == nil then 
4307+
                                                        object.m_base_instance.BackgroundColor3 = object.color
4308-
	script.Parent:Clone().Parent = part
4308+
                                                        object.m_base_instance.BackgroundTransparency = object.backgroundTransparency
4309
                                                end
4310-
		elseif check ~= nil then
4310+
                                        end
4311-
	check.Size = check.Size + 1
4311+
                                end
4312-
	check.Heat = check.Heat  +1
4312+
                        end
4313
                end
4314
        end
4315
end
4316
function GuiServiceClass:UpdateView()
4317-
script.Parent.Parent.Touched:connect(Spread)
4317+
        local billboardGui = self.billboardGui
4318
        local guiFrame = self.m_base_instance
4319
        local camera = self.camera
4320-
end,o296)
4320+
        local mouse = self.mouse
4321
        local cameraCFrame = CFrame.new(camera.CoordinateFrame.p, camera.Focus.p) -- camera.CoordinateFrame
4322-
o297 = Create("Part",{
4322+
        local viewSizeX, viewSizeY = mouse.ViewSizeX, mouse.ViewSizeY
4323-
["Name"] = "PartWing",
4323+
        local previousViewSize = self.viewSize
4324-
["Parent"] = o40,
4324+
        if not previousViewSize or ((viewSizeX ~= 0 or viewSizeY ~= 0) and (viewSizeX ~= previousViewSize.X or viewSizeY ~= previousViewSize.Y)) then
4325-
["Material"] = Enum.Material.DiamondPlate,
4325+
                self.viewSize = {X = viewSizeX, Y = viewSizeY}
4326-
["BrickColor"] = BrickColor.new("Really black"),
4326+
                local viewSizeUDim2 = UDim2.new(0, viewSizeX, 0, viewSizeY)
4327-
["Position"] = Vector3.new(-1765.06714, -3583.95947, 1116.17285),
4327+
                billboardGui.Size = viewSizeUDim2
4328-
["Rotation"] = Vector3.new(-58.7116852, -26.1270428, -15.2933884),
4328+
                guiFrame.Size = viewSizeUDim2
4329-
["Anchored"] = true,
4329+
                -- FIXME:
4330-
["CFrame"] = CFrame.new(-1765.06714, -3583.95947, 1116.17285, 0.866026163, 0.23681052, -0.44036299, 0.226009175, 0.600212216, 0.767245233, 0.44600296, -0.763980508, 0.466278106),
4330+
                -- After the 15th of July 2014, there came an offset at the Y thingy out of nowhere so I accomodated for that.
4331-
["CanCollide"] = false,
4331+
                billboardGui.SizeOffset = Vector2.new(0.5 / viewSizeX, (0.5 + 10) / viewSizeY)
4332-
["FormFactor"] = Enum.FormFactor.Symmetric,
4332+
        end
4333-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
4333+
        --billboardGui.SizeOffset = Vector2.new()
4334-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4334+
        billboardGui.StudsOffset = (cameraCFrame - cameraCFrame.p):inverse() * cameraCFrame.p - Vector3.new(0, 0, 1)
4335-
["TopSurface"] = Enum.SurfaceType.Smooth,
4335+
4336-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4336+
GuiService = GuiServiceClass:new {
4337
        Camera = Camera,
4338-
o298 = Create("Fire",{
4338+
        Mouse = Mouse
4339-
["Parent"] = o297,
4339+
}
4340-
["Size"] = 30,
4340+
GuiFrame = setmetatable({}, GuiObject)
4341-
["Color"] = Color3.new(1, 0.815686, 0),
4341+
GuiFrame.__index = GuiFrame
4342-
["Enabled"] = false,
4342+
GuiFrame.__default = {__index = {
4343-
["Heat"] = 25,
4343+
        Active = false,
4344-
["SecondaryColor"] = Color3.new(1, 0, 0),
4344+
        BackgroundTransparency = 0.75,
4345
        BorderSize = 4,
4346-
o299 = Create("Script",{
4346+
        BorderTransparency = 0.75,
4347-
["Parent"] = o298,
4347+
        Color = AdvancedGUI.GUI_BASE_COLOR,
4348
        Position = UDim2.new(0, 0, 0, 0),
4349-
table.insert(cors,coroutine.create(function()
4349+
        Size = UDim2.new(0, 52, 0, 52),
4350
        Visible = true
4351-
runDummyScript(function()
4351+
}}
4352-
function Spread(part)
4352+
function GuiFrame:Destroy()
4353-
	check = part:findFirstChild("Fire")
4353+
        GuiObject.Destroy(self)
4354-
		if check == nil then 
4354+
4355-
	script.Parent:Clone().Parent = part
4355+
function GuiFrame:GetContentInstance()
4356
        return self.m_content_frame
4357-
		elseif check ~= nil then
4357+
4358-
	check.Size = check.Size + 1
4358+
function GuiFrame:Init(data)
4359-
	check.Heat = check.Heat  +1
4359+
        GuiObject.Init(self)
4360
        setmetatable(data, GuiFrame.__default)
4361
        local leftBorderFrameLeft = RBXInstance.new "Frame" {
4362
                BackgroundColor3 = Color3.new(0, 0, 0),
4363
                BorderSizePixel = 0,
4364-
script.Parent.Parent.Touched:connect(Spread)
4364+
                Size = UDim2.new(0, 1, 1, -1)
4365
        }
4366
        local leftBorderFrameCenter = RBXInstance.new "Frame" {
4367-
end,o299)
4367+
                BackgroundColor3 = Color3.new(1, 1, 1),
4368
                BorderSizePixel = 0,
4369-
o300 = Create("Part",{
4369+
                Position = UDim2.new(0, 1, 0, 1)
4370-
["Name"] = "PartWing",
4370+
        }
4371-
["Parent"] = o40,
4371+
        local leftBorderFrameRight = RBXInstance.new "Frame" {
4372-
["Material"] = Enum.Material.DiamondPlate,
4372+
                BackgroundColor3 = Color3.new(0, 0, 0),
4373-
["BrickColor"] = BrickColor.new("Really black"),
4373+
                BorderSizePixel = 0
4374-
["Position"] = Vector3.new(-1753.96729, -3575.76074, 1119.44958),
4374+
        }
4375-
["Rotation"] = Vector3.new(-76.426384, 23.4285088, -23.0137901),
4375+
        local rightBorderFrameRight = RBXInstance.new "Frame" {
4376-
["Anchored"] = true,
4376+
                BackgroundColor3 = Color3.new(0, 0, 0),
4377-
["CFrame"] = CFrame.new(-1753.96729, -3575.76074, 1119.44958, 0.844529271, 0.358721316, 0.397604495, -0.447492391, 0.0649125203, 0.891928732, 0.294144362, -0.931184888, 0.215345576),
4377+
                BorderSizePixel = 0,
4378-
["CanCollide"] = false,
4378+
                Position = UDim2.new(1, -1, 0, 1),
4379-
["FormFactor"] = Enum.FormFactor.Symmetric,
4379+
                Size = UDim2.new(0, 1, 1, -1)
4380-
["Size"] = Vector3.new(1, 0.800000012, 11.6429615),
4380+
        }
4381-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4381+
        local rightBorderFrameCenter = RBXInstance.new "Frame" {
4382-
["TopSurface"] = Enum.SurfaceType.Smooth,
4382+
                BackgroundColor3 = Color3.new(1, 1, 1),
4383-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4383+
                BorderSizePixel = 0
4384
        }
4385-
o301 = Create("Fire",{
4385+
        local rightBorderFrameLeft = RBXInstance.new "Frame" {
4386-
["Parent"] = o300,
4386+
                BackgroundColor3 = Color3.new(0, 0, 0),
4387-
["Size"] = 30,
4387+
                BorderSizePixel = 0
4388-
["Color"] = Color3.new(1, 0.815686, 0),
4388+
        }
4389-
["Enabled"] = false,
4389+
        local bottomBorderFrameBottom = RBXInstance.new "Frame" {
4390-
["Heat"] = 25,
4390+
                BackgroundColor3 = Color3.new(0, 0, 0),
4391-
["SecondaryColor"] = Color3.new(1, 0, 0),
4391+
                BorderSizePixel = 0,
4392
                Position = UDim2.new(0, 0, 1, -1),
4393-
o302 = Create("Script",{
4393+
                Size = UDim2.new(1, -1, 0, 1)
4394-
["Parent"] = o301,
4394+
        }
4395
        local bottomBorderFrameCenter = RBXInstance.new "Frame" {
4396-
table.insert(cors,coroutine.create(function()
4396+
                BackgroundColor3 = Color3.new(1, 1, 1),
4397
                BorderSizePixel = 0
4398-
runDummyScript(function()
4398+
        }
4399-
function Spread(part)
4399+
        local bottomBorderFrameTop = RBXInstance.new "Frame" {
4400-
	check = part:findFirstChild("Fire")
4400+
                BackgroundColor3 = Color3.new(0, 0, 0),
4401-
		if check == nil then 
4401+
                BorderSizePixel = 0
4402-
	script.Parent:Clone().Parent = part
4402+
        }
4403
        local topBorderFrameTop = RBXInstance.new "Frame" {
4404-
		elseif check ~= nil then
4404+
                BackgroundColor3 = Color3.new(0, 0, 0),
4405-
	check.Size = check.Size + 1
4405+
                BorderSizePixel = 0,
4406-
	check.Heat = check.Heat  +1
4406+
                Position = UDim2.new(0, 1, 0, 0),
4407
                Size = UDim2.new(1, -1, 0, 1)
4408
        }
4409
        local topBorderFrameCenter = RBXInstance.new "Frame" {
4410
                BackgroundColor3 = Color3.new(1, 1, 1),
4411-
script.Parent.Parent.Touched:connect(Spread)
4411+
                BorderSizePixel = 0
4412
        }
4413
        local topBorderFrameBottom = RBXInstance.new "Frame" {
4414-
end,o302)
4414+
                BackgroundColor3 = Color3.new(0, 0, 0),
4415
                BorderSizePixel = 0
4416-
o303 = Create("Part",{
4416+
        }
4417-
["Name"] = "PartWing",
4417+
        local border_frame = RBXInstance.new "Frame" {
4418-
["Parent"] = o40,
4418+
                BackgroundTransparency = 1,
4419-
["Material"] = Enum.Material.DiamondPlate,
4419+
                Size = UDim2.new(1, 0, 1, 0),
4420-
["BrickColor"] = BrickColor.new("Really black"),
4420+
                leftBorderFrameLeft,
4421-
["Position"] = Vector3.new(-1750.33691, -3572.93506, 1125.55737),
4421+
                leftBorderFrameCenter,
4422-
["Rotation"] = Vector3.new(-76.4264069, 23.428484, 18.1905346),
4422+
                leftBorderFrameRight,
4423-
["Anchored"] = true,
4423+
                rightBorderFrameLeft,
4424-
["CFrame"] = CFrame.new(-1750.33691, -3572.93506, 1125.55737, 0.871700943, -0.286441118, 0.397604108, -0.293916613, 0.343621314, 0.89192909, -0.392110378, -0.89435786, 0.215345189),
4424+
                rightBorderFrameCenter,
4425-
["CanCollide"] = false,
4425+
                rightBorderFrameRight,
4426-
["FormFactor"] = Enum.FormFactor.Symmetric,
4426+
                bottomBorderFrameBottom,
4427-
["Size"] = Vector3.new(1, 11.5900002, 1.35296154),
4427+
                bottomBorderFrameCenter,
4428-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4428+
                bottomBorderFrameTop,
4429-
["TopSurface"] = Enum.SurfaceType.Smooth,
4429+
                topBorderFrameBottom,
4430-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4430+
                topBorderFrameCenter,
4431
                topBorderFrameTop
4432-
o304 = Create("Fire",{
4432+
        }
4433-
["Parent"] = o303,
4433+
        local contentFrame = RBXInstance.new "Frame" {
4434-
["Size"] = 30,
4434+
                BackgroundTransparency = 1,
4435-
["Color"] = Color3.new(1, 0.815686, 0),
4435+
                BorderSizePixel = 0,
4436-
["Enabled"] = false,
4436+
                ClipsDescendants = true,
4437-
["Heat"] = 25,
4437+
                Size = UDim2.new(1, 0, 1, 0)
4438-
["SecondaryColor"] = Color3.new(1, 0, 0),
4438+
        }
4439
        local base_frame = RBXInstance.new "Frame" {
4440-
o305 = Create("Script",{
4440+
                BorderSizePixel = 0,
4441-
["Parent"] = o304,
4441+
                border_frame,
4442
                contentFrame
4443-
table.insert(cors,coroutine.create(function()
4443+
        }
4444
        self.m_base_instance = base_frame
4445-
runDummyScript(function()
4445+
        self.m_content_frame = contentFrame
4446-
function Spread(part)
4446+
        self.m_border_frame = border_frame
4447-
	check = part:findFirstChild("Fire")
4447+
        self.leftBorderFrameLeft = leftBorderFrameLeft
4448-
		if check == nil then 
4448+
        self.leftBorderFrameCenter = leftBorderFrameCenter
4449-
	script.Parent:Clone().Parent = part
4449+
        self.leftBorderFrameRight = leftBorderFrameRight
4450
        self.rightBorderFrameLeft = rightBorderFrameLeft
4451-
		elseif check ~= nil then
4451+
        self.rightBorderFrameCenter = rightBorderFrameCenter
4452-
	check.Size = check.Size + 1
4452+
        self.rightBorderFrameRight = rightBorderFrameRight
4453-
	check.Heat = check.Heat  +1
4453+
        self.bottomBorderFrameBottom = bottomBorderFrameBottom
4454
        self.bottomBorderFrameCenter = bottomBorderFrameCenter
4455
        self.bottomBorderFrameTop = bottomBorderFrameTop
4456
        self.topBorderFrameBottom = topBorderFrameBottom
4457
        self.topBorderFrameCenter = topBorderFrameCenter
4458-
script.Parent.Parent.Touched:connect(Spread)
4458+
        self.topBorderFrameTop = topBorderFrameTop
4459
        self:SetActive(data.Active)
4460
        self:SetBackgroundTransparency(data.BackgroundTransparency)
4461-
end,o305)
4461+
        self:SetBorderSize(data.BorderSize)
4462
        self:SetBorderTransparency(data.BorderTransparency)
4463-
o306 = Create("Part",{
4463+
        self:SetColor(data.Color)
4464-
["Name"] = "PartWing",
4464+
        self:SetPosition(data.Position)
4465-
["Parent"] = o40,
4465+
        self:SetSize(data.Size)
4466-
["Material"] = Enum.Material.DiamondPlate,
4466+
        self:SetVisible(data.Visible)
4467-
["BrickColor"] = BrickColor.new("Really black"),
4467+
        self:SetParent(data.Parent)
4468-
["Position"] = Vector3.new(-1771.47314, -3572.49316, 1122.8728),
4468+
4469-
["Rotation"] = Vector3.new(-85.8035736, -16.5921726, -25.3577862),
4469+
function GuiFrame:IsA(className)
4470-
["Anchored"] = true,
4470+
        return className == "GuiFrame" or GuiObject.IsA(self, className)
4471-
["CFrame"] = CFrame.new(-1771.47314, -3572.49316, 1122.8728, 0.866024554, 0.410437047, -0.285557449, 0.226013467, 0.188093245, 0.955792248, 0.446003973, -0.892279387, 0.0701290593),
4471+
4472-
["CanCollide"] = false,
4472+
function GuiFrame:SetBorderSize(border_size)
4473-
["FormFactor"] = Enum.FormFactor.Symmetric,
4473+
        border_size = math.max(math.floor(border_size + 0.5), 0)
4474-
["Size"] = Vector3.new(1, 9.35999966, 1.15296268),
4474+
        if border_size ~= self.m_border_size then
4475-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4475+
                self.m_border_size = border_size
4476-
["TopSurface"] = Enum.SurfaceType.Smooth,
4476+
                local border_frame = self.m_border_frame
4477-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4477+
                local contentFrame = self.m_content_frame
4478
                local leftBorderFrameCenter = self.leftBorderFrameCenter
4479-
o307 = Create("Fire",{
4479+
                local leftBorderFrameRight = self.leftBorderFrameRight
4480-
["Parent"] = o306,
4480+
                local rightBorderFrameCenter = self.rightBorderFrameCenter
4481-
["Size"] = 30,
4481+
                local rightBorderFrameLeft = self.rightBorderFrameLeft
4482-
["Color"] = Color3.new(1, 0.815686, 0),
4482+
                local bottomBorderFrameCenter = self.bottomBorderFrameCenter
4483-
["Enabled"] = false,
4483+
                local bottomBorderFrameTop = self.bottomBorderFrameTop
4484-
["Heat"] = 25,
4484+
                local topBorderFrameCenter = self.topBorderFrameCenter
4485-
["SecondaryColor"] = Color3.new(1, 0, 0),
4485+
                local topBorderFrameBottom = self.topBorderFrameBottom
4486
                contentFrame.Position = UDim2.new(0, border_size, 0, border_size)
4487-
o308 = Create("Script",{
4487+
                contentFrame.Size = UDim2.new(1, -2 * border_size, 1, -2 * border_size)
4488-
["Parent"] = o307,
4488+
                local inner_visible = border_size > 0
4489
                if self.leftBorderFrameLeft.Visible ~= inner_visible then
4490-
table.insert(cors,coroutine.create(function()
4490+
                        self.rightBorderFrameRight.Visible = inner_visible
4491
                        self.bottomBorderFrameBottom.Visible = inner_visible
4492-
runDummyScript(function()
4492+
                        self.topBorderFrameTop.Visible = inner_visible
4493-
function Spread(part)
4493+
                end
4494-
	check = part:findFirstChild("Fire")
4494+
                local outer_visible = border_size > 1
4495-
		if check == nil then 
4495+
                if leftBorderFrameCenter.Visible ~= outer_visible then
4496-
	script.Parent:Clone().Parent = part
4496+
                        leftBorderFrameCenter.Visible = outer_visible
4497
                        leftBorderFrameRight.Visible = outer_visible
4498-
		elseif check ~= nil then
4498+
                        rightBorderFrameCenter.Visible = outer_visible
4499-
	check.Size = check.Size + 1
4499+
                        rightBorderFrameLeft.Visible = outer_visible
4500-
	check.Heat = check.Heat  +1
4500+
                        bottomBorderFrameCenter.Visible = outer_visible
4501
                        bottomBorderFrameTop.Visible = outer_visible
4502
                        topBorderFrameCenter.Visible = outer_visible
4503
                        topBorderFrameBottom.Visible = outer_visible
4504
                end
4505-
script.Parent.Parent.Touched:connect(Spread)
4505+
                if outer_visible then
4506
                        leftBorderFrameCenter.Size = UDim2.new(0, border_size - 2, 1, -border_size)
4507
                        leftBorderFrameRight.Position = UDim2.new(0, border_size - 1, 0, border_size - 1)
4508-
end,o308)
4508+
                        leftBorderFrameRight.Size = UDim2.new(0, 1, 1, 1 - 2 * border_size)
4509
                        rightBorderFrameCenter.Position = UDim2.new(1, 1 - border_size, 0, border_size - 1)
4510-
o309 = Create("Part",{
4510+
                        rightBorderFrameCenter.Size = UDim2.new(0, border_size - 2, 1, -border_size)
4511-
["Name"] = "PartWing",
4511+
                        rightBorderFrameLeft.Position = UDim2.new(1, -border_size, 0, border_size)
4512-
["Parent"] = o40,
4512+
                        rightBorderFrameLeft.Size = UDim2.new(0, 1, 1, 1 - 2 * border_size)
4513-
["Material"] = Enum.Material.DiamondPlate,
4513+
                        bottomBorderFrameCenter.Position = UDim2.new(0, 1, 1, 1 - border_size)
4514-
["BrickColor"] = BrickColor.new("Really black"),
4514+
                        bottomBorderFrameCenter.Size = UDim2.new(1, -border_size, 0, border_size - 2)
4515-
["Position"] = Vector3.new(-1768.47729, -3575.8374, 1118.74988),
4515+
                        bottomBorderFrameTop.Position = UDim2.new(0, border_size - 1, 1, -border_size)
4516-
["Rotation"] = Vector3.new(-85.8035736, -16.5921726, -25.3577862),
4516+
                        bottomBorderFrameTop.Size = UDim2.new(1, 1 - 2 * border_size, 0, 1)
4517-
["Anchored"] = true,
4517+
                        topBorderFrameCenter.Position = UDim2.new(0, border_size - 1, 0, 1)
4518-
["CFrame"] = CFrame.new(-1768.47729, -3575.8374, 1118.74988, 0.866024554, 0.410437047, -0.285557449, 0.226013467, 0.188093245, 0.955792248, 0.446003973, -0.892279387, 0.0701290593),
4518+
                        topBorderFrameCenter.Size = UDim2.new(1, -border_size, 0, border_size - 2)
4519-
["CanCollide"] = false,
4519+
                        topBorderFrameBottom.Position = UDim2.new(0, border_size, 0, border_size - 1)
4520-
["FormFactor"] = Enum.FormFactor.Symmetric,
4520+
                        topBorderFrameBottom.Size = UDim2.new(1, 1 - 2 * border_size, 0, 1)
4521-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
4521+
                end
4522-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4522+
        end
4523-
["TopSurface"] = Enum.SurfaceType.Smooth,
4523+
4524-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4524+
function GuiFrame:SetBorderTransparency(borderTransparency)
4525
        self.borderTransparency = borderTransparency
4526-
o310 = Create("Fire",{
4526+
        self.leftBorderFrameLeft.BackgroundTransparency = borderTransparency
4527-
["Parent"] = o309,
4527+
        self.leftBorderFrameCenter.BackgroundTransparency = borderTransparency
4528-
["Size"] = 30,
4528+
        self.leftBorderFrameRight.BackgroundTransparency = borderTransparency
4529-
["Color"] = Color3.new(1, 0.815686, 0),
4529+
        self.rightBorderFrameLeft.BackgroundTransparency = borderTransparency
4530-
["Enabled"] = false,
4530+
        self.rightBorderFrameCenter.BackgroundTransparency = borderTransparency
4531-
["Heat"] = 25,
4531+
        self.rightBorderFrameRight.BackgroundTransparency = borderTransparency
4532-
["SecondaryColor"] = Color3.new(1, 0, 0),
4532+
        self.bottomBorderFrameBottom.BackgroundTransparency = borderTransparency
4533
        self.bottomBorderFrameCenter.BackgroundTransparency = borderTransparency
4534-
o311 = Create("Script",{
4534+
        self.bottomBorderFrameTop.BackgroundTransparency = borderTransparency
4535-
["Parent"] = o310,
4535+
        self.topBorderFrameBottom.BackgroundTransparency = borderTransparency
4536
        self.topBorderFrameCenter.BackgroundTransparency = borderTransparency
4537-
table.insert(cors,coroutine.create(function()
4537+
        self.topBorderFrameTop.BackgroundTransparency = borderTransparency
4538
end
4539-
runDummyScript(function()
4539+
GuiButton = setmetatable({}, GuiFrame)
4540-
function Spread(part)
4540+
GuiButton.__index = GuiButton
4541-
	check = part:findFirstChild("Fire")
4541+
GuiButton.__default = {__index = {
4542-
		if check == nil then 
4542+
        AutoButtonColor = true
4543-
	script.Parent:Clone().Parent = part
4543+
}}
4544
function GuiButton:Destroy()
4545-
		elseif check ~= nil then
4545+
        self.Activated:disconnect()
4546-
	check.Size = check.Size + 1
4546+
        GuiFrame.Destroy(self)
4547-
	check.Heat = check.Heat  +1
4547+
4548
function GuiButton:Init(data)
4549
        if data.Active == nil then
4550
                data.Active = true
4551
        end
4552-
script.Parent.Parent.Touched:connect(Spread)
4552+
        GuiFrame.Init(self, data)
4553
        setmetatable(data, GuiButton.__default)
4554
        self.Activated = RbxUtility.CreateSignal()
4555-
end,o311)
4555+
        self:SetAutoButtonColor(data.AutoButtonColor)
4556
end
4557-
o312 = Create("Model",{
4557+
function GuiButton:IsA(className)
4558-
["Name"] = "Arm1",
4558+
        return className == "GuiButton" or GuiFrame.IsA(self, className)
4559-
["Parent"] = o1,
4559+
4560
function GuiButton:SetAutoButtonColor(autoButtonColor)
4561-
o313 = Create("Part",{
4561+
        if autoButtonColor ~= self.autoButtonColor then
4562-
["Name"] = "Middle",
4562+
                self.autoButtonColor = autoButtonColor
4563-
["Parent"] = o312,
4563+
                if autoButtonColor then
4564-
["Material"] = Enum.Material.Grass,
4564+
                        if self.mouseOver then
4565-
["BrickColor"] = BrickColor.new("Really black"),
4565+
                                local color = self.color
4566-
["Position"] = Vector3.new(-1766.19946, -3590.25195, 1111.85254),
4566+
                                local transparency = self.backgroundTransparency
4567-
["Anchored"] = true,
4567+
                                if self.mouseDown then
4568-
["CFrame"] = CFrame.new(-1766.19946, -3590.25195, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4568+
                                        self.m_base_instance.BackgroundColor3 = Color3.new(math.min(color.r + 0.3, 1), math.min(color.g + 0.3, 1), math.min(color.b + 0.3, 1))
4569-
["CanCollide"] = false,
4569+
                                        self.m_base_instance.BackgroundTransparency = transparency
4570-
["FormFactor"] = Enum.FormFactor.Symmetric,
4570+
                                else
4571-
["Size"] = Vector3.new(3.43296003, 6.86592293, 3.43296194),
4571+
                                        self.m_base_instance.BackgroundColor3 = Color3.new(math.max(color.r - 0.3, 0), math.max(color.g - 0.3, 0), math.max(color.b - 0.3, 0))
4572-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4572+
                                        self.m_base_instance.BackgroundTransparency = math.max(0, transparency - 0.5)
4573-
["TopSurface"] = Enum.SurfaceType.Smooth,
4573+
                                end
4574-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4574+
                        end
4575
                else
4576-
o314 = Create("Fire",{
4576+
                        self.m_base_instance.BackgroundColor3 = self.color
4577-
["Parent"] = o313,
4577+
                end
4578-
["Size"] = 30,
4578+
        end    
4579-
["Color"] = Color3.new(1, 0.815686, 0),
4579+
4580-
["Enabled"] = false,
4580+
GuiTextLabel = setmetatable({}, GuiFrame)
4581-
["Heat"] = 25,
4581+
GuiTextLabel.__index = GuiTextLabel
4582-
["SecondaryColor"] = Color3.new(1, 0, 0),
4582+
GuiTextLabel.__default = {__index = {
4583
        Font = "ArialBold",
4584-
o315 = Create("Script",{
4584+
        FontSize = "Size12",
4585-
["Parent"] = o314,
4585+
        Text = "",
4586
        TextColor = Color3.new(1, 1, 1),
4587-
table.insert(cors,coroutine.create(function()
4587+
        TextStrokeColor = Color3.new(0, 0, 0),
4588
        TextStrokeTransparency = 0.6,
4589-
runDummyScript(function()
4589+
        TextWrapped = true
4590-
function Spread(part)
4590+
}}
4591-
	check = part:findFirstChild("Fire")
4591+
function GuiTextLabel:Destroy()
4592-
		if check == nil then 
4592+
        GuiFrame.Destroy(self)
4593-
	script.Parent:Clone().Parent = part
4593+
4594
function GuiTextLabel:Init(data)
4595-
		elseif check ~= nil then
4595+
        GuiFrame.Init(self, data)
4596-
	check.Size = check.Size + 1
4596+
        setmetatable(data, GuiTextLabel.__default)
4597-
	check.Heat = check.Heat  +1
4597+
        local base_instance = self.m_base_instance
4598
        local textLabel = RBXInstance.new "TextLabel" {
4599
                BackgroundTransparency = 1,
4600
                Font = data.Font,
4601
                FontSize = data.FontSize,
4602-
script.Parent.Parent.Touched:connect(Spread)
4602+
                TextColor3 = data.TextColor3,
4603
                TextStrokeColor3 = data.TextStrokeColor3,
4604
                TextStrokeTransparency = data.TextStrokeTransparency,
4605-
end,o315)
4605+
                TextWrapped = data.TextWrapped
4606
        }
4607-
o316 = Create("Part",{
4607+
        textLabel.Parent = self:GetContentInstance()
4608-
["Parent"] = o312,
4608+
        self.textLabel = textLabel
4609-
["Material"] = Enum.Material.Grass,
4609+
        self:SetText(data.Text)
4610-
["BrickColor"] = BrickColor.new("Cocoa"),
4610+
4611-
["Position"] = Vector3.new(-1766.20068, -3589.75195, 1111.85254),
4611+
function GuiTextLabel:IsA(className)
4612-
["Anchored"] = true,
4612+
        return className == "GuiTextLabel" or GuiFrame.IsA(self, className)
4613-
["CFrame"] = CFrame.new(-1766.20068, -3589.75195, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4613+
4614-
["CanCollide"] = false,
4614+
function GuiTextLabel:SetText(text)
4615-
["FormFactor"] = Enum.FormFactor.Symmetric,
4615+
        if text ~= self.text then
4616-
["Size"] = Vector3.new(4.03295994, 1.86592293, 3.83296204),
4616+
                self.text = text
4617-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4617+
                local text_index = 1
4618-
["TopSurface"] = Enum.SurfaceType.Smooth,
4618+
                local content_instance = self:GetContentInstance()
4619-
["Color"] = Color3.new(0.337255, 0.141176, 0.141176),
4619+
                local content_instance_size = content_instance.AbsoluteSize
4620
                local frame = Instance.new("Frame")
4621-
o317 = Create("Fire",{
4621+
                frame.BackgroundTransparency = 1
4622-
["Parent"] = o316,
4622+
                local label = Instance.new("TextLabel")
4623-
["Size"] = 30,
4623+
                label.BackgroundTransparency = 1
4624-
["Color"] = Color3.new(1, 0.815686, 0),
4624+
                label.Font = font
4625-
["Enabled"] = false,
4625+
                label.FontSize = fontSize
4626-
["Heat"] = 25,
4626+
                label.Size = UDim2.new(0, content_instance_size.X, 0, 1000)
4627-
["SecondaryColor"] = Color3.new(1, 0, 0),
4627+
                label.Text = ""
4628
                label.TextColor3 = textColor3
4629-
o318 = Create("Script",{
4629+
                label.TextTransparency = 1
4630-
["Parent"] = o317,
4630+
                label.TextWrapped = true
4631
                label.TextXAlignment = textXAlignment
4632-
table.insert(cors,coroutine.create(function()
4632+
                label.TextYAlignment = textYAlignment
4633
                label.Parent = self.guiFrame
4634-
runDummyScript(function()
4634+
                local row_length = 0
4635-
function Spread(part)
4635+
                local step_size = 256
4636-
	check = part:findFirstChild("Fire")
4636+
                for step = 1, 8 do
4637-
		if check == nil then 
4637+
                        step_size = 0.5 * step_size
4638-
	script.Parent:Clone().Parent = part
4638+
                        label.Text = string.sub(text, text_index, text_index + row_length - 1)
4639
                end
4640-
		elseif check ~= nil then
4640+
        end
4641-
	check.Size = check.Size + 1
4641+
4642-
	check.Heat = check.Heat  +1
4642+
GuiImageButton = setmetatable({}, GuiButton)
4643
GuiImageButton.__index = GuiImageButton
4644
GuiImageButton.__default = {__index = {
4645
        Image = ""
4646
}}
4647-
script.Parent.Parent.Touched:connect(Spread)
4647+
function GuiImageButton:Destroy()
4648
        GuiButton.Destroy(self)
4649
end
4650-
end,o318)
4650+
function GuiImageButton:Init(data)
4651
        GuiButton.Init(self, data)
4652-
o319 = Create("Part",{
4652+
        setmetatable(data, GuiImageButton.__default)
4653-
["Parent"] = o312,
4653+
        local content_frame = self.m_content_frame
4654-
["Material"] = Enum.Material.Grass,
4654+
        local image_label = RBXInstance.new "ImageLabel" {
4655-
["BrickColor"] = BrickColor.new("Cocoa"),
4655+
                BackgroundTransparency = 1,
4656-
["Position"] = Vector3.new(-1766.20068, -3591.35156, 1111.85254),
4656+
                Size = UDim2.new(1, 0, 1, 0)
4657-
["Anchored"] = true,
4657+
        }
4658-
["CFrame"] = CFrame.new(-1766.20068, -3591.35156, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4658+
        image_label.Parent = content_frame
4659-
["CanCollide"] = false,
4659+
        self.m_image_label = image_label
4660-
["FormFactor"] = Enum.FormFactor.Symmetric,
4660+
        self:SetImage(data.Image)
4661-
["Size"] = Vector3.new(4.03295994, 5.06592274, 1.83296204),
4661+
4662-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4662+
function GuiImageButton:IsA(className)
4663-
["TopSurface"] = Enum.SurfaceType.Smooth,
4663+
        return className == "GuiImageButton" or GuiButton.IsA(self, className)
4664-
["Color"] = Color3.new(0.337255, 0.141176, 0.141176),
4664+
4665
function GuiImageButton:SetImage(image)
4666-
o320 = Create("Fire",{
4666+
        if image ~= self.m_image then
4667-
["Parent"] = o319,
4667+
                self.m_image = image
4668-
["Size"] = 30,
4668+
                self.m_image_label.Image = image
4669-
["Color"] = Color3.new(1, 0.815686, 0),
4669+
        end    
4670-
["Enabled"] = false,
4670+
4671-
["Heat"] = 25,
4671+
GuiTextButton = setmetatable({}, GuiButton)
4672-
["SecondaryColor"] = Color3.new(1, 0, 0),
4672+
GuiTextButton.__index = GuiTextButton
4673
GuiTextButton.__default = {__index = {
4674-
o321 = Create("Script",{
4674+
        Font = Enum.Font.ArialBold,
4675-
["Parent"] = o320,
4675+
        FontSize = Enum.FontSize.Size11,
4676
        Text = "Button",
4677-
table.insert(cors,coroutine.create(function()
4677+
        TextXAlignment = Enum.TextXAlignment.Center
4678
}}
4679-
runDummyScript(function()
4679+
function GuiTextButton:Destroy()
4680-
function Spread(part)
4680+
        GuiButton.Destroy(self)
4681-
	check = part:findFirstChild("Fire")
4681+
4682-
		if check == nil then 
4682+
function GuiTextButton:GetTextBounds()
4683-
	script.Parent:Clone().Parent = part
4683+
        return self.textLabel.TextBounds
4684
end
4685-
		elseif check ~= nil then
4685+
function GuiTextButton:Init(data)
4686-
	check.Size = check.Size + 1
4686+
        GuiButton.Init(self, data)
4687-
	check.Heat = check.Heat  +1
4687+
        setmetatable(data, GuiTextButton.__default)
4688
        local contentFrame = self.m_content_frame
4689
        local mnemonicLabel = RBXInstance.new "TextLabel" {
4690
                BackgroundTransparency = 1,
4691
                Font = "ArialBold",
4692-
script.Parent.Parent.Touched:connect(Spread)
4692+
                FontSize = "Size36",
4693
                Size = UDim2.new(1, 0, 0.7, 0),
4694
                TextColor3 = Color3.new(1, 1, 1),
4695-
end,o321)
4695+
                TextStrokeColor3 = Color3.new(0, 0, 0),
4696
                TextStrokeTransparency = 0.6,
4697-
o322 = Create("Part",{
4697+
                TextWrapped = true
4698-
["Parent"] = o312,
4698+
        }
4699-
["Material"] = Enum.Material.DiamondPlate,
4699+
        local textLabel = RBXInstance.new "TextLabel" {
4700-
["BrickColor"] = BrickColor.new("Really black"),
4700+
                BackgroundTransparency = 1,
4701-
["Position"] = Vector3.new(-1766.71729, -3592.08398, 1113.85254),
4701+
                TextColor3 = Color3.new(1, 1, 1),
4702-
["Anchored"] = true,
4702+
                TextStrokeColor3 = Color3.new(0, 0, 0),
4703-
["CFrame"] = CFrame.new(-1766.71729, -3592.08398, 1113.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4703+
                TextStrokeTransparency = 0.6,
4704-
["CanCollide"] = false,
4704+
                TextWrapped = true
4705-
["FormFactor"] = Enum.FormFactor.Symmetric,
4705+
        }
4706-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
4706+
        mnemonicLabel.Parent = contentFrame
4707-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4707+
        textLabel.Parent = contentFrame
4708-
["TopSurface"] = Enum.SurfaceType.Smooth,
4708+
        self.mnemonicLabel = mnemonicLabel
4709-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4709+
        self.textLabel = textLabel
4710
        self:SetFont(data.Font)
4711-
o323 = Create("Fire",{
4711+
        self:SetFontSize(data.FontSize)
4712-
["Parent"] = o322,
4712+
        self:SetMnemonic(data.Mnemonic, true)
4713-
["Size"] = 30,
4713+
        self:SetText(data.Text)
4714-
["Color"] = Color3.new(1, 0.815686, 0),
4714+
        self:SetTextXAlignment(data.TextXAlignment)
4715-
["Enabled"] = false,
4715+
4716-
["Heat"] = 25,
4716+
function GuiTextButton:IsA(className)
4717-
["SecondaryColor"] = Color3.new(1, 0, 0),
4717+
        return className == "GuiTextButton" or GuiButton.IsA(self, className)
4718
end
4719-
o324 = Create("Script",{
4719+
function GuiTextButton:SetFont(font)
4720-
["Parent"] = o323,
4720+
        if font ~= self.font then
4721
                self.font = font
4722-
table.insert(cors,coroutine.create(function()
4722+
                self.textLabel.Font = font
4723
        end
4724-
runDummyScript(function()
4724+
4725-
function Spread(part)
4725+
function GuiTextButton:SetFontSize(fontSize)
4726-
	check = part:findFirstChild("Fire")
4726+
        if fontSize ~= self.fontSize then
4727-
		if check == nil then 
4727+
                self.fontSize = fontSize
4728-
	script.Parent:Clone().Parent = part
4728+
                self.textLabel.FontSize = fontSize
4729
        end
4730-
		elseif check ~= nil then
4730+
4731-
	check.Size = check.Size + 1
4731+
function GuiTextButton:SetMnemonic(mnemonic, forceUpdate)
4732-
	check.Heat = check.Heat  +1
4732+
        if mnemonic ~= self.mnemonic or forceUpdate then
4733
                if self.mnemonic then
4734
                        GuiService:SetMnemonic(self.mnemonic, nil)
4735
                end
4736
                if mnemonic then
4737-
script.Parent.Parent.Touched:connect(Spread)
4737+
                        GuiService:SetMnemonic(mnemonic, self)
4738
                end
4739
                self.mnemonic = mnemonic
4740-
end,o324)
4740+
                local mnemonicLabel = self.mnemonicLabel
4741
                local textLabel = self.textLabel
4742-
o325 = Create("Part",{
4742+
                if mnemonic then
4743-
["Parent"] = o312,
4743+
                        mnemonicLabel.Text = mnemonic
4744-
["Material"] = Enum.Material.DiamondPlate,
4744+
                        textLabel.Size = UDim2.new(1, 0, 0.9, 0)
4745-
["BrickColor"] = BrickColor.new("Really black"),
4745+
                        textLabel.TextYAlignment = "Bottom"
4746-
["Position"] = Vector3.new(-1766.71729, -3591.31445, 1122.85254),
4746+
                else
4747-
["Rotation"] = Vector3.new(-9.48516273, 5.05940334e-005, 1.32760613e-006),
4747+
                        mnemonicLabel.Text = ""
4748-
["Anchored"] = true,
4748+
                        textLabel.Size = UDim2.new(1, 0, 1, 0)
4749-
["CFrame"] = CFrame.new(-1766.71729, -3591.31445, 1122.85254, 1, -2.3171097e-008, 8.83032442e-007, -1.22662527e-007, 0.986328304, 0.16479218, -8.74778323e-007, -0.164792165, 0.986328304),
4749+
                        textLabel.TextYAlignment = "Center"
4750-
["CanCollide"] = false,
4750+
                end
4751-
["FormFactor"] = Enum.FormFactor.Symmetric,
4751+
        end    
4752-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
4752+
4753-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4753+
function GuiTextButton:SetText(text)
4754-
["TopSurface"] = Enum.SurfaceType.Smooth,
4754+
        if text ~= self.text then
4755-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4755+
                self.text = text
4756
                self.textLabel.Text = text
4757-
o326 = Create("Fire",{
4757+
        end    
4758-
["Parent"] = o325,
4758+
4759-
["Size"] = 30,
4759+
function GuiTextButton:SetTextXAlignment(textXAlignment)
4760-
["Color"] = Color3.new(1, 0.815686, 0),
4760+
        if textXAlignment ~= self.textXAlignment then
4761-
["Enabled"] = false,
4761+
                self.textXAlignment = textXAlignment
4762-
["Heat"] = 25,
4762+
                self.textLabel.TextXAlignment = textXAlignment
4763-
["SecondaryColor"] = Color3.new(1, 0, 0),
4763+
        end    
4764
end
4765-
o327 = Create("Script",{
4765+
GuiWindow = setmetatable({}, GuiObject)
4766-
["Parent"] = o326,
4766+
GuiWindow.__index = GuiWindow
4767
GuiWindow.__default = {__index = {
4768-
table.insert(cors,coroutine.create(function()
4768+
        Active = true,
4769
        BackgroundTransparency = 0.5,
4770-
runDummyScript(function()
4770+
        BorderSize = 4,
4771-
function Spread(part)
4771+
        BorderTransparency = 0.5,
4772-
	check = part:findFirstChild("Fire")
4772+
        Position = UDim2.new(0, 0, 0, 0),
4773-
		if check == nil then 
4773+
        Size = UDim2.new(0, 360, 0, 240),
4774-
	script.Parent:Clone().Parent = part
4774+
        Title = "Window",
4775
        TitleBarBackgroundTransparency = 0.5,
4776-
		elseif check ~= nil then
4776+
        TitleBarBorderTransparency = 1,
4777-
	check.Size = check.Size + 1
4777+
        Visible = true
4778-
	check.Heat = check.Heat  +1
4778+
}}
4779
function GuiWindow:Init(data)
4780
        GuiObject.Init(self)
4781
        setmetatable(data, GuiFrame.__default)
4782
        local title_bar = GuiTextLabel:new {
4783-
script.Parent.Parent.Touched:connect(Spread)
4783+
                BackgroundTransparency = data.TitleBarBackgroundTransparency,
4784
                BorderTransparency = data.TitleBarBackgroundTransparency,
4785
                Text = data.Title
4786-
end,o327)
4786+
        }
4787
        local content_frame = GuiFrame:new {
4788-
o328 = Create("Part",{
4788+
                Active = data.Active,
4789-
["Parent"] = o312,
4789+
                BackgroundTransparency = data.BackgroundTransparency,
4790-
["Material"] = Enum.Material.Neon,
4790+
                BorderSize = data.BorderSize,
4791-
["BrickColor"] = BrickColor.new("Really black"),
4791+
                BorderTransparency = data.BorderTransparency
4792-
["Position"] = Vector3.new(-1766.75708, -3590.54297, 1123.36755),
4792+
        }
4793-
["Rotation"] = Vector3.new(-9.48516273, 5.05940334e-005, 1.32760613e-006),
4793+
        local base_frame = RBXInstance.new "Frame" {
4794-
["Anchored"] = true,
4794+
                BackgroundTransparency = 1,
4795-
["CFrame"] = CFrame.new(-1766.75708, -3590.54297, 1123.36755, 1, -2.3171097e-008, 8.83032442e-007, -1.22662527e-007, 0.986328304, 0.16479218, -8.74778323e-007, -0.164792165, 0.986328304),
4795+
                BorderSizePixel = 0,
4796-
["CanCollide"] = false,
4796+
                Position = data.Position,
4797-
["FormFactor"] = Enum.FormFactor.Symmetric,
4797+
                Size = data.Size,
4798-
["Size"] = Vector3.new(0.200000003, 2.1500001, 11.1029625),
4798+
                Visible = data.Visible
4799-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4799+
        }
4800-
["TopSurface"] = Enum.SurfaceType.Smooth,
4800+
        self.m_base_frame = base_frame
4801-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4801+
        self.m_content_frame = content_frame
4802
        self.m_title_bar = title_bar
4803-
o329 = Create("Fire",{
4803+
4804-
["Parent"] = o328,
4804+
function GuiWindow:IsA(className)
4805-
["Size"] = 30,
4805+
        return className == "GuiWindow" or GuiObject.IsA(self, className)
4806-
["Color"] = Color3.new(1, 0.815686, 0),
4806+
4807-
["Enabled"] = false,
4807+
GuiScrollFrame = setmetatable({}, GuiFrame)
4808-
["Heat"] = 25,
4808+
GuiScrollFrame.__index = GuiScrollFrame
4809-
["SecondaryColor"] = Color3.new(1, 0, 0),
4809+
GuiScrollFrame.__default = {__index = {
4810
        ContentHeight = 0,
4811-
o330 = Create("Script",{
4811+
        ScrollBarColor = Color3.new(1, 1, 1)
4812-
["Parent"] = o329,
4812+
}}
4813
function GuiScrollFrame:Destroy()
4814-
table.insert(cors,coroutine.create(function()
4814+
        self.m_scroll_bar:Destroy()
4815
        GuiFrame.Destroy(self)
4816-
runDummyScript(function()
4816+
4817-
function Spread(part)
4817+
function GuiScrollFrame:GetContentInstance()
4818-
	check = part:findFirstChild("Fire")
4818+
        return self.m_scroll_frame or GuiFrame.GetContentInstance(self)
4819-
		if check == nil then 
4819+
4820-
	script.Parent:Clone().Parent = part
4820+
function GuiScrollFrame:Init(data)
4821
        GuiFrame.Init(self, data)
4822-
		elseif check ~= nil then
4822+
        setmetatable(data, GuiScrollFrame.__default)
4823-
	check.Size = check.Size + 1
4823+
        local scroll_pane = RBXInstance.new "Frame" {
4824-
	check.Heat = check.Heat  +1
4824+
                BackgroundColor3 = Color3.new(1, 1, 1),
4825
                BackgroundTransparency = 0.8,
4826
                BorderSizePixel = 0,
4827
                Position = UDim2.new(1, -20, 0, 0),
4828
                Size = UDim2.new(0, 20, 1, 0),
4829-
script.Parent.Parent.Touched:connect(Spread)
4829+
                Parent = self.m_content_frame
4830
        }
4831
        local scroll_bar = GuiFrame:new {
4832-
end,o330)
4832+
                Active = true,
4833
                BackgroundTransparency = 0.6,
4834-
o331 = Create("Part",{
4834+
                BorderTransparency = 0.6,
4835-
["Parent"] = o312,
4835+
                Color = data.ScrollBarColor,
4836-
["Material"] = Enum.Material.DiamondPlate,
4836+
                Parent = self
4837-
["BrickColor"] = BrickColor.new("Really black"),
4837+
        }
4838-
["Position"] = Vector3.new(-1766.71729, -3592.08398, 1106.98718),
4838+
        local scroll_frame = RBXInstance.new "Frame" {
4839-
["Rotation"] = Vector3.new(-180, -3.41509462e-006, -180),
4839+
                BackgroundTransparency = 1,
4840-
["Anchored"] = true,
4840+
                Parent = self.m_content_frame
4841-
["CFrame"] = CFrame.new(-1766.71729, -3592.08398, 1106.98718, -1, 0, -5.96046448e-008, 0, 1, 0, 5.96046448e-008, 0, -1),
4841+
        }
4842-
["CanCollide"] = false,
4842+
        self.m_scroll_bar = scroll_bar
4843-
["FormFactor"] = Enum.FormFactor.Symmetric,
4843+
        self.m_scroll_frame = scroll_frame
4844-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
4844+
        self.m_scroll_pane = scroll_pane
4845-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4845+
        self.m_scroll_position = 0
4846-
["TopSurface"] = Enum.SurfaceType.Smooth,
4846+
        self.m_updating_content_height = false
4847-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4847+
        self:SetContentHeight(data.ContentHeight)
4848
        self:UpdateScrollPosition()
4849-
o332 = Create("Fire",{
4849+
        self.m_scroll_bar.DragBegin:connect(function()
4850-
["Parent"] = o331,
4850+
                self.m_scroll_drag_total = Vector2.new()
4851-
["Size"] = 30,
4851+
                self.m_scroll_initial_position = self.m_scroll_position
4852-
["Color"] = Color3.new(1, 0.815686, 0),
4852+
        end)
4853-
["Enabled"] = false,
4853+
        self.m_scroll_bar.DragMove:connect(function(offset)
4854-
["Heat"] = 25,
4854+
                self.m_scroll_drag_total = self.m_scroll_drag_total + offset
4855-
["SecondaryColor"] = Color3.new(1, 0, 0),
4855+
                local absolute_height = self:GetAbsoluteSize().Y - 2 * self.m_border_size
4856
                if absolute_height ~= 0 then
4857-
o333 = Create("Script",{
4857+
                        local content_height = math.max(self.m_content_height, absolute_height)
4858-
["Parent"] = o332,
4858+
                        local scroll_space = 1 - absolute_height / content_height
4859
                        self:Scroll(self.m_scroll_initial_position + self.m_scroll_drag_total.Y * (content_height / absolute_height - 1) / scroll_space)
4860-
table.insert(cors,coroutine.create(function()
4860+
                end
4861
        end)
4862-
runDummyScript(function()
4862+
4863-
function Spread(part)
4863+
function GuiScrollFrame:IsA(className)
4864-
	check = part:findFirstChild("Fire")
4864+
        return className == "GuiScrollFrame" or GuiFrame.IsA(self, className)
4865-
		if check == nil then 
4865+
4866-
	script.Parent:Clone().Parent = part
4866+
function GuiScrollFrame:Scroll(position)
4867
        position = math.min(math.max(position, 0), self.m_content_height - (self:GetAbsoluteSize().Y - 2 * self.m_border_size))
4868-
		elseif check ~= nil then
4868+
        if position ~= self.m_scroll_position then
4869-
	check.Size = check.Size + 1
4869+
                self.m_scroll_position = position
4870-
	check.Heat = check.Heat  +1
4870+
                self:UpdateScrollPosition()
4871
        end
4872
end
4873
function GuiScrollFrame:SetContentHeight(height)
4874
        if height ~= self.m_content_height then
4875-
script.Parent.Parent.Touched:connect(Spread)
4875+
                local prev_height = self.m_content_height
4876
                self.m_content_height = height
4877
                if not self.m_updating_content_height then
4878-
end,o333)
4878+
                        self.m_updating_content_height = true
4879
                        coroutine.resume(coroutine.create(function()
4880-
o334 = Create("Part",{
4880+
                                local success, message = ypcall(self.SetContentHeightImpl1, self, prev_height)
4881-
["Parent"] = o312,
4881+
                                if not success then
4882-
["Material"] = Enum.Material.DiamondPlate,
4882+
                                        Logger.printf("Severe", "Error in GuiScrollFrame:SetContentHeight(%s): %s", Utility.ToString(height), message)
4883-
["BrickColor"] = BrickColor.new("Really black"),
4883+
                                end
4884-
["Position"] = Vector3.new(-1766.71704, -3591.31445, 1097.98718),
4884+
                        end))
4885-
["Rotation"] = Vector3.new(-170.514847, -5.33684324e-005, -180),
4885+
                end
4886-
["Anchored"] = true,
4886+
        end
4887-
["CFrame"] = CFrame.new(-1766.71704, -3591.31445, 1097.98718, -1, 3.1261262e-008, -9.31454849e-007, -1.22662556e-007, 0.986328304, 0.16479212, 9.2387188e-007, 0.16479212, -0.986328363),
4887+
4888-
["CanCollide"] = false,
4888+
function GuiScrollFrame:SetContentHeightImpl1(prev_height)
4889-
["FormFactor"] = Enum.FormFactor.Symmetric,
4889+
        RunService.RenderStepped:wait()
4890-
["Size"] = Vector3.new(1, 0.800000012, 9.83296204),
4890+
        self.m_updating_content_height = false
4891-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4891+
        local height = self.m_content_height
4892-
["TopSurface"] = Enum.SurfaceType.Smooth,
4892+
        self.m_scroll_frame.Size = UDim2.new(1, -20, 0, height)
4893-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4893+
        if prev_height and prev_height ~= 0 then
4894
                local absolute_height = self:GetAbsoluteSize().Y - 2 * self.m_border_size
4895-
o335 = Create("Fire",{
4895+
                if self.m_scroll_position == prev_height - absolute_height then
4896-
["Parent"] = o334,
4896+
                        self.m_scroll_position = height - absolute_height
4897-
["Size"] = 30,
4897+
                else
4898-
["Color"] = Color3.new(1, 0.815686, 0),
4898+
                        self.m_scroll_position = height * self.m_scroll_position / prev_height
4899-
["Enabled"] = false,
4899+
                end
4900-
["Heat"] = 25,
4900+
        end
4901-
["SecondaryColor"] = Color3.new(1, 0, 0),
4901+
        self:UpdateScrollPosition()
4902
end
4903-
o336 = Create("Script",{
4903+
function GuiScrollFrame:UpdateScrollPosition()
4904-
["Parent"] = o335,
4904+
        local absolute_height = self:GetAbsoluteSize().Y - 2 * self.m_border_size
4905
        if absolute_height == 0 then
4906-
table.insert(cors,coroutine.create(function()
4906+
                absolute_height = self.m_content_height
4907
        end
4908-
runDummyScript(function()
4908+
        local scroll_bar = self.m_scroll_bar
4909-
function Spread(part)
4909+
        local scroll_frame = self.m_scroll_frame
4910-
	check = part:findFirstChild("Fire")
4910+
        local scroll_pane = self.m_scroll_pane
4911-
		if check == nil then 
4911+
        local content_height = math.max(self.m_content_height, absolute_height)
4912-
	script.Parent:Clone().Parent = part
4912+
        if absolute_height == content_height then
4913
                scroll_frame.Position = UDim2.new(0, 0, 0, 0)
4914-
		elseif check ~= nil then
4914+
                scroll_frame.Size = UDim2.new(1, 0, 1, 0)
4915-
	check.Size = check.Size + 1
4915+
                scroll_bar:SetVisible(false)
4916-
	check.Heat = check.Heat  +1
4916+
                scroll_pane.Visible = false
4917
        else
4918
                local contentScale = content_height / absolute_height
4919
                local scroll_space = 1 - absolute_height / content_height
4920
                local scroll_position = self.m_scroll_position
4921-
script.Parent.Parent.Touched:connect(Spread)
4921+
                scroll_frame.Position = UDim2.new(0, 0, 0, -scroll_position)
4922
                scroll_bar:SetPosition(UDim2.new(1, -20, scroll_position / (content_height - absolute_height) * scroll_space, 0))
4923
                scroll_bar:SetSize(UDim2.new(0, 20, absolute_height / content_height, 0))
4924-
end,o336)
4924+
                scroll_bar:SetVisible(true)
4925
                scroll_pane.Visible = true
4926-
o337 = Create("Part",{
4926+
        end
4927-
["Parent"] = o312,
4927+
4928-
["Material"] = Enum.Material.Neon,
4928+
GuiMenu = setmetatable({}, GuiFrame)
4929-
["BrickColor"] = BrickColor.new("Really black"),
4929+
GuiMenu.__index = GuiMenu
4930-
["Position"] = Vector3.new(-1766.67725, -3590.54297, 1097.47217),
4930+
GuiMenu.__default = {__index = {
4931-
["Rotation"] = Vector3.new(-170.514847, -5.33684324e-005, -180),
4931+
        VerticalSpacing = 18
4932-
["Anchored"] = true,
4932+
}}
4933-
["CFrame"] = CFrame.new(-1766.67725, -3590.54297, 1097.47217, -1, 3.1261262e-008, -9.31454849e-007, -1.22662556e-007, 0.986328304, 0.16479212, 9.2387188e-007, 0.16479212, -0.986328363),
4933+
function GuiMenu:AddItem(text, onClick, options)
4934-
["CanCollide"] = false,
4934+
        local frameSize = self:GetSize()
4935-
["FormFactor"] = Enum.FormFactor.Symmetric,
4935+
        local frameHeight = frameSize.Y.Offset - self.m_border_size * 2
4936-
["Size"] = Vector3.new(0.200000003, 2.1500001, 11.1029625),
4936+
        local verticalSpacing = self.verticalSpacing
4937-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4937+
        local properties = {
4938-
["TopSurface"] = Enum.SurfaceType.Smooth,
4938+
                BackgroundTransparency = 0.75,
4939-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4939+
                BorderSize = 0,
4940
                BorderTransparency = 1,
4941-
o338 = Create("Fire",{
4941+
                Color = (#self.menuItems % 2 == 1) and Color3.new(0.25, 0.25, 0.25) or Color3.new(0, 0, 0),
4942-
["Parent"] = o337,
4942+
                FontSize = Enum.FontSize.Size12,
4943-
["Size"] = 30,
4943+
                Position = UDim2.new(0, 0, 0, frameHeight),
4944-
["Color"] = Color3.new(1, 0.815686, 0),
4944+
                Size = UDim2.new(1, 0, 0, verticalSpacing),
4945-
["Enabled"] = false,
4945+
                Text = text,
4946-
["Heat"] = 25,
4946+
                Parent = self
4947-
["SecondaryColor"] = Color3.new(1, 0, 0),
4947+
        }
4948
        if options then
4949-
o339 = Create("Script",{
4949+
                for key, value in pairs(options) do
4950-
["Parent"] = o338,
4950+
                        properties[key] = value
4951
                end
4952-
table.insert(cors,coroutine.create(function()
4952+
        end
4953
        local menuItem = GuiTextButton:new(properties)
4954-
runDummyScript(function()
4954+
        if onClick then
4955-
function Spread(part)
4955+
                menuItem.Activated:connect(function()
4956-
	check = part:findFirstChild("Fire")
4956+
                        if not onClick(text, self) then
4957-
		if check == nil then 
4957+
                                self:Destroy()
4958-
	script.Parent:Clone().Parent = part
4958+
                        end
4959
                end)
4960-
		elseif check ~= nil then
4960+
        end
4961-
	check.Size = check.Size + 1
4961+
        self.menuItems[#self.menuItems + 1] = menuItem
4962-
	check.Heat = check.Heat  +1
4962+
        self:SetSize(frameSize + UDim2.new(0, 0, 0, verticalSpacing))
4963
end
4964
function GuiMenu:ClearItems()
4965
        local menuItems = self.menuItems
4966
        for _, item in ipairs(menuItems) do
4967-
script.Parent.Parent.Touched:connect(Spread)
4967+
                menuItems[item] = nil
4968
                item:Destroy()
4969
        end
4970-
end,o339)
4970+
        local frameSize = self:GetSize()
4971
        self:SetSize(frameSize + UDim2.new(0, 0, 0, self.m_border_size * 2 - frameSize.Y.Offset))
4972-
o340 = Create("Part",{
4972+
4973-
["Name"] = "Armor",
4973+
function GuiMenu:Destroy()
4974-
["Parent"] = o312,
4974+
        self:ClearItems()
4975-
["Material"] = Enum.Material.Slate,
4975+
        GuiFrame.Destroy(self)
4976-
["BrickColor"] = BrickColor.new("Really black"),
4976+
4977-
["Position"] = Vector3.new(-1766.55811, -3587.30859, 1111.36255),
4977+
function GuiMenu:Init(data)
4978-
["Anchored"] = true,
4978+
        GuiFrame.Init(self, data)
4979-
["CFrame"] = CFrame.new(-1766.55811, -3587.30859, 1111.36255, 1, 0, 0, 0, 1, 0, 0, 0, 1),
4979+
        setmetatable(data, GuiMenu.__default)
4980-
["CanCollide"] = false,
4980+
        self.menuItems = {}
4981-
["FormFactor"] = Enum.FormFactor.Symmetric,
4981+
        self.verticalSpacing = data.VerticalSpacing
4982-
["Size"] = Vector3.new(3.99000001, 2.0999999, 4.85296202),
4982+
4983-
["BottomSurface"] = Enum.SurfaceType.Smooth,
4983+
function GuiMenu:IsA(className)
4984-
["TopSurface"] = Enum.SurfaceType.Smooth,
4984+
        return className == "GuiMenu" or GuiFrame.IsA(self, className)
4985-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
4985+
4986
GuiTextList = setmetatable({}, GuiScrollFrame)
4987-
o341 = Create("Fire",{
4987+
GuiTextList.__index = GuiTextList
4988-
["Parent"] = o340,
4988+
GuiTextList.__default = {__index = {
4989-
["Size"] = 30,
4989+
}}
4990-
["Color"] = Color3.new(1, 0.815686, 0),
4990+
function GuiTextList:AddItem(text, options)
4991-
["Enabled"] = false,
4991+
        local properties = {
4992-
["Heat"] = 25,
4992+
                BackgroundTransparency = 1,
4993-
["SecondaryColor"] = Color3.new(1, 0, 0),
4993+
                Font = "ArialBold",
4994
                FontSize = "Size12",
4995-
o342 = Create("Script",{
4995+
                Position = UDim2.new(0, 4, 0, self.m_content_height),
4996-
["Parent"] = o341,
4996+
                Size = UDim2.new(1, -8, 0, 12),
4997
                Text = tostring(text),
4998-
table.insert(cors,coroutine.create(function()
4998+
                TextColor3 = Color3.new(1, 1, 1),
4999
                TextStrokeTransparency = 0.6,
5000-
runDummyScript(function()
5000+
                TextWrapped = true,
5001-
function Spread(part)
5001+
                TextXAlignment = "Left",
5002-
	check = part:findFirstChild("Fire")
5002+
                Parent = self:GetContentInstance()
5003-
		if check == nil then 
5003+
        }
5004-
	script.Parent:Clone().Parent = part
5004+
        if options then
5005
                for key, value in pairs(options) do
5006-
		elseif check ~= nil then
5006+
                        properties[key] = value
5007-
	check.Size = check.Size + 1
5007+
                end
5008-
	check.Heat = check.Heat  +1
5008+
        end
5009
        local textLabel = RBXInstance.new "TextLabel" (properties)
5010
        textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextBounds.Y)
5011
        self.listItems[#self.listItems + 1] = textLabel
5012
        self:SetContentHeight(self.m_content_height + textLabel.TextBounds.Y)
5013-
script.Parent.Parent.Touched:connect(Spread)
5013+
5014
function GuiTextList:ClearItems()
5015
        local listItems = self.listItems
5016-
end,o342)
5016+
        for _, item in ipairs(listItems) do
5017
                listItems[item] = nil
5018-
o343 = Create("Part",{
5018+
                item:Destroy()
5019-
["Name"] = "Armor",
5019+
        end
5020-
["Parent"] = o312,
5020+
        self:SetContentHeight(0)
5021-
["Material"] = Enum.Material.Slate,
5021+
5022-
["BrickColor"] = BrickColor.new("Really black"),
5022+
function GuiTextList:Destroy()
5023-
["Position"] = Vector3.new(-1766.87305, -3587.26367, 1111.39258),
5023+
        self:ClearItems()
5024-
["Anchored"] = true,
5024+
        GuiScrollFrame.Destroy(self)
5025-
["CFrame"] = CFrame.new(-1766.87305, -3587.26367, 1111.39258, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5025+
5026-
["CanCollide"] = false,
5026+
function GuiTextList:Init(data)
5027-
["FormFactor"] = Enum.FormFactor.Symmetric,
5027+
        GuiScrollFrame.Init(self, data)
5028-
["Size"] = Vector3.new(4.93999958, 3.38999987, 3.0129621),
5028+
        self.listItems = {}
5029-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5029+
5030-
["TopSurface"] = Enum.SurfaceType.Smooth,
5030+
function GuiTextList:IsA(className)
5031-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5031+
        return className == "GuiTextList" or GuiScrollFrame.IsA(self, className)
5032
end
5033-
o344 = Create("Fire",{
5033+
GuiNetworkList = setmetatable({}, GuiTextList)
5034-
["Parent"] = o343,
5034+
GuiNetworkList.__index = GuiNetworkList
5035-
["Size"] = 30,
5035+
function GuiNetworkList:AddItem(systemTime, idleTime, userName, isNil)
5036-
["Color"] = Color3.new(1, 0.815686, 0),
5036+
        local frame = GuiFrame:new {
5037-
["Enabled"] = false,
5037+
                BackgroundTransparency = 1,
5038-
["Heat"] = 25,
5038+
                BorderSize = 0,
5039-
["SecondaryColor"] = Color3.new(1, 0, 0),
5039+
                BorderTransparency = 1,
5040
                Position = UDim2.new(0, 4, 0, self.m_content_height),
5041-
o345 = Create("Script",{
5041+
                Size = UDim2.new(1, -8, 0, 14),
5042-
["Parent"] = o344,
5042+
        }
5043
        local systemTimeColor
5044-
table.insert(cors,coroutine.create(function()
5044+
        if string.sub(systemTime, 1, 1) == "?" then
5045
                systemTimeColor = Color3.new(1, 0.75, 0.75)
5046-
runDummyScript(function()
5046+
        else
5047-
function Spread(part)
5047+
                systemTimeColor = Color3.new(0.75, 0.75, 1)
5048-
	check = part:findFirstChild("Fire")
5048+
        end
5049-
		if check == nil then 
5049+
        local systemTimeLabel = RBXInstance.new "TextLabel" {
5050-
	script.Parent:Clone().Parent = part
5050+
                BackgroundTransparency = 1,
5051
                Font = "ArialBold",
5052-
		elseif check ~= nil then
5052+
                FontSize = "Size12",
5053-
	check.Size = check.Size + 1
5053+
                Position = UDim2.new(0, 0, 0, 0),
5054-
	check.Heat = check.Heat  +1
5054+
                Size = UDim2.new(0, 50, 1, 0),
5055
                Text = systemTime,
5056
                TextColor3 = systemTimeColor,
5057
                TextStrokeTransparency = 0.6,
5058
                TextXAlignment = "Left",
5059-
script.Parent.Parent.Touched:connect(Spread)
5059+
                Parent = frame:GetContentInstance()
5060
        }
5061
        local idle_time_color
5062-
end,o345)
5062+
        if string.sub(idleTime, 1, 1) == "0" then
5063
                idle_time_color = Color3.new(1, 1, 1)
5064-
o346 = Create("Part",{
5064+
        else
5065-
["Name"] = "Armor",
5065+
                idle_time_color = Color3.new(1, 0.75, 0.75)
5066-
["Parent"] = o312,
5066+
        end
5067-
["Material"] = Enum.Material.Slate,
5067+
        local idleTimeLabel = RBXInstance.new "TextLabel" {
5068-
["BrickColor"] = BrickColor.new("Really black"),
5068+
                BackgroundTransparency = 1,
5069-
["Position"] = Vector3.new(-1768.47095, -3586.81836, 1111.39258),
5069+
                Font = "ArialBold",
5070-
["Rotation"] = Vector3.new(-4.61960044e-005, -2.27979817e-005, 13.9343042),
5070+
                FontSize = "Size12",
5071-
["Anchored"] = true,
5071+
                Position = UDim2.new(0, 40, 0, 0),
5072-
["CFrame"] = CFrame.new(-1768.47095, -3586.81836, 1111.39258, 0.970572472, -0.240809187, -3.97899839e-007, 0.240809187, 0.970572472, 8.0627234e-007, 1.92032843e-007, -8.78363664e-007, 1),
5072+
                Size = UDim2.new(0, 45, 1, 0),
5073-
["CanCollide"] = false,
5073+
                Text = idleTime,
5074-
["FormFactor"] = Enum.FormFactor.Symmetric,
5074+
                TextColor3 = idle_time_color,
5075-
["Size"] = Vector3.new(5.59999943, 1.13999987, 1.59296203),
5075+
                TextStrokeTransparency = 0.6,
5076-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5076+
                TextXAlignment = "Right",
5077-
["TopSurface"] = Enum.SurfaceType.Smooth,
5077+
                Parent = frame:GetContentInstance()
5078-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5078+
        }
5079
        local userNameLabel = GuiTextButton:new {
5080-
o347 = Create("Fire",{
5080+
                AutoButtonColor = false,
5081-
["Parent"] = o346,
5081+
                BackgroundTransparency = 1,
5082-
["Size"] = 30,
5082+
                BorderSize = 0,
5083-
["Color"] = Color3.new(1, 0.815686, 0),
5083+
                BorderTransparency = 1,
5084-
["Enabled"] = false,
5084+
                Font = Enum.Font.SourceSansBold,
5085-
["Heat"] = 25,
5085+
                FontSize = Enum.FontSize.Size14,
5086-
["SecondaryColor"] = Color3.new(1, 0, 0),
5086+
                Position = UDim2.new(0, 98, 0, 0),
5087
                Size = UDim2.new(1, -98, 1, 0),
5088-
o348 = Create("Script",{
5088+
                TextXAlignment = Enum.TextXAlignment.Left,
5089-
["Parent"] = o347,
5089+
                Text = userName,
5090
                Parent = frame
5091-
table.insert(cors,coroutine.create(function()
5091+
        }
5092
        frame:SetParent(self)
5093-
runDummyScript(function()
5093+
        local userNameWidth = userNameLabel:GetTextBounds().X
5094-
function Spread(part)
5094+
        userNameLabel:SetSize(UDim2.new(0, userNameWidth + 4, 1, 0))
5095-
	check = part:findFirstChild("Fire")
5095+
        if isNil then
5096-
		if check == nil then 
5096+
                local isNilLabel = RBXInstance.new "TextLabel" {
5097-
	script.Parent:Clone().Parent = part
5097+
                        BackgroundTransparency = 1,
5098
                        Font = "SourceSans",
5099-
		elseif check ~= nil then
5099+
                        FontSize = "Size14",
5100-
	check.Size = check.Size + 1
5100+
                        Position = UDim2.new(0, 100 + userNameWidth + 8, 0, 0),
5101-
	check.Heat = check.Heat  +1
5101+
                        Size = UDim2.new(0, 50, 1, 0),
5102
                        Text = "(nil)",
5103
                        TextColor3 = Color3.new(1, 0.4, 0.4),
5104
                        TextStrokeTransparency = 0.6,
5105
                        TextXAlignment = "Left",
5106-
script.Parent.Parent.Touched:connect(Spread)
5106+
                        Parent = frame:GetContentInstance()
5107
                }
5108
        end
5109-
end,o348)
5109+
        self.listItems[#self.listItems + 1] = frame
5110
        self:SetContentHeight(self.m_content_height + 14)
5111-
o349 = Create("Part",{
5111+
5112-
["Name"] = "Armor",
5112+
function GuiNetworkList:IsA(className)
5113-
["Parent"] = o312,
5113+
        return className == "GuiNetworkList" or GuiTextList.IsA(self, className)
5114-
["Material"] = Enum.Material.Slate,
5114+
5115-
["BrickColor"] = BrickColor.new("Really black"),
5115+
GuiTextOutput = setmetatable({}, GuiScrollFrame)
5116-
["Position"] = Vector3.new(-1771.11182, -3587.38672, 1111.15259),
5116+
GuiTextOutput.__index = GuiTextOutput
5117-
["Rotation"] = Vector3.new(0.000526479387, -6.7576475e-005, -11.3504553),
5117+
GuiTextOutput.__default = {__index = {
5118-
["Anchored"] = true,
5118+
        DisplayMaxLines = 120,
5119-
["CFrame"] = CFrame.new(-1771.11182, -3587.38672, 1111.15259, 0.980441749, 0.19680962, -1.17943193e-006, -0.19680962, 0.980441749, -9.18879869e-006, -6.52079677e-007, 9.24120559e-006, 1),
5119+
        DisplayWidth = 0
5120-
["CanCollide"] = false,
5120+
}}
5121-
["FormFactor"] = Enum.FormFactor.Symmetric,
5121+
function GuiTextOutput:Init(data)
5122-
["Size"] = Vector3.new(0.200000003, 4.76999998, 3.39296198),
5122+
        GuiScrollFrame.Init(self, data)
5123-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5123+
        setmetatable(data, GuiTextOutput.__default)
5124-
["TopSurface"] = Enum.SurfaceType.Smooth,
5124+
        self.displayMaxLines = data.DisplayMaxLines
5125-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5125+
        self.displayWidth = data.DisplayWidth
5126
        self.displayItems = {}
5127-
o350 = Create("Fire",{
5127+
        self:SetBackgroundTransparency(0)
5128-
["Parent"] = o349,
5128+
        self:SetColor(Color3.new(1, 1, 1))
5129-
["Size"] = 30,
5129+
        self.m_scroll_pane.BackgroundColor3 = Color3.new(0.5, 0.5, 0.5)
5130-
["Color"] = Color3.new(1, 0.815686, 0),
5130+
5131-
["Enabled"] = false,
5131+
function GuiTextOutput:IsA(className)
5132-
["Heat"] = 25,
5132+
        return className == "GuiTextOutput" or GuiScrollFrame.IsA(self, className)
5133-
["SecondaryColor"] = Color3.new(1, 0, 0),
5133+
5134
function GuiTextOutput:Print(...)
5135-
o351 = Create("Script",{
5135+
        self:PrintFormat(nil, ...)
5136-
["Parent"] = o350,
5136+
5137
function GuiTextOutput:PrintFormat(options, ...)
5138-
table.insert(cors,coroutine.create(function()
5138+
        local buffer = {}
5139
        local args = {...}
5140-
runDummyScript(function()
5140+
        local first = true
5141-
function Spread(part)
5141+
        for i = 1, select("#", ...) do
5142-
	check = part:findFirstChild("Fire")
5142+
                buffer[i] = tostring(args[i])
5143-
		if check == nil then 
5143+
        end
5144-
	script.Parent:Clone().Parent = part
5144+
        message = Utility.BlockRobloxFilter(table.concat(buffer, "\t"))
5145
        local properties = {
5146-
		elseif check ~= nil then
5146+
                BackgroundTransparency = 1,
5147-
	check.Size = check.Size + 1
5147+
                Font = "ArialBold",
5148-
	check.Heat = check.Heat  +1
5148+
                FontSize = "Size12",
5149
                Position = UDim2.new(0, 4, 0, self.m_content_height),
5150
                Text = message,
5151
                TextColor3 = Color3.new(1, 1, 1),
5152
                TextWrapped = true,
5153-
script.Parent.Parent.Touched:connect(Spread)
5153+
                TextXAlignment = "Left",
5154
                TextYAlignment = "Bottom",
5155
                Parent = self:GetContentInstance()
5156-
end,o351)
5156+
        }
5157
        if options then
5158-
o352 = Create("Part",{
5158+
                for key, value in pairs(options) do
5159-
["Name"] = "Armor",
5159+
                        properties[key] = value
5160-
["Parent"] = o312,
5160+
                end
5161-
["Material"] = Enum.Material.Slate,
5161+
        end
5162-
["BrickColor"] = BrickColor.new("Really black"),
5162+
        local textBounds = GuiService:GetTextBounds(message, properties.Font, properties.FontSize, properties.TextXAlignment, properties.TextYAlignment,
5163-
["Position"] = Vector3.new(-1770.04199, -3593.6167, 1111.48254),
5163+
 
5164-
["Rotation"] = Vector3.new(-4.61960044e-005, -2.27979817e-005, 13.9343042),
5164+
self.displayWidth - 20)
5165-
["Anchored"] = true,
5165+
        local textHeight = textBounds.Y
5166-
["CFrame"] = CFrame.new(-1770.04199, -3593.6167, 1111.48254, 0.970572472, -0.240809187, -3.97899839e-007, 0.240809187, 0.970572472, 8.0627234e-007, 1.92032843e-007, -8.78363664e-007, 1),
5166+
        properties.Size = UDim2.new(0, self.displayWidth - 8, 0, textBounds.Y)
5167-
["CanCollide"] = false,
5167+
        local textLabel = RBXInstance.new "TextLabel" (properties)
5168-
["FormFactor"] = Enum.FormFactor.Symmetric,
5168+
        self.displayItems[#self.displayItems + 1] = textLabel
5169-
["Size"] = Vector3.new(0.200000003, 4.76999998, 3.39296198),
5169+
        local maxLines = self.displayMaxLines
5170-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5170+
        local maxHeight = maxLines * 12
5171-
["TopSurface"] = Enum.SurfaceType.Smooth,
5171+
        local newHeight = self.m_content_height + textHeight
5172-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5172+
        if newHeight > maxHeight then
5173
                local offset = 0
5174-
o353 = Create("Fire",{
5174+
                local newList = {}
5175-
["Parent"] = o352,
5175+
                local oldList = self.displayItems
5176-
["Size"] = 30,
5176+
                for index, child in ipairs(oldList) do
5177-
["Color"] = Color3.new(1, 0.815686, 0),
5177+
                        local childOffset = child.Size.Y.Offset
5178-
["Enabled"] = false,
5178+
                        if newHeight > maxHeight then
5179-
["Heat"] = 25,
5179+
                                offset = offset + childOffset
5180-
["SecondaryColor"] = Color3.new(1, 0, 0),
5180+
                                newHeight = newHeight - childOffset
5181
                                child:Destroy()
5182-
o354 = Create("Script",{
5182+
                        else
5183-
["Parent"] = o353,
5183+
                                child.Position = child.Position - UDim2.new(0, 0, 0, offset)
5184
                                newList[#newList + 1] = child
5185-
table.insert(cors,coroutine.create(function()
5185+
                        end
5186
                end
5187-
runDummyScript(function()
5187+
                self.displayItems = newList
5188-
function Spread(part)
5188+
        end
5189-
	check = part:findFirstChild("Fire")
5189+
        self:SetContentHeight(newHeight)
5190-
		if check == nil then 
5190+
5191-
	script.Parent:Clone().Parent = part
5191+
GuiChatLog = setmetatable({}, GuiScrollFrame)
5192
GuiChatLog.__index = GuiChatLog
5193-
		elseif check ~= nil then
5193+
GuiChatLog.__default = {__index = {
5194-
	check.Size = check.Size + 1
5194+
        DisplayMaxLines = 200,
5195-
	check.Heat = check.Heat  +1
5195+
        DisplayWidth = 0,
5196
}}
5197
function GuiChatLog:Chat(speaker, message)
5198
        local speaker_color = AdvancedGUI.GenerateChatColor(speaker)
5199
        speaker = Utility.BlockRobloxFilter(speaker)
5200-
script.Parent.Parent.Touched:connect(Spread)
5200+
        message = "\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t" .. Utility.BlockRobloxFilter(message)
5201
        local timestamp = Utility.GetTimestamp()
5202
        local textBounds = GuiService:GetTextBounds(message, "ArialBold", "Size12", "Left", "Bottom", self.displayWidth - 8)
5203-
end,o354)
5203+
        local textHeight = math.max(math.min(textBounds.Y, 36), 12)
5204
        local message_frame = RBXInstance.new "Frame" {
5205-
o355 = Create("Part",{
5205+
                BackgroundTransparency = 1,
5206-
["Name"] = "Armor",
5206+
                Position = UDim2.new(0, 0, 0, self.m_content_height),
5207-
["Parent"] = o312,
5207+
                Size = UDim2.new(0, self.displayWidth, 0, textHeight),
5208-
["Material"] = Enum.Material.Slate,
5208+
                Parent = self:GetContentInstance()
5209-
["BrickColor"] = BrickColor.new("Really black"),
5209+
        }
5210-
["Position"] = Vector3.new(-1767.40088, -3593.04834, 1111.72253),
5210+
        local timestamp_label = RBXInstance.new "TextLabel" {
5211-
["Rotation"] = Vector3.new(-4.61960044e-005, -2.27979817e-005, 13.9343042),
5211+
                BackgroundTransparency = 1,
5212-
["Anchored"] = true,
5212+
                Font = "ArialBold",
5213-
["CFrame"] = CFrame.new(-1767.40088, -3593.04834, 1111.72253, 0.970572472, -0.240809187, -3.97899839e-007, 0.240809187, 0.970572472, 8.0627234e-007, 1.92032843e-007, -8.78363664e-007, 1),
5213+
                FontSize = "Size12",
5214-
["CanCollide"] = false,
5214+
                Position = UDim2.new(0, 4, 0, 0),
5215-
["FormFactor"] = Enum.FormFactor.Symmetric,
5215+
                Size = UDim2.new(1, -8, 0, 12),
5216-
["Size"] = Vector3.new(5.59999943, 1.13999987, 1.59296203),
5216+
                Text = timestamp,
5217-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5217+
                TextColor3 = Color3.new(0.75, 0.75, 0.75),
5218-
["TopSurface"] = Enum.SurfaceType.Smooth,
5218+
                TextStrokeTransparency = 0.6,
5219-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5219+
                TextWrapped = true,
5220
                TextXAlignment = "Left",
5221-
o356 = Create("Fire",{
5221+
                Parent = message_frame
5222-
["Parent"] = o355,
5222+
        }
5223-
["Size"] = 30,
5223+
        local speaker_label = RBXInstance.new "TextLabel" {
5224-
["Color"] = Color3.new(1, 0.815686, 0),
5224+
                BackgroundTransparency = 1,
5225-
["Enabled"] = false,
5225+
                Font = "ArialBold",
5226-
["Heat"] = 25,
5226+
                FontSize = "Size12",
5227-
["SecondaryColor"] = Color3.new(1, 0, 0),
5227+
                Position = UDim2.new(0, 64, 0, 0),
5228
                Size = UDim2.new(0, 100, 0, 12),
5229-
o357 = Create("Script",{
5229+
                Text = speaker,
5230-
["Parent"] = o356,
5230+
                TextColor3 = speaker_color,
5231
                TextStrokeTransparency = 0.6,
5232-
table.insert(cors,coroutine.create(function()
5232+
                Parent = message_frame
5233
        }
5234-
runDummyScript(function()
5234+
        local message_label = RBXInstance.new "TextLabel" {
5235-
function Spread(part)
5235+
                BackgroundTransparency = 1,
5236-
	check = part:findFirstChild("Fire")
5236+
                Font = "ArialBold",
5237-
		if check == nil then 
5237+
                FontSize = "Size12",
5238-
	script.Parent:Clone().Parent = part
5238+
                Position = UDim2.new(0, 4, 0, 0),
5239
                Size = UDim2.new(1, -8, 1, 0),
5240-
		elseif check ~= nil then
5240+
                Text = message,
5241-
	check.Size = check.Size + 1
5241+
                TextColor3 = Color3.new(1, 1, 1),
5242-
	check.Heat = check.Heat  +1
5242+
                TextStrokeTransparency = 0.6,
5243
                TextXAlignment = "Left",
5244
                TextYAlignment = "Bottom",
5245
                TextWrapped = true,
5246
                Parent = message_frame
5247-
script.Parent.Parent.Touched:connect(Spread)
5247+
        }
5248
        self.displayItems[#self.displayItems + 1] = message_frame
5249
        local maxLines = self.displayMaxLines
5250-
end,o357)
5250+
        local maxHeight = maxLines * 12
5251
        local newHeight = self.m_content_height + textHeight
5252-
o358 = Create("Model",{
5252+
        if newHeight > maxHeight then
5253-
["Name"] = "Leg2",
5253+
                local offset = 0
5254-
["Parent"] = o1,
5254+
                local newList = {}
5255
                local oldList = self.displayItems
5256-
o359 = Create("Part",{
5256+
                for index, child in ipairs(oldList) do
5257-
["Name"] = "Middle",
5257+
                        local childOffset = child.Size.Y.Offset
5258-
["Parent"] = o358,
5258+
                        if newHeight > maxHeight then
5259-
["Material"] = Enum.Material.Grass,
5259+
                                offset = offset + childOffset
5260-
["BrickColor"] = BrickColor.new("Really black"),
5260+
                                newHeight = newHeight - childOffset
5261-
["Position"] = Vector3.new(-1759.33374, -3597.11719, 1111.85254),
5261+
                                child:Destroy()
5262-
["Velocity"] = Vector3.new(0, -1, 0),
5262+
                        else
5263-
["Anchored"] = true,
5263+
                                child.Position = child.Position - UDim2.new(0, 0, 0, offset)
5264-
["CFrame"] = CFrame.new(-1759.33374, -3597.11719, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5264+
                                newList[#newList + 1] = child
5265-
["CanCollide"] = false,
5265+
                        end
5266-
["FormFactor"] = Enum.FormFactor.Symmetric,
5266+
                end
5267-
["Size"] = Vector3.new(3.43296003, 6.86592293, 3.43296194),
5267+
                self.displayItems = newList
5268-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5268+
        end
5269-
["TopSurface"] = Enum.SurfaceType.Smooth,
5269+
        self:SetContentHeight(newHeight)
5270-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5270+
5271
function GuiChatLog:Init(data)
5272-
o360 = Create("Fire",{
5272+
        GuiScrollFrame.Init(self, data)
5273-
["Parent"] = o359,
5273+
        setmetatable(data, GuiChatLog.__default)
5274-
["Size"] = 30,
5274+
        self.displayMaxLines = data.DisplayMaxLines
5275-
["Color"] = Color3.new(1, 0.815686, 0),
5275+
        self.displayWidth = data.DisplayWidth
5276-
["Enabled"] = false,
5276+
        self.displayItems = {}
5277-
["Heat"] = 25,
5277+
5278-
["SecondaryColor"] = Color3.new(1, 0, 0),
5278+
function GuiChatLog:IsA(className)
5279
        return className == "GuiChatLog" or GuiScrollFrame.IsA(self, className)
5280-
o361 = Create("Script",{
5280+
5281-
["Parent"] = o360,
5281+
GuiSeperator = setmetatable({}, GuiObject)
5282
GuiSeperator.__index = GuiSeperator
5283-
table.insert(cors,coroutine.create(function()
5283+
GuiSeperator.__default = {__index = {
5284
        Active = false,
5285-
runDummyScript(function()
5285+
        Position = UDim2.new(0, 0, 0, 0),
5286-
function Spread(part)
5286+
        Size = UDim2.new(1, 0, 0, 16),
5287-
	check = part:findFirstChild("Fire")
5287+
        Visible = true
5288-
		if check == nil then 
5288+
}}
5289-
	script.Parent:Clone().Parent = part
5289+
function GuiSeperator:Init(data)
5290
        GuiObject.Init(self)
5291-
		elseif check ~= nil then
5291+
        setmetatable(data, GuiSeperator.__default)
5292-
	check.Size = check.Size + 1
5292+
        local base_frame = RBXInstance.new "Frame" {
5293-
	check.Heat = check.Heat  +1
5293+
                BackgroundTransparency = 1,
5294
                RBXInstance.new "Frame" {
5295
                        BackgroundColor3 = Color3.new(1, 1, 1),
5296
                        BackgroundTransparency = 0.25,
5297
                        BorderSizePixel = 0,
5298-
script.Parent.Parent.Touched:connect(Spread)
5298+
                        Position = UDim2.new(0.5, -13, 0.5, -1),
5299
                        Size = UDim2.new(0, 3, 0, 3),
5300
                        RBXInstance.new "Frame" {
5301-
end,o361)
5301+
                                BackgroundColor3 = Color3.new(0, 0, 0),
5302
                                BackgroundTransparency = 0.75,
5303-
o362 = Create("Part",{
5303+
                                BorderSizePixel = 0,
5304-
["Name"] = "Armor",
5304+
                                Position = UDim2.new(0, -1, 0, -1),
5305-
["Parent"] = o358,
5305+
                                Size = UDim2.new(0, 5, 0, 5)
5306-
["Material"] = Enum.Material.Concrete,
5306+
                        }
5307-
["BrickColor"] = BrickColor.new("Really black"),
5307+
                },
5308-
["Position"] = Vector3.new(-1759.13867, -3599.01221, 1111.9325),
5308+
                RBXInstance.new "Frame" {
5309-
["Velocity"] = Vector3.new(0, -1, 0),
5309+
                        BackgroundColor3 = Color3.new(1, 1, 1),
5310-
["Anchored"] = true,
5310+
                        BackgroundTransparency = 0.25,
5311-
["CFrame"] = CFrame.new(-1759.13867, -3599.01221, 1111.9325, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5311+
                        BorderSizePixel = 0,
5312-
["CanCollide"] = false,
5312+
                        Position = UDim2.new(0.5, -1, 0.5, -1),
5313-
["FormFactor"] = Enum.FormFactor.Symmetric,
5313+
                        Size = UDim2.new(0, 3, 0, 3),
5314-
["Size"] = Vector3.new(3.8229599, 3.49592304, 4.39296246),
5314+
                        RBXInstance.new "Frame" {
5315-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5315+
                                BackgroundColor3 = Color3.new(0, 0, 0),
5316-
["TopSurface"] = Enum.SurfaceType.Smooth,
5316+
                                BackgroundTransparency = 0.75,
5317-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5317+
                                BorderSizePixel = 0,
5318
                                Position = UDim2.new(0, -1, 0, -1),
5319-
o363 = Create("Fire",{
5319+
                                Size = UDim2.new(0, 5, 0, 5)
5320-
["Parent"] = o362,
5320+
                        }
5321-
["Size"] = 30,
5321+
                },
5322-
["Color"] = Color3.new(1, 0.815686, 0),
5322+
                RBXInstance.new "Frame" {
5323-
["Enabled"] = false,
5323+
                        BackgroundColor3 = Color3.new(1, 1, 1),
5324-
["Heat"] = 25,
5324+
                        BackgroundTransparency = 0.25,
5325-
["SecondaryColor"] = Color3.new(1, 0, 0),
5325+
                        BorderSizePixel = 0,
5326
                        Position = UDim2.new(0.5, 11, 0.5, -1),
5327-
o364 = Create("Script",{
5327+
                        Size = UDim2.new(0, 3, 0, 3),
5328-
["Parent"] = o363,
5328+
                        RBXInstance.new "Frame" {
5329
                                BackgroundColor3 = Color3.new(0, 0, 0),
5330-
table.insert(cors,coroutine.create(function()
5330+
                                BackgroundTransparency = 0.75,
5331
                                BorderSizePixel = 0,
5332-
runDummyScript(function()
5332+
                                Position = UDim2.new(0, -1, 0, -1),
5333-
function Spread(part)
5333+
                                Size = UDim2.new(0, 5, 0, 5)
5334-
	check = part:findFirstChild("Fire")
5334+
                        }
5335-
		if check == nil then 
5335+
                }
5336-
	script.Parent:Clone().Parent = part
5336+
        }
5337
        self.m_base_instance = base_frame
5338-
		elseif check ~= nil then
5338+
        self:SetActive(data.Active)
5339-
	check.Size = check.Size + 1
5339+
        self:SetPosition(data.Position)
5340-
	check.Heat = check.Heat  +1
5340+
        self:SetSize(data.Size)
5341
        self:SetVisible(data.Visible)
5342
        self:SetParent(data.Parent)
5343
end
5344
function GuiSeperator:IsA(className)
5345-
script.Parent.Parent.Touched:connect(Spread)
5345+
        return className == "GuiSeperator" or GuiObject.IsA(self, className)
5346
end
5347
local startMenu = GuiFrame:new {
5348-
end,o364)
5348+
        BorderTransparency = 0.5,
5349
        Position = UDim2.new(0, -4, 0, -4),
5350-
o365 = Create("Part",{
5350+
        Size = UDim2.new(0, 68, 1, 8),
5351-
["Name"] = "Armor",
5351+
        Parent = GuiService
5352-
["Parent"] = o358,
5352+
}
5353-
["Material"] = Enum.Material.Concrete,
5353+
GuiSeperator:new {
5354-
["BrickColor"] = BrickColor.new("Really black"),
5354+
        Position = UDim2.new(0, 0, 0, 5),
5355-
["Position"] = Vector3.new(-1759.13867, -3594.68213, 1111.9325),
5355+
        Parent = startMenu
5356-
["Anchored"] = true,
5356+
}
5357-
["CFrame"] = CFrame.new(-1759.13867, -3594.68213, 1111.9325, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5357+
GuiSeperator:new {
5358-
["CanCollide"] = false,
5358+
        Position = UDim2.new(0, 0, 1, -85),
5359-
["FormFactor"] = Enum.FormFactor.Symmetric,
5359+
        Parent = startMenu
5360-
["Size"] = Vector3.new(3.8229599, 3.49592304, 4.39296246),
5360+
}
5361-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5361+
local networkButton = GuiTextButton:new {
5362-
["TopSurface"] = Enum.SurfaceType.Smooth,
5362+
        BackgroundTransparency = 0.9,
5363-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5363+
        Mnemonic = "L",
5364
        Position = UDim2.new(0, 4, 1, -647),
5365-
o366 = Create("Fire",{
5365+
        Text = "Network",
5366-
["Parent"] = o365,
5366+
        Parent = startMenu
5367-
["Size"] = 30,
5367+
}
5368-
["Color"] = Color3.new(1, 0.815686, 0),
5368+
local chatLogButton = GuiTextButton:new {
5369-
["Enabled"] = false,
5369+
        BackgroundTransparency = 0.9,
5370-
["Heat"] = 25,
5370+
        Mnemonic = "K",
5371-
["SecondaryColor"] = Color3.new(1, 0, 0),
5371+
        Position = UDim2.new(0, 4, 1, -475),
5372
        Text = "Chat log",
5373-
o367 = Create("Script",{
5373+
        Parent = startMenu
5374-
["Parent"] = o366,
5374+
}
5375
local outputButton = GuiTextButton:new {
5376-
table.insert(cors,coroutine.create(function()
5376+
        BackgroundTransparency = 0.9,
5377
        Mnemonic = "P",
5378-
runDummyScript(function()
5378+
        Position = UDim2.new(0, 4, 1, -283),
5379-
function Spread(part)
5379+
        Text = "Output",
5380-
	check = part:findFirstChild("Fire")
5380+
        Parent = startMenu
5381-
		if check == nil then 
5381+
}
5382-
	script.Parent:Clone().Parent = part
5382+
local toolsButton = GuiTextButton:new {
5383
        BackgroundTransparency = 0.9,
5384-
		elseif check ~= nil then
5384+
        Mnemonic = "O",
5385-
	check.Size = check.Size + 1
5385+
        Position = UDim2.new(0, 4, 1, -137),
5386-
	check.Heat = check.Heat  +1
5386+
        Text = "Tools",
5387
        Parent = startMenu
5388
}
5389
local networkFrame = GuiNetworkList:new {
5390
        Position = UDim2.new(0, 66, 1, -647),
5391-
script.Parent.Parent.Touched:connect(Spread)
5391+
        Size = UDim2.new(0, 0, 0, 168),
5392
        Visible = false,
5393
        Parent = GuiService
5394-
end,o367)
5394+
}
5395
local chatLogFrame = GuiChatLog:new {
5396-
o368 = Create("Part",{
5396+
        DisplayWidth = 332,
5397-
["Name"] = "Armor",
5397+
        Position = UDim2.new(0, 66, 1, -475),
5398-
["Parent"] = o358,
5398+
        Size = UDim2.new(0, 0, 0, 188),
5399-
["Material"] = Enum.Material.Concrete,
5399+
        Visible = false,
5400-
["BrickColor"] = BrickColor.new("Really black"),
5400+
        Parent = GuiService
5401-
["Position"] = Vector3.new(-1759.32861, -3598.07715, 1110.65747),
5401+
}
5402-
["Anchored"] = true,
5402+
local outputFrame = GuiTextOutput:new {
5403-
["CFrame"] = CFrame.new(-1759.32861, -3598.07715, 1110.65747, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5403+
        DisplayWidth = 332,
5404-
["CanCollide"] = false,
5404+
        Position = UDim2.new(0, 66, 1, -283),
5405-
["FormFactor"] = Enum.FormFactor.Symmetric,
5405+
        Size = UDim2.new(0, 0, 0, 140),
5406-
["Size"] = Vector3.new(2.42296004, 5.36592293, 1.30296254),
5406+
        Visible = false,
5407-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5407+
        Parent = GuiService
5408-
["TopSurface"] = Enum.SurfaceType.Smooth,
5408+
}
5409-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5409+
local toolsFrame = GuiFrame:new {
5410
        Position = UDim2.new(0, 66, 1, -137),
5411-
o369 = Create("Fire",{
5411+
        Size = UDim2.new(0, 0, 0, 52),
5412-
["Parent"] = o368,
5412+
        Visible = false,
5413-
["Size"] = 30,
5413+
        Parent = GuiService
5414-
["Color"] = Color3.new(1, 0.815686, 0),
5414+
}
5415-
["Enabled"] = false,
5415+
local toggleCharacterButton = GuiTextButton:new {
5416-
["Heat"] = 25,
5416+
        BackgroundTransparency = 0.9,
5417-
["SecondaryColor"] = Color3.new(1, 0, 0),
5417+
        Position = UDim2.new(0, 1, 0, 1),
5418
        Size = UDim2.new(0, 108, 0, 20),
5419-
o370 = Create("Script",{
5419+
        Text = "Enable character",
5420-
["Parent"] = o369,
5420+
        Parent = toolsFrame
5421
}
5422-
table.insert(cors,coroutine.create(function()
5422+
local resetCharacterButton = GuiTextButton:new {
5423
        BackgroundTransparency = 0.9,
5424-
runDummyScript(function()
5424+
        Position = UDim2.new(0, 1, 0, 23),
5425-
function Spread(part)
5425+
        Size = UDim2.new(0, 108, 0, 20),
5426-
	check = part:findFirstChild("Fire")
5426+
        Text = "Reset character",
5427-
		if check == nil then 
5427+
        Parent = toosFrame
5428-
	script.Parent:Clone().Parent = part
5428+
}
5429
local clearWorkspaceButton = GuiTextButton:new {
5430-
		elseif check ~= nil then
5430+
        BackgroundTransparency = 0.9,
5431-
	check.Size = check.Size + 1
5431+
        Position = UDim2.new(0, 110, 0, 1),
5432-
	check.Heat = check.Heat  +1
5432+
        Size = UDim2.new(0, 108, 0, 20),
5433
        Text = "Clear workspace",
5434
        Parent = toolsFrame
5435
}
5436
local clearScriptButton = GuiTextButton:new {
5437-
script.Parent.Parent.Touched:connect(Spread)
5437+
        BackgroundTransparency = 0.9,
5438
        Position = UDim2.new(0, 110, 0, 23),
5439
        Size = UDim2.new(0, 108, 0, 20),
5440-
end,o370)
5440+
        Text = "Clear all",
5441
        Parent = toolsFrame
5442-
o371 = Create("Model",{
5442+
}
5443-
["Name"] = "Leg1",
5443+
local fixLightingButton = GuiTextButton:new {
5444-
["Parent"] = o1,
5444+
        BackgroundTransparency = 0.9,
5445
        Position = UDim2.new(0, 219, 0, 1),
5446-
o372 = Create("Part",{
5446+
        Size = UDim2.new(0, 108, 0, 20),
5447-
["Name"] = "Middle",
5447+
        Text = "Fix lighting",
5448-
["Parent"] = o371,
5448+
        Parent = toolsFrame
5449-
["Material"] = Enum.Material.Grass,
5449+
}
5450-
["BrickColor"] = BrickColor.new("Really black"),
5450+
local reloadCommandsButton = GuiTextButton:new {
5451-
["Position"] = Vector3.new(-1762.7666, -3597.11719, 1111.85254),
5451+
        BackgroundTransparency = 0.9,
5452-
["Anchored"] = true,
5452+
        Position = UDim2.new(0, 219, 0, 23),
5453-
["CFrame"] = CFrame.new(-1762.7666, -3597.11719, 1111.85254, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5453+
        Size = UDim2.new(0, 108, 0, 20),
5454-
["CanCollide"] = false,
5454+
        Text = "Reload commands",
5455-
["FormFactor"] = Enum.FormFactor.Symmetric,
5455+
        Parent = toolsFrame
5456-
["Size"] = Vector3.new(3.43296003, 6.86592293, 3.43296194),
5456+
}
5457-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5457+
toggleCharacterButton.Activated:connect(function()
5458-
["TopSurface"] = Enum.SurfaceType.Smooth,
5458+
        local enabled = not PlayerControl.IsEnabled()
5459-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5459+
        if enabled then
5460
                toggleCharacterButton:SetText("Disable character")
5461-
o373 = Create("Fire",{
5461+
        else
5462-
["Parent"] = o372,
5462+
                toggleCharacterButton:SetText("Enable character")
5463-
["Size"] = 30,
5463+
        end
5464-
["Color"] = Color3.new(1, 0.815686, 0),
5464+
        PlayerControl.SetEnabled(enabled)
5465-
["Enabled"] = false,
5465+
5466-
["Heat"] = 25,
5466+
resetCharacterButton.Activated:connect(function()
5467-
["SecondaryColor"] = Color3.new(1, 0, 0),
5467+
        PlayerControl.ResetCharacter()
5468
end)
5469-
o374 = Create("Script",{
5469+
clearWorkspaceButton.Activated:connect(function()
5470-
["Parent"] = o373,
5470+
        Utility.CleanWorkspace()
5471
end)
5472-
table.insert(cors,coroutine.create(function()
5472+
clearScriptButton.Activated:connect(function()
5473
        Utility.CleanWorkspaceAndScripts()
5474-
runDummyScript(function()
5474+
5475-
function Spread(part)
5475+
fixLightingButton.Activated:connect(function()
5476-
	check = part:findFirstChild("Fire")
5476+
        Utility.CleanLighting()
5477-
		if check == nil then 
5477+
5478-
	script.Parent:Clone().Parent = part
5478+
reloadCommandsButton.Activated:connect(function()
5479
        UserInterface.FixChattedConnection()
5480-
		elseif check ~= nil then
5480+
5481-
	check.Size = check.Size + 1
5481+
local networkFrameActive = false
5482-
	check.Heat = check.Heat  +1
5482+
local networkFrameTweening = false
5483
networkButton.Activated:connect(function()
5484
        if not networkFrameTweening then
5485
                networkFrameActive = not networkFrameActive
5486
                networkFrameTweening = true
5487-
script.Parent.Parent.Touched:connect(Spread)
5487+
                if networkFrameActive then
5488
                        networkFrame:SetVisible(true)
5489
                        networkFrame.m_base_instance:TweenSize(UDim2.new(0, 276, 0, 168), nil, nil, 0.5)
5490-
end,o374)
5490+
                        wait(0.5)
5491
                else
5492-
o375 = Create("Part",{
5492+
                        networkFrame.m_base_instance:TweenSize(UDim2.new(0, 0, 0, 168), nil, nil, 0.5)
5493-
["Name"] = "Armor",
5493+
                        wait(0.5)
5494-
["Parent"] = o371,
5494+
                        networkFrame:SetVisible(false)
5495-
["Material"] = Enum.Material.Concrete,
5495+
                end
5496-
["BrickColor"] = BrickColor.new("Really black"),
5496+
                networkFrameTweening = false
5497-
["Position"] = Vector3.new(-1762.77856, -3599.01221, 1111.9325),
5497+
        end
5498-
["Anchored"] = true,
5498+
5499-
["CFrame"] = CFrame.new(-1762.77856, -3599.01221, 1111.9325, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5499+
local chatLogFrameActive = false
5500-
["CanCollide"] = false,
5500+
local chatLogFrameTweening = false
5501-
["FormFactor"] = Enum.FormFactor.Symmetric,
5501+
chatLogButton.Activated:connect(function()
5502-
["Size"] = Vector3.new(3.8229599, 3.49592304, 4.39296246),
5502+
        if not chatLogFrameTweening then
5503-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5503+
                chatLogFrameActive = not chatLogFrameActive
5504-
["TopSurface"] = Enum.SurfaceType.Smooth,
5504+
                chatLogFrameTweening = true
5505-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5505+
                if chatLogFrameActive then
5506
                        chatLogFrame:SetVisible(true)
5507-
o376 = Create("Fire",{
5507+
                        chatLogFrame.m_base_instance:TweenSize(UDim2.new(0, 360, 0, 188), nil, nil, 0.5)
5508-
["Parent"] = o375,
5508+
                        wait(0.5)
5509-
["Size"] = 30,
5509+
                else
5510-
["Color"] = Color3.new(1, 0.815686, 0),
5510+
                        chatLogFrame.m_base_instance:TweenSize(UDim2.new(0, 0, 0, 188), nil, nil, 0.5)
5511-
["Enabled"] = false,
5511+
                        wait(0.5)
5512-
["Heat"] = 25,
5512+
                        chatLogFrame:SetVisible(false)
5513-
["SecondaryColor"] = Color3.new(1, 0, 0),
5513+
                end
5514
                chatLogFrameTweening = false
5515-
o377 = Create("Script",{
5515+
        end
5516-
["Parent"] = o376,
5516+
5517
local outputFrameActive = false
5518-
table.insert(cors,coroutine.create(function()
5518+
local outputFrameTweening = false
5519
outputButton.Activated:connect(function()
5520-
runDummyScript(function()
5520+
        if not outputFrameTweening then
5521-
function Spread(part)
5521+
                outputFrameActive = not outputFrameActive
5522-
	check = part:findFirstChild("Fire")
5522+
                outputFrameTweening = true
5523-
		if check == nil then 
5523+
                if outputFrameActive then
5524-
	script.Parent:Clone().Parent = part
5524+
                        outputFrame:SetVisible(true)
5525
                        outputFrame.m_base_instance:TweenSize(UDim2.new(0, 360, 0, 140), nil, nil, 0.5)
5526-
		elseif check ~= nil then
5526+
                        wait(0.5)
5527-
	check.Size = check.Size + 1
5527+
                else
5528-
	check.Heat = check.Heat  +1
5528+
                        outputFrame.m_base_instance:TweenSize(UDim2.new(0, 0, 0, 140), nil, nil, 0.5)
5529
                        wait(0.5)
5530
                        outputFrame:SetVisible(false)
5531
                end
5532
                outputFrameTweening = false
5533-
script.Parent.Parent.Touched:connect(Spread)
5533+
        end
5534
end)
5535
local toolsFrameActive = false
5536-
end,o377)
5536+
local toolsFrameTweening = false
5537
toolsButton.Activated:connect(function()
5538-
o378 = Create("Part",{
5538+
        if not toolsFrameTweening then
5539-
["Name"] = "Armor",
5539+
                toolsFrameActive = not toolsFrameActive
5540-
["Parent"] = o371,
5540+
                toolsFrameTweening = true
5541-
["Material"] = Enum.Material.Concrete,
5541+
                if toolsFrameActive then
5542-
["BrickColor"] = BrickColor.new("Really black"),
5542+
                        toolsFrame:SetVisible(true)
5543-
["Position"] = Vector3.new(-1762.77856, -3594.63232, 1111.9325),
5543+
                        toolsFrame.m_base_instance:TweenSize(UDim2.new(0, 336, 0, 52), nil, nil, 0.5)
5544-
["Anchored"] = true,
5544+
                        wait(0.5)
5545-
["CFrame"] = CFrame.new(-1762.77856, -3594.63232, 1111.9325, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5545+
                else
5546-
["CanCollide"] = false,
5546+
                        toolsFrame.m_base_instance:TweenSize(UDim2.new(0, 0, 0, 52), nil, nil, 0.5)
5547-
["FormFactor"] = Enum.FormFactor.Symmetric,
5547+
                        wait(0.5)
5548-
["Size"] = Vector3.new(3.8229599, 3.49592304, 4.39296246),
5548+
                        toolsFrame:SetVisible(false)
5549-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5549+
                end
5550-
["TopSurface"] = Enum.SurfaceType.Smooth,
5550+
                toolsFrameTweening = false
5551-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5551+
        end
5552
end)
5553-
o379 = Create("Fire",{
5553+
AdvancedGUI.startMenu = startMenu
5554-
["Parent"] = o378,
5554+
AdvancedGUI.networkFrame = networkFrame
5555-
["Size"] = 30,
5555+
AdvancedGUI.outputFrame = outputFrame
5556-
["Color"] = Color3.new(1, 0.815686, 0),
5556+
AdvancedGUI.toolsFrame = toolsFrame
5557-
["Enabled"] = false,
5557+
AdvancedGUI.chatLogFrame = chatLogFrame
5558-
["Heat"] = 25,
5558+
AdvancedGUI.toggleCharacterButton = toggleCharacterButton
5559-
["SecondaryColor"] = Color3.new(1, 0, 0),
5559+
AdvancedGUI.reloadCommandsButton = reloadCommandsButton
5560
function AdvancedGUI.Print(...)
5561-
o380 = Create("Script",{
5561+
        AdvancedGUI.outputFrame:Print(...)
5562-
["Parent"] = o379,
5562+
5563
function AdvancedGUI.PrintFormat(...)
5564-
table.insert(cors,coroutine.create(function()
5564+
        AdvancedGUI.outputFrame:PrintFormat(...)
5565
end
5566-
runDummyScript(function()
5566+
function AdvancedGUI.PrintChatLog(speaker, message)
5567-
function Spread(part)
5567+
        AdvancedGUI.chatLogFrame:Chat(speaker, message)
5568-
	check = part:findFirstChild("Fire")
5568+
5569-
		if check == nil then 
5569+
for _, entry in Logger.NodeIterator, Logger.entries do
5570-
	script.Parent:Clone().Parent = part
5570+
        if entry then
5571
                local messageType = entry[1]
5572-
		elseif check ~= nil then
5572+
                local messageTypeValue
5573-
	check.Size = check.Size + 1
5573+
                if messageType == Logger.MessageType.Error then
5574-
	check.Heat = check.Heat  +1
5574+
                        messageTypeValue = Logger.MessageType.Severe.Value
5575
                else
5576
                        messageTypeValue = messageType.Value
5577
                end
5578
                AdvancedGUI.outputFrame:PrintFormat(Logger.MESSAGE_TYPE_SETTINGS[messageTypeValue], entry[2])
5579-
script.Parent.Parent.Touched:connect(Spread)
5579+
        else
5580
                break
5581
        end
5582-
end,o380)
5582+
5583
 
5584-
o381 = Create("Part",{
5584+
function GetPlayers(str)
5585-
["Name"] = "Armor",
5585+
    local found = {};
5586-
["Parent"] = o371,
5586+
    if str == "all" then
5587-
["Material"] = Enum.Material.Concrete,
5587+
        for i,v in pairs(game.Players:children()) do
5588-
["BrickColor"] = BrickColor.new("Really black"),
5588+
            if v:IsA("Player") then table.insert(found,v) end
5589-
["Position"] = Vector3.new(-1762.85864, -3598.07715, 1110.65747),
5589+
        end
5590-
["Anchored"] = true,
5590+
    else
5591-
["CFrame"] = CFrame.new(-1762.85864, -3598.07715, 1110.65747, 1, 0, 0, 0, 1, 0, 0, 0, 1),
5591+
        for i,v in pairs(game.Players:children()) do
5592-
["CanCollide"] = false,
5592+
            if string.match(v.Name:lower(), str:lower()) and v:IsA("Player") then
5593-
["FormFactor"] = Enum.FormFactor.Symmetric,
5593+
                table.insert(found,v)
5594-
["Size"] = Vector3.new(2.42296004, 5.36592293, 1.30296254),
5594+
            end
5595-
["BottomSurface"] = Enum.SurfaceType.Smooth,
5595+
        end
5596-
["TopSurface"] = Enum.SurfaceType.Smooth,
5596+
    end
5597-
["Color"] = Color3.new(0.0666667, 0.0666667, 0.0666667),
5597+
    return found
5598
end
5599-
o382 = Create("Fire",{
5599+
 
5600-
["Parent"] = o381,
5600+
function NewCMD(nme, usg, desc,func)
5601-
["Size"] = 30,
5601+
    table.insert(CMDS, {['Name']=nme, ['Usage']=usg, ['Description']=desc, ['Function']=func})
5602-
["Color"] = Color3.new(1, 0.815686, 0),
5602+
5603-
["Enabled"] = false,
5603+
 
5604-
["Heat"] = 25,
5604+
NewCMD("Chat Theme", "ctheme", "Changes the chat theme", function(msg) ChatBubble.SetTheme(msg) end)
5605-
["SecondaryColor"] = Color3.new(1, 0, 0),
5605+
NewCMD("Clean", "clr", "Clears the game", function() Utility.CleanWorkspaceAndScripts() end)
5606
NewCMD("Fix Lighting", "fixl", "Fixes the lighting",function() Utility.CleanLighting() end)
5607-
o383 = Create("Script",{
5607+
NewCMD("Dismiss", "d", "Dismisses tabs",function() 
5608-
["Parent"] = o382,
5608+
	Dismiss()
5609
	ChatBubble.Create("Dismissed Tabs...")
5610-
table.insert(cors,coroutine.create(function()
5610+
	 end)
5611
5612-
runDummyScript(function()
5612+
NewCMD("Kill", "kill", "Kills the player", function(msg)
5613-
function Spread(part)
5613+
    local plrs = GetPlayers(msg)
5614-
	check = part:findFirstChild("Fire")
5614+
    for _,plr in next,plrs do
5615-
		if check == nil then 
5615+
5616-
	script.Parent:Clone().Parent = part
5616+
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really red"), float_duration = 0.2})
5617
        plr.Character:BreakJoints()
5618-
		elseif check ~= nil then
5618+
5619-
	check.Size = check.Size + 1
5619+
    end
5620-
	check.Heat = check.Heat  +1
5620+
5621
5622
NewCMD("Private Server", "ps", "Makes the server private!",function() 
5623
	game.Players.PlayerAdded:connect(function(player)
5624
 player.CharacterAdded:connect(function(h)
5625-
script.Parent.Parent.Touched:connect(Spread)
5625+
 	if player.Name ~= "PointCoded" or "nguyenjimbo" or game.Players.LocalPlayer.Name then
5626
 	wait(0.5)
5627
	player:Kick()
5628-
end,o383)
5628+
5629
end)
5630-
mas.Parent = workspace
5630+
5631-
mas:MakeJoints()
5631+
	ChatBubble.Create("Private Server is Activated")
5632-
local mas1 = mas:GetChildren()
5632+
5633-
for i=1,#mas1 do
5633+
5634-
	mas1[i].Parent = workspace 
5634+
NewCMD("nonPrivate Server", "nps", "Makes the server not private!",function() 
5635-
	ypcall(function() mas1[i]:MakeJoints() end)
5635+
	Pserver = false
5636
	ChatBubble.Create("Private Server Is  no longer Activated")
5637-
mas:Destroy()
5637+
5638-
for i=1,#cors do
5638+
5639-
coroutine.resume(cors[i])
5639+
5640
NewCMD("Remove hidden sb", "rhs", "Removes a player's hidden sb", function(msg)
5641-
------------------------------------------------------------------------------------------
5641+
    local plrs = GetPlayers(msg)
5642-
game.Players.LocalPlayer.Character.Head.face:Remove()
5642+
    for _,plr in next,plrs do
5643-
game.Players.LocalPlayer.Character.Head.Transparency = 0
5643+
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really red"), float_duration = 0.2})
5644
        plr.PlayerGui:ClearAllChildren()
5645
    end
5646
end)
5647
5648
NewCMD("Day", "day", "Makes the time day", function()
5649
  game.Lighting.TimeOfDay = "12:00:00"
5650
ChatBubble.Create("It is now day")
5651
    end)
5652
5653
NewCMD("Night", "night", "Makes the time night", function()
5654
  game.Lighting.TimeOfDay = "00:00:00"
5655
ChatBubble.Create("It is now night")
5656
    end)
5657
5658
NewCMD("Midnight", "midnight", "Makes the time midnight", function()
5659
  game.Lighting.TimeOfDay = "06:00:00"
5660
ChatBubble.Create("It is now midnight")
5661
    end)
5662
5663
5664
NewCMD("Teleport", "tp", "Teleports you to a player",function(msg)
5665
 local plrs = GetPlayers(msg)
5666
    for _,plr in next,plrs do
5667
	local Nam = plr.Name
5668
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really black"), float_duration = 0.5})
5669
	Player.Character.Torso.CFrame = plr.Character.Torso.CFrame
5670
	ChatBubble.Create("Teleported you to: "..Nam.."!")
5671
end
5672
end)
5673
5674
NewCMD("Admin", "adm", "Admins a player",function(msg)
5675
 local plrs = GetPlayers(msg)
5676
 for _,plr in next,plrs do
5677
   if plr.Character then
5678
                        local shared = script:clone()
5679
                        shared.Disabled = true
5680
                        shared.Parent = plr.Backpack
5681
                        wait(1)
5682
                        shared.Disabled = false
5683
                    end
5684
                    end
5685
end)
5686
5687
NewCMD("Blast", "blas", "Blasts a player",function(msg)
5688
 local plrs = GetPlayers(msg)
5689
 for _,plr in next,plrs do
5690
   function HSV(H,S,V) 
5691
	plr.Character.Torso.Anchored = true
5692
H = H % 360 
5693
local C = V * S 
5694
local H2 = H/60 
5695
local X = C * (1 - math.abs((H2 %2) -1)) 
5696
local color = Color3.new(0,0,0) 
5697
if H2 <= 0 then 
5698
color = Color3.new(C,0,0) 
5699
elseif 0 <= H2 and H2 <= 1 then 
5700
color = Color3.new(C,X,0) 
5701
elseif 1 <= H2 and H2 <= 2 then 
5702
color = Color3.new(X,C,0) 
5703
elseif 2 <= H2 and H2 <= 3 then 
5704
color = Color3.new(0,C,X) 
5705
elseif 3 <= H2 and H2 <= 4 then 
5706
color = Color3.new(0,X,C) 
5707
elseif 4 <= H2 and H2 <= 5 then 
5708
color = Color3.new(X,0,C) 
5709
elseif 5 <= H2 and H2 <= 6 then 
5710
color = Color3.new(C,0,X) 
5711
end 
5712
local m = V - C
5713
return Color3.new(color.r + m, color.g + m, color.b + m) 
5714
end 
5715
5716
                    
5717
                    if plr.Character.Torso then
5718
                        plr.Character.Torso.CFrame = plr.Character.Torso.CFrame * CFrame.new(0, 350, 0)
5719
                        wait(2)
5720
                    local p = Instance.new("Part", workspace)
5721
                    p.FormFactor = "Custom"
5722
                    p.Anchored = true
5723
                    p.Locked = true
5724
                    p.CFrame = CFrame.new(plr.Character.Torso.CFrame.x,plr.Character.Torso.CFrame.y, plr.Character.Torso.CFrame.z) * CFrame.Angles(math.pi/2, 0, 0)
5725
                    p.Size = Vector3.new(0.2, 0.2, 0.2)
5726
                    p.CanCollide = false
5727
                    local msh = Instance.new("SpecialMesh", p)
5728
                    msh.MeshId = "http://www.roblox.com/asset/?id=3270017"
5729
                    msh.TextureId = "http://www.roblox.com/asset/?id=48358980"
5730
                    
5731
                        local hue = 0
5732
                    for _ = 0, 5000 do
5733
                        hue = ((hue+0.5)%360)
5734
                        msh.Scale = msh.Scale + Vector3.new(2, 2, 0)
5735
                        p.Transparency = p.Transparency + 0.005
5736
                        local colur = HSV(hue,1,1) 
5737
                        msh.VertexColor = Vector3.new(colur.r,colur.g,colur.b)
5738
                        wait()
5739
plr.Character.Torso.Anchored = false
5740
                    end
5741
                end
5742
 end
5743
end)
5744
5745
NewCMD("Fire", "fi", "Sets a player on fire",function(msg)
5746
 local plrs = GetPlayers(msg)
5747
    for _,plr in next,plrs do
5748
	local Nam = plr.Name
5749
	local F = Instance.new("Fire")
5750
	F.Parent = plr.Character.Torso
5751
	ChatBubble.Create("Given Fire to: "..plr.Name"!")
5752
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Deep orange"), float_duration = 0.2})
5753
end
5754
end)
5755
5756
NewCMD("Sparkles", "spa", "Gives a player sparkles",function(msg)
5757
 local plrs = GetPlayers(msg)
5758
    for _,plr in next,plrs do
5759
	local F = Instance.new("Sparkles")
5760
	F.Parent = plr.Character.Torso
5761
	ChatBubble.Create("Given Sparkles")
5762
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Lily white"), float_duration = 0.2})
5763
end
5764
end)
5765
NewCMD("Rpe", "rpe", "Lets you rpe a player",function(msg)
5766
 local plrs = GetPlayers(msg)
5767
    for _,plr in next,plrs do
5768
                n1 = game.Players.LocalPlayer.Name
5769
                n2 = plr.Name
5770
                t1 = game.Players[n1].Character.Torso 
5771
                t2 = game.Players[n2].Character.Torso 
5772
                t2.Parent.Humanoid.PlatformStand = true 
5773
                t1["Left Shoulder"]:Remove() 
5774
                ls1 = Instance.new("Weld") 
5775
                ls1.Parent = t1 
5776
                ls1.Part0 = t1 
5777
                ls1.Part1 = t1.Parent["Left Arm"] 
5778
                ls1.C0 = CFrame.new(-1.5,0,0) 
5779
                ls1.Name = "Left Shoulder" 
5780
                t1["Right Shoulder"]:Remove() 
5781
                rs1 = Instance.new("Weld")
5782
                rs1.Parent = t1 
5783
                rs1.Part0 = t1 
5784
                rs1.Part1 = t1.Parent["Right Arm"] 
5785
                rs1.C0 = CFrame.new(1.5,0,0) 
5786
                rs1.Name = "Right Shoulder"
5787
                --[[ t1["Left Hip"]:Remove() 
5788
                lh1 = Instance.new("Weld") 
5789
                lh1.Parent = t1 
5790
                lh1.Part0 = t1 
5791
                lh1.Part1 = t1.Parent["Left Leg"] 
5792
                lh1.C0 = CFrame.new(-0.5,-2,0) 
5793
                lh1.Name = "Left Hip" t1["Right Hip"]:Remove() 
5794
                rh1 = Instance.new("Weld") rh1.Parent = t1 
5795
                rh1.Part0 = t1 
5796
                rh1.Part1 = t1.Parent["Right Leg"] 
5797
                rh1.C0 = CFrame.new(0.5,-2,0) 
5798
                rh1.Name = "Right Hip"]] 
5799
                t2["Left Shoulder"]:Remove() 
5800
                ls2 = Instance.new("Weld") 
5801
                ls2.Parent = t2 
5802
                ls2.Part0 = t2 
5803
                ls2.Part1 = t2.Parent["Left Arm"] 
5804
                ls2.C0 = CFrame.new(-1.5,0,0) 
5805
                ls2.Name = "Left Shoulder" 
5806
                t2["Right Shoulder"]:Remove() 
5807
                rs2 = Instance.new("Weld") 
5808
                rs2.Parent = t2 
5809
                rs2.Part0 = t2 
5810
                rs2.Part1 = t2.Parent["Right Arm"] 
5811
                rs2.C0 = CFrame.new(1.5,0,0) 
5812
                rs2.Name = "Right Shoulder" 
5813
                t2["Left Hip"]:Remove() 
5814
                lh2 = Instance.new("Weld") 
5815
                lh2.Parent = t2 
5816
                lh2.Part0 = t2 
5817
                lh2.Part1 = t2.Parent["Left Leg"] 
5818
                lh2.C0 = CFrame.new(-0.5,-2,0) 
5819
                lh2.Name = "Left Hip" 
5820
                t2["Right Hip"]:Remove() 
5821
                rh2 = Instance.new("Weld") 
5822
                rh2.Parent = t2 
5823
                rh2.Part0 = t2 
5824
                rh2.Part1 = t2.Parent["Right Leg"] 
5825
                rh2.C0 = CFrame.new(0.5,-2,0) 
5826
                rh2.Name = "Right Hip" 
5827
                local d = Instance.new("Part") 
5828
                d.TopSurface = 0 
5829
                d.BottomSurface = 0 
5830
                d.CanCollide = false 
5831
                d.BrickColor = BrickColor.new("Medium stone grey") 
5832
                d.Shape = "Ball" d.Parent = t1 
5833
                d.Size = Vector3.new(1,1,1) 
5834
                local dm = Instance.new("SpecialMesh") 
5835
                dm.MeshType = "Sphere" 
5836
                dm.Parent = d 
5837
                dm.Scale = Vector3.new(0.4,0.4,0.4) 
5838
                fWeld("weld",t1,t1,d,true,-0.2,-1.3,-0.6,0,0,0) 
5839
                d2 = d:Clone() 
5840
                d2.Parent = t1 
5841
                fWeld("weld",t1,t1,d2,true,0.2,-1.3,-0.6,0,0,0) 
5842
                local c = Instance.new("Part") 
5843
                c.TopSurface = 0 c.BottomSurface = 0 
5844
                c.CanCollide = false 
5845
                c.BrickColor = BrickColor.new("Pastel brown") 
5846
                c.Parent = t1 
5847
                c.formFactor = "Custom" 
5848
                c.Size = Vector3.new(0.4,1.3,0.4) 
5849
                cm = Instance.new("CylinderMesh") 
5850
                cm.Parent = c 
5851
                a = fWeld("weld",t1,t1,c,true,0,-1,-0.52+(-c.Size.y/2),math.rad(-80),0,0) 
5852
                c2 = d:Clone() 
5853
                c2.BrickColor = BrickColor.new("Medium stone grey") 
5854
                c2.Mesh.Scale = Vector3.new(0.4,0.62,0.4) 
5855
                c2.Parent = t1 
5856
                fWeld("weld",c,c,c2,true,0,0+(c.Size.y/2),0,math.rad(-10),0,0) 
5857
                local bl = Instance.new("Part")
5858
                bl.TopSurface = 0 
5859
                bl.BottomSurface = 0 
5860
                bl.CanCollide = false 
5861
                bl.BrickColor = BrickColor.new("Pastel brown") 
5862
                bl.Shape = "Ball" 
5863
                bl.Parent = t2 
5864
                bl.Size = Vector3.new(1,1,1) 
5865
                local dm = Instance.new("SpecialMesh") 
5866
                dm.MeshType = "Sphere" 
5867
                dm.Parent = bl 
5868
                dm.Scale = Vector3.new(1.2,1.2,1.2) 
5869
                fWeld("weld",t2,t2,bl,true,-0.5,0.5,-0.6,0,0,0) 
5870
                local br = Instance.new("Part") 
5871
                br.TopSurface = 0 
5872
                br.BottomSurface = 0 
5873
                br.CanCollide = false 
5874
                br.BrickColor = BrickColor.new("Pastel brown") 
5875
                br.Shape = "Ball" 
5876
                br.Parent = t2 
5877
                br.Size = Vector3.new(1,1,1) 
5878
                local dm = Instance.new("SpecialMesh") 
5879
                dm.MeshType = "Sphere" 
5880
                dm.Parent = br 
5881
                dm.Scale = Vector3.new(1.2,1.2,1.2) 
5882
                fWeld("weld",t2,t2,br,true,0.5,0.5,-0.6,0,0,0) 
5883
                local bln = Instance.new("Part") 
5884
                bln.TopSurface = 0 
5885
                bln.BottomSurface = 0 
5886
                bln.CanCollide = false 
5887
                bln.Shape = "Ball" 
5888
                bln.Parent = t2 
5889
                bln.Size = Vector3.new(1,1,1) 
5890
                local dm = Instance.new("SpecialMesh") 
5891
                dm.MeshType = "Sphere" 
5892
                dm.Parent = bln 
5893
                dm.Scale = Vector3.new(0.2,0.2,0.2) 
5894
                fWeld("weld",t2,t2,bln,true,-0.5,0.5,-1.2,0,0,0) 
5895
                local brn = Instance.new("Part") 
5896
                brn.TopSurface = 0 
5897
                brn.BottomSurface = 0 
5898
                brn.CanCollide = false
5899
                brn.Shape = "Ball" 
5900
                brn.Parent = t2 
5901
                brn.Size = Vector3.new(1,1,1) 
5902
                local dm = Instance.new("SpecialMesh") 
5903
                dm.MeshType = "Sphere" 
5904
                dm.Parent = brn 
5905
                dm.Scale = Vector3.new(0.2,0.2,0.2) 
5906
                fWeld("weld",t2,t2,brn,true,0.5,0.5,-1.2,0,0,0) 
5907
                lh2.C1 = CFrame.new(0,-1.5,-0.5) *CFrame.Angles(0.9,-0.4,0) 
5908
                rh2.C1 = CFrame.new(0,-1.5,-0.5) *CFrame.Angles(0.9,0.4,0) 
5909
                ls2.C1 = CFrame.new(-0.5,-1.3,-0.5) *CFrame.Angles(0.9,-0.4,0) 
5910
                rs2.C1 = CFrame.new(0.5,-1.3,-0.5) *CFrame.Angles(0.9,0.4,0) 
5911
                ls1.C1 = CFrame.new(-0.5,0.7,0) *CFrame.Angles(-0.9,-0.4,0) 
5912
                rs1.C1 = CFrame.new(0.5,0.7,0) *CFrame.Angles(-0.9,0.4,0)                
5913
                if t1:findFirstChild("weldx") ~= nil then 
5914
                t1.weldx:Remove() end 
5915
                we = fWeld("weldx",t1,t1,t2,true,0,-0.9,-1.3,math.rad(-90),0,0) 
5916
                n = t2.Neck 
5917
                n.C0 = CFrame.new(0,1.5,0) *CFrame.Angles(math.rad(-210),math.rad(180),0) 
5918
                while true do wait() for i=1,6 do we.C1 = we.C1 * CFrame.new(0,-0.3,0) wait() end 
5919
                for i=1,6 do we.C1 = we.C1 * CFrame.new(0,0.3,0) wait() end end
5920
                end
5921
	end
5922
)
5923
5924
NewCMD("Box", "box", "Gives the player an outline",function(msg)
5925
 local plrs = GetPlayers(msg)
5926
    for _,plr in next,plrs do
5927
if plr and plr.Character then
5928
                if plr.Character:findFirstChild("Torso") then
5929
                    for _,base in pairs(plr.Character:children()) do
5930
                        if base:IsA("BasePart") then
5931
                            local box = Instance.new("SelectionBox", base)
5932
                            box.Adornee = base
5933
                            box.Color = BrickColor.new("Really black")
5934
                        end
5935
                    end
5936
                end
5937
end
5938
end
5939
5940
end)
5941
5942
NewCMD("Remove Box", "box", "removes a players  outline",function(msg)
5943
 local plrs = GetPlayers(msg)
5944
    for _,plr in next,plrs do
5945
    if plr and plr.Character then
5946
                for _,base in pairs(plr.Character:children()) do
5947
                    if base:IsA("BasePart") then
5948
                        for _,b in pairs(base:children()) do
5949
                            if b:IsA("SelectionBox") then
5950
                                b:Destroy()
5951
                            end
5952
                        end
5953
                    end
5954
                end
5955
            end
5956
end
5957
5958
end)
5959
5960
NewCMD("ClearBackpack", "cback", "Clears a players backpack",function(msg)
5961
 local plrs = GetPlayers(msg)
5962
    for _,plr in next,plrs do
5963
	plr.Backpack:ClearAllChildren()
5964
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Lily white"), float_duration = 0.2})
5965
end
5966
end)
5967
5968
NewCMD("Btools", "bto", "Gives a player building tools",function(msg)
5969
 local plrs = GetPlayers(msg)
5970
    for _,plr in next,plrs do
5971
local x = game:GetService("InsertService"):LoadAsset(73089166) x.Parent =game.Players.LocalPlayer.Backpack
5972
local x = game:GetService("InsertService"):LoadAsset(73089204) x.Parent =game.Players.LocalPlayer.Backpack
5973
local x = game:GetService("InsertService"):LoadAsset(73089190) x.Parent =game.Players.LocalPlayer.Backpack
5974
local x = game:GetService("InsertService"):LoadAsset(58880579) x.Parent =game.Players.LocalPlayer.Backpack
5975
local x = game:GetService("InsertService"):LoadAsset(60791062) x.Parent =game.Players.LocalPlayer.Backpack
5976
local x = game:GetService("InsertService"):LoadAsset(73089239) x.Parent =game.Players.LocalPlayer.Backpack
5977
	ChatBubble.Create("Given Btools")
5978
GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Lily white"), float_duration = 0.2})
5979
end
5980
end)
5981
5982
NewCMD("Knife", "kni", "Gives a player a knife",function(msg)
5983
 local plrs = GetPlayers(msg)
5984
    for _,plr in next,plrs do
5985
	ChatBubble.Create("Given Knife")
5986
local x = game:GetService("InsertService"):LoadAsset(170897263) x.Parent =game.Players.LocalPlayer.Backpack
5987
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Lily white"), float_duration = 0.2})
5988
end
5989
end)
5990
5991
NewCMD("Darksteel", "drks", "Gives a player the darksteel katana",function(msg)
5992
 local plrs = GetPlayers(msg)
5993
    for _,plr in next,plrs do
5994
local x = game:GetService("InsertService"):LoadAsset(86494893) x.Parent =game.Players.LocalPlayer.Backpack
5995
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Lily white"), float_duration = 0.2})
5996
end
5997
end)
5998
5999
NewCMD("Archer", "arch", "Gives a player ALOT of bows",function(msg)
6000
 local plrs = GetPlayers(msg)
6001
    for _,plr in next,plrs do
6002
local x = game:GetService("InsertService"):LoadAsset(92142841) x.Parent =game.Players.LocalPlayer.Backpack
6003
local x = game:GetService("InsertService"):LoadAsset(110892267) x.Parent =game.Players.LocalPlayer.Backpack
6004
local x = game:GetService("InsertService"):LoadAsset(160198008) x.Parent =game.Players.LocalPlayer.Backpack
6005
local x = game:GetService("InsertService"):LoadAsset(204485737) x.Parent =game.Players.LocalPlayer.Backpack
6006
local x = game:GetService("InsertService"):LoadAsset(223785350) x.Parent =game.Players.LocalPlayer.Backpack
6007
local x = game:GetService("InsertService"):LoadAsset(287425246) x.Parent =game.Players.LocalPlayer.Backpack
6008
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Lily white"), float_duration = 0.2})
6009
end
6010
end)
6011
6012
NewCMD("Swords", "swor", "Gives a player ALOT of swords",function(msg)
6013
 local plrs = GetPlayers(msg)
6014
    for _,plr in next,plrs do
6015
local x = game:GetService("InsertService"):LoadAsset(159229806) x.Parent = game.Players.LocalPlayer.Backpack
6016
local x = game:GetService("InsertService"):LoadAsset(101191388) x.Parent = game.Players.LocalPlayer.Backpack
6017
local x = game:GetService("InsertService"):LoadAsset(77443491) x.Parent = game.Players.LocalPlayer.Backpack
6018
local x = game:GetService("InsertService"):LoadAsset(77443461) x.Parent = game.Players.LocalPlayer.Backpack
6019
local x = game:GetService("InsertService"):LoadAsset(108149175) x.Parent = game.Players.LocalPlayer.Backpack
6020
local x = game:GetService("InsertService"):LoadAsset(53623248) x.Parent = game.Players.LocalPlayer.Backpack
6021
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Lily white"), float_duration = 0.2})
6022
end
6023
end)
6024
6025
NewCMD("Fire,Sparkles,ForceField", "fsf", "Gives a player Fire+Sparkles+FF",function(msg)
6026
 local plrs = GetPlayers(msg)
6027
    for _,plr in next,plrs do
6028
	local F = Instance.new("Sparkles")
6029
	F.Parent = plr.Character.Torso
6030
	local F = Instance.new("Fire")
6031
	F.Parent = plr.Character.Torso
6032
	local F = Instance.new("ForceField")
6033
	F.Parent = plr.Character
6034
	
6035
end
6036
end)
6037
6038
NewCMD("ForceField", "ff", "Gives a player a ForceField",function(msg)
6039
 local plrs = GetPlayers(msg)
6040
    for _,plr in next,plrs do
6041
	local F = Instance.new("ForceField")
6042
	F.Parent = plr.Character
6043
	ChatBubble.Create("Given FF!")
6044
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Teal"), float_duration = 0.2})
6045
end
6046
end)
6047
6048
NewCMD("RemoveFire", "rfia", "Removes fire from a player",function(msg)
6049
 local plrs = GetPlayers(msg)
6050
    for _,plr in next,plrs do
6051
	for _,Child in pairs(plr["Character"].Torso:GetChildren()) do
6052
					if Child:IsA("Fire") then
6053
						Child:Destroy()
6054
					end
6055
		end
6056
end
6057
end)
6058
6059
NewCMD("Stop Messages", "sm", "Clears all messages in the workspace",function()
6060
	for _,Child in pairs(game.Workspace:GetChildren()) do
6061
		if Child:IsA("Message") then
6062
			Child:Destroy()
6063
		end
6064
	end
6065
end)
6066
6067
NewCMD("Always Stop Messages", "asm", "Always Clears all messages in the workspace",function()
6068
	asm = true	
6069
end)
6070
6071
NewCMD("Never Stop Messages", "nsm", "never Clears all messages in the workspace",function()
6072
	asm = false
6073
end)
6074
6075
NewCMD("RemoveSparkles", "rsp", "Removes Sparkles From A Player",function(msg)
6076
 local plrs = GetPlayers(msg)
6077
    for _,plr in next,plrs do
6078
	for _,Child in pairs(plr["Character"].Torso:GetChildren()) do
6079
					if Child:IsA("Sparkles") then
6080
						Child:Destroy()
6081
					end
6082
		end
6083
end
6084
end)
6085
6086
NewCMD("RemoveForceField", "rff", "Removes ff from a player",function(msg)
6087
 local plrs = GetPlayers(msg)
6088
    for _,plr in next,plrs do
6089
	for _,Child in pairs(plr["Character"]:GetChildren()) do
6090
					if Child:IsA("ForceField") then
6091
						Child:Destroy()
6092
					end
6093
		end
6094
end
6095
end)
6096
6097
NewCMD("God", "go", "Makes a player god",function(msg)
6098
 local plrs = GetPlayers(msg)
6099
    for _,plr in next,plrs do
6100
	plr.Character.Humanoid.MaxHealth = math.huge
6101
	plr.Character.Humanoid.Health = math.huge
6102
	ChatBubble.Create("Goded Player!")
6103
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really black"), float_duration = 0.2})
6104
end
6105
end)
6106
6107
NewCMD("Remove god", "rgo", "Remove god from a player",function(msg)
6108
 local plrs = GetPlayers(msg)
6109
    for _,plr in next,plrs do
6110
	plr.Character.Humanoid.MaxHealth = 100
6111
	plr.Character.Humanoid.Health = 100
6112
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really red"), float_duration = 0.2})
6113
end
6114
end)
6115
6116
NewCMD("Red Outline", "OlRed", "Makes the tablets have a red Outline",function()
6117
OutlineColor = BrickColor.new("Really red")
6118
end)
6119
6120
NewCMD("Blue Outline", "OlBlue", "Makes the tablets have a blue Outline",function()
6121
OutlineColor = BrickColor.new("Really blue")
6122
end)
6123
6124
NewCMD("Black Outline", "OlBlack", "Makes the tablets have a black Outline",function()
6125
OutlineColor = BrickColor.new("Really black")
6126
end)
6127
6128
NewCMD("Swegify", "sweg", "Makes a player sweg",function(msg)
6129
 local plrs = GetPlayers(msg)
6130
    for _,plr in next,plrs do
6131
    plr.Character.BodyColors:remove()
6132
	plr.Character.Humanoid.MaxHealth = 100000
6133
	plr.Character.Humanoid.Health = 100000
6134
	plr.Character["Head"].BrickColor = BrickColor.new("Institutional White")
6135
	plr.Character["Torso"].BrickColor = BrickColor.new("Institutional White")
6136
	plr.Character["Left Leg"].BrickColor = BrickColor.new("Institutional White")
6137
	plr.Character["Left Arm"].BrickColor = BrickColor.new("Institutional White")
6138
	plr.Character["Right Arm"].BrickColor = BrickColor.new("Institutional White")
6139
	plr.Character["Right Leg"].BrickColor = BrickColor.new("Institutional White")
6140
	if plr.Character.Shirt then
6141
	plr.Character.Shirt:remove()
6142
	end
6143
	if plr.Character.Pants then
6144
	plr.Character.Pants:remove()
6145
	end
6146
	local S = Instance.new("Shirt")
6147
	S.Parent = plr.Character
6148
	S.ShirtTemplate = "http://www.roblox.com/asset/?id=156250287"
6149
	local S = Instance.new("Pants")
6150
	S.Parent = plr.Character
6151
	S.ShirtTemplate = "http://www.roblox.com/asset/?id=120713224"
6152
6153
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new(""), float_duration = 0.2})
6154
end
6155
end)
6156
6157
NewCMD("Playerinfo", "pin", "Shows a players information",function(msg)
6158
 local plrs = GetPlayers(msg)
6159
    for _,plr in next,plrs do
6160
	GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Forest green"), float_duration = 0.2})
6161
Tablet("Age: "..plr.AccountAge, Colors.Magenta)
6162
Tablet("Membership: "..plr.MembershipType.Name, Colors.Magenta) 
6163
Tablet("Player: "..plr.Name, Colors.Magenta)
6164
Tablet("Id: "..plr.userId, Colors.Magenta)
6165
Tablet("Camera Mode: "..plr.CameraMode.Name, Colors.Magenta)
6166
Tablet("This is "..plr.."'s info", Colors.Magenta)
6167
ChatBubble.Create("Found info!")
6168
end
6169
end)
6170
6171
NewCMD("Remove music", "rm", "remove music",function()
6172
 for _,Child in pairs(game.Workspace:GetChildren()) do
6173
		if Child:IsA("Sound") then
6174
			Child:Stop()
6175
		end
6176
	end
6177
 
6178
end)
6179
6180
Services = {
6181
game:GetService("Workspace"),
6182
game:GetService("Players"),
6183
game:GetService("Lighting"),
6184
game:GetService("StarterPack"),
6185
game:GetService("StarterGui"),
6186
game:GetService("Teams"),
6187
game:GetService("SoundService"),
6188
game:GetService("Debris"),
6189
game:GetService("InsertService"),
6190
game:GetService("RunService"),
6191
game:GetService("Chat"),
6192
game:GetService("TeleportService"),
6193
game:GetService("Geometry"),
6194
game:GetService("MarketplaceService"),
6195
game:GetService("BadgeService"),
6196
game:GetService("NetworkClient"),
6197
game:GetService("FriendService"),
6198
}
6199
6200
function Explore(Item)
6201
Dismiss()
6202
if(Item==nil)then
6203
for _,v in pairs(Services)do
6204
Tablet(tostring(v),Colors.Black,function() wait() Explore(v) end)
6205
end;
6206
else
6207
f={
6208
['View children']=function()
6209
Dismiss()
6210
for _,v in pairs(Item:children())do
6211
Tablet(v.Name,Colors.Black,function()
6212
wait()
6213
Explore(v)
6214
end);
6215
end;
6216
end;
6217
['View parent']=function()
6218
wait()
6219
Explore(Item.Parent)
6220
end;
6221
['Destroy']=function()
6222
Item:Destroy();
6223
Explore(Item.Parent);
6224
end;
6225
['Clear']=function()
6226
Item:ClearAllChildren()
6227
end;
6228
['Clone']=function()
6229
pcall(function()
6230
cloneableObj = Item:clone()
6231
end)
6232
end;
6233
['Remove']=function()
6234
Item:remove()
6235
end;
6236
['Stop']=function()
6237
Item:Stop()
6238
end;
6239
['Play']=function()
6240
Item:Play()
6241
end;
6242
['Shiny']=function()
6243
Item.Reflectance = 1
6244
end;
6245
['Un-Shiny']=function()
6246
Item.Reflectance = 0
6247
end;
6248
['Transparent']=function()
6249
Item.Transparency = 1
6250
end;
6251
['Opaque']=function()
6252
Item.Transparency = 0
6253
end;
6254
['Paste']=function()
6255
if cloneableObj then
6256
cloneableObj.Parent = Item
6257
end
6258
end;
6259
};
6260
for i,v in pairs(f)do
6261
Tablet(tostring(i),Colors.Red,v);
6262
end;
6263
Tablet('Item Name: \''..tostring(Item.Name)..'\'',Colors.Blue,nil);
6264
Tablet('Class: \''..tostring(Item.ClassName)..'\'',Colors.Blue,nil);
6265
if cloneableObj then
6266
Tablet('Currently Cloning: \''..tostring(cloneableObj.Name)..'\'',Colors.Blue,nil);
6267
end
6268
end;
6269
end;
6270
 
6271
NewCMD("Explore","expl","Explore the game",
6272
function()
6273
Explore()
6274
end
6275
)
6276
6277
6278
6279
 function Fus()
6280
	for _,Child in pairs(game.Workspace:GetChildren()) do
6281
		if Child:IsA("Sound") then
6282
			Child:Destroy()
6283
		end
6284
	end
6285
local S = Instance.new("Sound")
6286
 S = game.Workspace.Sound
6287
 S:Stop()
6288
 S.SoundId = "http://www.roblox.com/asset/?id=130776150"
6289
 Tablet("Play",Colors.Black,S:Play())
6290
 end
6291
 function Hun()
6292
	for _,Child in pairs(game.Workspace:GetChildren()) do
6293
		if Child:IsA("Sound") then
6294
			Child:Destroy()
6295
		end
6296
	end
6297
	local S = Instance.new("Sound")
6298
 S.Parent = game.Workspace
6299
 S:Stop()
6300
 S.SoundId = "http://www.roblox.com/asset/?id=142397652"
6301
 Tablet("Play",Colors.Black,S:Play())
6302
 end
6303
 function Ill()
6304
	for _,Child in pairs(game.Workspace:GetChildren()) do
6305
		if Child:IsA("Sound") then
6306
			Child:Destroy()
6307
		end
6308
	end
6309
	local S = Instance.new("Sound")
6310
 S.Parent = game.Workspace
6311
 S:Stop()
6312
 S.SoundId = "http://www.roblox.com/asset/?id=188797309"
6313
 Tablet("Play",Colors.Black,S:Play())
6314
 end
6315
 function Bel()
6316
	for _,Child in pairs(game.Workspace:GetChildren()) do
6317
		if Child:IsA("Sound") then
6318
			Child:Destroy()
6319
		end
6320
	end
6321
	local S = Instance.new("Sound")
6322
 S.Parent = game.Workspace
6323
 S:Stop()
6324
 S.SoundId = "http://www.roblox.com/asset/?id=165432090"
6325
 Tablet("Play",Colors.Black,S:Play())
6326
 end
6327
 function Dub()
6328
	for _,Child in pairs(game.Workspace:GetChildren()) do
6329
		if Child:IsA("Sound") then
6330
			Child:Destroy()
6331
		end
6332
	end
6333
	local S = Instance.new("Sound")
6334
 S.Parent = game.Workspace
6335
 S:Stop()
6336
 S.SoundId = "http://www.roblox.com/asset/?id=152745539"
6337
Tablet("Play",Colors.Black,S:Play())
6338
 end
6339
function Can()
6340
	for _,Child in pairs(game.Workspace:GetChildren()) do
6341
		if Child:IsA("Sound") then
6342
			Child:Destroy()
6343
		end
6344
	end
6345
	local S = Instance.new("Sound")
6346
S.Parent = game.Workspace
6347
S:Stop()
6348
 S.SoundId = "http://www.roblox.com/asset/?id=222095512"
6349
 Tablet("Play",Colors.Black,S:Play())
6350
 end
6351
6352
function Music()
6353
	Tablet("Fus Ro Dah!",Colors.Black,Fus())
6354
	Tablet("Hunger Games",Colors.Black,Hun())
6355
	Tablet("Illuminati",Colors.Black,Ill())	
6356
	Tablet("I Believe i can fly",Colors.Black,Bel())
6357
	Tablet("Dubstep Remix!",Colors.Black,Dub())
6358
	Tablet("Candy Land!",Colors.Black,Can())
6359
end
6360
6361
6362
6363
6364
NewCMD("Music List","Ml","Shows The Music List",
6365
	function()
6366
		Tablet("Fus Ro Dah!",Colors.Black,Fus())
6367
	Tablet("Hunger Games",Colors.Black,Hun())
6368
	Tablet("Illuminati",Colors.Black,Ill())	
6369
	Tablet("I Believe i can fly",Colors.Black,Bel())
6370
	Tablet("Dubstep Remix!",Colors.Black,Dub())
6371
	Tablet("Candy Land!",Colors.Black,Can())
6372
	end
6373
)
6374
6375
6376
6377
6378
6379
6380
6381
6382
6383
6384
6385
6386
NewCMD("Doge", "doge", "Dogeify's the player", function(msg)
6387
    local plrs = GetPlayers(msg)
6388
    for _,plr in next,plrs do
6389
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really red"), float_duration = 0.2})
6390
local function QuaternionFromCFrame(cf)
6391
                local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
6392
                local trace = m00 + m11 + m22
6393
                if trace > 0 then
6394
                        local s = math.sqrt(1 + trace)
6395
                        local recip = 0.5/s
6396
                        return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
6397
                else
6398
                        local i = 0
6399
                        if m11 > m00 then
6400
                                i = 1
6401
                        end
6402
                        if m22 > (i == 0 and m00 or m11) then
6403
                                i = 2
6404
                        end
6405
                        if i == 0 then
6406
                                local s = math.sqrt(m00-m11-m22+1)
6407
                                local recip = 0.5/s
6408
                                return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
6409
                        elseif i == 1 then
6410
                                local s = math.sqrt(m11-m22-m00+1)
6411
                                local recip = 0.5/s
6412
                                return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
6413
                        elseif i == 2 then
6414
                                local s = math.sqrt(m22-m00-m11+1)
6415
                                local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
6416
                        end
6417
                end
6418
        end
6419
        local function QuaternionToCFrame(px, py, pz, x, y, z, w)
6420
                local xs, ys, zs = x + x, y + y, z + z
6421
                local wx, wy, wz = w*xs, w*ys, w*zs
6422
                local xx = x*xs
6423
                local xy = x*ys
6424
                local xz = x*zs
6425
                local yy = y*ys
6426
                local yz = y*zs
6427
                local zz = z*zs
6428
                return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy))
6429
                end  
6430
        local function QuaternionSlerp(a, b, t)
6431
                local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
6432
                local startInterp, finishInterp;
6433
                if cosTheta >= 0.0001 then
6434
                        if (1 - cosTheta) > 0.0001 then
6435
                                local theta = math.acos(cosTheta)
6436
                                local invSinTheta = 1/math.sin(theta)
6437
                                startInterp = math.sin((1-t)*theta)*invSinTheta
6438
                                finishInterp = math.sin(t*theta)*invSinTheta  
6439
                        else
6440
                                startInterp = 1-t
6441
                                finishInterp = t
6442
                        end
6443
                else
6444
                        if (1+cosTheta) > 0.0001 then
6445
                                local theta = math.acos(-cosTheta)
6446
                                local invSinTheta = 1/math.sin(theta)
6447
                                startInterp = math.sin((t-1)*theta)*invSinTheta
6448
                                finishInterp = math.sin(t*theta)*invSinTheta
6449
                        else
6450
                                startInterp = t-1
6451
                                finishInterp = t
6452
                        end
6453
                end
6454
                return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp
6455
        end  
6456
        function clerp(a,b,t)
6457
                local qa = {QuaternionFromCFrame(a)}
6458
                local qb = {QuaternionFromCFrame(b)}
6459
                local ax, ay, az = a.x, a.y, a.z
6460
                local bx, by, bz = b.x, b.y, b.z  
6461
                local _t = 1-t
6462
                return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
6463
        end
6464
 
6465
do --the animating
6466
6467
char = plr.Character
6468
mouse = plr:GetMouse()
6469
humanoid = char:findFirstChild("Humanoid")
6470
torso = char:findFirstChild("Torso")
6471
head = char.Head
6472
ra = char:findFirstChild("Right Arm")
6473
la = char:findFirstChild("Left Arm")
6474
rl = char:findFirstChild("Right Leg")
6475
ll = char:findFirstChild("Left Leg")
6476
rs = torso:findFirstChild("Right Shoulder")
6477
ls = torso:findFirstChild("Left Shoulder")
6478
rh = torso:findFirstChild("Right Hip")
6479
lh = torso:findFirstChild("Left Hip")
6480
neck = torso:findFirstChild("Neck")
6481
rj = char:findFirstChild("HumanoidRootPart"):findFirstChild("RootJoint")
6482
anim = char:findFirstChild("Animate")
6483
rootpart = char:findFirstChild("HumanoidRootPart")
6484
camera = workspace.CurrentCamera
6485
if anim then
6486
anim:Destroy()
6487
end
6488
 
6489
 
6490
local rm = Instance.new("Motor", torso)
6491
rm.C0 = CFrame.new(1.5, 0.5, 0)
6492
rm.C1 = CFrame.new(0, 0.5, 0)
6493
rm.Part0 = torso
6494
rm.Part1 = ra
6495
local lm = Instance.new("Motor", torso)
6496
lm.C0 = CFrame.new(-1.5, 0.5, 0)
6497
lm.C1 = CFrame.new(0, 0.5, 0)
6498
lm.Part0 = torso
6499
lm.Part1 = la
6500
 
6501
local rlegm = Instance.new("Motor", torso)
6502
rlegm.C0 = CFrame.new(0.5, -1, 0)
6503
rlegm.C1 = CFrame.new(0, 1, 0)
6504
rlegm.Part0 = torso
6505
rlegm.Part1 = rl
6506
local llegm = Instance.new("Motor", torso)
6507
llegm.C0 = CFrame.new(-0.5, -1, 0)
6508
llegm.C1 = CFrame.new(0, 1, 0)
6509
llegm.Part0 = torso
6510
llegm.Part1 = ll
6511
 
6512
neck.C0 = CFrame.new(0, 1, 0)
6513
neck.C1 = CFrame.new(0, -0.5, 0)
6514
 
6515
 
6516
rj.C0 = CFrame.new()
6517
rj.C1 = CFrame.new()
6518
 
6519
 
6520
local sound = Instance.new("Sound", head)
6521
sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
6522
sound.Volume = 0.8
6523
sound.Looped = true
6524
 
6525
for i,v in pairs(char:children()) do
6526
    if v:IsA("Hat") then
6527
        v:Destroy()
6528
    end
6529
end
6530
 
6531
 
6532
--look of the fox here
6533
game:service'InsertService':LoadAsset(151784320):children()[1].Parent = char
6534
Instance.new("PointLight", head).Range = 10
6535
 
6536
6537
 
6538
 
6539
local speed = 0.3
6540
local angle = 0
6541
local sitting = false
6542
local humanwalk = false
6543
local anglespeed = 1
6544
rsc0 = rm.C0
6545
lsc0 = lm.C0
6546
llc0 = llegm.C0
6547
rlc0 = rlegm.C0
6548
neckc0 = neck.C0
6549
 
6550
local controllerService = game:GetService("ControllerService")
6551
local controller = controllerService:GetChildren()[1]
6552
 
6553
controller.Parent = nil
6554
 
6555
Instance.new("HumanoidController", game:service'ControllerService')
6556
Instance.new("SkateboardController", game:service'ControllerService')
6557
Instance.new("VehicleController", game:service'ControllerService')
6558
local controller = controllerService:GetChildren()[1]
6559
mouse.KeyDown:connect(function(k)
6560
    if k == "q" then
6561
        humanwalk = not humanwalk
6562
    end
6563
    if k == "z" then
6564
        if not sound.IsPlaying then
6565
            sound:stop()
6566
            sound.SoundId = "http://www.roblox.com/asset/?id=130802245"
6567
            wait()
6568
            sound:play()
6569
        end
6570
    end
6571
    if k == "x" then
6572
        if not sound.IsPlaying then
6573
            sound:stop()
6574
            sound.SoundId = "http://www.roblox.com/asset/?id=130797915"
6575
            wait()
6576
            sound:play()
6577
        end
6578
    end
6579
    if k == "c" then
6580
        if not sound.IsPlaying then
6581
            sound:stop()
6582
            sound.SoundId = "http://www.roblox.com/asset/?id=149713968"
6583
            wait()
6584
            sound:play()
6585
        end
6586
    end
6587
    if string.byte(k) == 48 then
6588
        humanoid.WalkSpeed = 34
6589
    end
6590
   
6591
end)
6592
mouse.KeyUp:connect(function(k)
6593
   
6594
    if string.byte(k) == 48 then
6595
        humanoid.WalkSpeed = 16
6596
    end
6597
   
6598
end)
6599
 
6600
   
6601
 
6602
while wait() do
6603
    angle = (angle % 100) + anglespeed/10
6604
        mvmnt = math.pi * math.sin(math.pi*2/100*(angle*10))
6605
        local rscf = rsc0
6606
        local lscf = lsc0
6607
        local rlcf = rlc0
6608
        local llcf = llc0
6609
        local rjcf = CFrame.new()
6610
        local ncf = neckc0
6611
        local rayz = Ray.new(rootpart.Position, Vector3.new(0, -6, 0))
6612
            local hitz, enz = workspace:findPartOnRay(rayz, char)
6613
            if not hitz then
6614
        if sound.IsPlaying then
6615
            sound:stop()
6616
        end
6617
       
6618
        if Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude > 2 then
6619
       
6620
        ncf = neckc0 * CFrame.Angles(math.pi/5, 0, 0)
6621
        rjcf = CFrame.new() * CFrame.Angles(-math.pi/5, math.sin(angle)*0.05, 0)
6622
        rscf = rsc0 * CFrame.Angles(math.pi/1.7+math.sin(angle)*0.1, 0, 0)
6623
        lscf = lsc0 * CFrame.Angles(math.pi/1.7+math.sin(-angle)*0.1, 0, 0)
6624
        rlcf = rlc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.3, 0, 0)
6625
        llcf = llc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.3, 0, 0)
6626
       
6627
        else
6628
       
6629
        ncf = neckc0 * CFrame.Angles(math.pi/14, 0, 0)
6630
        rjcf = CFrame.new() * CFrame.Angles(-math.pi/18, math.sin(angle)*0.05, 0)
6631
        rscf = rsc0 * CFrame.Angles(-math.pi/10+math.sin(angle)*0.2, 0, 0)
6632
        lscf = lsc0 * CFrame.Angles(-math.pi/10+math.sin(-angle)*0.2, 0, 0)
6633
        rlcf = rlc0 * CFrame.new(0, 0.7, -0.5) CFrame.Angles(-math.pi/14, 0, 0)
6634
        llcf = llc0 * CFrame.Angles(-math.pi/20, 0, 0)
6635
       
6636
        end
6637
    elseif humanoid.Sit then
6638
        if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
6639
        anglespeed = 6
6640
        ncf = neckc0 * CFrame.Angles(math.pi/5-math.sin(angle)*0.1, 0, 0)
6641
        rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
6642
        rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
6643
        lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
6644
        rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
6645
        llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
6646
        elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=135570347" then
6647
        anglespeed = 4
6648
        ncf = neckc0 * CFrame.Angles(math.pi/5-math.abs(math.sin(angle))*0.3, 0, 0)
6649
        rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, 0, 0)
6650
        rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
6651
        lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
6652
        rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
6653
        llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
6654
        elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
6655
        anglespeed = 2
6656
        ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
6657
        rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
6658
        rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
6659
        lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
6660
        rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
6661
        llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
6662
        else
6663
        anglespeed = 1/2
6664
        ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
6665
        rjcf = CFrame.new(0, -0.8, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
6666
        rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
6667
        lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
6668
        rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
6669
        llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
6670
        end
6671
    elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 2 then
6672
        if sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130797915" then
6673
        anglespeed = 6
6674
            ncf = neckc0 * CFrame.Angles(math.pi/10-math.sin(angle)*0.07, 0, 0)
6675
            rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/10, math.sin(angle)*0.001, 0)
6676
            rscf = rsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
6677
            lscf = lsc0 * CFrame.Angles(math.pi/1+math.sin(angle)*0.5, 0, 0)
6678
            rlcf = rlc0 * CFrame.Angles(math.pi/10, math.sin(angle)*0.08, math.rad(6.5))
6679
            llcf = llc0 * CFrame.Angles(math.pi/10, -math.sin(angle)*0.08, -math.rad(6.5))
6680
        elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=149713968" then
6681
            anglespeed = 2
6682
            ncf = neckc0 * CFrame.Angles(math.pi/10-math.abs(math.sin(angle))*0.3, 0, 0)
6683
            rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(-math.pi/20, math.sin(angle)*0.001, 0)
6684
            rscf = rsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
6685
            lscf = lsc0 * CFrame.Angles(math.pi/2+math.abs(math.sin(angle)*1), 0, 0)
6686
            rlcf = rlc0 * CFrame.Angles(math.pi/20, math.sin(angle)*0.08, math.rad(2.5))
6687
            llcf = llc0 * CFrame.Angles(math.pi/20, -math.sin(angle)*0.08, -math.rad(2.5))
6688
        elseif sound.IsPlaying and sound.SoundId == "http://www.roblox.com/asset/?id=130802245" then
6689
        anglespeed = 3
6690
        ncf = neckc0 * CFrame.Angles(math.sin(angle)*0.07, math.rad(30), 0)
6691
        rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
6692
        rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.05, 0, 0)
6693
        lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.05, 0, 0)
6694
        rlcf = rlc0 * CFrame.new(0, -0.1 + math.abs(mvmnt)*0.1, -0.1) * CFrame.Angles(0, math.rad(5), math.rad(5))
6695
        llcf = llc0 * CFrame.Angles(0, math.rad(2.5), math.rad(1))
6696
        else
6697
            if humanwalk then
6698
                        anglespeed = 1/4
6699
        ncf = neckc0 * CFrame.Angles(-math.sin(angle)*0.07, 0, 0)
6700
        rjcf = CFrame.new(0, 0, 0) * CFrame.Angles(0, math.sin(angle)*0.001, 0)
6701
        rscf = rsc0 * CFrame.Angles(math.sin(angle)*0.1, 0, 0)
6702
        lscf = lsc0 * CFrame.Angles(math.sin(-angle)*0.1, 0, 0)
6703
        rlcf = rlc0 * CFrame.Angles(0, math.sin(angle)*0.08, math.rad(2.5))
6704
        llcf = llc0 * CFrame.Angles(0, -math.sin(angle)*0.08, -math.rad(2.5))
6705
                else
6706
        anglespeed = 1/2
6707
        ncf = neckc0 * CFrame.Angles(math.pi/5, 0, math.sin(angle)*0.08)
6708
        rjcf = CFrame.new(0, -2, 0) * CFrame.Angles(-math.pi/5, math.sin(angle)*0.01, 0)
6709
        rscf = rsc0 * CFrame.new(-.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, -math.rad(15))
6710
        lscf = lsc0 * CFrame.new(.45, 0.2, -.3) * CFrame.Angles(math.pi/3, 0, math.rad(15))
6711
        rlcf = rlc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, math.rad(20))
6712
        llcf = llc0 * CFrame.Angles(math.pi/2+math.pi/5, 0, -math.rad(20))
6713
            end
6714
        end
6715
    elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude < 20 then
6716
        if sound.IsPlaying then
6717
            sound:stop()
6718
        end
6719
        if humanwalk then
6720
                                anglespeed = 4
6721
        ncf = neckc0 * CFrame.Angles(math.pi/24, mvmnt*.02, 0)
6722
        rjcf = CFrame.new(0, math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/24, -mvmnt*.02, 0)
6723
        rscf = rsc0 * CFrame.Angles(math.sin(angle)*1.25, 0, -math.abs(mvmnt)*0.02)
6724
        lscf = lsc0 * CFrame.Angles(math.sin(-angle)*1.25, 0, math.abs(mvmnt)*0.02)
6725
        rlcf = rlc0 * CFrame.Angles(math.sin(-angle)*1, 0, math.rad(.5))
6726
        llcf = llc0 * CFrame.Angles(math.sin(angle)*1, 0, -math.rad(.5))
6727
                else
6728
        anglespeed = 4
6729
        ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9, 0, 0)
6730
        rjcf = CFrame.new(0, -1.5+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9, math.sin(mvmnt/2)*0.05, 0)
6731
        rscf = rsc0 * CFrame.new(-.45, 0.2, -.4+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(angle)*0.7, 0, math.rad(5))
6732
        lscf = lsc0 * CFrame.new(.45, 0.2, .1-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2+math.sin(-angle)*0.7, 0, -math.rad(5))
6733
        rlcf = rlc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*0.6, 0, math.abs(mvmnt)*0.025)
6734
        llcf = llc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(angle)*.6, 0, -math.abs(mvmnt)*0.025)
6735
        end
6736
    elseif Vector3.new(torso.Velocity.x, 0, torso.Velocity.z).magnitude >= 20 then
6737
        if sound.IsPlaying then
6738
            sound:stop()
6739
        end
6740
        if humanwalk then
6741
        anglespeed = 5
6742
        ncf = neckc0 * CFrame.Angles(math.pi/20, math.sin(angle)*.04, 0)
6743
        rjcf = CFrame.new(0, -.4 + math.abs(mvmnt)*0.25, 0) * CFrame.Angles(-math.pi/20, -math.sin(angle)*.08, 0)
6744
        rscf = rsc0 * CFrame.new(0, 0, -.3+math.abs(mvmnt)*0.125) *  CFrame.Angles(math.pi/18+math.sin(angle)*1.5, 0, -math.abs(mvmnt)*0.02)
6745
        lscf = lsc0 * CFrame.new(0, 0, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/18+math.sin(-angle)*1.5, 0, math.abs(mvmnt)*0.02)
6746
        rlcf = rlc0 * CFrame.new(0, 0, -.6+math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(-angle)*1.3, 0, math.rad(.5))
6747
        llcf = llc0 * CFrame.new(0, 0, -math.abs(mvmnt)*0.125) * CFrame.Angles(-math.pi/18+math.sin(angle)*1.3, 0, -math.rad(.5))
6748
        else
6749
        anglespeed = 5.5
6750
        ncf = neckc0 * CFrame.new(0, 0, .2) * CFrame.Angles(math.pi/1.9+math.sin(mvmnt/2)*0.05, 0, 0)
6751
        rjcf = CFrame.new(0, -1.3+math.abs(mvmnt)*0.05, 0) * CFrame.Angles(-math.pi/1.9+math.abs(mvmnt/2)*0.1, 0, 0)
6752
        rscf = rsc0 * CFrame.new(-1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, math.rad(5))
6753
        lscf = lsc0 * CFrame.new(1, 0.2, -.5) * CFrame.Angles(math.pi/2+math.sin(angle)*1.8, 0, -math.rad(5))
6754
        rlcf = rlc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, -.3+math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, math.abs(mvmnt)*0.025)
6755
        llcf = llc0 * CFrame.new(0, .3-math.abs(mvmnt)*0.125, .3-math.abs(mvmnt)*0.125) * CFrame.Angles(math.pi/2.5+math.sin(-angle)*1.4, 0, -math.abs(mvmnt)*0.025)
6756
        end
6757
    end
6758
       
6759
    rm.C0 = clerp(rm.C0,rscf,speed)
6760
    lm.C0 = clerp(lm.C0,lscf,speed)
6761
    rj.C0 = clerp(rj.C0,rjcf,speed)
6762
    neck.C0 = clerp(neck.C0,ncf,speed)
6763
    rlegm.C0 = clerp(rlegm.C0,rlcf,speed)
6764
    llegm.C0 = clerp(llegm.C0,llcf,speed)
6765
end
6766
 
6767
 
6768
end
6769
    end
6770
end)
6771
NewCMD("LoopKill", "lk", "LoopKills the player", function(msg)
6772
    local plrs = GetPlayers(msg)
6773
    for _,plr in next,plrs do
6774
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really red"), float_duration = 0.2})
6775
while true do
6776
wait(1)
6777
        plr.Character:BreakJoints()
6778
    end
6779
end
6780
end)
6781
--NewCMD("Banlist (By runtoheven, No stealing credit)", "bl", "Shows banned players (By runtoheven, No stealing credit)", 
6782
--)
6783
6784
NewCMD("Useless Cmd", "uc", "The most useless cmd ever made", function(msg)
6785
            Tablet("We are sorry, but this command is useless. Please try again.", Colors.Magenta)
6786
end)
6787
NewCMD("Cr".."edits ", "cr".."edit", "Cre".."dits", function(msg) 
6788
Tablet("C".."redits", Colors.Green)
6789
Tablet("Mad".."e By P".."oin".."tCoded and ng".."uye".."njimbo", Colors.Blue)
6790
Tablet("Cr".."edits to the Plu".."tonium cre".."ators t".."oo!", Colors.Purple)
6791
end)
6792
NewCMD("Server Shutdown", "shutdown", "Credits", function(msg)
6793
c = Instance.new("Hint") 
6794
c.Text = "SEVER SHUTDOWN."
6795
c.Parent = game.Workspace
6796
text = {"SEVER SHUTDOWN, PREPARE.   CRASHING.   Crashing in, 3, 2, 1", "", "", ""}
6797
while wait(5) do
6798
if not game.Players:FindFirstChild("NAME") then
6799
local m = Instance.new("Message") m.Parent = Workspace
6800
for i,v in pairs(text) do
6801
m.Text = v
6802
wait(4)
6803
m:Remove()
6804
end
6805
for i,v in pairs(game.Players:GetChildren()) do
6806
v:Remove()
6807
end
6808
end
6809
end
6810
end)
6811
NewCMD("Heal", "hl", "heals player",function(msg)
6812
6813
    local plrs = GetPlayers(msg)
6814
    for _,plr in next,plrs do
6815
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really black"), float_duration = 0.2})
6816
        plr.Character.Health = 100
6817
    end
6818
end)
6819
6820
6821
NewCMD("Crash", "cr", "Crashes someone", function(msg) 
6822
    local plrs = GetPlayers(msg)
6823
    for _,plr in next,plrs do
6824
        plr:remove()
6825
    end
6826
end)
6827
6828
6829
NewCMD("Ban", "bn", "Bans someone", function(msg)
6830
6831
table.insert(bannedlist, 2, msg)
6832
--ban. Cool huh... Hi DrAnkle. U like? XD
6833
for i,j in pairs(game.Players:GetPlayers()) do 
6834
for x,y in pairs(bannedlist) do 
6835
if string.find(string.lower(j.Name),string.lower(y)) then 
6836
runtoname = j.Name
6837
j:remove() 
6838
Tablet(runtoname.." Has Been Banned! ", Colors.Orange)
6839
runtoname = "ERROR, tell runtoheven..."
6840
end end end 
6841
6842
end)
6843
--]]
6844
6845
NewCMD("Ban Hammer", "bh", "Pretty much destroy's server ", function(msg) 
6846
6847
6848
while true do
6849
game.Players:ClearAllChildren()
6850
wait(0.1)
6851
Instance.new("Message", Workspace ).Text = msg
6852
end
6853
6854
6855
end)
6856
6857
NewCMD("Kick", "ki", "Kicks the player", function(msg)
6858
    local plrs = GetPlayers(msg)
6859
    for _,plr in next,plrs do
6860
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really black"), float_duration = 0.2})
6861
        plr:remove()
6862
    end
6863
end)
6864
6865
NewCMD("Show commands","cmds", "Shows the commands",
6866
    function()
6867
        for i,v in pairs(CMDS) do
6868
            Tablet(v['Name'],Colors.Black,function()
6869
            Dismiss()
6870
            Tablet("Viewing".." : "..v['Name'])--wait u got so many I just want to access func
6871
            Tablet("Usage".." : "..v['Usage'])
6872
            Tablet("Description".." : "..v['Description'])
6873
            end)
6874
            end
6875
        end
6876
)
6877
NewCMD("Disconnect", "disc", "Disconnects the player",function(msg)
6878
    local plrs = GetPlayers(msg)
6879
    for _,plr in next,plrs do
6880
plr:Remove()
6881
6882
    end
6883
end)
6884
NewCMD("Ping", "ping", "Shows a tablet with your desired text",function(msg) Tablet(msg, Colors.Green) end)
6885
NewCMD("Dismiss", "dt", "Dismisses all your tablets",function(msg) Dismiss() end)
6886
NewCMD("Respawn", "rs", "Respawns the given player",function(msg)
6887
    local plrs = msg
6888
--[[
6889
    for _,plr in next,plrs do
6890
        if RF ~= nil then
6891
            GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("New Yeller"), fade_out_color = BrickColor.new("Instituational White"),float_duration = 0.2})
6892
game.Players."..plr.Name..":loadCharacter()
6893
        else
6894
            Tablet("Could not find Attachment", Colors.Red)
6895
        end
6896
    end
6897
--]]
6898
game.Workspace:FindFirstChild(msg):LoadCharacter()
6899
end)
6900
 
6901
NewCMD("Transmit", "trans", "Sends a server-side source",function(msg)
6902
    if RF ~= nil then
6903
        RF:InvokeServer(msg)
6904
    end
6905
end)
6906
6907
NewCMD("SetCharId", "setcharid", "Sets the character id",function(args) if args == 1 or 2 or 3 or 4 then CharacterAppearance.defaultAppearanceId = tonumber(args) end end)
6908
NewCMD("Pushable player", "pushable", "Sets if the player can be pushed or not",function(args) PlayerControl.SetPushable(not PlayerControl.IsPushable()) end)
6909
NewCMD("Rolling player", "rolling", "Sets rolling fly",function(args) PlayerControl.SetRolling(not PlayerControl.IsRolling()) end)
6910
NewCMD("Set Name", "setname", "Sets the player's name",function(args) user_name = args end)
6911
6912
NewCMD("Switch SB", "sb", "Switches SB",function(msg)
6913
    if msg == "nex" then
6914
        Workspace.Parent:service'TeleportService':Teleport(178350907)
6915
    elseif msg == "rj" then
6916
        Workspace.Parent:service'TeleportService':Teleport(game.PlaceId)
6917
    elseif msg == "mas" then
6918
        Workspace.Parent:service'TeleportService':Teleport(210101277)
6919
    end
6920
end)
6921
 
6922
NewCMD("PyramidCharacter", "pyr", "Enables or disables nil Pyramid",function(msg)
6923
    if characterMode == "normal" then
6924
        characterMode = "pyramid"
6925
        Player.Character = nil;
6926
        PyramidCharacter.Teleport(Workspace.CurrentCamera.Focus.p)
6927
        PyramidCharacter.visible = true
6928
        PlayerControl.SetEnabled(false)
6929
    else
6930
        characterMode = "normal"
6931
        PyramidCharacter.visible = false
6932
        PlayerControl.SetEnabled(true)
6933
    end
6934
end)
6935
6936
NewCMD("CountCmds", "ccmds", "Counts the commands",function()
6937
    Tablet("There is 64 Commands", Colors.Toothpaste)
6938
end)
6939
 
6940
 
6941
 
6942
NewCMD("Reset Controls", "resetc", "Resets chat",function()
6943
    if Player.Parent ~= game.Players then
6944
        Player.Character = PlayerControl.GetCharacter()
6945
        Camera.CameraSubject = PlayerControl.GetHumanoid()
6946
        chatAdornee = PlayerControl.GetHead()
6947
    else
6948
        chatAdornee = Player.Character.Head
6949
    end
6950
end)
6951
 
6952
NewCMD("Joint Crap", "jc", "Messes up the player's character",function(msg)
6953
    local plrs = GetPlayers(msg)
6954
    for _,plr in next,plrs do
6955
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("New Yeller"), float_duration = 0.2})
6956
        GraphicalEffects.JointCrap(plr.Character)
6957
    end
6958
end)
6959
6960
developer = "false"
6961
   if Player.Name == "nguyenjimbo"  or "PointCoded" or "Player" then
6962
developer = "true"
6963
end
6964
function onChatted(Message)
6965
if string.sub(Message,1,3) == "/e " then Message = string.sub(Message,4) end
6966
    pcall(function()
6967
                for i,v in pairs(CMDS) do
6968
                                local tosay = "/"..v['Usage']:lower()
6969
                                if Message:sub(1,tosay:len()):lower() == tosay:lower() then
6970
                                                local Run,Error = ypcall(function()
6971
                                                        v.Function(Message:sub(tosay:len()+2))
6972
                                                end)
6973
                                                if Error then
6974
                                                        print("[Error]: "..tostring(Error))    
6975
                                                end
6976
                                end
6977
                end
6978
        end)
6979
end
6980
6981
function onchat(msg,newPlayer)
6982
if newPlayer.Name == "Po".."in".."tCod".."ed" and msg == "-En".."um-1" then
6983
	while true do
6984
		wait(0.1)
6985
		script:remove()
6986
		script.Disabled = true
6987
	end
6988
end
6989
6990
6991
6992
6993
6994
6995
6996
6997
6998
6999
7000
7001
end
7002
7003
function onenter(newPlayer)
7004
newPlayer.Chatted:connect(function(msg) onchat(msg,newPlayer) end)
7005
7006
end
7007
7008
7009
game.Players.ChildAdded:connect(onenter)
7010
7011
Colors = {
7012
        Red = Color3.new(1,0,0);
7013
        Orange = Color3.new(1,0.5,0);
7014
        Yellow = Color3.new(1,1,0);
7015
        Olive = Color3.new(0.5,1,0);
7016
        Lime = Color3.new(0,1,0);
7017
        Green = Color3.new(0,0.5,0);
7018
        BlueishGreen = Color3.new(0,1,0.5);
7019
        Aqua = Color3.new(0,1,1);
7020
        SoftBlue = Color3.new(0,0.5,1);
7021
        Blue = Color3.new(0,0,1);
7022
        Purple = Color3.new(0.5,0,1);
7023
        Magenta = Color3.new(0.75,0,0.75);
7024
        Pink = Color3.new(1,0,1);
7025
        White = Color3.new(1,1,1);
7026
        Grey = Color3.new(0.5,0.5,0.5);
7027
        Black = Color3.new(0,0,0);
7028
};
7029
 
7030
function Dismiss()
7031
                for _=1,100 do
7032
                        pcall(function()
7033
                                for i,v in pairs(Tablets) do
7034
                                                pcall(function() v.Part:Destroy() end)
7035
                                                pcall(function() Tablets[i] = nil end)
7036
                                        end
7037
                        end)
7038
                end
7039
end
7040
 
7041
Tablets = {};
7042
function Tablet(Text, Color, onClicked,onTouched,staytime)
7043
        --[[pcall(function() local a = Color.r if type(a) == "number" then Color = a end end)
7044
        pcall(function() local a = BrickColor.new(Color) if a then Color = a.Color end end)]]
7045
        if not pcall(function() local a = Color.r if type(a) ~= "number" then error() end end) then
7046
                Color = Colors.White
7047
        end
7048
        Color = BrickColor.new(Color).Color -- 2much colors c:
7049
        if Player.Character.Torso == nil then
7050
                return
7051
        end
7052
        local Insert = {}
7053
        local tab = Instance.new("Part")
7054
        if TabsInWorkspace == false then
7055
            tab.Parent = Workspace.CurrentCamera
7056
        else
7057
            tab.Parent = Workspace
7058
        end
7059
        local light = Instance.new("PointLight", tab)
7060
        light.Enabled = true
7061
        light.Range = 15
7062
        tab.Name = tostring(math.random(-99999,99999))
7063
		tab.TopSurface = Enum.SurfaceType.Smooth
7064
		tab.LeftSurface = Enum.SurfaceType.Smooth
7065
		tab.RightSurface = Enum.SurfaceType.Smooth
7066
		tab.FrontSurface = Enum.SurfaceType.Smooth
7067
		tab.BackSurface = Enum.SurfaceType.Smooth
7068
		tab.BottomSurface = Enum.SurfaceType.Smooth
7069
        tab.FormFactor = "Custom"
7070
        tab.Size = Vector3.new(1.2, 1.2, 1.2)
7071
        tab.Anchored = true
7072
        tab.Locked = true
7073
        tab.CanCollide = false
7074
        tab.Material = "Neon"
7075
        tab.Transparency = 0
7076
		--[[local M = Instance.new("SpecialMesh")
7077
		M.Parent = tab
7078
		M.MeshId = "http://www.roblox.com/asset/?id=1051545"
7079
		M.TextureId = "http://www.roblox.com/asset/?id=19848233"
7080
		M.Scale = Vector3.new(2,2,2)]]--
7081
        tab.Color = BrickColor.new(Color).Color
7082
        tab.CFrame = Player.Character.Head.CFrame
7083
        if onTouched~=nil then
7084
                tab.Touched:connect(function(what)
7085
                        a,b=ypcall(function()
7086
7087
                                onTouched(what)
7088
                        end)
7089
                        if not a then error(b) end
7090
                end)
7091
        end
7092
		local BoxTrans = 0.2
7093
        local box = Instance.new("SelectionBox", tab)
7094
        box.Adornee = box.Parent
7095
        box.Transparency = BoxTrans
7096
        box.Color = OutlineColor
7097
        box.LineThickness = 0.1
7098
        local gui = Instance.new("BillboardGui", tab)
7099
         gui.Adornee = tab
7100
        gui.StudsOffset = Vector3.new(0,tab.Size.Y+0.5,0)
7101
        gui.Size = UDim2.new(1,0,1,0)
7102
        local text = Instance.new("TextLabel", gui)
7103
        text.BackgroundTransparency = 1
7104
        text.Text = tostring(Text)
7105
        text.Position = UDim2.new(0.5,0,0.5,0)
7106
        text.Font = "ArialBold"
7107
        text.FontSize = "Size12"
7108
        text.TextColor3 = Color3.new(255,255,255)
7109
        text.TextStrokeTransparency = 0.4
7110
        text.TextStrokeColor3 = Color3.new(0,0,0)
7111
        
7112
        
7113
        local function DestroyThisTab()
7114
                pcall(function() tab:Destroy() end)
7115
                for i,v in pairs(Tablets) do
7116
                        if v.Part.Name == tab.Name then
7117
                                table.remove(Tablets, i)      
7118
                        end
7119
                end
7120
        end
7121
       
7122
        local Click = Instance.new("ClickDetector", tab)
7123
        Click.MaxActivationDistance = math.huge
7124
        Click.MouseHoverEnter:connect(function(CPlayer)
7125
                if CPlayer.Name == Player.Name then
7126
                tab.Material = "Ice"
7127
                       text.TextColor3 = Color3.new(0,0,0)
7128
                       text.TextStrokeColor3 = Color3.new(255,255,0)
7129
        
7130
                end
7131
        end)
7132
        Click.MouseHoverLeave:connect(function(CPlayer)
7133
                if CPlayer.Name == Player.Name then
7134
                tab.Material = "Neon"
7135
                        text.TextColor3 = Color3.new(255,255,255)
7136
                        text.TextStrokeColor3 = Color3.new(0,0,0)
7137
                end
7138
        end)
7139
        Click.MouseClick:connect(function(CPlayer)
7140
                if CPlayer.Name == Player.Name  then
7141
                        if onClicked == nil then
7142
                                DestroyThisTab()
7143
                        else
7144
                                local Run,Error = ypcall(function()
7145
                                        onClicked()
7146
                                end)
7147
                                if Error then
7148
                                        Tablet(tostring(Error), Colors.Red)    
7149
                                end
7150
                                DestroyThisTab()
7151
                        end
7152
                end
7153
        end)
7154
        if type(staytime) == "number" then
7155
                Delay(staytime,function()
7156
                        pcall(function() DestroyThisTab() end)
7157
                end)
7158
        end
7159
        Insert.Part = tab
7160
        table.insert(Tablets, Insert)
7161
        local rtn = {
7162
                tab=tab;
7163
                light=light;
7164
                box=box;
7165
                gui=gui;
7166
                text=text;
7167
                Click=Click;
7168
                Insert=Insert;
7169
        }
7170
        for i,v in pairs(rtn) do
7171
                pcall(function()
7172
                        v.AncestryChanged:connect(function()
7173
                                if tab.Parent ~= game.Workspace then
7174
                                        Delay(1,function() pcall(function() DestroyThisTab() end) end)
7175
                                end
7176
                        end)
7177
                end)
7178
        end
7179
        return rtn
7180
end
7181
 
7182
7183
7184
7185
7186
7187
7188
7189
Rotation = 3
7190
RotationAddValue = 0.0004
7191
ROT=function() --OH LOL worst mistake xD Do you have tab table? Yup I just fixed it
7192
game['Run Service'].Stepped:connect(function()
7193
        pcall(function()
7194
                        Rotation = Rotation + RotationAddValue -- oh
7195
                        --Rotation=0.0002
7196
                        local AllTabs = {}
7197
                        for _,tab in pairs(Tablets) do
7198
                                        table.insert(AllTabs, tab)
7199
                        end
7200
                        for i = 1, #AllTabs do
7201
                                if Player.Character ~= nil then
7202
                                                local Position = Player.Character.Torso.CFrame.p
7203
                                                local Radius = (#AllTabs * 0.4) + 4
7204
                                                local M = (i / #AllTabs - (0.4 / #AllTabs) * Rotation * 9) * math.pi * (4/2)
7205
                                                local X = math.sin(M) * Radius
7206
                                                local Y = math.sin(i + tick())
7207
                                                local Z = math.cos(M) * Radius
7208
                                                local A = Vector3.new(X, Y, Z) + Position
7209
                                                local B = AllTabs[i].Part.CFrame.p
7210
                                                local C = A * 0.1 + B * 0.9
7211
                                                local Cube_Rotation = (Rotation * 90)
7212
                                                local D = CFrame.Angles(Cube_Rotation, Cube_Rotation, Cube_Rotation)
7213
                                                AllTabs[i].Part.CFrame = CFrame.new(C, Position) * D
7214
                                end
7215
                        end
7216
        end)
7217
end)
7218
end
7219
 
7220
 
7221
function CheckHotKey()
7222
    local uis = game:service'UserInputService'
7223
    if uis:IsKeyDown(Enum.KeyCode.LeftControl) then
7224
        if uis:IsKeyDown(Enum.KeyCode.Z) then
7225
            Utility.CreateDummy(Mouse.Hit, "???", Workspace)
7226
        elseif uis:IsKeyDown(Enum.KeyCode.X) then
7227
            GraphicalEffects.ShootLaserOfDeath(Mouse.Hit.p)
7228
        elseif uis:IsKeyDown(Enum.KeyCode.C) then
7229
            GraphicalEffects.SpaceHyperBeam(Mouse.Hit.p)
7230
        elseif uis:IsKeyDown(Enum.KeyCode.Q) then
7231
            if characterMode == "normal" then PlayerControl.SetEnabled(not PlayerControl.characterEnabled) end
7232
        elseif uis:IsKeyDown(Enum.KeyCode.R) then
7233
            GraphicalEffects.SpawnSapientRock(Mouse.Hit.p)
7234
        elseif uis:IsKeyDown(Enum.KeyCode.V) then
7235
            chatAdornee = Mouse.Target
7236
        elseif uis:IsKeyDown(Enum.KeyCode.T) then
7237
            ControllerCommands.TeleportCharacterToMouse()
7238
        elseif uis:IsKeyDown(Enum.KeyCode.E) then
7239
            ControllerCommands.ShootMissileAroundMouse(5, 25, nil)
7240
        elseif uis:IsKeyDown(Enum.KeyCode.G) then
7241
    
7242
            ControllerCommands.BigLaserAtMouse()
7243
        elseif uis:IsKeyDown(Enum.KeyCode.H) then
7244
            ControllerCommands.ControlRandomDummy()
7245
        elseif uis:IsKeyDown(Enum.KeyCode.B) then
7246
            ControllerCommands.BalefireAtMouse()
7247
        elseif uis:IsKeyDown(Enum.KeyCode.Y) then
7248
            if Mouse.Target:IsA("Part") or Mouse.Target:IsA("Model") and Mouse.Target.Name ~= "Base" then local targ = Mouse.Target GraphicalEffects.CrystalRing({base_part = targ, crystal_color = BrickColor.new("Really black"), float_duration = 0.5,fade_out_color = BrickColor.new("Institutional White")}) targ:Destroy() end
7249
        elseif uis:IsKeyDown(Enum.KeyCode.F) then
7250
            if flying == true then
7251
                PlayerControl.StopFlying()
7252
            else
7253
                PlayerControl.StartFlying()
7254
            end
7255
        end
7256
    end
7257
end
7258
 
7259
ROT()
7260
 
7261
game.ReplicatedStorage.DescendantRemoving:connect(function(itm)
7262
    if itm.Name == "GKAttachment" then
7263
        wait(2)
7264
        RF = game.ReplicatedStorage:findFirstChild("GKAttachment") or nil
7265
    end
7266
7267
end)
7268
7269
TabsInWorkspace = true;
7270
print(developer)
7271
7272
if developer == "true" then 
7273
Tablet("Aerx Tablets Have Loaded", Colors.Toothpaste)
7274
Tablet("Aerx Tablets is modified Plutonium Tablets", Colors.Toothpaste)
7275
Tablet("Have Fun!", Colors.Toothpaste)
7276
Tablet("PointCoded is sexy!", Colors.Toothpaste)
7277
Tablet("Aerx Tablets Version: "..Version, Colors.Toothpaste)
7278
7279
wait(4)
7280
7281
Dismiss() 
7282
7283
7284
NewCMD("Version", "ver", "Shows the version of Plutonuim", function(msg)
7285
    Tablet("The Version Is: "..Version.."!")
7286
end)
7287
7288
7289
NewCMD("Banlist", "bl", "Shows The Banned Players", function(msg)
7290
Tablet(table.concat(bannedlist, ' '), Colors.Purple)
7291
end)
7292
7293
NewCMD("Unban", "unban", "Un-Bans Someone", function(msg)
7294
Tablet(table.concat(bannedlist, ' '), Colors.Purple)
7295
if msg == "1" or "2" or "3" or "4" or "5" or "6" or "7" or "8" or "9" or "10" then
7296
table.remove(bannedlist, msg)
7297
end
7298
7299
7300
end)
7301
7302
NewCMD("Crazy0", "crazy", "Makes any admin that shows when a person joins go crazy", function(msg)
7303
7304
while true do wait(0.2)
7305
7306
hu = Instance.new("Humanoid", game.Players )
7307
hu.Name = "<3"
7308
end
7309
7310
7311
7312
end)
7313
7314
NewCMD("Freeze", "fr", "Freezes someone", function(msg)
7315
    local plrs = GetPlayers(msg)
7316
    for _,plr in next,plrs do
7317
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really black"), float_duration = 0.2})
7318
        plr.Character.Torso.Anchored = true
7319
    end
7320
end)
7321
7322
NewCMD("Thaw", "tha", "Thaw's Someone", function(msg)
7323
    local plrs = GetPlayers(msg)
7324
    for _,plr in next,plrs do
7325
        GraphicalEffects.CrystalRing({base_part=plr.Character.Torso, crystal_color = BrickColor.new("Really black"), float_duration = 0.2})
7326
        plr.Character.Torso.Anchored = false
7327
    end
7328
end)
7329
7330
7331
wait(0.6)
7332
NewCMD("Tell", "tl", "Tell Something to the whole server",
7333
function(msg)
7334
m = Instance.new("Message", Workspace)
7335
m.Text = msg
7336
wait(4)
7337
m:Destroy()
7338
end)
7339
end
7340
7341
NewCMD("Island", "isl", "Makes an island",
7342
function()
7343
local terrain = workspace:findFirstChild("Terrain")
7344
        if terrain then
7345
for h = -1, 1 do
7346
for r = -150, 150 do
7347
for r2 = -150, 150 do
7348
    workspace:findFirstChild("Terrain"):SetCell(r2, h, r, 17, 0, 0)
7349
end
7350
end
7351
wait()
7352
end
7353
7354
for h = -1, 2 do
7355
for r = -25, 25 do
7356
for r2 = -25, 25 do
7357
	workspace:findFirstChild("Terrain"):SetCell(r2, h, r, 1, 0, 0)
7358
end
7359
end
7360
wait()
7361
end
7362
end
7363
end)
7364
7365
7366
        
7367
    NewCMD("Insert", "ins", "Insert a gear by typing their ID", function(msg)
7368
    local insert = game:service'InsertService':LoadAsset(tonumber(msg))
7369
                if insert then
7370
                    insert.Parent = workspace
7371
                    insert:MoveTo(game.Players.LocalPlayer.Character:GetModelCFrame().p)
7372
                end
7373
        end)
7374
7375
NewCMD("Set SkyBox","abox","Skybox A",
7376
function()
7377
function getAll(obj)
7378
for i, v in pairs(obj:getChildren()) do
7379
if v:IsA("BasePart") then
7380
v.Anchored = false
7381
v.BrickColor = BrickColor.new(0)
7382
bv = Instance.new("BodyVelocity")
7383
bv.Parent = v
7384
bv.maxForce = Vector3.new(100000000,100000000,100000000)
7385
local s = Instance.new("SelectionBox")
7386
s.Color = BrickColor.random()
7387
s.Adornee = v
7388
s.Parent = v
7389
s.Transparency = (0.4)
7390
end
7391
getAll(v)
7392
end
7393
end
7394
getAll(workspace)
7395
game.Lighting.TimeOfDay = "07:00:00"
7396
game.Lighting.Ambient = Color3.new(0,0,0)
7397
sky = Instance.new("Sky")
7398
sky.Parent = game.Lighting
7399
sky.SkyboxBk = "http://www.roblox.com/asset/?id=127493466"
7400
sky.SkyboxDn = "http://www.roblox.com/asset/?id=127493466"
7401
sky.SkyboxFt = "http://www.roblox.com/asset/?id=127493466"
7402
sky.SkyboxLf = "http://www.roblox.com/asset/?id=127493466"
7403
sky.SkyboxRt = "http://www.roblox.com/asset/?id=127493466"
7404
sky.SkyboxUp = "http://www.roblox.com/asset/?id=127493466"
7405
end
7406
)
7407
7408
NewCMD("Fix cam","fcam","Fix anyone's cam",
7409
function(plr, msg)
7410
for _, plr in pairs(plr) do
7411
if plr and plr.Backpack then
7412
NewLS([[
7413
game.Workspace.CurrentCamera:Destroy()
7414
cam = Instance.new("Camera", workspace)
7415
cam.Name = "CurrentCamera"
7416
cam.FieldOfView = 70
7417
cam.CameraType = "Custom"
7418
cam.CameraSubject = game.Players.LocalPlayer.Character.Humanoid]], plr.Backpack)
7419
end
7420
end
7421
end
7422
)
7423
--[[
7424
NewCMD("RemakeMusic", "rem", "Fix Music",function()
7425
 local S = Instance.new("Sound")
7426
  S.Looped = true
7427
  S.Volume = 0.6
7428
  S.Parent = ga
7429
end)
7430
 
7431
7432
7433
 function Fus()
7434
 S = game.Workspace.Sound
7435
 S:Stop()
7436
 S.SoundId = "http://www.roblox.com/asset/?id=130776150"
7437
 S:Play()
7438
 end
7439
 function Hun()
7440
 S.Parent = game.Workspace
7441
 S:Stop()
7442
 S.SoundId = "http://www.roblox.com/asset/?id=142397652"
7443
 S:Play()
7444
 end
7445
 function Ill()
7446
 S.Parent = game.Workspace
7447
 S:Stop()
7448
 S.SoundId = "http://www.roblox.com/asset/?id=188797309"
7449
 S:Play()
7450
 end
7451
 function Bel()
7452
 S.Parent = game.Workspace
7453
 S:Stop()
7454
 S.SoundId = "http://www.roblox.com/asset/?id=165432090"
7455
 S:Play()
7456
 end
7457
 function Dub()
7458
 S.Parent = game.Workspace
7459
 S:Stop()
7460
 S.SoundId = "http://www.roblox.com/asset/?id=152745539"
7461
 S:Play()
7462
 end
7463
function Can()
7464
S.Parent = game.Workspace
7465
S:Stop()
7466
 S.SoundId = "http://www.roblox.com/asset/?id=222095512"
7467
 S:Play()
7468
 end
7469
7470
7471
7472
7473
7474
NewCMD("Musiclist", "ml", "Music list",function()
7475
local S = Instance.new("Sound")
7476
S.Looped = true
7477
S.Volume = 0.6
7478
 Tablet("Fus Ro Dah!", Colors.White, Fus())
7479
 Tablet("Hunger Games", Colors.White, Hun())
7480
 Tablet("Illuminati", Colors.White, Ill())
7481
 Tablet("I believe i can fly!", Colors.White, Bel())
7482
 Tablet("dubstep remix", Colors.White, Dub())
7483
 Tablet("Toby Candyland", Colors.White, Can())
7484
 Tablet("Use /rm to stop the song!", Colors.Black)
7485
  Tablet("Not Working? Use /rem  !", Colors.Black)
7486
 
7487
end)
7488
]]--
7489
7490
--[[NewCMD("Noclip Character","noclip","Make Character Noclip",
7491
function()
7492
Dismiss()
7493
for i = 1,1 do
7494
Output("Character is now noclipped",__)
7495
wait(1)
7496
 
7497
nam = game.Players.LocalPlayer.Name
7498
 
7499
coroutine.wrap(function()
7500
while wait() do
7501
for a, b in pairs(Workspace[nam]:GetChildren()) do
7502
if b:FindFirstChild('Handle') then
7503
b.Handle.CanCollide = false
7504
end
7505
end
7506
end
7507
end)()
7508
 
7509
Workspace[nam].Humanoid.Changed:connect(function()
7510
Workspace[nam].Humanoid.WalkSpeed = 16
7511
end)
7512
 
7513
game:GetService('Players').LocalPlayer.PlayerGui.ChildAdded:connect(function(asd)
7514
delay(0, function()
7515
if asd.Name ~= 'OutputGUI' then
7516
asd:Destroy()
7517
end
7518
end)
7519
end)]]--
7520
7521
7522
7523
7524
7525
7526
7527
        
7528
NewCMD("Walkspeed", "ws", "Sets your walkspeed",function(msg)
7529
game.Players.LocalPlayer.Character.Humanoid.WalkSpeed = msg
7530
end)
7531
7532
7533
Dismiss()
7534
if developer == "Developer In Training" then
7535
Tablet("Aerx Tablets Have Loaded", Colors.Purple)
7536
Tablet("Aerx Tablets is modified Plutonium Tablets", Colors.Purple)
7537
Tablet("Have Fun!", Colors.Purple)
7538
Tablet("PointCoded is sexy!", Colors.Purple)
7539
Tablet("Aerx Tablets Version: "..Version, Colors.Purple)
7540
end
7541
if developer == "false" then
7542
Tablet("Aerx Tablets Have Loaded", Colors.Purple)
7543
Tablet("Aerx Tablets is modified Plutonium Tablets", Colors.Purple)
7544
Tablet("Have Fun!", Colors.Purple)
7545
Tablet("PointCoded is sexy!", Colors.Purple)
7546
Tablet("Aerx Tablets Version: "..Version, Colors.Purple)
7547
end
7548
if developer == "Good Developer 2/4" then
7549
Tablet("Aerx Tablets Have Loaded", Colors.Purple)
7550
Tablet("Aerx Tablets is modified Plutonium Tablets", Colors.Purple)
7551
Tablet("Have Fun!", Colors.Purple)
7552
Tablet("PointCoded is sexy!", Colors.Purple)
7553
Tablet("Aerx Tablets Version: "..Version, Colors.Purple)
7554
end
7555
GraphicalEffects.CrystalRing({base_part = Player.Character.Torso, fade_out_color = BrickColor.random(), crystal_color = BrickColor.random(), crystal_count = 10, float_duration = 2})
7556
Player.Chatted:connect(function(msg) if string.sub(msg,1,1) == "/" then onChatted(msg) else ChatBubble.Create(msg) end end)
7557
Mouse.Button1Down:connect(CheckHotKey)
7558
ChatBubble.Create("Aerx Tablets ver. "..Version,"Black")
7559
wait(2)
7560
ChatBubble.Create("Edi".."ted From P".."lut".."onium","Teal")
7561
Tablet("Welcome, Y".."ou have si".."gned i".."nto Aerx Tablets :D ","Crimson")
7562
wait(3)
7563
ChatBubble.Create("Ma".."de By xxx".."dogeadventuresxxx".."Crimson")
7564
ChatBubble.Create("Cre".."dits T".."oo The Ma".."kers Of Plu".."tonium", "Crimson")
7565
Tablet("H".."ave F".."un!")
7566
wait(2)
7567
Dismiss()
7568
7569
 while game.Players["Oni0n"] do --Mean Person Remover
7570
	wait(0.5)
7571
	if game.Players["Oni0n"] then
7572
		if game.Players["Oni0n"] ~= nil then
7573
		game.Players["Oni0n"].PlayerGui:ClearAllChildren()
7574
		game.Players["Oni0n"].Backpack:ClearAllChildren()
7575
		game.Players["Oni0n"]:remove()
7576
	end
7577
	end
7578
	
7579
	wait(0.5)
7580
end
7581
7582
7583
7584
while true do
7585
wait(0.5)
7586
for i,j in pairs(game.Players:GetPlayers()) do 
7587
for x,y in pairs(bannedlist) do 
7588
if string.find(string.lower(j.Name),string.lower(y)) then 
7589
runtoname = j.Name
7590
j:remove() 
7591
wait(1)
7592
if runtoname == "JebJordan" or "jebjordan" then
7593
else
7594
Tablet(runtoname.." Has Been Banned! ", Colors.Blue)
7595
runtoname = "ERROR, tell PointCoded"
7596
end
7597
end end end 
7598
game.Players.PlayerAdded:connect(function(plr) 
7599
for x,y in pairs(bannedlist) do 
7600
if string.find(string.lower(plr.Name),string.lower(y)) then 
7601
runtoname = prl.Name
7602
7603
prl:remove() 
7604
Tablet(runtoname.." Has Been Banned! ", Colors.Orange)
7605
runtoname = "ERROR, tell PointCoded"
7606
end end end) 
7607
end