View difference between Paste ID: uYHbncmE and yaNWXwkE
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2-
local Player,game,owner = owner,game
2+
local Player,Mouse,mouse,UserInputService,ContextActionService = owner
3-
local RealPlayer = Player
3+
4
	print("FE Compatibility code by Mokiros")
5-
    print("FE Compatibility code by Mokiros")
5+
	script.Parent = Player.Character
6-
    local rp = RealPlayer
6+
7-
    script.Parent = rp.Character
7+
	--RemoteEvent for communicating
8-
   
8+
	local Event = Instance.new("RemoteEvent")
9-
    --RemoteEvent for communicating
9+
	Event.Name = "UserInput_Event"
10-
    local Event = Instance.new("RemoteEvent")
10+
11-
    Event.Name = "UserInput_Event"
11+
	--Fake event to make stuff like Mouse.KeyDown work
12
	local function fakeEvent()
13-
    --Fake event to make stuff like Mouse.KeyDown work
13+
		local t = {_fakeEvent=true,Connect=function(self,f)self.Function=f end}
14-
    local function fakeEvent()
14+
		t.connect = t.Connect
15-
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
15+
		return t
16-
        t.connect = t.Connect
16+
17-
        return t
17+
18-
    end
18+
	--Creating fake input objects with fake variables
19
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent()}
20-
    --Creating fake input objects with fake variables
20+
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
21
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
22-
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
22+
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
23-
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
23+
	end}
24-
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
24+
	--Merged 2 functions into one by checking amount of arguments
25-
    end}
25+
	CAS.UnbindAction = CAS.BindAction
26-
    --Merged 2 functions into one by checking amount of arguments
26+
27-
    CAS.UnbindAction = CAS.BindAction
27+
	--This function will trigger the events that have been :Connect()'ed
28
	local function te(self,ev,...)
29-
    --This function will trigger the events that have been :Connect()'ed
29+
		local t = m[ev]
30-
    local function te(self,ev,...)
30+
		if t and t._fakeEvent and t.Function then
31-
        local t = m[ev]
31+
			t.Function(...)
32-
        if t and t._fakeEvent then
32+
33-
            for _,f in pairs(t.Functions) do
33+
34-
                f(...)
34+
	m.TrigEvent = te
35-
            end
35+
	UIS.TrigEvent = te
36-
        end
36+
37-
    end
37+
	Event.OnServerEvent:Connect(function(plr,io)
38-
    m.TrigEvent = te
38+
	    if plr~=Player then return end
39-
    UIS.TrigEvent = te
39+
		if io.isMouse then
40
			m.Target = io.Target
41-
    Event.OnServerEvent:Connect(function(plr,io)
41+
			m.Hit = io.Hit
42-
        if plr~=rp then return end
42+
43-
        m.Target = io.Target
43+
			local b = io.UserInputState == Enum.UserInputState.Begin
44-
        m.Hit = io.Hit
44+
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
45-
        if not io.isMouse then
45+
				return m:TrigEvent(b and "Button1Down" or "Button1Up")
46-
            local b = io.UserInputState == Enum.UserInputState.Begin
46+
47-
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
47+
			for _,t in pairs(CAS.Actions) do
48-
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
48+
				for _,k in pairs(t.Keys) do
49-
            end
49+
					if k==io.KeyCode then
50-
            for _,t in pairs(CAS.Actions) do
50+
						t.Function(t.Name,io.UserInputState,io)
51-
                for _,k in pairs(t.Keys) do
51+
52-
                    if k==io.KeyCode then
52+
53-
                        t.Function(t.Name,io.UserInputState,io)
53+
54-
                    end
54+
			m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
55-
                end
55+
			UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
56-
            end
56+
	    end
57-
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
57+
58-
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
58+
	Event.Parent = NLS([==[
59-
        end
59+
	local Player = game:GetService("Players").LocalPlayer
60-
    end)
60+
	local Event = script:WaitForChild("UserInput_Event")
61-
    Event.Parent = NLS([==[
61+
62-
    local Player = game:GetService("Players").LocalPlayer
62+
	local UIS = game:GetService("UserInputService")
63-
    local Event = script:WaitForChild("UserInput_Event")
63+
	local input = function(io,a)
64
		if a then return end
65-
    local Mouse = Player:GetMouse()
65+
		--Since InputObject is a client-side instance, we create and pass table instead
66-
    local UIS = game:GetService("UserInputService")
66+
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState})
67-
    local input = function(io,a)
67+
68-
        if a then return end
68+
	UIS.InputBegan:Connect(input)
69-
        --Since InputObject is a client-side instance, we create and pass table instead
69+
	UIS.InputEnded:Connect(input)
70-
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
70+
71-
    end
71+
	local Mouse = Player:GetMouse()
72-
    UIS.InputBegan:Connect(input)
72+
	local h,t
73-
    UIS.InputEnded:Connect(input)
73+
	--Give the server mouse data 30 times every second, but only if the values changed
74
	--If player is not moving their mouse, client won't fire events
75-
    local h,t
75+
	while wait(1/30) do
76-
    --Give the server mouse data 30 times every second, but only if the values changed
76+
		if h~=Mouse.Hit or t~=Mouse.Target then
77-
    --If player is not moving their mouse, client won't fire events
77+
			h,t=Mouse.Hit,Mouse.Target
78-
    while wait(1/30) do
78+
			Event:FireServer({isMouse=true,Target=t,Hit=h})
79-
        if h~=Mouse.Hit or t~=Mouse.Target then
79+
80-
            h,t=Mouse.Hit,Mouse.Target
80+
	end]==],Player.Character)
81-
            Event:FireServer({isMouse=true,Target=t,Hit=h})
81+
	Mouse,mouse,UserInputService,ContextActionService = m,m,UIS,CAS
82-
        end
82+
83-
    end]==],Player.Character)
83+
84
85-
    ----Sandboxed game object that allows the usage of client-side methods and services
85+
86-
    --Real game object
86+
87-
    local _rg = game
87+
88
Backpack = Player.Backpack
89-
    --Metatable for fake service
89+
90-
    local fsmt = {
90+
91-
        __index = function(self,k)
91+
92-
            local s = rawget(self,"_RealService")
92+
93-
            if s then return s[k] end
93+
94-
        end,
94+
95-
        __newindex = function(self,k,v)
95+
96-
            local s = rawget(self,"_RealService")
96+
97-
            if s then s[k]=v end
97+
98-
        end,
98+
99-
        __call = function(self,...)
99+
100-
            local s = rawget(self,"_RealService")
100+
101-
            if s then return s(...) end
101+
102-
        end
102+
103-
    }
103+
104-
    local function FakeService(t,RealService)
104+
105-
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
105+
106-
        return setmetatable(t,fsmt)
106+
107-
    end
107+
108
sick.Volume = 1
109-
    --Fake game object
109+
110-
    local g = {
110+
111-
        GetService = function(self,s)
111+
112-
            return self[s]
112+
113-
        end,
113+
114-
        Players = FakeService({
114+
115-
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
115+
116-
        },"Players"),
116+
117-
        UserInputService = FakeService(UIS,"UserInputService"),
117+
118-
        ContextActionService = FakeService(CAS,"ContextActionService"),
118+
119-
    }
119+
120-
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
120+
121-
    g.service = g.GetService
121+
122-
   
122+
123-
    g.RunService = FakeService({
123+
124-
        RenderStepped = _rg:GetService("RunService").Heartbeat,
124+
125-
        BindToRenderStep = function(self,name,_,fun)
125+
126
FLOOR = math.floor
127-
        end,
127+
128-
        UnbindFromRenderStep = function(self,name)
128+
129-
            self._btrs[name]:Disconnect()
129+
130-
        end,
130+
131-
    },"RunService")
131+
132
--|| 	      USEFUL VALUES
133-
    setmetatable(g,{
133+
134-
        __index=function(self,s)
134+
135-
            return _rg:GetService(s) or typeof(_rg[s])=="function"
135+
136-
            and function(_,...)return _rg[s](_rg,...)end or _rg[s]
136+
137-
        end,
137+
138-
        __newindex = fsmt.__newindex,
138+
139-
        __call = fsmt.__call
139+
140-
    })
140+
141-
    --Changing owner to fake player object to support owner:GetMouse()
141+
142-
    game,owner = g,g.Players.LocalPlayer
142+
143
local ANIM = "Idle"
144
local ATTACK = false
145
local EQUIPPED = false
146
local HOLD = false
147
local COMBO = 1
148
local Rooted = false
149
local SINE = 0
150
local KEYHOLD = false
151
local CHANGE = 2 / Animation_Speed
152
local WALKINGANIM = false
153
local VALUE1 = false
154
local VALUE2 = false
155
local ROBLOXIDLEANIMATION = IT("Animation")
156
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
157
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
158
--ROBLOXIDLEANIMATION.Parent = Humanoid
159
local WEAPONGUI = IT("ScreenGui", PlayerGui)
160
WEAPONGUI.Name = "Weapon GUI"
161
local Effects = IT("Folder", Character)
162
Effects.Name = "Effects"
163
local ANIMATOR = Humanoid.Animator
164
local ANIMATE = Character.Animate
165
local UNANCHOR = true
166
local PLAYMAINANIM = true
167
local BOLTSOUNDS = {168586621,168586586,178452241}
168
169
--//=================================\\
170
--\\=================================//
171
local Player = owner
172
function RemoveOutlines(part)
173
	part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10
174
end
175
local Create = LoadLibrary("RbxUtility").Create
176
177
CFuncs = {	
178
	["Part"] = {
179
		Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size)
180
			local Part = Create("Part"){
181
				Parent = Parent,
182
				Reflectance = Reflectance,
183
				Transparency = Transparency,
184
				CanCollide = false,
185
				Locked = true,
186
				BrickColor = BrickColor.new(tostring(BColor)),
187
				Name = Name,
188
				Size = Size,
189
				Material = Material,
190
			}
191
			RemoveOutlines(Part)
192
			return Part
193
		end;
194
	};
195
	["Sound"] = {
196
		Create = function(id, par, vol, pit) 
197
			coroutine.resume(coroutine.create(function()
198
				local S = Create("Sound"){
199
					Volume = vol,
200
					Pitch = pit or 1,
201
					SoundId = id,
202
					Parent = par or workspace,
203
				}
204
				wait() 
205
				S:play() 
206
				game:GetService("Debris"):AddItem(S, 6)
207
			end))
208
		end;
209
	};
