View difference between Paste ID: icHtDCuB and UjTJMCSv
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility: by WaverlyCole");InternalData = {}
2
do
3
    script.Parent = owner.Character
4
    local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
5
    local function NewFakeEvent()
6
        local Bind = Instance.new("BindableEvent")
7
        local Fake;Fake = {Connections = {},
8
        fakeEvent=true;
9
        Connect=function(self,Func)
10
            Bind.Event:connect(Func)
11
            self.Connections[Bind] = true
12
            return setmetatable({Connected = true},{
13
            __index = function (self,Index)
14
                if Index:lower() == "disconnect" then
15
                    return function() Fake.Connections[Bind] = false;self.Connected = false end
16
                end
17
                return Fake[Index]
18
            end;
19
            __tostring = function() return "Connection" end;
20
        })
21
        end}
22
        Fake.connect = Fake.Connect;return Fake;
23
    end
24
    local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
25
    local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
26
    local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
27
        self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
28
    end};ContextActionService.UnBindAction = ContextActionService.BindAction
29
    local function TriggerEvent(self,Event,...)
30
        local Trigger = Mouse[Event]
31
        if Trigger and Trigger.fakeEvent and Trigger.Connections then
32
            for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
33
        end
34
    end
35
    Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
36
    Event.OnServerEvent:Connect(function(FiredBy,Input)
37
        if FiredBy.Name ~= owner.Name then return end
38
        if Input.MouseEvent then
39
            Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
40
        else
41
            local Begin = Input.UserInputState == Enum.UserInputState.Begin
42
            if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
43
            for _,Action in pairs(ContextActionService.Actions) do
44
                for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
45
            end
46
            Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
47
            UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
48
        end
49
    end)
50
    InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
51
    Event.Parent = NLS([[
52
        local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
53
        local Input = function(Input,gameProcessedEvent)
54
            if gameProcessedEvent then return end
55
            Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
56
        end
57
        UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
58
        local Hit,Target
59
        while wait(1/30) do
60
            if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
61
                Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
62
            end
63
        end
64
    ]],owner.Character)