210
}
211
212
local toggleTag = true
213
local txt = Instance.new("BillboardGui", Head)
214
txt.Adornee = nil
215
txt.Name = "NameDetect"
216
txt.Size = UDim2.new(4, 0, 1.2, 0)
217
txt.StudsOffset = Vector3.new(-8, 8/1.5, 0)
218
local text = Instance.new("TextLabel", txt)
219
text.Size = UDim2.new(10/2, 0, 7/2, 0)
220
text.FontSize = "Size8"
221
text.TextScaled = true
222
text.TextTransparency = 0
223
text.BackgroundTransparency = 1 
224
text.TextTransparency = 0
225
text.TextStrokeTransparency = 0
226
text.Font = "Garamond"
227
text.TextStrokeColor3 = Color3.new(0,1,1)
228
text.TextColor3 = Color3.new(0,0,0)
229
text.Text = "The Warden Of The City"
230
231
local Char = Character
232
233-
local Player = game.Players.localPlayer
233+
234
text.TextStrokeColor3 = col2
235
text.TextColor3 = col1
236
text.Text = name
237
end
238
RecolorTextAndRename("The Banisher Of The City",Color3.new(0,0,0),Color3.new(0,0,1))
239
240
function chatfunc(text)
241
local chat = coroutine.wrap(function()
242
if Character:FindFirstChild("TalkingBillBoard")~= nil then
243
Char:FindFirstChild("TalkingBillBoard"):destroy()
244
end
245
local naeeym2 = Instance.new("BillboardGui",Char)
246
naeeym2.Size = UDim2.new(0,100,0,40)
247
naeeym2.StudsOffset = Vector3.new(0,3,0)
248
naeeym2.Adornee = Char.Head
249
naeeym2.Name = "TalkingBillBoard"
250
local tecks2 = Instance.new("TextLabel",naeeym2)
251
tecks2.BackgroundTransparency = 1
252
tecks2.BorderSizePixel = 0
253
tecks2.Text = ""
254
tecks2.Font = "Antique"
255
tecks2.TextSize = 30
256
tecks2.TextStrokeTransparency = 0
257
tecks2.TextColor3 = Color3.new(.6,0,0)
258
tecks2.TextStrokeColor3 = Color3.new(0,0,0)
259
tecks2.Size = UDim2.new(1,0,0.5,0)
260
local tecks3 = Instance.new("TextLabel",naeeym2)
261
tecks3.BackgroundTransparency = 1
262
tecks3.BorderSizePixel = 0
263
tecks3.Text = ""
264
tecks3.Font = "Antique"
265
tecks3.TextSize = 30
266
tecks3.TextStrokeTransparency = 0
267
tecks3.TextColor3 = BrickColor.new("Hot white").Color
268
tecks3.TextStrokeColor3 = Color3.new(0,0,0)
269
tecks3.Size = UDim2.new(1,0,0.5,0)
270
spawn(function()
271
	while wait() do
272
		tecks3.TextColor3 = BrickColor.random().Color
273
		tecks2.TextColor3 = BrickColor.random().Color
274
	end
275
end)
276
for i = 1,string.len(text),1 do
277
CFuncs["Sound"].Create("http://www.roblox.com/asset/?id=418252437", Char, 1, 1)
278
tecks2.Text = string.sub(text,1,i)
279
tecks3.Text = string.sub(text,1,i)
280
wait(0.01)
281
end
282
wait(2)
283
for i = 1, 50 do
284
Swait()
285
tecks2.Position = tecks2.Position - UDim2.new(math.random(-1,1),math.random(-5,5),.05,math.random(-5,5))
286
tecks2.Rotation = tecks2.Rotation - .8
287
tecks2.TextStrokeTransparency = tecks2.TextStrokeTransparency +.04
288
tecks2.TextTransparency = tecks2.TextTransparency + .04
289
tecks3.Position = tecks2.Position - UDim2.new(math.random(-1,1),math.random(-5,5),.05,math.random(-5,5))
290
tecks3.Rotation = tecks2.Rotation + .8
291
tecks3.TextStrokeTransparency = tecks2.TextStrokeTransparency +.04
292
tecks3.TextTransparency = tecks2.TextTransparency + .04
293
end
294
naeeym2:Destroy()
295
end)
296
chat()
297
end
298
function onChatted(msg)
299
chatfunc(msg)
300
end
301
Player.Chatted:connect(onChatted)
302
303
--//=================================\\
304
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
305
--\\=================================//
306
307
ArtificialHB = Instance.new("BindableEvent", script)
308
ArtificialHB.Name = "ArtificialHB"
309
310
script:WaitForChild("ArtificialHB")
311
312
frame = Frame_Speed
313
tf = 0
314
allowframeloss = false
315
tossremainder = false
316
lastframe = tick()
317
script.ArtificialHB:Fire()
318
319
game:GetService("RunService").Heartbeat:connect(function(s, p)
320
	tf = tf + s
321
	if tf >= frame then
322
		if allowframeloss then
323
			script.ArtificialHB:Fire()
324
			lastframe = tick()
325
		else
326
			for i = 1, math.floor(tf / frame) do
327
				script.ArtificialHB:Fire()
328
			end
329
		lastframe = tick()
330
		end
331
		if tossremainder then
332
			tf = 0
333
		else
334
			tf = tf - frame * math.floor(tf / frame)
335
		end
336
	end
337
end)
338
339
--//=================================\\
340
--\\=================================//
341
print(Class_Name.." Loaded")
342
print(Editor_Name.." Edited This")
343
--//=================================\\
344
--|| 	      SOME FUNCTIONS
345
--\\=================================//
346
347
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
348
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
349
end
350
351
function PositiveAngle(NUMBER)
352
	if NUMBER >= 0 then
353
		NUMBER = 0
354
	end
355
	return NUMBER
356
end
357
358
function NegativeAngle(NUMBER)
359
	if NUMBER <= 0 then
360
		NUMBER = 0
361
	end
362
	return NUMBER
363
end
364
365
function Swait(NUMBER)
366
	if NUMBER == 0 or NUMBER == nil then
367
		ArtificialHB.Event:wait()
368
	else
369
		for i = 1, NUMBER do
370
			ArtificialHB.Event:wait()
371
		end
372
	end
373
end
374
375
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
376
	local NEWMESH = IT(MESH)
377
	if MESH == "SpecialMesh" then
378
		NEWMESH.MeshType = MESHTYPE
379
		if MESHID ~= "nil" and MESHID ~= "" then
380
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
381
		end
382
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
383
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
384
		end
385
	end
386
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
387
	NEWMESH.Scale = SCALE
388
	NEWMESH.Parent = PARENT
389
	return NEWMESH
390
end
391
392
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
393
	local NEWPART = IT("Part")
394
	NEWPART.formFactor = FORMFACTOR
395
	NEWPART.Reflectance = REFLECTANCE
396
	NEWPART.Transparency = TRANSPARENCY
397
	NEWPART.CanCollide = false
398
	NEWPART.Locked = true
399
	NEWPART.Anchored = true
400
	if ANCHOR == false then
401
		NEWPART.Anchored = false
402
	end
403
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
404
	NEWPART.Name = NAME
405
	NEWPART.Size = SIZE
406
	NEWPART.Position = Torso.Position
407
	NEWPART.Material = MATERIAL
408
	NEWPART:BreakJoints()
409
	NEWPART.Parent = PARENT
410
	return NEWPART
411
end
412
413
	local function weldBetween(a, b)
414
	    local weldd = Instance.new("ManualWeld")
415
	    weldd.Part0 = a
416
	    weldd.Part1 = b
417
	    weldd.C0 = CFrame.new()
418
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
419
	    weldd.Parent = a
420
	    return weldd
421
	end
422
423
424
function QuaternionFromCFrame(cf)
425
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
426
	local trace = m00 + m11 + m22
427
	if trace > 0 then 
428
		local s = math.sqrt(1 + trace)
429
		local recip = 0.5 / s
430
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
431
	else
432
		local i = 0
433
		if m11 > m00 then
434
			i = 1
435
		end
436
		if m22 > (i == 0 and m00 or m11) then
437
			i = 2
438
		end
439
		if i == 0 then
440
			local s = math.sqrt(m00 - m11 - m22 + 1)
441
			local recip = 0.5 / s
442
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
443
		elseif i == 1 then
444
			local s = math.sqrt(m11 - m22 - m00 + 1)
445
			local recip = 0.5 / s
446
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
447
		elseif i == 2 then
448
			local s = math.sqrt(m22 - m00 - m11 + 1)
449
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
450
		end
451
	end
452
end
453
 
454
function QuaternionToCFrame(px, py, pz, x, y, z, w)
455
	local xs, ys, zs = x + x, y + y, z + z
456
	local wx, wy, wz = w * xs, w * ys, w * zs
457
	local xx = x * xs
458
	local xy = x * ys
459
	local xz = x * zs
460
	local yy = y * ys
461
	local yz = y * zs
462
	local zz = z * zs
463
	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))
464
end
465
 
466
function QuaternionSlerp(a, b, t)
467
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
468
	local startInterp, finishInterp;
469
	if cosTheta >= 0.0001 then
470
		if (1 - cosTheta) > 0.0001 then
471
			local theta = ACOS(cosTheta)
472
			local invSinTheta = 1 / SIN(theta)
473
			startInterp = SIN((1 - t) * theta) * invSinTheta
474
			finishInterp = SIN(t * theta) * invSinTheta
475
		else
476
			startInterp = 1 - t
477
			finishInterp = t
478
		end
479
	else
480
		if (1 + cosTheta) > 0.0001 then
481
			local theta = ACOS(-cosTheta)
482
			local invSinTheta = 1 / SIN(theta)
483
			startInterp = SIN((t - 1) * theta) * invSinTheta
484
			finishInterp = SIN(t * theta) * invSinTheta
485
		else
486
			startInterp = t - 1
487
			finishInterp = t
488
		end
489
	end
490
	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
491
end
492
493
function Clerp(a, b, t)
494
	local qa = {QuaternionFromCFrame(a)}
495
	local qb = {QuaternionFromCFrame(b)}
496
	local ax, ay, az = a.x, a.y, a.z
497
	local bx, by, bz = b.x, b.y, b.z
498
	local _t = 1 - t
499
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
500
end
501
502
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
503
	local frame = IT("Frame")
504
	frame.BackgroundTransparency = TRANSPARENCY
505
	frame.BorderSizePixel = BORDERSIZEPIXEL
506
	frame.Position = POSITION
507
	frame.Size = SIZE
508
	frame.BackgroundColor3 = COLOR
509
	frame.BorderColor3 = BORDERCOLOR
510
	frame.Name = NAME
511
	frame.Parent = PARENT
512
	return frame
513
end
514
515
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
516
	local label = IT("TextLabel")
517
	label.BackgroundTransparency = 1
518
	label.Size = UD2(1, 0, 1, 0)
519
	label.Position = UD2(0, 0, 0, 0)
520
	label.TextColor3 = TEXTCOLOR
521
	label.TextStrokeTransparency = STROKETRANSPARENCY
522
	label.TextTransparency = TRANSPARENCY
523
	label.FontSize = TEXTFONTSIZE
524
	label.Font = TEXTFONT
525
	label.BorderSizePixel = BORDERSIZEPIXEL
526
	label.TextScaled = false
527
	label.Text = TEXT
528
	label.Name = NAME
529
	label.Parent = PARENT
530
	return label
531
end
532
533
function NoOutlines(PART)
534
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
535
end
536
537
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
538
	local NEWWELD = IT(TYPE)
539
	NEWWELD.Part0 = PART0
540
	NEWWELD.Part1 = PART1
541
	NEWWELD.C0 = C0
542
	NEWWELD.C1 = C1
543
	NEWWELD.Parent = PARENT
544
	return NEWWELD
545
end
546
547
local S = IT("Sound")
548
function CreateSound(ID, PARENT, VOLUME, PITCH, DOESLOOP)
549
	local NEWSOUND = nil
550
	coroutine.resume(coroutine.create(function()
551
		NEWSOUND = S:Clone()
552
		NEWSOUND.Parent = PARENT
553
		NEWSOUND.Volume = VOLUME
554
		NEWSOUND.Pitch = PITCH
555
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
556
		NEWSOUND:play()
557
		if DOESLOOP == true then
558
			NEWSOUND.Looped = true
559
		else
560
			repeat wait(1) until NEWSOUND.Playing == false
561
			NEWSOUND:remove()
562
		end
563
	end))
564
	return NEWSOUND
565
end
566
567
568
local EyeSizes={
569
	NumberSequenceKeypoint.new(0,2,0),
570
	NumberSequenceKeypoint.new(1,0,0)
571
}
572
local EyeTrans={
573
	NumberSequenceKeypoint.new(0,0.5,0),
574
	NumberSequenceKeypoint.new(1,1,0)
575
}
576
local PE=Instance.new("ParticleEmitter",nil)
577
PE.LightEmission=.8
578
PE.Color = ColorSequence.new(BRICKC("Dark blue").Color,BRICKC("Cyan").Color)
579
PE.Size=NumberSequence.new(EyeSizes)
580
PE.Transparency=NumberSequence.new(EyeTrans)
581
PE.Lifetime=NumberRange.new(0.35,1)
582
PE.Rotation=NumberRange.new(0,360)
583
PE.Rate=100
584
PE.VelocitySpread = 10000
585
PE.Acceleration = Vector3.new(0,85,0)
586
PE.Drag = 5
587
PE.Speed = NumberRange.new(0.1,5)
588
PE.Texture="http://www.roblox.com/asset/?id=1460745664"
589
PE.ZOffset = 0.5
590
PE.Name = "PE"
591
PE.Enabled = false
592
593
function Fire(art)
594
	local PARTICLES = PE:Clone()
595
	PARTICLES.Parent = art
596
	PARTICLES.Enabled = true
597
	return PARTICLES
598
end
599
600
function CFrameFromTopBack(at, top, back)
601
	local right = top:Cross(back)
602
	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)
603
end
604
605
--WACKYEFFECT({EffectType = "", Size = VT(1,1,1), Size2 = VT(0,0,0), Transparency = 0, Transparency2 = 1, CFrame = CF(), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Neon", Color = C3(1,1,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
606
function WACKYEFFECT(Table)
607
	local TYPE = (Table.EffectType or "Sphere")
608
	local SIZE = (Table.Size or VT(1,1,1))
609
	local ENDSIZE = (Table.Size2 or VT(0,0,0))
610
	local TRANSPARENCY = (Table.Transparency or 0)
611
	local ENDTRANSPARENCY = (Table.Transparency2 or 1)
612
	local CFRAME = (Table.CFrame or Torso.CFrame)
613
	local MOVEDIRECTION = (Table.MoveToPos or nil)
614
	local ROTATION1 = (Table.RotationX or 0)
615
	local ROTATION2 = (Table.RotationY or 0)
616
	local ROTATION3 = (Table.RotationZ or 0)
617
	local MATERIAL = (Table.Material or "Neon")
618
	local COLOR = (Table.Color or C3(1,1,1))
619
	local TIME = (Table.Time or 45)
620
	local SOUNDID = (Table.SoundID or nil)
621
	local SOUNDPITCH = (Table.SoundPitch or nil)
622
	local SOUNDVOLUME = (Table.SoundVolume or nil)
623
	coroutine.resume(coroutine.create(function()
624
		local PLAYSSOUND = false
625
		local SOUND = nil
626
		local EFFECT = CreatePart(3, Effects, MATERIAL, 0, TRANSPARENCY, BRICKC("Dark blue"), "Effect", VT(1,1,1), true)
627
		if SOUNDID ~= nil and SOUNDPITCH ~= nil and SOUNDVOLUME ~= nil then
628
			PLAYSSOUND = true
629
			SOUND = CreateSound(SOUNDID, EFFECT, SOUNDVOLUME, SOUNDPITCH, false)
630
		end
631
		EFFECT.Color = COLOR
632
		local MSH = nil
633
		if TYPE == "Sphere" then
634
			MSH = CreateMesh("SpecialMesh", EFFECT, "Sphere", "", "", SIZE, VT(0,0,0))
635
		elseif TYPE == "Block" or TYPE == "Box" then
636
			MSH = IT("BlockMesh",EFFECT)
637
			MSH.Scale = SIZE
638
		elseif TYPE == "Wave" then
639
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "20329976", "", SIZE, VT(0,0,-SIZE.X/8))
640
		elseif TYPE == "Ring" then
641
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "559831844", "", VT(SIZE.X,SIZE.X,0.1), VT(0,0,0))
642
		elseif TYPE == "Slash" then
643
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662586858", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
644
		elseif TYPE == "Round Slash" then
645
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "662585058", "", VT(SIZE.X/10,0,SIZE.X/10), VT(0,0,0))
646
		elseif TYPE == "Swirl" then
647
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "1051557", "", SIZE, VT(0,0,0))
648
		elseif TYPE == "Skull" then
649
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "4770583", "", SIZE, VT(0,0,0))
650
		elseif TYPE == "Crystal" then
651
			MSH = CreateMesh("SpecialMesh", EFFECT, "FileMesh", "9756362", "", SIZE, VT(0,0,0))
652
		end
653
		if MSH ~= nil then
654
			local MOVESPEED = nil
655
			if MOVEDIRECTION ~= nil then
656
				MOVESPEED = (CFRAME.p - MOVEDIRECTION).Magnitude/TIME
657
			end
658
			local GROWTH = SIZE - ENDSIZE
659
			local TRANS = TRANSPARENCY - ENDTRANSPARENCY
660
			if TYPE == "Block" then
661
				EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
662
			else
663
				EFFECT.CFrame = CFRAME
664
			end
665
			for LOOP = 1, TIME+1 do
666
				Swait()
667
				MSH.Scale = MSH.Scale - GROWTH/TIME
668
				if TYPE == "Wave" then
669
					MSH.Offset = VT(0,0,-MSH.Scale.X/8)
670
				end
671
				EFFECT.Transparency = EFFECT.Transparency - TRANS/TIME
672
				if TYPE == "Block" then
673
					EFFECT.CFrame = CFRAME*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))
674
				else
675
					EFFECT.CFrame = EFFECT.CFrame*ANGLES(RAD(ROTATION1),RAD(ROTATION2),RAD(ROTATION3))
676
				end
677
				if MOVEDIRECTION ~= nil then
678
					local ORI = EFFECT.Orientation
679
					EFFECT.CFrame = CF(EFFECT.Position,MOVEDIRECTION)*CF(0,0,-MOVESPEED)
680
					EFFECT.Orientation = ORI
681
				end
682
			end
683
			if PLAYSSOUND == false then
684
				EFFECT:remove()
685
			else
686
				repeat wait(1) until SOUND.Playing == false
687
				EFFECT:remove()
688
			end
689
		else
690
			if PLAYSSOUND == false then
691
				EFFECT:remove()
692
			else
693
				repeat Swait() until SOUND.Playing == false
694
				EFFECT:remove()
695
			end
696
		end
697
	end))
698
end
699
700
function MakeForm(PART,TYPE)
701
	if TYPE == "Cyl" then
702
		local MSH = IT("CylinderMesh",PART)
703
	elseif TYPE == "Ball" then
704
		local MSH = IT("SpecialMesh",PART)
705
		MSH.MeshType = "Sphere"
706
	elseif TYPE == "Wedge" then
707
		local MSH = IT("SpecialMesh",PART)
708
		MSH.MeshType = "Wedge"
709
	end
710
end
711
712
Debris = game:GetService("Debris")
713
714
function CastProperRay(StartPos, EndPos, Distance, Ignore)
715
	local DIRECTION = CF(StartPos,EndPos).lookVector
716
	return Raycast(StartPos, DIRECTION, Distance, Ignore)
717
end
718
719
local HATWELD = nil
720
function Pose(WhichPose,Speed,Time,Magic,Gyro,Tors)
721
	PLAYMAINANIM = false
722
	if WhichPose == "Cast1" then
723
		for i=0, Time, 0.1 / Animation_Speed do
724
			Swait()
725
			if Magic == true then
726
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Cyan".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
727
			end
728
			if Gyro ~= nil and Gyro ~= false then
729
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
730
			end
731
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(35)), Speed / Animation_Speed)
732
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-35)), Speed / Animation_Speed)
733
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(125), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
734
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
735
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
736
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
737
		end
738
	elseif WhichPose == "Cast2" then
739
		for i=0, Time, 0.1 / Animation_Speed do
740
			Swait()
741
			if Magic == true then
742
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Cyan".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
743
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = LeftArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Cyan".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
744
			end
745
			if Gyro ~= nil and Gyro ~= false then
746
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
747
			end
748
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
749
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
750
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(15)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
751
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(120), RAD(0), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
752
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
753
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
754
		end
755
	elseif WhichPose == "RightArmUp" then
756
		for i=0, Time, 0.1 / Animation_Speed do
757
			Swait()
758
			if Magic == true then
759
				WACKYEFFECT({Time = 15, EffectType = "Crystal", Size = VT(1,1,1)*1.5, Size2 = VT(0,4,0), Transparency = 0, Transparency2 = 1, CFrame = RightArm.CFrame*CF(0,-1,0)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360))), MoveToPos = nil, RotationX = 0, RotationY = 0, RotationZ = 0, Material = "Glass", Color = BRICKC"Cyan".Color, SoundID = nil, SoundPitch = nil, SoundVolume = nil})
760
			end
761
			if Gyro ~= nil and Gyro ~= false then
762
				Gyro.cframe = CF(RootPart.Position,Mouse.Hit.p)
763
			end
764
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(15)), Speed / Animation_Speed)
765
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-15)), Speed / Animation_Speed)
766
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.65 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.2) * ANGLES(RAD(125), RAD(0), RAD(25)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
767
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
768
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
769
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
770
		end
771
	elseif WhichPose == "Taunt" then
772
		for i=0, Time, 0.1 / Animation_Speed do
773
			Swait()
774
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
775
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
776
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
777
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
778
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
779
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
780
		end
781
		HATWELD.Part0 = RightArm
782
		HATWELD.C0 = CF(0,-1.1,-0.4) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(-20), RAD(0), RAD(0))
783
		CreateSound(137473066,Torso,10,1,false)
784
		for i=0, Time*2, 0.1 / Animation_Speed do
785
			Swait()
786
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
787
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(35 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), Speed / Animation_Speed)
788
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(145), RAD(0), RAD(45)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
789
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(5), RAD(25), RAD(-15)) * LEFTSHOULDERC0, Speed / Animation_Speed)
790
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
791
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
792
		end
793
		for i=0, Time, 0.1 / Animation_Speed do
794
			Swait()
795
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), Speed / Animation_Speed)
796
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5), RAD(0), RAD(0)), Speed / Animation_Speed)
797
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.35, 0.65, -0.5) * ANGLES(RAD(175), RAD(0), RAD(-35)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
798
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
799
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
800
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
801
			HATWELD.C0 = Clerp(HATWELD.C0, CF(-0.5,-1.2,-0.3) * ANGLES(RAD(0), RAD(0), RAD(180)) * ANGLES(RAD(35), RAD(0), RAD(35)), Speed / Animation_Speed)
802
		end
803
		HATWELD.Part0 = Head
804
		HATWELD.C0 = CF(0,0.35,0)
805
	elseif WhichPose == "Prepare key" then
806
		for i=0, Time, 0.1 / Animation_Speed do
807
			Swait()
808
			if Gyro ~= nil and Gyro ~= false then
809
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
810
			end
811
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(65)), Speed / Animation_Speed)
812
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-65)), Speed / Animation_Speed)
813
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(65)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
814
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
815
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
816
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
817
		end
818
	elseif WhichPose == "Turn key" then
819
		for i=0, Time, 0.1 / Animation_Speed do
820
			Swait()
821
			if Gyro ~= nil and Gyro ~= false then
822
				Gyro.cframe = CF(RootPart.Position,Tors.Position)
823
			end
824
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(75)), Speed / Animation_Speed)
825
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(-75)), Speed / Animation_Speed)
826
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), -0.25) * ANGLES(RAD(90), RAD(0), RAD(75)) * ANGLES(RAD(0), RAD(-90), RAD(0)) * RIGHTSHOULDERC0, Speed / Animation_Speed)
827
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, Speed / Animation_Speed)
828
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), Speed / Animation_Speed)
829
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), Speed / Animation_Speed)
830
		end
831
	end
832
	PLAYMAINANIM = true
833
end
834
835
--Lightning({Color = C3(1,1,1), Start = Torso.Position, End = Mouse.Hit.p, SegmentL = 2, Thickness = 0.1, DoesFade = false, Ignore = Character, MaxDist = 400, Branches = false})
836
function Lightning(Table)
837
	local Color = Table.Color or C3(1,1,1)
838
	local StartPos = Table.Start or Torso.Position
839
	local EndPos = Table.End or Mouse.Hit.p
840
	local SegmentLength = Table.SegmentL or 2
841
	local Thickness = Table.Thickness or 0.1
842
	local Dissapear = Table.DoesFade or false
843
	local Parent = Table.Ignore or Character
844
	local MaxDist = Table.MaxDist or 400
845
	local Branches = Table.Branches or false
846
	local HIT,HITPOS = CastProperRay(StartPos, EndPos, MaxDist, Parent)
847
	local DISTANCE = math.ceil((StartPos - HITPOS).Magnitude/SegmentLength)
848
	local LIGHTNINGMODEL = IT("Model",Effects)
849
	LIGHTNINGMODEL.Name = "Lightning"
850
	local LastBolt = nil
851
	for E = 1, DISTANCE do
852
		local ExtraSize = (DISTANCE-E)/15
853
		local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Dark blue"), "LightningPart"..E, VT(Thickness+ExtraSize,SegmentLength,Thickness+ExtraSize))
854
		PART.Color = Color
855
		MakeForm(PART,"Cyl")
856
		if LastBolt == nil then
857
			PART.CFrame = CF(StartPos,HITPOS)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
858
		else
859
			PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,CF(HITPOS)*ANGLES(RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)),RAD(MRANDOM(0,360)))*CF(0,0,SegmentLength/3+(DISTANCE-E)).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
860
		end
861
		LastBolt = PART
862
		if Branches == true then
863
			local CHOICE = MRANDOM(1,7+((DISTANCE-E)*2))
864
			if CHOICE == 1 then
865
				local LASTBRANCH = nil
866
				for i = 1, MRANDOM(2,5) do
867
					local ExtraSize2 = ((DISTANCE-E)/25)/i
868
					local PART = CreatePart(3, LIGHTNINGMODEL, "Neon", 0, 0, BRICKC("Dark blue"), "Branch"..E.."-"..i, VT(Thickness+ExtraSize2,SegmentLength,Thickness+ExtraSize2))
869
					PART.Color = Color
870
					MakeForm(PART,"Cyl")
871
					if LASTBRANCH == nil then