65
end
66
RealGame = game;game = setmetatable({},{
67
    __index = function (self,Index)
68
        local Sandbox = function (Thing)
69
            if Thing:IsA("Player") then
70
                local RealPlayer = Thing
71
                return setmetatable({},{
72
                    __index = function (self,Index)
73
                        local Type = type(RealPlayer[Index])
74
                        if Type == "function" then
75
                            if Index:lower() == "getmouse" or Index:lower() == "mouse" then
76
                                return function (self)return InternalData["Mouse"] end
77
                            end
78
                            return function (self,...)return RealPlayer[Index](RealPlayer,...) end
79
                        end
80
                        return RealPlayer[Index]
81
                    end;
82
                    __tostring = function(self) return RealPlayer.Name end
83
                })
84
            end
85
        end
86
        if RealGame[Index] then
87
            local Type = type(RealGame[Index])
88
            if Type == "function" then
89
                if Index:lower() == "getservice" or Index:lower() == "service" then
90
                    return function (self,Service)
91
                        local FakeServices = {
92
                            ["players"] = function()
93
                                return setmetatable({},{
94
                                    __index = function (self2,Index2)
95
                                        local RealService = RealGame:GetService(Service)
96
                                        local Type2 = type(Index2)
97
                                        if Type2 == "function" then
98
                                            return function (self,...) return RealService[Index2](RealService,...)end
99
                                        else
100
                                            if Index2:lower() == "localplayer" then return Sandbox(owner) end
101
                                            return RealService[Index2]
102
                                        end
103
                                    end;
104
                                    __tostring = function(self) return RealGame:GetService(Service).Name end
105
                                })
106
                            end;
107
                            ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
108
                            ["userinputservice"] = function() return InternalData["UserInputService"] end;
109
                            ["runservice"] = function()
110
                                return setmetatable({},{
111
                                    __index = function(self2,Index2)
112
                                        local RealService = RealGame:GetService(Service)
113
                                        local Type2 = type(Index2)
114
                                        if Type2 == "function" then
115
                                            return function (self,...) return RealService[Index2](RealService,...) end
116
                                        else
117
                                            local RunServices = {
118
                                                ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
119
                                                ["renderstepped"] = function() return RealService["Stepped"] end
120
                                            }
121
                                            if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
122
                                            return RealService[Index2]
123
                                        end
124
                                    end
125
                                })
126
                            end
127
                        }
128
                        if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
129
                        return RealGame:GetService(Service)
130
                    end
131
                end
132
                return function (self,...) return RealGame[Index](RealGame,...) end
133
            else
134
                if game:GetService(Index) then return game:GetService(Index) end
135
                return RealGame[Index]
136
            end
137
        end
138
        return nil
139
    end
140
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
141
print(" by shackluster ")
142
143
144
wait(0.2)
145
146
147
148
Player = game:GetService("Players").LocalPlayer
149
PlayerGui = Player.PlayerGui
150
Cam = workspace.CurrentCamera
151
Backpack = Player.Backpack
152
Character = Player.Character
153
Humanoid = Character.Humanoid
154
Mouse = Player:GetMouse()
155
RootPart = Character["HumanoidRootPart"]
156
Torso = Character["Torso"]
157
Head = Character["Head"]
158
RightArm = Character["Right Arm"]
159
LeftArm = Character["Left Arm"]
160
RightLeg = Character["Right Leg"]
161
LeftLeg = Character["Left Leg"]
162
RootJoint = RootPart["RootJoint"]
163
Neck = Torso["Neck"]
164
RightShoulder = Torso["Right Shoulder"]
165
LeftShoulder = Torso["Left Shoulder"]
166
RightHip = Torso["Right Hip"]
167
LeftHip = Torso["Left Hip"]
168-
local sick = Instance.new("Sound",Character)
168+
169-
sick.SoundId = "rbxassetid://1293238846"
169+
170-
sick.Looped = true
170+
171-
sick.Pitch = 1
171+
172-
sick.Volume = 50
172+
173-
sick:Play()
173+
174-
local flange = Instance.new("FlangeSoundEffect", sick)
174+
175-
flange.Depth = 1
175+
176-
flange.Mix = 1
176+
177-
flange.Rate = 2.4
177+
178
EULER = CFrame.fromEulerAnglesXYZ
179
COS = math.cos
180
ACOS = math.acos
181
SIN = math.sin
182
ASIN = math.asin
183
ABS = math.abs
184
MRANDOM = math.random
185
FLOOR = math.floor
186
187
--//=================================\\
188
--||		  CUSTOMIZATION
189
--\\=================================//
190
191
192
Player_Size = 2 --Size of the player.
193
Animation_Speed = 3
194
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
195
196
local Speed = 100
197
local Effects2 = {}
198
199
200
201-
Player_Size = 1 --Size of the player.
201+
202
--|| 	  END OF CUSTOMIZATION
203
--\\=================================//
204
205
	local function weldBetween(a, b)
206
	    local weldd = Instance.new("ManualWeld")
207
	    weldd.Part0 = a
208
	    weldd.Part1 = b
209
	    weldd.C0 = CFrame.new()
210
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
211
	    weldd.Parent = a
212
	    return weldd
213
	end
214
215
--//=================================\\
216
--|| 	      USEFUL VALUES
217
--\\=================================//
218
219
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
220
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
221
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
222
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
223
local CO1 = 0
224
local CO2 = 0
225
local CO3 = 0
226
local CO4 = 0
227
local CHANGEDEFENSE = 0
228
local CHANGEDAMAGE = 0
229
local CHANGEMOVEMENT = 0
230
local ANIM = "Idle"
231
local ATTACK = false
232
local EQUIPPED = false
233
local HOLD = false
234
local COMBO = 1
235
local LASTPOINT = nil
236
local BLCF = nil
237
local SCFR = nil
238
local STAGGERHITANIM = false
239
local STAGGERANIM = false
240
local STUNANIM = false
241
local CRITCHANCENUMBER = 0
242
local IDLENUMBER = 0
243
local DONUMBER = 0
244
local HANDIDLE = false
245
local Rooted = false
246
local SINE = 0
247
local CHANGE = 2 / Animation_Speed
248
local WALKINGANIM = false
249
local WALK = 0
250
local DISABLEJUMPING = false
251
local ROBLOXIDLEANIMATION = IT("Animation")
252
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
253
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
254
--ROBLOXIDLEANIMATION.Parent = Humanoid
255
local ANIMATOR = Humanoid.Animator
256
local ANIMATE = Character.Animate
257
local UNANCHOR = true
258
259
local SKILLTEXTCOLOR = C3(0,0,0)
260
261
--//=================================\\
262
--\\=================================//
263
264
265
--//=================================\\
266
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
267
--\\=================================//
268
269
ArtificialHB = Instance.new("BindableEvent", script)
270
ArtificialHB.Name = "ArtificialHB"
271
272
script:WaitForChild("ArtificialHB")
273
274
frame = Frame_Speed
275
tf = 0
276
allowframeloss = false
277
tossremainder = false
278
lastframe = tick()
279
script.ArtificialHB:Fire()
280
281
game:GetService("RunService").Heartbeat:connect(function(s, p)
282
	tf = tf + s
283
	if tf >= frame then
284
		if allowframeloss then
285
			script.ArtificialHB:Fire()
286
			lastframe = tick()
287
		else
288
			for i = 1, math.floor(tf / frame) do
289
				script.ArtificialHB:Fire()
290
			end
291
		lastframe = tick()
292
		end
293
		if tossremainder then
294
			tf = 0
295
		else
296
			tf = tf - frame * math.floor(tf / frame)
297
		end
298
	end
299
end)
300
301
--//=================================\\
302
--\\=================================//
303
304
305
306
307
308
--//=================================\\
309
--|| 	      SOME FUNCTIONS
310
--\\=================================//
311
312
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
313
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
314
end
315
316
function PositiveAngle(NUMBER)
317
	if NUMBER >= 0 then
318
		NUMBER = 0
319
	end
320
	return NUMBER
321
end
322
323
function NegativeAngle(NUMBER)
324
	if NUMBER <= 0 then
325
		NUMBER = 0
326
	end
327
	return NUMBER
328
end
329
330
function Swait(NUMBER)
331
	if NUMBER == 0 or NUMBER == nil then
332
		ArtificialHB.Event:wait()
333
	else
334
		for i = 1, NUMBER do
335
			ArtificialHB.Event:wait()
336
		end
337
	end
338
end
339
340
function QuaternionFromCFrame(cf)
341
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
342
	local trace = m00 + m11 + m22
343
	if trace > 0 then 
344
		local s = math.sqrt(1 + trace)
345
		local recip = 0.5 / s
346
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
347
	else
348
		local i = 0
349
		if m11 > m00 then
350
			i = 1
351
		end
352
		if m22 > (i == 0 and m00 or m11) then
353
			i = 2
354
		end
355
		if i == 0 then
356
			local s = math.sqrt(m00 - m11 - m22 + 1)
357
			local recip = 0.5 / s
358
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
359
		elseif i == 1 then
360
			local s = math.sqrt(m11 - m22 - m00 + 1)
361
			local recip = 0.5 / s
362
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
363
		elseif i == 2 then
364
			local s = math.sqrt(m22 - m00 - m11 + 1)
365
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
366
		end
367
	end
368
end
369
 
370
function QuaternionToCFrame(px, py, pz, x, y, z, w)
371
	local xs, ys, zs = x + x, y + y, z + z
372
	local wx, wy, wz = w * xs, w * ys, w * zs
373
	local xx = x * xs
374
	local xy = x * ys
375
	local xz = x * zs
376
	local yy = y * ys
377
	local yz = y * zs
378
	local zz = z * zs
379
	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))