872
						PART.CFrame = CF(LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0).p,LastBolt.CFrame*CF(0,-LastBolt.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*7,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
873
					else
874
						PART.CFrame = CF(LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0).p,LASTBRANCH.CFrame*CF(0,-LASTBRANCH.Size.Y/2,0)*ANGLES(RAD(0),RAD(0),RAD(MRANDOM(0,360)))*CF(0,Thickness*3,0)*CF(0,0,-1).p)*ANGLES(RAD(90),RAD(0),RAD(0))*CF(0,-PART.Size.Y/2,0)
875
					end
876
					LASTBRANCH = PART
877
				end
878
			end
879
		end
880
	end
881
	if Dissapear == true then
882
		coroutine.resume(coroutine.create(function()
883
			for i = 1, 10 do
884
				Swait()
885
				for _, c in pairs(LIGHTNINGMODEL:GetChildren()) do
886
					if c.ClassName == "Part" then
887
						c.Transparency = i/10
888
					end
889
				end
890
			end
891
			LIGHTNINGMODEL:remove()
892
		end))
893
	elseif Dissapear == false then
894
		Debris:AddItem(LIGHTNINGMODEL,0.1)
895
	end
896
	return {End = LastBolt.CFrame*CF(0,0,-LastBolt.Size.Z/2).p,LastBolt = LastBolt,Model = LIGHTNINGMODEL}
897
end
898
899
--//=================================\\
900
--||	     WEAPON CREATION
901
--\\=================================//
902
903
for i = 1, 15 do
904
	local FACE = CreatePart(3, Character, "Fabric", 0, 0+(i-1)/15.2, "Dark stone grey", "FaceGradient", VT(1.01,0.58,1.01),false)
905
	FACE.Color = C3(0,0,0)
906
	Head:FindFirstChildOfClass("SpecialMesh"):Clone().Parent = FACE
907
	CreateWeldOrSnapOrMotor("Weld", Head, Head, FACE, CF(0,0.35-(i-1)/35,0), CF(0, 0, 0))
908
end
909
local HAT1 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(2,0.2,2),false)
910
MakeForm(HAT1,"Cyl")
911
HATWELD = CreateWeldOrSnapOrMotor("Weld", Head, Head, HAT1, CF(0,0.35,0), CF(0, 0, 0))
912
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(2.01,0.15,2.01),false)
913
BELT.Color = C3(15/255,15/255,15/255)
914
MakeForm(BELT,"Cyl")
915
CreateWeldOrSnapOrMotor("Weld", HAT1, HAT1, BELT, CF(0,0,0), CF(0, 0, 0))
916
local HAT2 = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(1.3,2.2,1.3),false)
917
MakeForm(HAT2,"Cyl")
918
CreateWeldOrSnapOrMotor("Weld", HAT1, HAT1, HAT2, CF(0,1.1,0), CF(0, 0, 0))
919
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(1.31,0.2,1.31),false)
920
BELT.Color = C3(15/255,15/255,15/255)
921
MakeForm(BELT,"Cyl")
922
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,0,0), CF(0, 0, 0))
923
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Cyan", "Gem", VT(0.25,0.25,0.1),false)
924
MakeForm(GEM,"Ball")
925
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(0,0,-BELT.Size.X/2), CF(0, 0, 0))
926
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Cyan", "Gem", VT(0.25,0.25,0.1),false)
927
MakeForm(GEM,"Ball")
928
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(0,0,BELT.Size.X/2), CF(0, 0, 0))
929
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Cyan", "Gem", VT(0.1,0.25,0.25),false)
930
MakeForm(GEM,"Ball")
931
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(-BELT.Size.X/2,0,0), CF(0, 0, 0))
932
local GEM = CreatePart(3, Character, "Neon", 0, 0, "Cyan", "Gem", VT(0.1,0.25,0.25),false)
933
MakeForm(GEM,"Ball")
934
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, GEM, CF(BELT.Size.X/2,0,0), CF(0, 0, 0))
935
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(1.31,0.1,1.31),false)
936
BELT.Color = C3(15/255,15/255,15/255)
937
MakeForm(BELT,"Cyl")
938
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,0.7,0), CF(0, 0, 0))
939
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(1.31,0.1,1.31),false)
940
BELT.Color = C3(15/255,15/255,15/255)
941
MakeForm(BELT,"Cyl")
942
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,-0.7,0), CF(0, 0, 0))
943
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(1.31,0.1,1.31),false)
944
BELT.Color = C3(15/255,15/255,15/255)
945
MakeForm(BELT,"Cyl")
946
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,0.35,0), CF(0, 0, 0))
947
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(1.31,0.1,1.31),false)
948
BELT.Color = C3(15/255,15/255,15/255)
949
MakeForm(BELT,"Cyl")
950
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,-0.35,0), CF(0, 0, 0))
951
local BELT = CreatePart(3, Character, "SmoothPlastic", 0, 0, "Dark blue", "Hat", VT(1.3,0.5,1.3),false)
952
MakeForm(BELT,"Ball")
953
CreateWeldOrSnapOrMotor("Weld", HAT2, HAT2, BELT, CF(0,HAT2.Size.Y/2,0), CF(0, 0, 0))
954
Humanoid.DisplayDistanceType = "None"
955
956
local Particle = IT("ParticleEmitter",nil)
957
Particle.Enabled = false
958
Particle.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
959
Particle.LightEmission = 0.5
960
Particle.Rate = 150
961
Particle.ZOffset = 0.2
962
Particle.Rotation = NumberRange.new(-180, 180)
963
Particle.RotSpeed = NumberRange.new(-180, 180)
964
Particle.Texture = "http://www.roblox.com/asset/?id=304437537"
965
Particle.Color = ColorSequence.new(C3(0,0,255),C3(0,255,255))
966
local Particle2 = IT("ParticleEmitter",nil)
967
Particle2.Enabled = false
968
Particle2.Texture = "http://www.roblox.com/asset/?id=1369397597"
969
Particle2.Color = ColorSequence.new(C3(0,0,255),C3(0,0,255))
970
Particle2.LightEmission = 0
971
Particle2.RotSpeed = NumberRange.new(0, 180)
972
Particle2.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,0),NumberSequenceKeypoint.new(1,1)})
973
Particle2.LightEmission = 1
974
Particle2.Rate = 20
975
Particle2.RotSpeed = NumberRange.new(-20, 20)
976
local Particle3 = IT("ParticleEmitter",nil)
977
Particle3.Enabled = false
978
Particle3.Texture = "http://www.roblox.com/asset/?id=1546470121"
979
Particle3.Color = ColorSequence.new(C3(0,0,255),C3(0,0,255))
980
Particle3.LightEmission = 0
981
Particle3.RotSpeed = NumberRange.new(0, 180)
982
Particle3.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.7),NumberSequenceKeypoint.new(0.3,.9),NumberSequenceKeypoint.new(1,1)})
983
Particle3.LightEmission = 1
984
Particle3.Rate = 20
985
Particle3.RotSpeed = NumberRange.new(-20, 20)
986
--ParticleEmitter({Speed = 5, Drag = 0, Size1 = 1, Size2 = 5, Lifetime1 = 1, Lifetime2 = 1.5, Parent = Torso, Emit = 100, Offset = 360, Enabled = false})
987
function ParticleEmitter(Table)
988
	local PRTCL = Particle:Clone()
989
	local Speed = Table.Speed or 5
990
	local Drag = Table.Drag or 0
991
	local Size1 = Table.Size1 or 1
992
	local Size2 = Table.Size2 or 5
993
	local Lifetime1 = Table.Lifetime1 or 1
994
	local Lifetime2 = Table.Lifetime2 or 1.5
995
	local Parent = Table.Parent or Torso
996
	local Emit = Table.Emit or 100
997
	local Offset = Table.Offset or 360
998
	local Acel = Table.Acel or VT(0,0,0)
999
	local Enabled = Table.Enabled or false
1000
	PRTCL.Parent = Parent
1001
	PRTCL.Size = NumberSequence.new(Size1,Size2)
1002
	PRTCL.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1003
	PRTCL.Speed = NumberRange.new(Speed)
1004
	PRTCL.VelocitySpread = Offset
1005
	PRTCL.Drag = Drag
1006
	PRTCL.Acceleration = Acel
1007
	if Enabled == false then
1008
		PRTCL:Emit(Emit)
1009
		Debris:AddItem(PRTCL,Lifetime2)
1010
	else
1011
		PRTCL.Enabled = true
1012
	end
1013
	return PRTCL
1014
end
1015
function ParticleEmitter2(Table)
1016
	local PRTCL2 = Particle2:Clone()
1017
	local LockedToPart = Table.LTP or true
1018
	local Speed = Table.Speed or 0
1019
	local Drag = Table.Drag or 0
1020
	local Size1 = Table.Size1 or 1
1021
	local Size2 = Table.Size2 or 2
1022
	local Lifetime1 = Table.Lifetime1 or 1
1023
	local Lifetime2 = Table.Lifetime2 or 1
1024
	local Parent = Table.Parent or Torso
1025
	local Emit = Table.Emit or 100
1026
	local Offset = Table.Offset or 360
1027
	local Acel = Table.Acel or VT(0,0,0)
1028
	local Enabled = Table.Enabled or false
1029
	PRTCL2.Parent = Parent
1030
	PRTCL2.Size = NumberSequence.new(Size1,Size2)
1031
	PRTCL2.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1032
	PRTCL2.Speed = NumberRange.new(Speed)
1033
	PRTCL2.VelocitySpread = Offset
1034
	PRTCL2.Drag = Drag
1035
	PRTCL2.Acceleration = Acel
1036
		PRTCL2.Parent = Parent
1037
		PRTCL2.Size = NumberSequence.new(Size1,Size2)
1038
		PRTCL2.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1039
		PRTCL2.Speed = NumberRange.new(Speed)
1040
		PRTCL2.VelocitySpread = Offset
1041
		PRTCL2.Drag = Drag
1042
		PRTCL2.Acceleration = Acel
1043
		PRTCL2.LockedToPart = true
1044
	if Enabled == false then
1045
		PRTCL2:Emit(Emit)
1046
		Debris:AddItem(PRTCL2,Lifetime2)
1047
	else
1048
		PRTCL2.Enabled = true
1049
	end
1050
	return PRTCL2
1051
end
1052
function ParticleEmitter3(Table)
1053
	local PRTCL3 = Particle2:Clone()
1054
	local Speed = Table.Speed or 0
1055
	local Drag = Table.Drag or 0
1056
	local Size1 = Table.Size1 or 1
1057
	local Size2 = Table.Size2 or 2
1058
	local Lifetime1 = Table.Lifetime1 or 1
1059
	local Lifetime2 = Table.Lifetime2 or 1
1060
	local Parent = Table.Parent or Torso
1061
	local Emit = Table.Emit or 100
1062
	local Offset = Table.Offset or 0
1063
	local Acel = Table.Acel or VT(0,0,0)
1064
	local Enabled = Table.Enabled or false
1065
	PRTCL3.Parent = Parent
1066
	PRTCL3.Size = NumberSequence.new(Size1,Size2)
1067
	PRTCL3.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1068
	PRTCL3.Speed = NumberRange.new(Speed)
1069
	PRTCL3.VelocitySpread = Offset
1070
	PRTCL3.Drag = Drag
1071
	PRTCL3.Acceleration = Acel
1072
		PRTCL3.Parent = Parent
1073
		PRTCL3.Size = NumberSequence.new(Size1,Size2)
1074
		PRTCL3.Lifetime = NumberRange.new(Lifetime1,Lifetime2)
1075
		PRTCL3.Speed = NumberRange.new(Speed)
1076
		PRTCL3.VelocitySpread = Offset
1077
		PRTCL3.Drag = Drag
1078
		PRTCL3.Acceleration = Acel
1079
	if Enabled == false then
1080
		PRTCL3:Emit(Emit)
1081
		Debris:AddItem(PRTCL3,Lifetime2)
1082
	else
1083
		PRTCL3.Enabled = true
1084
	end
1085
	return PRTCL3
1086
end
1087
1088
local Weapon1 = IT("Model")
1089
Weapon1.Name = "Pistol"
1090
1091
local Handle = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.6,0.2),false)
1092
local LeftArmGrasp = CreateWeldOrSnapOrMotor("Weld", Handle, LeftArm, Handle, CF(0,-1, 0) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0.21, 0))
1093
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
1094
MakeForm(Part,"Wedge")
1095
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.3, 0.2) * ANGLES(RAD(0), RAD(180), RAD(0)), CF(0, 0, 0))
1096
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.3,0.2),false)
1097
MakeForm(Part,"Wedge")
1098
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.4, 0) * ANGLES(RAD(0), RAD(0), RAD(180)), CF(0, 0, 0))
1099
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.3,0.3),false)
1100
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.5, 0.2) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1101
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.5,0.5),false)
1102
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1103
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.4,0.4,0.4),false)
1104
MakeForm(Part,"Cyl")
1105
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1106
for i = 1, 8 do
1107
	local Piece = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Eye", VT(0,0.35,0.41),false)
1108
	CreateWeldOrSnapOrMotor("Weld", Handle, Part, Piece, CF(0, 0, 0) * ANGLES(RAD(0), RAD((360/8)*i), RAD(0)), CF(0, 0, 0))
1109
end
1110
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Eye", VT(0.38,0.41,0.38),false)
1111
MakeForm(Part,"Cyl")
1112
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.5) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1113
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.37,0.5,0.37),false)
1114
MakeForm(Part,"Ball")
1115
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.3) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1116
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.7,0.4),false)
1117
MakeForm(Part,"Wedge")
1118
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.7, 0.5) * ANGLES(RAD(90), RAD(180), RAD(180)), CF(0, 0, 0))
1119
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.3,0.4,0.2),false)
1120
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(0), RAD(0), RAD(0)), CF(0, 0, 0))
1121
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.35,0.35,0.35),false)
1122
MakeForm(Part,"Cyl")
1123
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1124
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.5),false)
1125
MakeForm(Part,"Cyl")
1126
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1127
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.5,0.1,0.45),false)
1128
MakeForm(Part,"Cyl")
1129
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 1.1) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1130
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.2,0.5,0.2),false)
1131
MakeForm(Part,"Wedge")
1132
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.55, 0.2) * ANGLES(RAD(-135), RAD(0), RAD(0)), CF(0, -0.3, 0))
1133
local LASTPART = Handle
1134
for i = 1, 10 do
1135
	if LASTPART == Handle then
1136
		local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.2,0),false)
1137
		LASTPART = Part
1138
		CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.1, 0.2) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1139
	else
1140
		local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.1,0.05,0),false)
1141
		CreateWeldOrSnapOrMotor("Weld", Handle, LASTPART, Part, CF(0, 0.025, 0) * ANGLES(RAD(8), RAD(0), RAD(0)), CF(0, -0.025, 0))
1142
		LASTPART = Part
1143
	end
1144
end
1145
1146
local Barrel = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.15,2,0.15),false)
1147
MakeForm(Barrel,"Cyl")
1148
CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Barrel, CF(0, -0.6, 1.8) * ANGLES(RAD(90), RAD(0), RAD(0)), CF(0, 0, 0))
1149
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0.25,1,0.25),false)
1150
MakeForm(Part,"Cyl")
1151
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, -0.6, 0), CF(0, 0, 0))
1152
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0,0.1,0.2),false)
1153
MakeForm(Part,"Wedge")
1154
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Part, CF(0, 0.945, 0.1) * ANGLES(RAD(180), RAD(0), RAD(0)), CF(0, 0, 0))
1155
local Hole = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Eye", VT(0.125,0,0.125),false)
1156
MakeForm(Hole,"Cyl")
1157
CreateWeldOrSnapOrMotor("Weld", Handle, Barrel, Hole, CF(0, 0.98, 0), CF(0, 0, 0))
1158
local Part = CreatePart(3, Weapon1, "Metal", 0, 0, "Mid gray", "Part", VT(0,0,0),false)
1159
local GEARWELD = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
1160
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.8,0.8,1.5), VT(0,0,0.2))
1161
local Part = CreatePart(3, Weapon1, "Metal", 0, 0.5, "Mid gray", "Eye", VT(0,0,0),false)
1162
local GEARWELD2 = CreateWeldOrSnapOrMotor("Weld", Handle, Handle, Part, CF(0, -0.6, 0.7), CF(0, 0, 0))
1163
CreateMesh("SpecialMesh", Part, "FileMesh", 156292343, "", VT(0.9,0.9,0.3), VT(0,0,0.2))
1164
coroutine.resume(coroutine.create(function()
1165
	while wait() do
1166
		GEARWELD.C0 = GEARWELD.C0 * ANGLES(RAD(0), RAD(0), RAD(5))
1167
		GEARWELD2.C0 = GEARWELD2.C0 * ANGLES(RAD(0), RAD(0), RAD(-5))
1168
	end
1169
end))
1170
--PARTICLES REEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE
1171
--[[
1172
	YEAH BOIIIIIIIII
1173
	PARTICLE TIME
1174
--]]
1175
ParticleEmitter({Speed = 0.2, Drag = 0, Size1 = 0.1, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.5, Parent = Hole, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
1176
--ParticleEmitter3({Speed = 0, Drag = 0, Size1 = 20, Size2 = 25, Lifetime1 = 0.3, Lifetime2 = 1, Parent = Barrel, Emit = 100, Offset = 0, Enabled = true, Acel = VT(0,0,0)})
1177
ParticleEmitter({Speed = 0.5, Drag = 0, Size1 = 0.2, Size2 = 0, Lifetime1 = 0.3, Lifetime2 = 0.7, Parent = Dangle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,5,0)})
1178
ParticleEmitter2({Speed = 0, Drag = 0, Size1 = .5, Size2 = 1, Lifetime1 = 1, Lifetime2 = 1, Parent = Hole, Emit = 20, Offset = 360, Enabled = true, Acel = VT(0,0,0)})
1179
ParticleEmitter2({Speed = 0, Drag = 0, Size1 = 3, Size2 = 1, Lifetime1 = 1, Lifetime2 = 2, Parent = Handle, Emit = 100, Offset = 360, Enabled = true, Acel = VT(0,0,0)})
1180
--Trails
1181
local A1 = Instance.new("Attachment",Barrel)
1182
local A2 = Instance.new("Attachment",Barrel)
1183
local Trail = Instance.new("Trail",Barrel)
1184
A1.Position = Vector3.new(0,1,0)
1185
A2.Position = Vector3.new(0,-0.8,0)
1186
Trail.Attachment0 = A1
1187
Trail.Attachment1 = A2
1188
Trail.LightEmission = 1
1189
Trail.Color = ColorSequence.new(Color3.new(0,0,255),Color3.new(0,255,255))
1190
Trail.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,0.3),NumberSequenceKeypoint.new(0.3,.9),NumberSequenceKeypoint.new(1,1)})
1191
for _, c in pairs(Weapon1:GetDescendants()) do
1192
	if c.ClassName == "Part" and c.Name ~= "Eye" and c.Parent ~= Effects and c.Parent.Parent ~= Effects then
1193
		c.Material = "Glass"
1194
		c.Color = C3(0,0,0)
1195
	elseif c.ClassName == "Part" and c.Name == "Eye" then
1196
		c.Color = C3(0,0,1)
1197
		c.Material = "Neon"
1198
	end
1199
end
1200
1201
local TOBANISH = {}
1202
1203
Weapon1.Parent = Character
1204
for _, c in pairs(Weapon1:GetChildren()) do
1205
	if c.ClassName == "Part" then
1206
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1207
	end
1208
end
1209
1210
local SKILLTEXTCOLOR = C3(0,0,1)
1211
local SKILLFONT = "Antique"
1212
local SKILLTEXTSIZE = 7
1213
1214
Humanoid.Died:connect(function()
1215
	ATTACK = true
1216
end)
1217
1218
local SKILL1FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.1, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
1219
--[[local SKILL2FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.63, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 2 Frame")
1220
local SKILL3FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.215, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 3 Frame")
1221
local SKILL4FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.525, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 4 Frame")
1222
local SKILL5FRAME = CreateFrame(WEAPONGUI, 1, 2, UD2(0.365, 0, 0.90, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 5 Frame")
1223
--]]
1224
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[Z] Banisher Bullet", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 1")
1225
--[[local SKILL2TEXT = CreateLabel(SKILL2FRAME, "[B] Ability 2", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 2")
1226
local SKILL3TEXT = CreateLabel(SKILL3FRAME, "[C] Ability 3", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 3")
1227
local SKILL4TEXT = CreateLabel(SKILL4FRAME, "[V] Ability 4", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 4")
1228
local SKILL5TEXT = CreateLabel(SKILL5FRAME, "[X] Mercy", SKILLTEXTCOLOR, SKILLTEXTSIZE, SKILLFONT, 0, 2, 0.7, "Text 5")
1229
--]]
1230
function printbye(Name)
1231
	local MESSAGES = {"You cannot struggle, ","Your existance is an insult, ","Fade, ","Your existance is not desired, ","You are not permitted here, ","You are not to decide your fate, ","Be gone, ","You are already dead, ","Your live is an anomaly, ","Don't dare to return, ","Why are you resisting, ","You cannot exist here, ","Why are you struggling, ","Your fate was already decided, ","Goodbye, ","You cannot ignore my command, ","You cannot resist my command, ","You already died, "}
1232
	warn(MESSAGES[MRANDOM(1,#MESSAGES)]..Name..".")
1233
		
1234
end
1235
1236
workspace.ChildAdded:connect(function(instance)
1237
    for BANISH = 1, #TOBANISH do
1238
		if TOBANISH[BANISH] ~= nil then
1239
			if instance.Name == TOBANISH[BANISH] then
1240
				coroutine.resume(coroutine.create(function()
1241
					printbye(instance.Name)
1242
					instance:ClearAllChildren()
1243
					Debris:AddItem(instance,0.0005)
1244
				end))
1245
			end
1246
		end
1247
	end
1248
end)
1249
1250
local Char = Character
1251
local Eye = CreatePart(3, Char, "Neon", 0, 0, "Really blue", "Eye", VT(0.6,0.1,1)/2,false)
1252
MakeForm(Eye,"Ball")
1253
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.2,0) * ANGLES(RAD(0), RAD(-18), RAD(15)), CF(0, 0, 0.4))
1254
local Eye = CreatePart(3, Char, "Neon", 0, 0, "Really blue", "Eye", VT(0.6,0.1,1)/2,false)
1255
MakeForm(Eye,"Ball")
1256
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.2,0) * ANGLES(RAD(0), RAD(18), RAD(-15)), CF(0, 0, 0.4))
1257
local Eye = CreatePart(3, Char, "Neon", 0, 0, "Really blue", "Eye", VT(0.1,1,1)/2,false)
1258
MakeForm(Eye,"Ball")
1259
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.15,0) * ANGLES(RAD(0), RAD(-18), RAD(0)), CF(0, 0, 0.4))
1260
local Eye = CreatePart(3, Char, "Neon", 0, 0, "Really blue", "Eye", VT(0.1,1,1)/2,false)
1261
MakeForm(Eye,"Ball")
1262
CreateWeldOrSnapOrMotor("Weld", Eye, Head, Eye, CF(0,0.15,0) * ANGLES(RAD(0), RAD(18), RAD(0)), CF(0, 0, 0.4))
1263
1264
local top = Instance.new("Shirt")
1265
top.ShirtTemplate = "rbxassetid://1533327933"
1266
top.Parent = Character
1267
top.Name = "Cloth"
1268
local bottom = Instance.new("Pants")
1269
bottom.PantsTemplate = "rbxassetid://1689251873"
1270
bottom.Parent = Character
1271
bottom.Name = "Cloth"
1272
for _, c in pairs(Character:GetChildren()) do
1273
	if c.ClassName == "Part" and c.Name ~= "FaceGradient" and c.Name ~= "Hat" and c.Name ~= "Gem" then
1274
		c.Material = "Neon"
1275
		if c:FindFirstChildOfClass("ParticleEmitter") then
1276
			c:FindFirstChildOfClass("ParticleEmitter"):remove()
1277
		end
1278
		c.Color = C3(1,1,1)
1279
		if c == Head then
1280
			if c:FindFirstChild("face") then
1281
				c.face:remove()
1282
			end
1283
		end
1284
	elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.ClassName == "Hat" or c.Name == "Body Colors" then
1285
		c:remove()
1286
	elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
1287
		c:remove()
1288
	end
1289
end
1290
local BODY = {}
1291
for _, c in pairs(Character:GetDescendants()) do
1292
	if c:IsA("BasePart") and c.Name ~= "Handle" then
1293
		if c ~= RootPart and c ~= Torso and c ~= Head and c ~= RightArm and c ~= LeftArm and c ~= RightLeg and c ~= LeftLeg then
1294
			c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1295
		end
1296
		table.insert(BODY,{c,c.Parent,c.Material,c.Color,c.Transparency})
1297
	elseif c:IsA("JointInstance") then
1298
		table.insert(BODY,{c,c.Parent,nil,nil,nil})
1299
	end
1300
end
1301
for e = 1, #BODY do
1302
	if BODY[e] ~= nil then
1303
		local STUFF = BODY[e]
1304
		local PART = STUFF[1]
1305
		local PARENT = STUFF[2]
1306
		local MATERIAL = STUFF[3]
1307
		local COLOR = STUFF[4]
1308
		local TRANSPARENCY = STUFF[5]
1309
		if PART.ClassName == "Part" and PART ~= RootPart then
1310
			PART.Material = MATERIAL
1311
			PART.Color = COLOR
1312
			PART.Transparency = TRANSPARENCY
1313
		end
1314
		PART.AncestryChanged:Connect(function()
1315
			PART.Parent = PARENT
1316
		end)
1317
	end
1318
end
1319
function refit()
1320
	Character.Parent = workspace
1321
	for e = 1, #BODY do
1322
		if BODY[e] ~= nil then
1323
			local STUFF = BODY[e]
1324
			local PART = STUFF[1]
1325
			local PARENT = STUFF[2]
1326
			local MATERIAL = STUFF[3]
1327
			local COLOR = STUFF[4]
1328
			local TRANSPARENCY = STUFF[5]
1329
			if PART.ClassName == "Part" and PART ~= RootPart then
1330
				PART.Material = MATERIAL
1331
				PART.Color = COLOR
1332
				PART.Transparency = TRANSPARENCY
1333
			end
1334
			if PART.Parent ~= PARENT then
1335
				Humanoid:remove()
1336
				PART.Parent = PARENT
1337
				Humanoid = IT("Humanoid",Character)
1338
			end
1339
		end
1340
	end
1341
end
1342
local SKILLTEXTCOLOR = BRICKC"".Color
1343
local SKILLFONT = "Bodoni"
1344
local SKILLTEXTSIZE = 7
1345
1346
Humanoid.Died:connect(function()
1347
	refit()
1348
end)
1349
1350
1351
--//=================================\\
1352
--||			DAMAGING
1353
--\\=================================//
1354
1355
function ApplyAoE(POSITION,RANGE,FLING,BURN)
1356
	local CHILDREN = workspace:GetDescendants()
1357
	for index, CHILD in pairs(CHILDREN) do
1358
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1359
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1360
			if HUM then
1361
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1362
				if TORSO then
1363
					if HUM.Health > 0 and (TORSO.Position - POSITION).Magnitude <= RANGE then
1364
						CHILD:BreakJoints()
1365
						if FLING ~= 0 then
1366
							for _, c in pairs(CHILD:GetChildren()) do
1367
								if c:IsA("BasePart") and c.Transparency == 0 then
1368
									if BURN == true then
1369
										Fire(c)
1370
									end
1371
									local bv = Instance.new("BodyVelocity") 
1372
									bv.maxForce = Vector3.new(1e9, 1e9, 1e9)
1373
									bv.velocity = CF(POSITION,TORSO.Position).lookVector*FLING
1374
									bv.Parent = c
1375
									Debris:AddItem(bv,0.05)
1376
								end
1377
							end
1378
						end
1379
					end
1380
				end
1381
			end
1382
		end
1383
	end
1384
end
1385
1386
function MagicSphere(SIZE, WAIT, CFRAME, COLOR, GROW)
1387
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(COLOR), "Effect", VT(1, 1, 1), true)
1388
	local mesh = IT("SpecialMesh", wave)