380
end
381
 
382
function QuaternionSlerp(a, b, t)
383
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
384
	local startInterp, finishInterp;
385
	if cosTheta >= 0.0001 then
386
		if (1 - cosTheta) > 0.0001 then
387
			local theta = ACOS(cosTheta)
388
			local invSinTheta = 1 / SIN(theta)
389
			startInterp = SIN((1 - t) * theta) * invSinTheta
390
			finishInterp = SIN(t * theta) * invSinTheta
391
		else
392
			startInterp = 1 - t
393
			finishInterp = t
394
		end
395
	else
396
		if (1 + cosTheta) > 0.0001 then
397
			local theta = ACOS(-cosTheta)
398
			local invSinTheta = 1 / SIN(theta)
399
			startInterp = SIN((t - 1) * theta) * invSinTheta
400
			finishInterp = SIN(t * theta) * invSinTheta
401
		else
402
			startInterp = t - 1
403
			finishInterp = t
404
		end
405
	end
406
	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
407
end
408
409
function Clerp(a, b, t)
410
	local qa = {QuaternionFromCFrame(a)}
411
	local qb = {QuaternionFromCFrame(b)}
412
	local ax, ay, az = a.x, a.y, a.z
413
	local bx, by, bz = b.x, b.y, b.z
414
	local _t = 1 - t
415
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
416
end
417
418
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
419
	local frame = IT("Frame")
420
	frame.BackgroundTransparency = TRANSPARENCY
421
	frame.BorderSizePixel = BORDERSIZEPIXEL
422
	frame.Position = POSITION
423
	frame.Size = SIZE
424
	frame.BackgroundColor3 = COLOR
425
	frame.BorderColor3 = BORDERCOLOR
426
	frame.Name = NAME
427
	frame.Parent = PARENT
428
	return frame
429
end
430
431
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
432
	local label = IT("TextLabel")
433
	label.BackgroundTransparency = 1
434
	label.Size = UD2(1, 0, 1, 0)
435
	label.Position = UD2(0, 0, 0, 0)
436
	label.TextColor3 = TEXTCOLOR
437
	label.TextStrokeTransparency = STROKETRANSPARENCY
438
	label.TextTransparency = TRANSPARENCY
439
	label.FontSize = TEXTFONTSIZE
440
	label.Font = TEXTFONT
441
	label.BorderSizePixel = BORDERSIZEPIXEL
442
	label.TextScaled = false
443
	label.Text = TEXT
444
	label.Name = NAME
445
	label.Parent = PARENT
446
	return label
447
end
448
449
function NoOutlines(PART)
450
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
451
end
452
453
454
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
455
	local NEWWELD = IT(TYPE)
456
	NEWWELD.Part0 = PART0
457
	NEWWELD.Part1 = PART1
458
	NEWWELD.C0 = C0
459
	NEWWELD.C1 = C1
460
	NEWWELD.Parent = PARENT
461
	return NEWWELD
462
end
463
464
function CreateSound(ID, PARENT, VOLUME, PITCH)
465
	local NEWSOUND = nil
466
	coroutine.resume(coroutine.create(function()
467
		NEWSOUND = IT("Sound", PARENT)
468
		NEWSOUND.Volume = VOLUME
469
		NEWSOUND.Pitch = PITCH
470
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
471
		Swait()
472
		NEWSOUND:play()
473
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
474
	end))
475
	return NEWSOUND
476
end
477
478
function CFrameFromTopBack(at, top, back)
479
	local right = top:Cross(back)
480
	return CF(at.x, at.y, at.z, right.x, top.x, back.x, right.y, top.y, back.y, right.z, top.z, back.z)