1389
	mesh.MeshType = "Sphere"
1390
	mesh.Scale = SIZE
1391
	mesh.Offset = VT(0, 0, 0)
1392
	wave.CFrame = CFRAME
1393
	coroutine.resume(coroutine.create(function(PART)
1394
		for i = 1, WAIT do
1395
			Swait()
1396
			mesh.Scale = mesh.Scale + GROW
1397
			wave.Transparency = wave.Transparency + 1 / WAIT
1398
			if wave.Transparency > 0.99 then
1399
				wave:remove()
1400
			end
1401
		end
1402
	end))
1403
end
1404
1405
function CastWarpOutlines(TARGET)
1406
	coroutine.resume(coroutine.create(function()
1407
		local T = TARGET:GetChildren()
1408
		for i = 1, #T do
1409
			local child = T[i]
1410
			if child.ClassName == "Part" or child.ClassName == "MeshPart" then
1411
				do
1412
					local clone = child:Clone()
1413
					clone.Parent = Effects
1414
					clone.Anchored = true
1415
					clone.CanCollide = false
1416
					clone:ClearAllChildren()
1417
					clone.CFrame = child.CFrame
1418
					if clone.Name == "Head" then
1419
						clone.Size = VT(clone.Size.Y, clone.Size.Y, clone.Size.Y)
1420
					end
1421
					if clone.ClassName == "MeshPart" then
1422
						clone.TextureID = ""
1423
					end
1424
					clone.Color = C3(1, 0, 0)
1425
					clone.Material = "Neon"
1426
					coroutine.resume(coroutine.create(function()
1427
						for i = 1, 100 do
1428
							Swait()
1429
							clone.Transparency = clone.Transparency + 0.01
1430
							clone.Size = clone.Size + VT(0.001, 0.001, 0.001)
1431
						end
1432
						clone:remove()
1433
					end))
1434
				end
1435
			end
1436
		end
1437
	end))
1438
end
1439
1440
local Delete = IT("Model", Character)
1441
Delete.Name = "Those who must be banished."
1442
1443
function killnearest(position, range, maxstrength)
1444
	for i, v in ipairs(workspace:GetChildren()) do
1445
		local body = v:GetChildren()
1446
		for part = 1, #body do
1447
			if (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character and range > (body[part].Position - position).Magnitude and v.ClassName == "Model" then
1448
				CastWarpOutlines(v)
1449
				v:remove()
1450
				if game.Players:FindFirstChild(v.Name) then
1451
					local Value = IT("BoolValue", Delete)
1452
					Value.Name = v.Name
1453
				end
1454
			end
1455
		end
1456
	end
1457
end
1458
1459
function Kill(Char)
1460
	local NewCharacter = IT("Model",Effects)
1461
	NewCharacter.Name = "Ow im ded ;-;"
1462
	for _, c in pairs(Char:GetDescendants()) do
1463
		if c:IsA("BasePart") and c.Transparency == 0 then
1464
			if c.Parent == Char then
1465
				getbloody(c,5)
1466
			end
1467
			c:BreakJoints()
1468
			c.Material = "Glass"
1469
			c.Color = C3(0.5,0,0)
1470
			c.CanCollide = true
1471
			c.Transparency = 0.3
1472
			if c:FindFirstChildOfClass("SpecialMesh") then
1473
				c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
1474
			end
1475
			if c.Name == "Head" then
1476
				c:ClearAllChildren()
1477
				c.Size = VT(c.Size.Y,c.Size.Y,c.Size.Y)
1478
			end
1479
			if c.ClassName == "MeshPart" then
1480
				c.TextureID = ""
1481
			end
1482
			if c:FindFirstChildOfClass("BodyPosition") then
1483
				c:FindFirstChildOfClass("BodyPosition"):remove()
1484
			end
1485
			if c:FindFirstChildOfClass("ParticleEmitter") then
1486
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
1487
			end
1488
			c.Parent = NewCharacter
1489
			c.Name = "DeadPart"
1490
			c.Velocity = VT(MRANDOM(-45,45),MRANDOM(-45,45),MRANDOM(-45,45))/15
1491
			c.RotVelocity = VT(MRANDOM(-45,45),MRANDOM(-15,85),MRANDOM(-45,45))
1492
		end
1493
	end
1494
	Char:remove()
1495
	Debris:AddItem(NewCharacter,5)
1496
end
1497
1498
local asd = Instance.new("ParticleEmitter")
1499
asd.Color = ColorSequence.new(Color3.new(0.5, 0, 0), Color3.new(.3, 0, 0))
1500
asd.LightEmission = .1
1501
asd.Texture = "http://www.roblox.com/asset/?ID=291880914"
1502
aaa = NumberSequence.new({NumberSequenceKeypoint.new(0, 0.6),NumberSequenceKeypoint.new(1, 2)})
1503
bbb = NumberSequence.new({NumberSequenceKeypoint.new(0, 1),NumberSequenceKeypoint.new(0.0636, 0), NumberSequenceKeypoint.new(1, 1)})
1504
asd.Transparency = bbb
1505
asd.Size = aaa
1506
asd.ZOffset = .9
1507
asd.Acceleration = Vector3.new(0, -15, 0)
1508
asd.LockedToPart = false
1509
asd.EmissionDirection = "Back"
1510
asd.Lifetime = NumberRange.new(1, 2)
1511
asd.Rotation = NumberRange.new(-100, 100)
1512
asd.RotSpeed = NumberRange.new(-100, 100)
1513
asd.Speed = NumberRange.new(10)
1514
asd.Enabled = false
1515
asd.VelocitySpread = 999
1516
1517
function getbloody(victim,amount)
1518
	local PART = CreatePart(3, Effects, "Metal", 0, 1, "Mid gray", "Blood", victim.Size)
1519
	PART.CFrame = victim.CFrame
1520
	local HITPLAYERSOUNDS = {"356551938","264486467"}
1521
	Debris:AddItem(PART,5)
1522
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1523
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1524
	CreateSound(HITPLAYERSOUNDS[MRANDOM(1, #HITPLAYERSOUNDS)], PART, 1, (math.random(8,12)/10))
1525
	local prtcl = asd:Clone()
1526
	prtcl.Parent = PART
1527
	prtcl:Emit(amount*10)
1528
end
1529
--//=================================\\
1530
--||	ATTACK FUNCTIONS AND STUFF
1531
--\\=================================//
1532
local LAUGHS = {834001699,834001752,834001797,834001828}
1533
1534
local RightHole = CreatePart(3, Character, "Metal", 0, 0, "Mid gray", "Eye", VT(0.2,0,0.2),false)
1535
MakeForm(RightHole,"Cyl")
1536
local LeftHole = CreatePart(3, Character, "Metal", 0, 0, "Mid gray", "Eye", VT(0.2,0,0.2),false)
1537
MakeForm(LeftHole,"Cyl")
1538
1539
function Deathbound()
1540
	CreateSound(LAUGHS[MRANDOM(1,#LAUGHS)], Torso, 10, 1, false)
1541
	ATTACK = true
1542
	Rooted = true
1543
	for i=0, 1, 0.1 / Animation_Speed do
1544
		Swait()
1545
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 1 + 0.25 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1546
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1547
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 1, 0) * ANGLES(RAD(15), RAD(0), RAD(12)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1548
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 1, 0) * ANGLES(RAD(15), RAD(0), RAD(-12)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1549
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1550
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1551
	end
1552
	local DONE = false
1553
	local GATE = nil
1554
	local GATESPIN = true
1555
	coroutine.resume(coroutine.create(function()
1556
		repeat
1557
			Swait()
1558
			if GATE ~= nil then
1559
				GATE.CFrame = GATE.CFrame * ANGLES(RAD(0), RAD(-3), RAD(0))
1560
			end
1561
		until GATESPIN == false
1562
	end))
1563
	coroutine.resume(coroutine.create(function()
1564
		repeat
1565
			Swait()
1566
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0.2 - 0.25 * COS(SINE / 12)) * ANGLES(RAD(15), RAD(0), RAD(0)), 1 / Animation_Speed)
1567
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(5 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1568
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(15), RAD(0), RAD(5)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1569
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5 + 0.25 * COS(SINE / 12), 0) * ANGLES(RAD(15), RAD(0), RAD(-5)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1570
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1571
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1572
		until DONE == true
1573
		Swait(50)
1574
		for i = 1, 35 do
1575
			Swait(4)
1576
			local FIRED = false
1577
			local CHILDREN = workspace:GetDescendants()
1578
			for index, CHILD in pairs(CHILDREN) do
1579
				if CHILD.ClassName == "Model" and CHILD ~= Character then
1580
					local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1581
					if HUM then
1582
						local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1583
						if TORSO then
1584
							if (TORSO.Position - GATE.Position).Magnitude <= GATE.Size.X/2.5 + TORSO.Size.Magnitude/5 then
1585
								local HITFLOOR,HITPOS = Raycast(TORSO.Position, (CF(TORSO.Position, TORSO.Position + VT(0, -1, 0))).lookVector, 15, Character)
1586
								local CFRAME = CF(HITPOS)*ANGLES(RAD(MRANDOM(-15,15)),RAD(MRANDOM(-15,15)),RAD(MRANDOM(-15,15)))
1587
								WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = CFRAME, MoveToPos = CFRAME*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(58,125,21), SoundID = 213603013, SoundPitch = 1.5, SoundVolume = 6})
1588
								WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CFRAME, MoveToPos = nil, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(58,125,21), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1589
								SpawnTrail(CFRAME.p,CFRAME*CF(0,1000,0).p)		
1590
								Kill(CHILD)
1591
								FIRED = true
1592
								break
1593
							end
1594
						end
1595
					end
1596
				end
1597
			end
1598
			if FIRED == false then
1599
				local CFRAME = GATE.CFrame*ANGLES(RAD(0),RAD(MRANDOM(0,360)),RAD(0))*CF(0,0,MRANDOM(2,math.ceil(GATE.Size.X/2.5)))*ANGLES(RAD(MRANDOM(-15,15)),RAD(MRANDOM(-15,15)),RAD(MRANDOM(-15,15)))
1600
				WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = CFRAME, MoveToPos = CFRAME*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(58,125,21), SoundID = 213603013, SoundPitch = 1.5, SoundVolume = 6})
1601
				WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CFRAME, MoveToPos = nil, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(58,125,21), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1602
				SpawnTrail(CFRAME.p,CFRAME*CF(0,1000,0).p)
1603
				local HITBOD = Raycast(CFRAME.p, (CF(CFRAME.p, CFRAME.p + VT(0, 1, 0))).lookVector, 1000, Character)
1604
				if HITBOD ~= nil then
1605
					if HITBOD.Parent:FindFirstChildOfClass("Humanoid") then
1606
						killnearest(HITBOD.Parent)
1607
					end
1608
				end
1609
			end
1610
		end
1611
		for i = 1, 45 do
1612
			Swait()
1613
			GATE.Size = GATE.Size - VT(3,0,3)
1614
		end
1615
		GATESPIN = false
1616
		GATE:remove()
1617
	end))
1618
	Swait(15)
1619
	local HITFLOOR,HITPOS = Raycast(RootPart.Position, (CF(RootPart.Position, RootPart.Position + VT(0, -1, 0))).lookVector, 15, Character)
1620
	GATE = CreatePart(3, Effects, "Neon", 0, 1, "Teal", "Gate", VT(0,0,0))
1621
	local DECAL = IT("Decal",GATE)
1622
	DECAL.Texture = "http://www.roblox.com/asset/?id=647661410"
1623
	DECAL.Face = "Top"
1624
	GATE.CFrame = CF(HITPOS)
1625
	CreateSound(160772554, GATE, 7, 1.3, false)
1626
	for i = 1, 45 do
1627
		Swait()
1628
		GATE.Size = GATE.Size + VT(3,0,3)
1629
	end
1630
	CreateSound(213603013, RightHole, 7, 1, false)
1631
	CreateSound(213603013, LeftHole, 7, 1, false)
1632
	WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,2,2), Transparency = 0, Transparency2 = 1, CFrame = RightHole.CFrame*CF(0,-1,0) * ANGLES(RAD(180), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(58,125,21), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1633
	WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,2,2), Transparency = 0, Transparency2 = 1, CFrame = LeftHole.CFrame*CF(0,-1,0) * ANGLES(RAD(180), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(58,125,21), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1634
	ATTACK = false
1635
	Rooted = false
1636
	DONE = true
1637
end
1638
1639
function Morning_Star()
1640
	ATTACK = true
1641
	Rooted = true
1642
	CreateSound(LAUGHS[MRANDOM(1,#LAUGHS)], Torso, 7, 1, false)
1643
	for i=0, 1, 0.1 / Animation_Speed do
1644
		Swait()
1645
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0  + 0.25 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 1 / Animation_Speed)
1646
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1647
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.5) * ANGLES(RAD(0), RAD(0), RAD(-85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1648
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.15, -0.5) * ANGLES(RAD(-15), RAD(0), RAD(85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1649
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1650
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1651
	end	
1652
	coroutine.resume(coroutine.create(function()
1653
		local POS = Mouse.Hit.p
1654
		local RAY = CreatePart(3, Effects, "Neon", 0, 0, "Teal", "Strike", VT(0,2000,0))
1655
		MakeForm(RAY,"Cyl")
1656
		local SPHERE = CreatePart(3, Effects, "Neon", 0, 0, "Teal", "Strike", VT(0,0,0))
1657
		MakeForm(SPHERE,"Ball")
1658
		local SHIELD = CreatePart(3, Effects, "Neon", 0, 0.5, "Really blue", "Strike", VT(0,0,0))
1659
		MakeForm(SHIELD,"Ball")
1660
		SHIELD.CFrame = CF(POS)
1661
		RAY.CFrame = CF(POS)
1662
		SPHERE.CFrame = CF(POS)
1663
		CreateSound(144699494, SPHERE, 10, 0.8, false)
1664
		CreateSound(1146688617, SPHERE, 10, 0.8, false)
1665
		for i = 1, 200 do
1666
			Swait()
1667
			WACKYEFFECT({Time = 15, EffectType = "Wave", Size = VT(0,0,0), Size2 = VT(SPHERE.Size.X*1.2,5+(i),SPHERE.Size.X*1.2), Transparency = 0, Transparency2 = 1, CFrame = SPHERE.CFrame*ANGLES(RAD(0), RAD(i), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = i, RotationZ = 0, Material = "Neon", Color = C3(58,125,21), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1668
			RAY.Size = RAY.Size + VT(0.05,0,0.05)
1669
			SPHERE.Size = SPHERE.Size + VT(2,2,2)
1670
			SHIELD.Size = SPHERE.Size + VT(3,3,3)
1671
			ApplyAoE(SPHERE.Position,SPHERE.Size.X/2,true)
1672
		end	
1673
		for i = 1, 45 do
1674
			Swait()
1675
			RAY.Transparency = RAY.Transparency + 1/45
1676
			SPHERE.Transparency = RAY.Transparency 
1677
			SHIELD.Transparency = SPHERE.Transparency + 1/45
1678
		end
1679
		RAY:remove()
1680
		SHIELD:remove()
1681
		SPHERE:remove()
1682
	end))
1683
	for i=0, 1, 0.1 / Animation_Speed do
1684
		Swait()
1685
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0  + 0.25 * COS(SINE / 12)) * ANGLES(RAD(-35), RAD(0), RAD(0)), 1 / Animation_Speed)
1686
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(-15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1687
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(-45), RAD(85)) * RIGHTSHOULDERC0, 1 / Animation_Speed)
1688
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.5, 0.5, -0.15) * ANGLES(RAD(65), RAD(45), RAD(-85)) * LEFTSHOULDERC0, 1 / Animation_Speed)
1689
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, -0.01) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(75), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1690
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -0.5, -0.5) * ANGLES(RAD(-35-2.5 * SIN(SINE / 12)), RAD(-90), RAD(0)) * ANGLES(RAD(-8 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1691
	end
1692
	ATTACK = false
1693
	Rooted = false
1694
end
1695
1696
function Teleport()
1697
	ATTACK = true
1698
	Rooted = false
1699
	for i=0, 0.5, 0.1 / Animation_Speed do
1700
		Swait()
1701
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1702
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.6, 0.75, -0.5) * ANGLES(RAD(0), RAD(-25), RAD(12)) * ANGLES(RAD(125 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 1.5 / Animation_Speed)
1703
	end
1704
	for e = 1, #BODY do
1705
		if BODY[e] ~= nil then
1706
			local STUFF = BODY[e]
1707
			local PART = STUFF[1]
1708
			if PART:IsA("BasePart") and PART ~= RootPart and PART.Name ~= "FaceGradient" and PART.Name ~= "Hair" and PART.Transparency ~= 1 then
1709
				local PRT = PART:Clone()
1710
				PRT.Anchored = true
1711
				PRT.CanCollide = false
1712
				PRT.Material = "Neon"
1713
				PRT.Color = C3(0,0,1)
1714
				PRT.Name = "WarpEffect"
1715
				PRT.Parent = Effects
1716
				PRT.CFrame = PART.CFrame
1717
				PRT:BreakJoints()
1718
				if PRT:FindFirstChildOfClass("Sound") then
1719
					PRT:FindFirstChildOfClass("Sound"):remove()
1720
				end
1721
				if PRT:FindFirstChildOfClass("Decal") then
1722
					PRT:FindFirstChildOfClass("Decal"):remove()
1723
				end
1724
				coroutine.resume(coroutine.create(function()
1725
					for i = 1, 100 do
1726
						Swait()
1727
						PRT.Transparency = PRT.Transparency + 1/100
1728
					end
1729
					PRT:remove()
1730
				end))
1731
			end
1732
		end
1733
	end
1734
	CreateSound(217767125, Torso, 10, 1)
1735
	local POS = RootPart.Orientation
1736
	RootPart.CFrame = CF(Mouse.Hit.p+VT(0,6,0))
1737
	RootPart.Orientation = POS
1738
	RootJoint.Parent = RootPart
1739
	for i=0, 0.5, 0.1 / Animation_Speed do
1740
		Swait()
1741
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 1 / Animation_Speed)
1742
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.6, 0.75, -0.5) * ANGLES(RAD(0), RAD(-15), RAD(12)) * ANGLES(RAD(175 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 2.5 / Animation_Speed)
1743
	end
1744
	for i=0, 0.1, 0.1 / Animation_Speed do
1745
		Swait()
1746
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1, 0.5, 0.5) * ANGLES(RAD(0), RAD(-45), RAD(12)) * ANGLES(RAD(45 - 2.5 * COS(SINE / 12) + 2.5 * SIN(SINE / 12)), RAD(0), RAD(0)) * RIGHTSHOULDERC0, 0.75 / Animation_Speed)
1747
	end
1748
	ATTACK = false
1749
	Rooted = false
1750
end
1751
1752
function turnto(position)
1753
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1754
end
1755
1756
function Banish(Foe)
1757
	if Foe then
1758
		coroutine.resume(coroutine.create(function()
1759
			--if game.Players:FindFirstChild(Foe.Name) then
1760
				table.insert(TOBANISH,Foe.Name)
1761
				printbye(Foe.Name)
1762
			--end
1763
			Foe.Archivable = true
1764
			local CLONE = Foe:Clone()
1765
			Foe:Destroy()
1766
			CLONE.Parent = Effects
1767
			CLONE:BreakJoints()
1768
			local MATERIALS = {"Glass","Neon"}
1769
			for _, c in pairs(CLONE:GetDescendants()) do
1770
				if c:IsA("BasePart") then
1771
					if c.Name == "Torso" or c.Name == "UpperTorso" or c == CLONE.PrimaryPart then
1772
 						CreateSound(340722848, c, 10, 1, false)
1773
					end
1774
					c.Anchored = true
1775
					c.Transparency = c.Transparency + 0.2
1776
					c.Material = MATERIALS[MRANDOM(1,2)]
1777
					c.Color = C3(0,0,255)
1778
					if c.ClassName == "MeshPart" then
1779
						c.TextureID = ""
1780
					end
1781
					if c:FindFirstChildOfClass("SpecialMesh") then
1782
						c:FindFirstChildOfClass("SpecialMesh").TextureId = ""
1783
					end
1784
					if c:FindFirstChildOfClass("Decal") then
1785
						c:FindFirstChildOfClass("Decal"):remove()
1786
					end
1787
					c.Name = "Banished"
1788
					c.CanCollide = false
1789
				else
1790
					c:remove()
1791
				end
1792
			end
1793
			local A = false
1794
			for i = 1, 35 do
1795
				if A == false then
1796
					A = true
1797
				elseif A == true then
1798
					A = false
1799
				end
1800
				for _, c in pairs(CLONE:GetDescendants()) do
1801
					if c:IsA("BasePart") then
1802
						c.Anchored = true
1803
						c.Material = MATERIALS[MRANDOM(1,2)]
1804
						c.Transparency = c.Transparency + 0.8/35
1805
						if A == false then
1806
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)
1807
						elseif A == true then
1808
							c.CFrame = c.CFrame*CF(MRANDOM(-45,45)/45,MRANDOM(-45,45)/45,MRANDOM(-45,45)/45)						
1809
						end
1810
					end
1811
				end
1812
				Swait()
1813
			end
1814
			CLONE:remove()
1815
		end))
1816
	end
1817
end
1818
1819
function ApplyAoE(POSITION,RANGE,ISBANISH)
1820
	local CHILDREN = workspace:GetDescendants()
1821
	for index, CHILD in pairs(CHILDREN) do
1822
		if CHILD.ClassName == "Model" and CHILD ~= Character then
1823
			local HUM = CHILD:FindFirstChildOfClass("Humanoid")
1824
			if HUM then
1825
				local TORSO = CHILD:FindFirstChild("Torso") or CHILD:FindFirstChild("UpperTorso")