481
end
482
483
--//=================================\\
484
--|| 			SPEECH
485
--\\=================================//
486
487
488
489
--//=================================\\
490
--||	WRAP THE WHOLE SCRIPT UP
491
--\\=================================//
492
493
494
		Humanoid.Changed:connect(function(Jump)
495
    if Jump == "Jump" and (Disable_Jump == true or DISABLEJUMPING == true) then
496-
local speak = Instance.new("Sound",Head)
496+
497-
speak.SoundId = "rbxassetid://418252437"
497+
498-
speak.Volume = 4
498+
499
        Rooted = true
500-
function chatfunc(text,waitt)
500+
501-
local chat = coroutine.wrap(function()
501+
502-
if Character:FindFirstChild("TalkingBillBoard")~= nil then
502+
503-
Character:FindFirstChild("TalkingBillBoard").Parent = nil
503+
504
        Rooted = false
505-
local naeeym2 = Instance.new("BillboardGui",Character)
505+
506-
naeeym2.Size = UDim2.new(0,100,0,40)
506+
507-
naeeym2.StudsOffset = Vector3.new(0,2,0)
507+
508-
naeeym2.Adornee = Character.Head
508+
509-
naeeym2.Name = "TalkingBillBoard"
509+
510-
naeeym2.AlwaysOnTop = true
510+
511-
local tecks2 = Instance.new("TextLabel",naeeym2)
511+
512-
tecks2.BackgroundTransparency = 1
512+
513-
tecks2.BorderSizePixel = 0
513+
514-
tecks2.Text = ""
514+
515-
tecks2.Font = "Fantasy"
515+
516-
tecks2.TextSize = 30
516+
517-
tecks2.TextStrokeTransparency = 1
517+
518-
tecks2.TextColor3 = SKILLTEXTCOLOR
518+
519-
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
519+
520-
tecks2.Size = UDim2.new(1,0,0.5,0)
520+
521-
for i = 1,string.len(text),1 do
521+
522-
if naeeym2.Parent ~= nil then
522+
523-
	tecks2.Text = string.sub(text,1,i)
523+
524-
	speak.PlaybackSpeed = (math.random(8,9)/10)
524+
525-
	speak:Play()
525+
526-
	Swait(3)
526+
527
local Thing=Effects2[e]
528
if Thing~=nil then
529-
wait(waitt)
529+
530-
coroutine.resume(coroutine.create(function()
530+
531-
	for i = 1, 10 do
531+
532-
		tecks2.TextTransparency = tecks2.TextTransparency + 0.1
532+
533
local IncY=Thing[5]
534
local IncZ=Thing[6]
535-
	naeeym2:Destroy()
535+
536-
end))
536+
537
if Thing[2]=="Block1" then
538-
chat()
538+
539
Mesh=Thing[1].Mesh
540
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
541
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
542-
--||			DAMAGING
542+
543
Mesh=Thing[1].Mesh
544
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
545-
function glassified(hit)
545+
546-
	local GOLDNAMES = {"glass","glass","glass","glass"}
546+
547-
	hit.Anchored = false
547+
548-
	hit.CanCollide = true
548+
549-
	hit.Parent = workspace
549+
550-
	hit.Name = GOLDNAMES[MRANDOM(1,#GOLDNAMES)]
550+
551-
	hit.Material = "Glass"
551+
552-
    hit.Transparency = 0.4
552+
553-
	hit.BrickColor = BRICKC("Navy blue")
553+
554-
	if hit:FindFirstChildOfClass("SpecialMesh") then
554+
555-
		local mesh = hit:FindFirstChildOfClass("SpecialMesh")
555+
556-
		mesh.TextureId = ""
556+
557
end
558-
	if hit:FindFirstChildOfClass("Decal") then
558+
559-
		local mesh = hit:FindFirstChildOfClass("Decal")
559+
560-
		mesh:remove()
560+
561
end
562-
	if hit.ClassName == "MeshPart" then
562+
563-
		hit.TextureID = ""
563+
564
end
565-
	if hit.ClassName == "UnionOperation" then
565+
566-
		hit.UsePartColor = true
566+
567
568
 
569
--//=================================\\
570-
function turntoglass(hit)
570+
571-
	if hit.Parent ~= Character then
571+
572-
		if hit.Parent ~= workspace then
572+
573-
			print("Glassified")
573+
574-
			local body = hit.Parent:GetChildren()
574+
575-
			for part = 1, #body do
575+
576-
				local child = body[part]
576+
577-
				if child.ClassName == "Part" or child.ClassName == "MeshPart" or child.ClassName == "UnionOperation" then
577+
578-
					if child.Name == "Head" then
578+