1826
				if TORSO then
1827
					if (TORSO.Position - POSITION).Magnitude <= RANGE then
1828
						if ISBANISH == true then
1829
							Banish(CHILD)
1830
						else
1831
							if ISBANISH == "Gravity" then
1832
								HUM.PlatformStand = true
1833
								if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
1834
									local grav = Instance.new("BodyPosition",TORSO)
1835
									grav.D = 15
1836
									grav.P = 20000
1837
									grav.maxForce = Vector3.new(math.huge,math.huge,math.huge)
1838
									grav.position = TORSO.Position
1839
									grav.Name = "V3BanishForce"..Player.Name
1840
								else
1841
									TORSO:FindFirstChild("V3BanishForce"..Player.Name).position = TORSO.Position+VT(0,0.3,0)
1842
									TORSO.RotVelocity = VT(MRANDOM(-25,25),MRANDOM(-25,25),MRANDOM(-25,25))
1843
								end
1844
							else
1845
								HUM.PlatformStand = false
1846
							end
1847
						end
1848
					elseif ISBANISH == "Gravity" then
1849
						if TORSO:FindFirstChild("V3BanishForce"..Player.Name) then
1850
							TORSO:FindFirstChild("V3BanishForce"..Player.Name):remove()
1851
							HUM.PlatformStand = false
1852
						end
1853
					end
1854
				end
1855
			end
1856
		end
1857
	end
1858
end
1859
1860
function SpawnTrail(FROM,TO,BIG)
1861
	local TRAIL = CreatePart(3, Effects, "Neon", 0, 0.5, "Cyan", "Trail", VT(0,0,0))
1862
	MakeForm(TRAIL,"Cyl")
1863
	local DIST = (FROM - TO).Magnitude
1864
	if BIG == true then
1865
		TRAIL.Size = VT(0.5,DIST,0.5)
1866
	else
1867
		TRAIL.Size = VT(0.25,DIST,0.25)
1868
	end
1869
	TRAIL.CFrame = CF(FROM, TO) * CF(0, 0, -DIST/2) * ANGLES(RAD(90),RAD(0),RAD(0))
1870
	coroutine.resume(coroutine.create(function()
1871
		for i = 1, 5 do
1872
			Swait()
1873
			TRAIL.Transparency = TRAIL.Transparency + 0.1
1874
		end
1875
		TRAIL:remove()
1876
	end))
1877
end
1878
1879
function Banisher_Bullet()
1880
	ATTACK = true
1881
	Rooted = false
1882
	for i=0, 0.4, 0.1 / Animation_Speed do
1883
		Swait()
1884
		turnto(Mouse.Hit.p)
1885
		RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1886
		Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
1887
		LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1888
		RightShoulder.C0 = Clerp(RightShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1889
		RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1890
		LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1891
	end
1892
	repeat
1893
		for i=0, 0.2, 0.1 / Animation_Speed do
1894
			Swait()
1895
			turnto(Mouse.Hit.p)
1896
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1897
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.5 / Animation_Speed)
1898
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(0), RAD(90)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1899
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1900
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1901
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1902
		end
1903
		local HIT,POS = CastProperRay(Hole.Position, Mouse.Hit.p, 1000, Character)
1904
		SpawnTrail(Hole.Position,POS)
1905
		if HIT ~= nil then
1906
			if HIT.Parent ~= workspace and HIT.Parent.ClassName ~= "Folder" then
1907
				Banish(HIT.Parent)
1908
			end
1909
		end
1910
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(1,1.5,1), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = Hole.CFrame*CF(0,0.5,0).p, RotationX = 0, RotationY = -15, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = nil, SoundPitch = nil, SoundVolume = nil})
1911
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = Hole.CFrame, MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = 904440937, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1912
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = -5, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1913
		WACKYEFFECT({Time = 25, EffectType = "Wave", Size = VT(0.3,0,0.3), Size2 = VT(2,0.5,2), Transparency = 0, Transparency2 = 1, CFrame = CF(POS,Hole.Position) * ANGLES(RAD(-90), RAD(0), RAD(0)), MoveToPos = nil, RotationX = 0, RotationY = 5, RotationZ = 0, Material = "Neon", Color = C3(0,0,1), SoundID = nil, SoundPitch = MRANDOM(8,11)/10, SoundVolume = 8})
1914
		for i=0, 0.3, 0.1 / Animation_Speed do
1915
			Swait()
1916
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(90)), 0.5 / Animation_Speed)
1917
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0) * ANGLES(RAD(0), RAD(0), RAD(-90)), 0.25 / Animation_Speed)
1918
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(1.5, 0.5, 0) * ANGLES(RAD(90), RAD(15), RAD(90)) * LEFTSHOULDERC0, 0.5 / Animation_Speed)
1919
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(-1.5, 0.6, 0) * ANGLES(RAD(-45), RAD(0), RAD(45)) * RIGHTSHOULDERC0, 0.5 / Animation_Speed)
1920
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -1, 0) * ANGLES(RAD(0), RAD(90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1921
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, 0) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.5 / Animation_Speed)
1922
		end
1923
	until KEYHOLD == false
1924
	ATTACK = false
1925
	Rooted = false
1926
end
1927
1928
function Hat()
1929
	ATTACK = true
1930
	Rooted = false
1931
	Pose("Taunt",0.4,1.2,false)
1932
	ATTACK = false
1933
	Rooted = false
1934
end
1935
1936
--//=================================\\
1937
--||	  ASSIGN THINGS TO KEYS
1938
--\\=================================//
1939
1940
function MouseDown(Mouse)
1941
	HOLD = true
1942
	if ATTACK == false then
1943
	end
1944
end
1945
1946
function MouseUp(Mouse)
1947
HOLD = false
1948
end
1949
1950
function KeyDown(Key)
1951
	KEYHOLD = true
1952
	if Key == "z" and ATTACK == false then
1953
		Banisher_Bullet()
1954
	end
1955
	if Key == "q" and ATTACK == false then
1956
		Teleport()
1957
	end
1958
	if Key == "x" and ATTACK == false then
1959
		Morning_Star()
1960
	end
1961
	if Key == "c" and ATTACK == false then
1962
		Deathbound()
1963
	end
1964
	if Key == "t" and ATTACK == false then
1965
		Hat()
1966
	end
1967
end
1968
1969
function KeyUp(Key)
1970
	KEYHOLD = false
1971
end
1972
1973
	Mouse.Button1Down:connect(function(NEWKEY)
1974
		MouseDown(NEWKEY)
1975
	end)
1976
	Mouse.Button1Up:connect(function(NEWKEY)
1977
		MouseUp(NEWKEY)
1978
	end)
1979
	Mouse.KeyDown:connect(function(NEWKEY)
1980
		KeyDown(NEWKEY)
1981
	end)
1982
	Mouse.KeyUp:connect(function(NEWKEY)
1983
		KeyUp(NEWKEY)
1984
	end)
1985
1986
--//=================================\\
1987
--\\=================================//
1988
1989
1990
1991
function unanchor()
1992
	if UNANCHOR == true then
1993
		g = Character:GetChildren()
1994
		for i = 1, #g do
1995
			if g[i].ClassName == "Part" then
1996
				g[i].Anchored = false
1997
			end
1998
		end
1999
	end
2000
end
2001
2002
2003
--//=================================\\
2004
--||	WRAP THE WHOLE SCRIPT UP
2005
--\\=================================//
2006
2007
Humanoid.Changed:connect(function(Jump)
2008
	if Jump == "Jump" and (Disable_Jump == true) then
2009
		Humanoid.Jump = false
2010
	end
2011
end)
2012
2013
while true do
2014
	Swait()
2015
	script.Parent = WEAPONGUI
2016
	Humanoid.Parent = Character
2017
	if Humanoid then
2018
		local IDLEANIMATION = Humanoid:LoadAnimation(ROBLOXIDLEANIMATION)
2019
		IDLEANIMATION:Play()
2020
	end
2021
	if ANIMATE.Parent == Character then
2022
		ANIMATE:Destroy()
2023
	end
2024
	SINE = SINE + CHANGE
2025
	local TORSOVELOCITY = (RootPart.Velocity * VT(1, 0, 1)).magnitude
2026
	local TORSOVERTICALVELOCITY = RootPart.Velocity.y
2027
	Humanoid.HipHeight = 1
2028
	Humanoid.Name = "Warden"
2029
	Humanoid.PlatformStand = false
2030
	if PLAYMAINANIM == true then
2031
		if TORSOVELOCITY < 1 then
2032
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(0), RAD(0), RAD(0)), 0.15 / Animation_Speed)
2033
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(15 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
2034
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
2035
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-45), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
2036
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-15)), 0.15 / Animation_Speed)
2037
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(0)), 0.15 / Animation_Speed)
2038
		elseif TORSOVELOCITY > 1 then
2039
			RootJoint.C0 = Clerp(RootJoint.C0,ROOTC0 * CF(0, 0, 0 + 0.05 * COS(SINE / 12)) * ANGLES(RAD(5), RAD(0), RAD(0)), 0.15 / Animation_Speed)
2040
			Neck.C0 = Clerp(Neck.C0, NECKC0 * CF(0, 0, 0 + ((1) - 1)) * ANGLES(RAD(10 - 6.5 * SIN(SINE / 12)), RAD(0), RAD(0)), 0.15 / Animation_Speed)
2041
			RightShoulder.C0 = Clerp(RightShoulder.C0, CF(1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-35), RAD(0), RAD(-45)) * RIGHTSHOULDERC0, 0.15 / Animation_Speed)
2042
			LeftShoulder.C0 = Clerp(LeftShoulder.C0, CF(-1.25, 0.5 + 0.15 * COS(SINE / 12) - 0.05 * COS(SINE / 12), 0.5) * ANGLES(RAD(-35), RAD(0), RAD(45)) * LEFTSHOULDERC0, 0.15 / Animation_Speed)
2043
			RightHip.C0 = Clerp(RightHip.C0, CF(1, -0.5, -0.5) * ANGLES(RAD(0), RAD(65), RAD(0)) * ANGLES(RAD(-3), RAD(0), RAD(-20)), 0.15 / Animation_Speed)
2044
			LeftHip.C0 = Clerp(LeftHip.C0, CF(-1, -1, -0.01) * ANGLES(RAD(0), RAD(-90), RAD(0)) * ANGLES(RAD(-8), RAD(0), RAD(10)), 0.15 / Animation_Speed)
2045
		end
2046
	end
2047
	unanchor()
2048
	Humanoid.MaxHealth = "inf"
2049
	Humanoid.Health = "inf"
2050
	if Rooted == false then
2051
		Disable_Jump = false
2052
		Humanoid.WalkSpeed = Speed
2053
	elseif Rooted == true then
2054
		Disable_Jump = true
2055
		Humanoid.WalkSpeed = 0
2056
	end
2057
	for _, c in pairs(Character:GetChildren()) do
2058
		if c.ClassName == "Part" and c.Name ~= "Eye" then
2059
			c.Material = "Neon"
2060
			if c:FindFirstChildOfClass("ParticleEmitter") then
2061
				c:FindFirstChildOfClass("ParticleEmitter"):remove()
2062
			end
2063
			c.Color = C3(1,1,1)
2064
			if c == Head then
2065
				if c:FindFirstChild("face") then
2066
					c.face:remove()
2067
				end
2068
			end
2069
		elseif c.ClassName == "CharacterMesh" or c.ClassName == "Accessory" or c.ClassName == "Hat" or c.Name == "Body Colors" then
2070
			c:remove()
2071
		elseif (c.ClassName == "Shirt" or c.ClassName == "Pants") and c.Name ~= "Cloth" then
2072
			c:remove()
2073
		end
2074
	end
2075
	sick.SoundId = "rbxassetid://1567323605"
2076
	sick.Looped = true
2077
	sick.Pitch = 1
2078
	sick.Volume = 3
2079
	sick:Resume()
2080
	sick.Parent = Torso
2081
	refit()
2082
	if Head:FindFirstChildOfClass("Sound") then
2083
		Head:FindFirstChildOfClass("Sound"):remove()
2084
	end
2085
end
2086
game.Lighting.TimeOfDay = "00:00:00"
2087
game.Lighting.FogEnd = 50
2088
game.Lighting.FogColor = Color3.fromRGB(0,0,0)
2089
2090
--//=================================\\
2091
2092
--\\=================================//
2093
2094
2095
2096
2097
2098
--//====================================================\\--
2099
--||			  		 END OF SCRIPT
2100
--\\====================================================//--