View difference between Paste ID: ePv30Gc9 and 8TL22U6v
SHOW: | | - or go back to the newest paste.
1
-- Retributor, without all the fun stuff. Just the coat.
2
3-
-- Written by yeox769.
3+
---AgentVKNoob
4
5
wait(0.5)
6
Player=game:GetService("Players").LocalPlayer
7
Character=Player.Character 
8
PlayerGui=Player.PlayerGui
9
Backpack=Player.Backpack 
10
Torso=Character.Torso 
11
Head=Character.Head 
12
Humanoid=Character.Humanoid
13
m=Instance.new('Model',Character)
14
LeftArm=Character["Left Arm"] 
15
LeftLeg=Character["Left Leg"] 
16
RightArm=Character["Right Arm"] 
17
RightLeg=Character["Right Leg"] 
18
LS=Torso["Left Shoulder"] 
19
LH=Torso["Left Hip"] 
20
RS=Torso["Right Shoulder"] 
21
RH=Torso["Right Hip"] 
22
Face = Head.face
23
Neck=Torso.Neck
24
it=Instance.new
25
attacktype=1
26
vt=Vector3.new
27
cf=CFrame.new
28
euler=CFrame.fromEulerAnglesXYZ
29
angles=CFrame.Angles
30
cloaked=false
31
necko=cf(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
32
necko2=cf(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
33
LHC0=cf(-1,-1,0,-0,-0,-1,0,1,0,1,0,0)
34
LHC1=cf(-0.5,1,0,-0,-0,-1,0,1,0,1,0,0)
35
RHC0=cf(1,-1,0,0,0,1,0,1,0,-1,-0,-0)
36
RHC1=cf(0.5,1,0,0,0,1,0,1,0,-1,-0,-0)
37
RootPart=Character.HumanoidRootPart
38
RootJoint=RootPart.RootJoint
39
RootCF=euler(-1.57,0,3.14)
40
attack = false 
41
attackdebounce = false 
42
deb=false
43
equipped=true
44
hand=false
45
MMouse=nil
46
combo=0
47
trispeed=.2
48
attackmode='none'
49
local idle=0
50
local Anim="Idle"
51
52
it = Instance.new
53
54
local part = function(name,parent,brkclr,mtrl,rfl,trns,sz)
55
	local prt = it("Part",parent)
56
	prt.Name = name
57
	prt.CanCollide = false
58
	prt.BrickColor = BrickColor.new(brkclr)
59
	if brkclr == "Really black" and mtrl == "Neon" then prt.Color = Color3.new(0,0,0) end
60
	prt.Material = mtrl
61
	prt.Reflectance = rfl
62
	prt.Transparency = trns
63
	prt.Size = sz
64
	prt.Anchored = true
65
	return prt
66
end
67
local mesh = function(meshtype,parent,meshid,textureid,scale)
68
	local msh = it("SpecialMesh",parent)
69
	if meshtype == "FileMesh" then
70
		msh.MeshId = meshid
71
		msh.TextureId = textureid
72
	end
73
	msh.MeshType = meshtype
74
	msh.Scale = scale
75
	return(msh)
76
end
77
local weld = function(part1,part2,x1,y1,z1,x2,y2,z2)
78
	local w = it("Weld",part1)
79
	w.Part0 = part1
80
	w.Part1 = part2
81
	if part1.Anchored or part2.Anchored then
82
		part1.Anchored = false
83
		part2.Anchored = false
84
	end
85
	w.C0 = (CFrame.new(x1,y1,z1)*CFrame.Angles(math.rad(z2),math.rad(y2),math.rad(x2)))
86
	return(w)
87
end
88
local emit = function(parent,tex,startcolor, endcolor, startsize,endsize,lightem,emdir,lif,rate,speed,rotspeed,sprdang)
89
	local emm = it("ParticleEmitter",parent)
90
	emm.Texture = tex
91
	emm.Color = ColorSequence.new({ColorSequenceKeypoint.new(0,startcolor),ColorSequenceKeypoint.new(1,endcolor)})
92
	emm.Size = NumberSequence.new({NumberSequenceKeypoint.new(0,startsize),NumberSequenceKeypoint.new(1,endsize)})
93
	emm.LightEmission = lightem
94
	emm.EmissionDirection = emdir
95
	emm.Lifetime = NumberRange.new(lif)
96
	emm.Rate = rate
97
	emm.Speed = NumberRange.new(speed)
98
	emm.RotSpeed = NumberRange.new(rotspeed)
99
	emm.SpreadAngle = Vector2.new(sprdang,sprdang)
100
	return(emm)
101
end
102
103-
for _,v in pairs(Character:GetChildren()) do
103+
104-
	if v:IsA("Shirt") or v:IsA("Pants") or v:IsA("Accessory") then
104+
105-
		v:Destroy()
105+
106
107
p = part("Collar1",m,"Black","Sand",0,0,Vector3.new(1,1,1))
108
weld(Torso,p,0,1.15,0,0,22.5,190)
109
mesh("FileMesh",p,"http://www.roblox.com/asset/?id=20637493","",Vector3.new(1,1,1))
110
p = part("Collar2",m,"Black","Sand",0,0,Vector3.new(1,1,1))
111
weld(Torso,p,0,1.15,0,0,-22.5,190)
112
mesh("FileMesh",p,"http://www.roblox.com/asset/?id=20637493","",Vector3.new(1,1,1))
113
p = part("Collar3",m,"Black","Sand",0,0,Vector3.new(1,1,1))
114
weld(Torso,p,0,0.9,0.1,0,0,-15)
115
mesh("FileMesh",p,"http://www.roblox.com/asset/?id=20637493","",Vector3.new(1,1,1))
116
117
118
p = part("Coat1",m,"Black","Sand",0,0,Vector3.new(2.05,1.55,1.05))
119
weld(Torso,p,0,0.25,0,0,0,0)
120
p = part("Coat2",m,"Black","Sand",0,0,Vector3.new(0.55,2.05,1.04))
121
weld(Torso,p,1,-1.25,0,22,0,0)
122
p = part("Coat3",m,"Black","Sand",0,0,Vector3.new(0.55,2.05,1.04))
123
weld(Torso,p,-1,-1.25,0,-22,0,0)
124
p = part("Coat4",m,"Black","Sand",0,0,Vector3.new(2.1,1.05,0.54))
125
weld(Torso,p,0,-1,0.24,0,0,0)
126
p = part("Coat5",m,"Black","Sand",0,0,Vector3.new(0.925,0.75,0.54))
127
mesh("Wedge",p,"","",Vector3.new(1,1,1))
128
weld(Torso,p,0.3,-0.75,-0.05,90,0,-90)
129
p = part("Coat6",m,"Black","Sand",0,0,Vector3.new(0.925,0.75,0.54))
130
mesh("Wedge",p,"","",Vector3.new(1,1,1))
131
weld(Torso,p,-0.3,-0.75,-0.05,-90,0,-90)
132
p = part("Coat7",m,"Black","Sand",0,0,Vector3.new(0.975,0.5,0.75))
133
mesh("Wedge",p,"","",Vector3.new(1,1,1))
134
weld(Torso,p,-1.4,-2.45,0,90,0,-90)
135
p = part("Coat8",m,"Black","Sand",0,0,Vector3.new(0.975,0.5,0.75))
136
mesh("Wedge",p,"","",Vector3.new(1,1,1))
137
weld(Torso,p,1.4,-2.45,0,-90,0,-90)
138
p = part("Coat9",m,"Black","Sand",0,0,Vector3.new(1.05,0.5,0.525))
139
weld(RightLeg,p,0,0.75,0.25,0,0,0)
140
p = part("Coat10",m,"Black","Sand",0,0,Vector3.new(1.05,0.5,0.525))
141
weld(LeftLeg,p,0,0.75,0.25,0,0,0)
142
143
p = part("Sleeves1",m,"Black","Granite",0,0,Vector3.new(1.1,0.5,1.1))
144
weld(LeftArm,p,0,0.875,0,0,0,0)
145
p = part("Sleeves2",m,"Black","Sand",0,0,Vector3.new(1.05,1.5,1.05))
146
weld(LeftArm,p,0,0.25,0,0,0,0)
147
p = part("Sleeves3",m,"Really red","Neon",0,0,Vector3.new(0.25,0.5,0.5))
148
mesh("Cylinder",p,"","",Vector3.new(1,1,1))
149
weld(LeftArm,p,-0.41,0.15,0,0,0,0)
150
p = part("Sleeves4",m,"Really red","Neon",0,0,Vector3.new(0.25,0.075,0.075))
151
mesh("Cylinder",p,"","",Vector3.new(1,1,1))
152
weld(LeftArm,p,-0.44,0.15,0,0,0,0)
153
p = part("Sleeves5",m,"Black","Sand",0,0,Vector3.new(0.25,0.375,0.375))
154
mesh("Cylinder",p,"","",Vector3.new(1,1,1))
155
weld(LeftArm,p,-0.43,0.15,0,0,0,0)
156
p = part("Sleeves6",m,"Black","Sand",0,0,Vector3.new(0.25,0.75,0.075))
157
weld(LeftArm,p,-0.42,0.2,0.0375,0,0,-45)
158
p = part("Sleeves7",m,"Black","Sand",0,0,Vector3.new(0.25,0.75,0.075))
159
weld(LeftArm,p,-0.42,0.1,-0.0375,0,0,-45)
160
p = part("Sleeves8",m,"Black","Granite",0,0,Vector3.new(1.1,0.25,1.1))
161
weld(LeftArm,p,0,-0.4,0,0,0,0)
162
p = part("Sleeves9",m,"Black","Granite",0,0,Vector3.new(1.1,0.5,1.1))
163
weld(RightArm,p,0,0.875,0,0,0,0)
164
165
166
function weld(p0,p1,c0,c1,par) 
167
local w = Instance.new("Weld",p0 or par) 
168
w.Part0 = p0 
169
w.Part1 = p1 
170
w.C0 = c0 or CFrame.new()
171
w.C1 = c1 or CFrame.new() 
172
return w 
173
end 
174
local motors = {} 
175
function motor(p0,p1,c0,c1,des,vel,par) 
176
local w = Instance.new("Motor6D",p0 or par) 
177
w.Part0 = p0 
178
w.Part1 = p1 
179
w.C0 = c0 or CFrame.new() 
180
w.C1 = c1 or CFrame.new()
181
w.MaxVelocity = tonumber(vel) or .05 
182
w.DesiredAngle = tonumber(des) or 0 
183
return w 
184
end 
185
186
function lerp(a,b,c) 
187
return a+(b-a)*c 
188
end 
189
190
function ctlerp(c1,c2,al) 
191
local com1 = {c1:components()} 
192
local com2 = {c2:components()} 
193
for i,v in pairs(com1) do 
194
com1[i] = lerp(v,com2[i],al) 
195
end 
196
return CFrame.new(unpack(com1)) 
197
end 
198
199
do 
200
local function QuaternionFromCFrame(cf) 
201
local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components() 
202
local trace = m00 + m11 + m22 
203
if trace > 0 then 
204
local s = math.sqrt(1 + trace) 
205
local recip = 0.5/s 
206
return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5 
207
else local i = 0 if m11 > m00 then i = 1 end if m22 > (i == 0 and m00 or m11) then i = 2 end if i == 0 then local s = math.sqrt(m00-m11-m22+1) local recip = 0.5/s return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip elseif i == 1 then local s = math.sqrt(m11-m22-m00+1) local recip = 0.5/s return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip elseif i == 2 then local s = math.sqrt(m22-m00-m11+1) local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip end end end local function QuaternionToCFrame(px, py, pz, x, y, z, w) local xs, ys, zs = x + x, y + y, z + z local wx, wy, wz = w*xs, w*ys, w*zs local xx = x*xs local xy = x*ys local xz = x*zs local yy = y*ys local yz = y*zs local zz = z*zs return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy)) end local function QuaternionSlerp(a, b, t) local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4] local startInterp, finishInterp; if cosTheta >= 0.0001 then if (1 - cosTheta) > 0.0001 then local theta = math.acos(cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((1-t)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta else startInterp = 1-t finishInterp = t end else if (1+cosTheta) > 0.0001 then local theta = math.acos(-cosTheta) local invSinTheta = 1/math.sin(theta) startInterp = math.sin((t-1)*theta)*invSinTheta finishInterp = math.sin(t*theta)*invSinTheta else startInterp = t-1 finishInterp = t end end return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp end function clerp(a,b,t) local qa = {QuaternionFromCFrame(a)} local qb = {QuaternionFromCFrame(b)} local ax, ay, az = a.x, a.y, a.z local bx, by, bz = b.x, b.y, b.z local _t = 1-t return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t)) end end 
208
function tickwave(time,length,offset) return (math.abs((tick()+(offset or 0))%time-time/2)*2-time/2)/time/2*length end function invcol(c) c = c.Color return BrickColor.new(Color3.new(1-c.b,1-c.g,1-c.r)) end local oc = oc or function(...) return ... end local plr = game.Players.LocalPlayer local char = plr.Character local tor = char.Torso local hum = char.Humanoid local vel = Vector3.new() local cf = CFrame.new() local flspd = 0 local keysdown = {} local keypressed = {} local ktime = {} local descendtimer = 0 local possiblefly = 0 local cam = workspace.CurrentCamera local flying = false local moving = false hum.PlatformStand = false local winghats = {"Wings","Angel","EmpyreanreignmentII"} for _,o in pairs(char:GetChildren()) do for i,v in pairs(winghats) do if o.Name:lower() == v:lower() then o:Destroy() end end end local mod = Instance.new("Model",char) mod.Name = "Wings" local topcolor = BrickColor.new("Really black") local feacolor = topcolor local ptrans = 0 local pref = 0 local fire = false local fmcol = Color3.new() local fscol = Color3.new() local part = Instance.new("Part") part.Locked = true part.FormFactor = "Custom" part.Size = Vector3.new(.2,.2,.2) part.TopSurface,part.BottomSurface = 0,0 part.CanCollide = false part.BrickColor = topcolor part.Transparency = ptrans part.Reflectance = pref local ef = Instance.new("Fire",fire and part or nil) ef.Size = .15 ef.Color = fmcol or Color3.new() ef.SecondaryColor = fscol or Color3.new() part:BreakJoints() function newpart() local clone = part:Clone() clone.Parent = mod clone:BreakJoints() return clone end local feath = newpart() feath.BrickColor = feacolor Instance.new("SpecialMesh",feath).MeshType = "Sphere" function newfeather() local clone = feath:Clone() clone.Parent = mod clone:BreakJoints() return clone end local r1 = newpart() r1.Size = Vector3.new(.3,1.5,.3)*1.2 local rm1 = motor(tor,r1,CFrame.new(.35,.6,.4) * CFrame.Angles(0,0,math.rad(-60)) * CFrame.Angles(math.rad(30),math.rad(-25),0),CFrame.new(0,-.8,0),.1) 
209
local r2 = newpart() r2.Size = Vector3.new(.4,1.8,.4)*1.2 local rm2 = motor(r1,r2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(-30),math.rad(15),0),CFrame.new(0,-.9,0),.1) local r3 = newpart() r3.Size = Vector3.new(.3,2.2,.3)*1.2 local rm3 = motor(r2,r3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-1.1,0),.1) local r4 = newpart() r4.Size = Vector3.new(.25,1.2,.25)*1.2 local rm4 = motor(r3,r4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(-3),0,0),CFrame.new(0,-.6,0),.1) local feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,3,.3) weld(r4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,2.3,.3) weld(r4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.35,2.2,.25) weld(r4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0)) local rf3 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2,.35) table.insert(rf3,motor(r3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0))) end local rf2 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2-i*.08,.3) table.insert(rf2,motor(r2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0))) end local rf1 = {} for i=0,6 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.37,1.65-i*.06,.25) 
210
table.insert(rf1,motor(r1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0))) end local l1 = newpart() l1.Size = Vector3.new(.3,1.5,.3)*1.2 local lm1 = motor(tor,l1,CFrame.new(-.35,.6,.4) * CFrame.Angles(0,0,math.rad(60)) * CFrame.Angles(math.rad(30),math.rad(25),0) * CFrame.Angles(0,-math.pi,0),CFrame.new(0,-.8,0) ,.1) local l2 = newpart() l2.Size = Vector3.new(.4,1.8,.4)*1.2 local lm2 = motor(l1,l2,CFrame.new(0,.75,0) * CFrame.Angles(0,0,math.rad(50)) * CFrame.Angles(math.rad(30),math.rad(-15),0),CFrame.new(0,-.9,0),.1) local l3 = newpart() l3.Size = Vector3.new(.3,2.2,.3)*1.2 local lm3 = motor(l2,l3,CFrame.new(.1,.9,0) * CFrame.Angles(0,0,math.rad(-140)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-1.1,0),.1) local l4 = newpart() l4.Size = Vector3.new(.25,1.2,.25)*1.2 local lm4 = motor(l3,l4,CFrame.new(0,1.1,0) * CFrame.Angles(0,0,math.rad(-10)) * CFrame.Angles(math.rad(3),0,0),CFrame.new(0,-.6,0),.1) local feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,3,.3) weld(l4,feather,CFrame.new(-.1,-.3,0),CFrame.new(0,-1.5,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.4,2.3,.3) weld(l4,feather,CFrame.new(.1,-.1,0) * CFrame.Angles(0,math.random()*.1,0),CFrame.new(0,-1.1,0)) feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.35,2.2,.25) weld(l4,feather,CFrame.new(.1,-.3,0) * CFrame.Angles(0,math.random()*.1,math.rad(-10)),CFrame.new(0,-1.1,0)) local lf3 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2,.35) table.insert(lf3,motor(l3,feather,CFrame.new(.05,1-i*.285,0) * CFrame.Angles(0,math.random()*.1,math.rad(-25-i*2)),CFrame.new(0,-feather.Size.Y/2,0))) end local lf2 = {} for i=0,7 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.45,2.2-i*.08,.3) 
211
table.insert(lf2,motor(l2,feather,CFrame.new(.05,.75-i*.26,0) * CFrame.Angles(0,math.random()*.1,math.rad(-75-i*4)),CFrame.new(0,-feather.Size.Y/2,0))) end local lf1 = {} for i=0,6 do feather = newfeather() feather.Mesh.Scale = Vector3.new(1,1,1) feather.Size = Vector3.new(.37,1.65-i*.06,.25) table.insert(lf1,motor(l1,feather,CFrame.new(.05,.63-i*.21,0) * CFrame.Angles(0,math.random()*.05,math.rad(-75)),CFrame.new(0,-feather.Size.Y/2,0))) end local rwing = {rm1,rm2,rm3,rm4} local lwing = {lm1,lm2,lm3,lm4} local oc0 = {} for i,v in pairs(rwing) do oc0[v] = v.C0 end for i,v in pairs(lwing) do oc0[v] = v.C0 end function gotResized() if lastsize then if tor.Size == lastsize then return end local scaleVec = tor.Size/lastsize for i,v in pairs(oc0) do oc0[i] = v-v.p+scaleVec*v.p end lastsize = tor.Size end lastsize = tor.Size end tor.Changed:connect(function(p) if p == "Size" then gotResized() end end) gotResized() local idle = {0,0.5,-.2,0; .05,.05,.1,.05; -.6,-1.5,.1,0;} local outlow = {-.7,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0} local outhigh = {.5,-.2,1.8,0; .3,.05,.1,.05; .2,0,0,0} local outnormal = {0,-.2,1.8,0; .05,.05,.1,.05; -.3,0,0,0} local veryhigh = {.9,-.3,1.9,0; .3,.05,.1,.05; .2,0,0,0} local flap1 = {-.3,.3,1.1,-.2; .3,.05,.1,.05; -.2,-.6,0,0} local divebomb = {0,.2,.4,-.7; .3,.05,.1,.05; 0,-.5,-.6,0} function setwings(tab,time) time = time or 10 for i=1,4 do rwing[i].DesiredAngle = tab[i] lwing[i].DesiredAngle = tab[i] rwing[i].MaxVelocity = math.abs(tab[i]-rwing[i].CurrentAngle)/time lwing[i].MaxVelocity = math.abs(tab[i]-lwing[i].CurrentAngle)/time local rcf = oc0[rwing[i]] * (tab[12+i] or CFrame.new()) local lcf = oc0[lwing[i]] * (tab[12+i] or CFrame.new()) end for i,v in pairs(rf1) do v.DesiredAngle = tab[9] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(lf1) do v.DesiredAngle = tab[9] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(rf2) do v.DesiredAngle = tab[10] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(lf2) do v.DesiredAngle = tab[10] 
212
v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(rf3) do v.DesiredAngle = tab[11] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end for i,v in pairs(lf3) do v.DesiredAngle = tab[11] v.MaxVelocity = math.abs(v.DesiredAngle-v.CurrentAngle)/time end end setwings(outhigh,1) for i,v in pairs(tor:GetChildren()) do if v.ClassName:lower():match("body") then v:Destroy() end end local ctor = tor:Clone() ctor:ClearAllChildren() ctor.Name = "cTorso" ctor.Transparency = 1 ctor.CanCollide = false ctor.FormFactor = "Custom" ctor.Size = Vector3.new(.2,.2,.2) ctor.Parent = mod weld(tor,ctor) local bg = Instance.new("BodyGyro",ctor) bg.maxTorque = Vector3.new() bg.P = 15000 bg.D = 1000 local bv = Instance.new("BodyVelocity",ctor) bv.maxForce = Vector3.new() bv.P = 15000 kd = plr:GetMouse().KeyDown:connect(oc(function(key) keysdown[key] = true keypressed[key] = true if key == "2" then descendtimer = tick() elseif key == " " and tick()-(ktime[key] or 0) < .5 then possiblefly = tick() elseif (key == "a" or key == "d") and ktime[key] and tick()-ktime[key] < .3 and math.abs(reqrotx) < .3 then reqrotx = key == "a" and math.pi*2 or -math.pi*2 end ktime[key] = tick() end)) ku = plr:GetMouse().KeyUp:connect(function(key) keysdown[key] = false if key == " " then descendtimer = tick() end end) function mid(a,b,c) return math.max(a,math.min(b,c or -a)) end function bn(a) return a and 1 or 0 end function gm(tar) local m = 0 for i,v in pairs(tar:GetChildren()) do if v:IsA("BasePart") then m = m + v:GetMass() end m = m + gm(v) end return m end reqrotx = 0 local grav = 196.2 local flyspeed = 80 local maxspeed = 150 local con con = game:GetService("RunService").Stepped:connect(oc(function() if not mod:IsDescendantOf(workspace) then pcall(function() kd:disconnect() end) pcall(function() ku:disconnect() end) bg:Destroy() bv:Destroy() con:disconnect() hum.PlatformStand = false return end 
213
local obvel = tor.CFrame:vectorToObjectSpace(tor.Velocity) local sspd, uspd,fspd = obvel.X,obvel.Y,obvel.Z if flying then local lfldir = fldir fldir = cam.CoordinateFrame:vectorToWorldSpace(Vector3.new(bn(keysdown.d)-bn(keysdown.a),0,bn(keysdown.s)-bn(keysdown.w))).unit local lmoving = moving moving = fldir.magnitude > .1 if lmoving and not moving then idledir = lfldir*Vector3.new(1,0,1) descendtimer = tick() end local dbomb = fldir.Y < -.6 or (moving and keysdown["0"]) if moving and keysdown["0"] and lmoving then fldir = (Vector3.new(lfldir.X,math.min(fldir.Y,lfldir.Y+.01)-.1,lfldir.Z)+(fldir*Vector3.new(1,0,1))*.05).unit end local down = tor.CFrame:vectorToWorldSpace(Vector3.new(0,-1,0)) local descending = (not moving and keysdown["2"] and not keysdown[" "]) cf = ctlerp(cf,CFrame.new(tor.Position,tor.Position+(not moving and idledir or fldir)),keysdown["0"] and .02 or .07) local gdown = not dbomb and cf.lookVector.Y < -.2 and tor.Velocity.unit.Y < .05 hum.PlatformStand = true bg.maxTorque = Vector3.new(1,1,1)*9e5 local rotvel = CFrame.new(Vector3.new(),tor.Velocity):toObjectSpace(CFrame.new(Vector3.new(),fldir)).lookVector bg.cframe = cf * CFrame.Angles(not moving and -.1 or -math.pi/2+.2,moving and mid(-2.5,rotvel.X/1.5) + reqrotx or 0,0) reqrotx = reqrotx - reqrotx/10 bv.maxForce = Vector3.new(1,1,1)*9e4*.5 local anioff =(bn(keysdown[" "])-bn(keysdown["2"]))/2 local ani = tickwave(1.5-anioff,1) bv.velocity = bv.velocity:Lerp(Vector3.new(0,bn(not moving)*-ani*15+(descending and math.min(20,tick()-descendtimer)*-8 or bn(keysdown[" "])-bn(keysdown["2"]))*15,0)+vel,.6) vel = moving and cf.lookVector*flspd or Vector3.new() acceleration = moving and (fldir.Y < 0 and (acceleration or 0) + -fldir.Y*grav/60) or lerp((acceleration or 0),0,.02) or 0 flspd = lerp(flspd,moving and math.min(maxspeed,flyspeed + acceleration) or 0,.1) setwings(moving and (gdown and outlow or dbomb and divebomb) or (descending and veryhigh or flap1),15) for i=1,4 do 
214
rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-.5+bn(i==3)*.4+bn(i==4)*.5,.1+bn(i==2)*.5-bn(i==3)*1.1,bn(i==3)*.1) or descending and CFrame.Angles(.3,0,0) or CFrame.Angles((i*.1+1.5)*ani,ani*-.5,1*ani)),descending and .8 or .2) lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * (gdown and CFrame.new() or dbomb and CFrame.Angles(-(-.5+bn(i==3)*.4+bn(i==4)*.5),-(.1+bn(i==2)*.5-bn(i==3)*1.1),bn(i==3)*.1) or descending and CFrame.Angles(-.3,0,0) or CFrame.Angles(-(i*.1+1.5)*ani,ani*.5,1*ani)),descending and .8 or .2) end if down.Y < -.85 then local ignlist = {char} local hit,ray repeat hit,ray = workspace:FindPartOnRayWithIgnoreList(Ray.new(tor.Position,Vector3.new(0,-3.5+math.min(0,bv.velocity.y)/30,0)),ignlist) if hit then if hit.CanCollide then break else table.insert(ignlist,hit) end else break end until false if hit then flying = false hum.PlatformStand = false tor.Velocity = Vector3.new() end end else bg.maxTorque = Vector3.new() bv.maxForce = Vector3.new() local ani = tickwave(walking and .8 or 4.5,1) setwings(keysdown["2"] and outnormal or idle,15) local x,y,z = fspd/160,uspd/700,sspd/900 for i=1,4 do rwing[i].C0 = clerp(rwing[i].C0,oc0[rwing[i]] * CFrame.Angles(ani*.1 + -mid(-.1,x),0 + -mid(-.1,y) + bn(i==2)*.6,ani*.02 + -mid(-.1,z)) * CFrame.Angles(0,bn(i==2)*-.1,0),.2) lwing[i].C0 = clerp(lwing[i].C0,oc0[lwing[i]] * CFrame.Angles(ani*-.05 + mid(-.1,x),0 + mid(-.1,y) + -bn(i==2)*.6,ani*.02 + mid(-.1,z)) * CFrame.Angles(0,bn(i==2)*-.1,0),.2) end if keypressed[" "] and not flying and (tick()-possiblefly < .5) then vel = Vector3.new(0,50,0) bv.velocity = vel idledir = cam.CoordinateFrame.lookVector*Vector3.new(1,0,1) cf = tor.CFrame * CFrame.Angles(-.01,0,0) tor.CFrame = cf bg.cframe = cf flystart = tick() flying = true end end keypressed = {} end))
215
216
217
218
wait(1) --For running in rbx studio
219
mee = game.Players.LocalPlayer
220
pistol = Instance.new("Tool", mee.Backpack)
221
pistol.GripForward = Vector3.new(-0.149, 0.984, -0.099)
222
pistol.GripPos = Vector3.new(0.1, -0.55, -0.2)
223
pistol.GripRight = Vector3.new(0.989, 0.148, -0.015)
224
pistol.GripUp = Vector3.new(0, 0.1, 0.995)
225
pistol.ToolTip = "Umm... where did you get that?"
226
pistol.Name = "Pistol"
227
pistolpart = Instance.new("Part", pistol)
228
pistolpart.Name = "Handle"
229
pistolpart.BrickColor = BrickColor.new("Black")
230
pistolpart.Material = "SmoothPlastic"
231
pistolpart.Orientation = Vector3.new(-88.99, 152.78, 135.7)
232
pistolpart.Size = Vector3.new(0.2, 1.12, 0.6)
233
pistolmesh = Instance.new("SpecialMesh", pistolpart)
234
pistolmesh.MeshId = "rbxassetid://430060386"
235
pistolmesh.Scale = Vector3.new(1.7, 1.7, 1.7)
236
pistolmesh.TextureId = "rbxassetid://430060404"
237
pistolmesh.VertexColor = Vector3.new(2, 2, 2)
238
gunshotsound = Instance.new("Sound", pistolpart)
239
gunshotsound.SoundId = "rbxassetid://213603013"
240
mouserotatecharacter = true
241
242
243
pistol.Equipped:connect(function(mouse)
244
mouserotatecharacter = true
245
local torso = mee.Character.HumanoidRootPart 
246
local mouseturning = mee:GetMouse()
247
mee.Character.Humanoid.AutoRotate = false
248
mouseturning.Move:connect(function()
249
if mouserotatecharacter == true then
250
  torso.CFrame = CFrame.new(torso.Position, mouseturning.Hit.p*Vector3.new(1,0,1) + torso.Position*Vector3.new(0, 1, 0))
251
252
end
253
end)
254
mouse.Button1Down:connect(function()
255
gunshotsound:Play()
256
MakeShell()
257
local ray = Ray.new(pistol.Handle.CFrame.p, (mouse.Hit.p - pistol.Handle.CFrame.p).unit * 300)
258
local part, position = workspace:FindPartOnRay(ray, mee.Character, false, true)
259
260
local beam = Instance.new("Part", workspace)
261
beam.BrickColor = BrickColor.new("White")
262
beam.FormFactor = "Custom"
263
beam.Material = "Neon"
264
beam.Transparency = 0.7
265
beam.Anchored = true
266
beam.Locked = true
267
beam.CanCollide = false
268
269
local distance = (pistol.Handle.CFrame.p - position).magnitude
270
beam.Size = Vector3.new(0.3, 0.3, distance)
271
beam.CFrame = CFrame.new(pistol.Handle.CFrame.p, position) * CFrame.new(0, 0, -distance / 2)
272
273
game:GetService("Debris"):AddItem(beam, 0.1)
274
275
if part then
276
local humanoid = part.Parent:FindFirstChild("Humanoid")
277
278
if not humanoid then
279
humanoid = part.Parent.Parent:FindFirstChild("Humanoid")
280
end
281
282
if humanoid then
283
plrmodel = humanoid.Parent
284
if plrmodel.Humanoid.Health ~= 0 then
285
--blood
286
plrmodel.Archivable = true
287
local Char = plrmodel
288
local Hum = Char:FindFirstChild("Humanoid")
289
local Tor = Char:FindFirstChild("Torso") or Char:FindFirstChild("UpperTorso")
290
local Health = Hum.Health
291
292
local M = math.random
293
local R = math.rad
294
local rates = {.05, .075, .1, .15}
295
296
local smooth = function(P)
297
local SM = Enum.SurfaceType.SmoothNoOutlines
298
P.TopSurface = SM
299
P.BottomSurface = SM
300
P.RightSurface = SM
301
P.LeftSurface = SM
302
P.FrontSurface = SM
303
P.BackSurface = SM 
304
end
305
306
local function BloodPool(Part,Size)
307
local Pool = Instance.new("Part",game.Workspace)
308
Pool.TopSurface = 0
309
Pool.CanCollide = false
310
Pool.BrickColor = BrickColor.new("Crimson")
311
Pool.Transparency = 0
312
Instance.new("CylinderMesh",Pool)
313
Pool.Anchored = true
314
Pool.Name = "BloodPoolPart"
315
smooth(Pool)
316
Pool.FormFactor = Enum.FormFactor.Custom
317
Pool.Size = Size
318
local c = Part.CFrame*CFrame.new(M(-3.01,3.01),-2.9,M(-3.01,3.01)) 
319
coroutine.resume(coroutine.create(function()
320
local rate = rates[M(1,#rates)]
321
game.Debris:AddItem(Pool,15)
322
for i = 1,M(25,70) do
323
wait()
324
Pool.CFrame = c
325
Pool.Size = Pool.Size+Vector3.new(rate,0,rate)
326
end 
327
wait(5)
328
Pool:Destroy()
329
end)) 
330
end
331
332
local function BloodDrops(Size,Area)
333
local Blood = Instance.new("Part",game.Workspace)
334
Blood.BrickColor = BrickColor.new("Crimson")
335
Blood.Parent = plrmodel
336
Blood.TopSurface = 0
337
Blood.CanCollide = false
338
Blood.Anchored = false
339
Blood.FormFactor = Enum.FormFactor.Custom
340
Blood.Size = Size
341
Blood.CFrame = Area*CFrame.new(M(-1.00,1.00),M(-1.00,1.00),M(-1.00,1.00)) 
342
return Blood
343
end
344
345
346
347
Hum.Changed:connect(function()
348
if Hum.Health < Health then
349
350
Health = Hum.Health 
351
for i = 1, math.random(4,10)do
352
local Size = Vector3.new(M(-0.25,0.25),.2,M(-.25,.25))
353
local Blood = BloodDrops(Size,Tor.CFrame) 
354
local Stopper = false
355
local Size2 = Vector3.new(M(-0.25,0.25),.2,M(-.25,.25))
356
BloodPool(Tor,Size2) 
357
end 
358
end
359
end)
360
end
361
--Ragdoll
362
wait()
363
function getAttachment0(attachmentName)
364
for _,child in next,plrmodel:GetChildren() do
365
local attachment = child:FindFirstChild(attachmentName)
366
if attachment then
367
return attachment
368
end
369
end
370
end
371
plrmodel.Humanoid.Died:Connect(function(var)
372
local removeHRP = true
373
local head = plrmodel["Head"]
374
local leftarm = plrmodel["Left Arm"]
375
local leftleg = plrmodel["Left Leg"]
376
local rightleg = plrmodel["Right Leg"]
377
local rightarm = plrmodel["Right Arm"]
378
local torso = plrmodel.Torso
379
local root = plrmodel.HumanoidRootPart
380
if removeHRP == true then
381
root:Destroy()
382
end
383
local rootA =Instance.new("Attachment")
384
local HeadA = Instance.new("Attachment")
385
local LeftArmA = Instance.new("Attachment")
386
local LeftLegA = Instance.new("Attachment")
387
local RightArmA = Instance.new("Attachment")
388
local RightLegA = Instance.new("Attachment")
389
local TorsoA = Instance.new("Attachment")
390
local TorsoA1 = Instance.new("Attachment")
391
local TorsoA2 = Instance.new("Attachment")
392
local TorsoA3 = Instance.new("Attachment")
393
local TorsoA4 = Instance.new("Attachment")
394
local TorsoA5 = Instance.new("Attachment")
395
local function set1()
396
HeadA.Name = "HeadA"
397
HeadA.Parent = head
398
HeadA.Position = Vector3.new(0, -0.5, 0)
399
HeadA.Rotation = Vector3.new(0, 0, 0)
400
HeadA.Axis = Vector3.new(1, 0, 0)
401
HeadA.SecondaryAxis = Vector3.new(0, 1, 0)
402
LeftArmA.Name = "LeftArmA"
403
LeftArmA.Parent = leftarm
404
LeftArmA.Position = Vector3.new(0.5, 1, 0)
405
LeftArmA.Rotation = Vector3.new(0, 0, 0)
406
LeftArmA.Axis = Vector3.new(1, 0, 0)
407
LeftArmA.SecondaryAxis = Vector3.new(0, 1, 0)
408
LeftLegA.Name = "LeftLegA"
409
LeftLegA.Parent = leftleg
410
LeftLegA.Position = Vector3.new(0, 1, 0)
411
LeftLegA.Rotation = Vector3.new(0, 0, 0)
412
LeftLegA.Axis = Vector3.new(1, 0, 0)
413
LeftLegA.SecondaryAxis = Vector3.new(0, 1, 0)
414
RightArmA.Name = "RightArmA"
415
RightArmA.Parent = rightarm
416
RightArmA.Position = Vector3.new(-0.5, 1, 0)
417
RightArmA.Rotation = Vector3.new(0, 0, 0)
418
RightArmA.Axis = Vector3.new(1, 0, 0)
419
RightArmA.SecondaryAxis = Vector3.new(0, 1, 0)
420
RightLegA.Name = "RightLegA"
421
RightLegA.Parent = rightleg
422
RightLegA.Position = Vector3.new(0, 1, 0)
423
RightLegA.Rotation = Vector3.new(0, 0, 0)
424
RightLegA.Axis = Vector3.new(1, 0, 0)
425
RightLegA.SecondaryAxis = Vector3.new(0, 1, 0)
426
rootA.Name= "rootA"
427
rootA.Parent = root
428
rootA.Position = Vector3.new(0, 0, 0)
429
rootA.Rotation = Vector3.new(0, 90, 0)
430
rootA.Axis = Vector3.new(0, 0, -1)
431
rootA.SecondaryAxis = Vector3.new(0, 1, 0)
432
end
433
local function set2()
434
TorsoA.Name = "TorsoA"
435
TorsoA.Parent = torso
436
TorsoA.Position = Vector3.new(0.5, -1, 0)
437
TorsoA.Rotation = Vector3.new(0, 0, 0)
438
TorsoA.Axis = Vector3.new(1, 0, 0)
439
TorsoA.SecondaryAxis = Vector3.new(0, 1, 0)
440
TorsoA1.Name = "TorsoA1"
441
TorsoA1.Parent = torso
442
TorsoA1.Position = Vector3.new(-0.5, -1, 0)
443
TorsoA1.Rotation = Vector3.new(0, 0, 0)
444
TorsoA1.Axis = Vector3.new(1, 0, 0)
445
TorsoA1.SecondaryAxis = Vector3.new(0, 1, 0)
446
TorsoA2.Name = "TorsoA2"
447
TorsoA2.Parent = torso
448
TorsoA2.Position = Vector3.new(-1, 1, 0)
449
TorsoA2.Rotation = Vector3.new(0, 0, 0)
450
TorsoA2.Axis = Vector3.new(1, 0, 0)
451
TorsoA2.SecondaryAxis = Vector3.new(0, 1, 0)
452
TorsoA3.Name = "TorsoA3"
453
TorsoA3.Parent = torso
454
TorsoA3.Position = Vector3.new(1, 1, 0)
455
TorsoA3.Rotation = Vector3.new(0, 0, 0)
456
TorsoA3.Axis = Vector3.new(1, 0, 0)
457
TorsoA3.SecondaryAxis = Vector3.new(0, 1, 0)
458
TorsoA4.Name = "TorsoA4"
459
TorsoA4.Parent = torso
460
TorsoA4.Position = Vector3.new(0, 1, 0)
461
TorsoA4.Rotation = Vector3.new(0, 0, 0)
462
TorsoA4.Axis = Vector3.new(1, 0, 0)
463
TorsoA4.SecondaryAxis = Vector3.new(0, 1, 0)
464
TorsoA5.Name = "TorsoA5"
465
TorsoA5.Parent = torso
466
TorsoA5.Position = Vector3.new(0, 0, 0)
467
TorsoA5.Rotation = Vector3.new(0, 90, 0)
468
TorsoA5.Axis = Vector3.new(0, 0, -1)
469
TorsoA5.SecondaryAxis = Vector3.new(0, 1, 0)
470
end
471
local function set3()
472
end
473
spawn(set1);
474
spawn(set2);
475
local HA = Instance.new("HingeConstraint")
476
HA.Parent = head
477
HA.Attachment0 = HeadA
478
HA.Attachment1 = TorsoA4
479
HA.Enabled = true
480
HA.LimitsEnabled=true
481
HA.LowerAngle=0
482
HA.UpperAngle=0
483
local LAT = Instance.new("BallSocketConstraint")
484
LAT.Parent = leftarm
485
LAT.Attachment0 = LeftArmA
486
LAT.Attachment1 = TorsoA2
487
LAT.Enabled = true
488
LAT.LimitsEnabled=true
489
LAT.UpperAngle=90
490
local RAT = Instance.new("BallSocketConstraint")
491
RAT.Parent = rightarm
492
RAT.Attachment0 = RightArmA
493
RAT.Attachment1 = TorsoA3
494
RAT.Enabled = true
495
RAT.LimitsEnabled=true
496
RAT.UpperAngle=90
497
local HA = Instance.new("BallSocketConstraint")
498
HA.Parent = head
499
HA.Attachment0 = HeadA
500
HA.Attachment1 = TorsoA4
501
HA.Enabled = true
502
local TLL = Instance.new("BallSocketConstraint")
503
TLL.Parent = torso
504
TLL.Attachment0 = TorsoA1
505
TLL.Attachment1 = LeftLegA
506
TLL.Enabled = true
507
TLL.LimitsEnabled=true
508
TLL.UpperAngle=90
509
local TRL = Instance.new("BallSocketConstraint")
510
TRL.Parent = torso
511
TRL.Attachment0 = TorsoA
512
TRL.Attachment1 = RightLegA
513
TRL.Enabled = true
514
TRL.LimitsEnabled=true
515
TRL.UpperAngle=90
516
local RTA = Instance.new("BallSocketConstraint")
517
RTA.Parent = root
518
RTA.Attachment0 = rootA
519
RTA.Attachment1 = TorsoA5
520
RTA.Enabled = true
521
RTA.LimitsEnabled=true
522
RTA.UpperAngle=0
523
head.Velocity = head.CFrame.lookVector*30
524
525
for _,child in next,plrmodel:GetChildren() do
526
if child:IsA("Accoutrement") then
527
for _,part in next,child:GetChildren() do
528
if part:IsA("BasePart") then
529
part.Parent = plrmodel
530
child:remove()
531
local attachment1 = part:FindFirstChildOfClass("Attachment")
532
local attachment0 = getAttachment0(attachment1.Name)
533
if attachment0 and attachment1 then
534
local constraint = Instance.new("HingeConstraint")
535
constraint.Attachment0 = attachment0
536
constraint.Attachment1 = attachment1
537
constraint.LimitsEnabled = true
538
constraint.UpperAngle = 0
539
constraint.LowerAngle = 0
540
constraint.Parent = plrmodel
541
end
542
end
543
end
544
end
545
end
546
end)
547
548
end
549
if humanoid.Health ~= 0 then
550
humanoid.Health = 0
551
wait(3)
552
while true do
553
if humanoid.Health ~= 0 then
554
humanoid.Health = 0 --This loop is a strange kill system I know, but this prevents doing 99 damage instead of 100 for some reason.s
555
else
556
break
557
end
558
wait(0.3)
559
end
560
end
561
end
562
end)
563
end)
564
565
pistol.Unequipped:connect(function()
566
wait(0.2)
567
mouserotatecharacter = false
568
  mee.Character.Humanoid.AutoRotate = true
569
end)
570
function MakeShell()
571
Shell = Instance.new("Part", workspace)
572
Shell.Size = Vector3.new(0.2, 0.2, 0.6)
573
ShellMesh = Instance.new("SpecialMesh", Shell)
574
ShellMesh.MeshId = "http://www.roblox.com/asset/?id=94295100"
575
ShellMesh.Scale = Vector3.new(4, 4, 4)
576
ShellMesh.TextureId = "http://www.roblox.com/asset/?id=94287792"
577
Shell.Position = pistolpart.Position
578
end
579
580
--//====================================================\\--
581
--||			   CREATED BY SHACKLUSTER
582
--\\====================================================//--
583
584
585
586
wait(0.2)
587
588
589
590
Player = game:GetService("Players").LocalPlayer
591
PlayerGui = Player.PlayerGui
592
Cam = workspace.CurrentCamera
593
Backpack = Player.Backpack
594
Character = Player.Character
595
Humanoid = Character.Humanoid
596
Mouse = Player:GetMouse()
597
RootPart = Character["HumanoidRootPart"]
598
Torso = Character["Torso"]
599
Head = Character["Head"]
600
RightArm = Character["Right Arm"]
601
LeftArm = Character["Left Arm"]
602
RightLeg = Character["Right Leg"]
603
LeftLeg = Character["Left Leg"]
604
RootJoint = RootPart["RootJoint"]
605
Neck = Torso["Neck"]
606
RightShoulder = Torso["Right Shoulder"]
607
LeftShoulder = Torso["Left Shoulder"]
608
RightHip = Torso["Right Hip"]
609
LeftHip = Torso["Left Hip"]
610
611
IT = Instance.new
612
CF = CFrame.new
613
VT = Vector3.new
614
RAD = math.rad
615
C3 = Color3.new
616
UD2 = UDim2.new
617
BRICKC = BrickColor.new
618
ANGLES = CFrame.Angles
619
EULER = CFrame.fromEulerAnglesXYZ
620
COS = math.cos
621
ACOS = math.acos
622
SIN = math.sin
623
ASIN = math.asin
624
ABS = math.abs
625
MRANDOM = math.random
626
FLOOR = math.floor
627
628
function CreateMesh(MESH, PARENT, MESHTYPE, MESHID, TEXTUREID, SCALE, OFFSET)
629
	local NEWMESH = IT(MESH)
630
	if MESH == "SpecialMesh" then
631
		NEWMESH.MeshType = MESHTYPE
632
		if MESHID ~= "nil" and MESHID ~= "" then
633
			NEWMESH.MeshId = "http://www.roblox.com/asset/?id="..MESHID
634
		end
635
		if TEXTUREID ~= "nil" and TEXTUREID ~= "" then
636
			NEWMESH.TextureId = "http://www.roblox.com/asset/?id="..TEXTUREID
637
		end
638
	end
639
	NEWMESH.Offset = OFFSET or VT(0, 0, 0)
640
	NEWMESH.Scale = SCALE
641
	NEWMESH.Parent = PARENT
642
	return NEWMESH
643
end
644
645
function CreatePart(FORMFACTOR, PARENT, MATERIAL, REFLECTANCE, TRANSPARENCY, BRICKCOLOR, NAME, SIZE, ANCHOR)
646
	local NEWPART = IT("Part")
647
	NEWPART.formFactor = FORMFACTOR
648
	NEWPART.Reflectance = REFLECTANCE
649
	NEWPART.Transparency = TRANSPARENCY
650
	NEWPART.CanCollide = false
651
	NEWPART.Locked = true
652
	NEWPART.Anchored = true
653
	if ANCHOR == false then
654
		NEWPART.Anchored = false
655
	end
656
	NEWPART.BrickColor = BRICKC(tostring(BRICKCOLOR))
657
	NEWPART.Name = NAME
658
	NEWPART.Size = SIZE
659
	NEWPART.Position = Torso.Position
660
	NEWPART.Material = MATERIAL
661
	NEWPART:BreakJoints()
662
	NEWPART.Parent = PARENT
663
	return NEWPART
664
end
665
666
--//=================================\\
667
--||		  CUSTOMIZATION
668
--\\=================================//
669
670
Class_Name = "Immortal curse"
671
Weapon_Name = "Add-ons"
672
673
Custom_Colors = {
674
	Custom_Color_1 = BRICKC("Institutional white"); --1st color for the weapon.
675
	Custom_Color_2 = BRICKC("Institutional white"); --2nd color for the weapon.
676
677
	Custom_Color_3 = BRICKC("Institutional white"); --Color for the abilities.
678
	Custom_Color_4 = BRICKC("Institutional white"); --Color for the secondary bar.
679
	Custom_Color_5 = BRICKC("Institutional white"); --Color for the mana bar.
680
	Custom_Color_6 = BRICKC("Institutional white"); --Color for the health bar.
681
	Custom_Color_7 = BRICKC("Institutional white"); --Color for the stun bar.
682
683
	Custom_Color_8 = BRICKC("Institutional white"); --Background for the mana bar.
684
	Custom_Color_9 = BRICKC("Institutional white"); --Background for the secondary mana bar.
685
	Custom_Color_10 = BRICKC("Institutional white"); --Background for the stun bar.
686
	Custom_Color_11 = BRICKC("Institutional white"); --Background for the health bar.
687
	Custom_Color_12 = BRICKC("Institutional white"); --Background for the abilities.
688
}
689
690
691
Player_Size = 1 --Size of the player.
692
Animation_Speed = 3
693
Frame_Speed = 1 / 60 -- (1 / 30) OR (1 / 60)
694
695
local Speed = 16
696
local Effects2 = {}
697
698
--//=================================\\
699
--|| 	  END OF CUSTOMIZATION
700
--\\=================================//
701
702
	local function weldBetween(a, b)
703
	    local weldd = Instance.new("ManualWeld")
704
	    weldd.Part0 = a
705
	    weldd.Part1 = b
706
	    weldd.C0 = CFrame.new()
707
	    weldd.C1 = b.CFrame:inverse() * a.CFrame
708
	    weldd.Parent = a
709
	    return weldd
710
	end
711
712
function createaccessory(attachmentpart,mesh,texture,scale,offset,color)
713
local acs = Instance.new("Part")
714
acs.CanCollide = false
715
acs.Anchored = false
716
acs.Size = Vector3.new(0,0,0)
717
acs.CFrame = attachmentpart.CFrame
718
acs.Parent = Character
719
acs.BrickColor = color
720
    local meshs = Instance.new("SpecialMesh")
721
    meshs.MeshId = mesh
722
    meshs.TextureId = texture
723
    meshs.Parent = acs
724
    meshs.Scale = scale
725
    meshs.Offset = offset
726
weldBetween(attachmentpart,acs)
727
end
728
729
function createbodypart(TYPE,COLOR,PART,OFFSET,SIZE)
730
if TYPE == "Gem" then
731
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
732
	acs.Anchored = false
733
    acs.CanCollide = false
734
	acs.CFrame = PART.CFrame
735
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "9756362", "", SIZE, OFFSET)
736
weldBetween(PART,acs)
737
elseif TYPE == "Skull" then
738
	local acs = CreatePart(3, Character, "Plastic", 0, 0, COLOR, "Part", VT(0,0,0))
739
	acs.Anchored = false
740
    acs.CanCollide = false
741
	acs.CFrame = PART.CFrame
742
	local acs2 = CreateMesh("SpecialMesh", acs, "FileMesh", "4770583", "", SIZE, OFFSET)
743
weldBetween(PART,acs)
744
elseif TYPE == "Eye" then
745
	local acs = CreatePart(3, Character, "Neon", 0, 0, COLOR, "Part", VT(0,0,0))
746
	acs.Anchored = false
747
    acs.CanCollide = false
748
	acs.CFrame = PART.CFrame
749
	local acs2 = CreateMesh("SpecialMesh", acs, "Sphere", "", "", SIZE, OFFSET)
750
weldBetween(PART,acs)
751
end
752
end
753
754
--//=================================\\
755
--|| 	      USEFUL VALUES
756
--\\=================================//
757
758
local ROOTC0 = CF(0, 0, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
759
local NECKC0 = CF(0, 1, 0) * ANGLES(RAD(-90), RAD(0), RAD(180))
760
local RIGHTSHOULDERC0 = CF(-0.5, 0, 0) * ANGLES(RAD(0), RAD(90), RAD(0))
761
local LEFTSHOULDERC0 = CF(0.5, 0, 0) * ANGLES(RAD(0), RAD(-90), RAD(0))
762
local CHANGEDEFENSE = 0
763
local CHANGEDAMAGE = 0
764
local CHANGEMOVEMENT = 0
765
local ANIM = "Idle"
766
local ATTACK = false
767
local EQUIPPED = false
768
local HOLD = false
769
local COMBO = 1
770
local Rooted = false
771
local SINE = 0
772
local KEYHOLD = false
773
local CHANGE = 2 / Animation_Speed
774
local WALKINGANIM = false
775
local WALK = 0
776
local VALUE1 = false
777
local VALUE2 = false
778
local ROBLOXIDLEANIMATION = IT("Animation")
779
ROBLOXIDLEANIMATION.Name = "Roblox Idle Animation"
780
ROBLOXIDLEANIMATION.AnimationId = "http://www.roblox.com/asset/?id=180435571"
781
--ROBLOXIDLEANIMATION.Parent = Humanoid
782
local WEAPONGUI = IT("ScreenGui", PlayerGui)
783
WEAPONGUI.Name = "Weapon GUI"
784
local Weapon = IT("Model")
785
Weapon.Name = Weapon_Name
786
local Effects = IT("Folder", Weapon)
787
Effects.Name = "Effects"
788
local ANIMATOR = Humanoid.Animator
789
local ANIMATE = Character.Animate
790
local HITPLAYERSOUNDS = {--[["199149137", "199149186", "199149221", "199149235", "199149269", "199149297"--]]"263032172", "263032182", "263032200", "263032221", "263032252", "263033191"}
791
local HITARMORSOUNDS = {"199149321", "199149338", "199149367", "199149409", "199149452"}
792
local HITWEAPONSOUNDS = {"199148971", "199149025", "199149072", "199149109", "199149119"}
793
local HITBLOCKSOUNDS = {"199148933", "199148947"}
794
local UNANCHOR = true
795
796
local SKILLTEXTCOLOR = C3(0,0,0)
797
798
--//=================================\\
799
--\\=================================//
800
801
802
--//=================================\\
803
--|| SAZERENOS' ARTIFICIAL HEARTBEAT
804
--\\=================================//
805
806
ArtificialHB = Instance.new("BindableEvent", script)
807
ArtificialHB.Name = "ArtificialHB"
808
809
script:WaitForChild("ArtificialHB")
810
811
frame = Frame_Speed
812
tf = 0
813
allowframeloss = false
814
tossremainder = false
815
lastframe = tick()
816
script.ArtificialHB:Fire()
817
818
game:GetService("RunService").Heartbeat:connect(function(s, p)
819
	tf = tf + s
820
	if tf >= frame then
821
		if allowframeloss then
822
			script.ArtificialHB:Fire()
823
			lastframe = tick()
824
		else
825
			for i = 1, math.floor(tf / frame) do
826
				script.ArtificialHB:Fire()
827
			end
828
		lastframe = tick()
829
		end
830
		if tossremainder then
831
			tf = 0
832
		else
833
			tf = tf - frame * math.floor(tf / frame)
834
		end
835
	end
836
end)
837
838
--//=================================\\
839
--\\=================================//
840
841
842
843
844
845
--//=================================\\
846
--|| 	      SOME FUNCTIONS
847
--\\=================================//
848
849
function Raycast(POSITION, DIRECTION, RANGE, IGNOREDECENDANTS)
850
	return workspace:FindPartOnRay(Ray.new(POSITION, DIRECTION.unit * RANGE), IGNOREDECENDANTS)
851
end
852
853
function PositiveAngle(NUMBER)
854
	if NUMBER >= 0 then
855
		NUMBER = 0
856
	end
857
	return NUMBER
858
end
859
860
function NegativeAngle(NUMBER)
861
	if NUMBER <= 0 then
862
		NUMBER = 0
863
	end
864
	return NUMBER
865
end
866
867
function Swait(NUMBER)
868
	if NUMBER == 0 or NUMBER == nil then
869
		ArtificialHB.Event:wait()
870
	else
871
		for i = 1, NUMBER do
872
			ArtificialHB.Event:wait()
873
		end
874
	end
875
end
876
877
function QuaternionFromCFrame(cf)
878
	local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
879
	local trace = m00 + m11 + m22
880
	if trace > 0 then 
881
		local s = math.sqrt(1 + trace)
882
		local recip = 0.5 / s
883
		return (m21 - m12) * recip, (m02 - m20) * recip, (m10 - m01) * recip, s * 0.5
884
	else
885
		local i = 0
886
		if m11 > m00 then
887
			i = 1
888
		end
889
		if m22 > (i == 0 and m00 or m11) then
890
			i = 2
891
		end
892
		if i == 0 then
893
			local s = math.sqrt(m00 - m11 - m22 + 1)
894
			local recip = 0.5 / s
895
			return 0.5 * s, (m10 + m01) * recip, (m20 + m02) * recip, (m21 - m12) * recip
896
		elseif i == 1 then
897
			local s = math.sqrt(m11 - m22 - m00 + 1)
898
			local recip = 0.5 / s
899
			return (m01 + m10) * recip, 0.5 * s, (m21 + m12) * recip, (m02 - m20) * recip
900
		elseif i == 2 then
901
			local s = math.sqrt(m22 - m00 - m11 + 1)
902
			local recip = 0.5 / s return (m02 + m20) * recip, (m12 + m21) * recip, 0.5 * s, (m10 - m01) * recip
903
		end
904
	end
905
end
906
 
907
function QuaternionToCFrame(px, py, pz, x, y, z, w)
908
	local xs, ys, zs = x + x, y + y, z + z
909
	local wx, wy, wz = w * xs, w * ys, w * zs
910
	local xx = x * xs
911
	local xy = x * ys
912
	local xz = x * zs
913
	local yy = y * ys
914
	local yz = y * zs
915
	local zz = z * zs
916
	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))
917
end
918
 
919
function QuaternionSlerp(a, b, t)
920
	local cosTheta = a[1] * b[1] + a[2] * b[2] + a[3] * b[3] + a[4] * b[4]
921
	local startInterp, finishInterp;
922
	if cosTheta >= 0.0001 then
923
		if (1 - cosTheta) > 0.0001 then
924
			local theta = ACOS(cosTheta)
925
			local invSinTheta = 1 / SIN(theta)
926
			startInterp = SIN((1 - t) * theta) * invSinTheta
927
			finishInterp = SIN(t * theta) * invSinTheta
928
		else
929
			startInterp = 1 - t
930
			finishInterp = t
931
		end
932
	else
933
		if (1 + cosTheta) > 0.0001 then
934
			local theta = ACOS(-cosTheta)
935
			local invSinTheta = 1 / SIN(theta)
936
			startInterp = SIN((t - 1) * theta) * invSinTheta
937
			finishInterp = SIN(t * theta) * invSinTheta
938
		else
939
			startInterp = t - 1
940
			finishInterp = t
941
		end
942
	end
943
	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
944
end
945
946
function Clerp(a, b, t)
947
	local qa = {QuaternionFromCFrame(a)}
948
	local qb = {QuaternionFromCFrame(b)}
949
	local ax, ay, az = a.x, a.y, a.z
950
	local bx, by, bz = b.x, b.y, b.z
951
	local _t = 1 - t
952
	return QuaternionToCFrame(_t * ax + t * bx, _t * ay + t * by, _t * az + t * bz, QuaternionSlerp(qa, qb, t))
953
end
954
955
function CreateFrame(PARENT, TRANSPARENCY, BORDERSIZEPIXEL, POSITION, SIZE, COLOR, BORDERCOLOR, NAME)
956
	local frame = IT("Frame")
957
	frame.BackgroundTransparency = TRANSPARENCY
958
	frame.BorderSizePixel = BORDERSIZEPIXEL
959
	frame.Position = POSITION
960
	frame.Size = SIZE
961
	frame.BackgroundColor3 = COLOR
962
	frame.BorderColor3 = BORDERCOLOR
963
	frame.Name = NAME
964
	frame.Parent = PARENT
965
	return frame
966
end
967
968
function CreateLabel(PARENT, TEXT, TEXTCOLOR, TEXTFONTSIZE, TEXTFONT, TRANSPARENCY, BORDERSIZEPIXEL, STROKETRANSPARENCY, NAME)
969
	local label = IT("TextLabel")
970
	label.BackgroundTransparency = 1
971
	label.Size = UD2(1, 0, 1, 0)
972
	label.Position = UD2(0, 0, 0, 0)
973
	label.TextColor3 = TEXTCOLOR
974
	label.TextStrokeTransparency = STROKETRANSPARENCY
975
	label.TextTransparency = TRANSPARENCY
976
	label.FontSize = TEXTFONTSIZE
977
	label.Font = TEXTFONT
978
	label.BorderSizePixel = BORDERSIZEPIXEL
979
	label.TextScaled = false
980
	label.Text = TEXT
981
	label.Name = NAME
982
	label.Parent = PARENT
983
	return label
984
end
985
986
function NoOutlines(PART)
987
	PART.TopSurface, PART.BottomSurface, PART.LeftSurface, PART.RightSurface, PART.FrontSurface, PART.BackSurface = 10, 10, 10, 10, 10, 10
988
end
989
990
991
function CreateWeldOrSnapOrMotor(TYPE, PARENT, PART0, PART1, C0, C1)
992
	local NEWWELD = IT(TYPE)
993
	NEWWELD.Part0 = PART0
994
	NEWWELD.Part1 = PART1
995
	NEWWELD.C0 = C0
996
	NEWWELD.C1 = C1
997
	NEWWELD.Parent = PARENT
998
	return NEWWELD
999
end
1000
1001
function CreateSound(ID, PARENT, VOLUME, PITCH)
1002
	local NEWSOUND = nil
1003
	coroutine.resume(coroutine.create(function()
1004
		NEWSOUND = IT("Sound", PARENT)
1005
		NEWSOUND.Volume = VOLUME
1006
		NEWSOUND.Pitch = PITCH
1007
		NEWSOUND.SoundId = "http://www.roblox.com/asset/?id="..ID
1008
		Swait()
1009
		NEWSOUND:play()
1010
		game:GetService("Debris"):AddItem(NEWSOUND, 10)
1011
	end))
1012
	return NEWSOUND
1013
end
1014
1015
function CFrameFromTopBack(at, top, back)
1016
	local right = top:Cross(back)
1017
	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)
1018
end
1019
1020
function CreateWave(inair,size,doesrotate,rotatedirection,waitt,cframe,color)
1021
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
1022
	local mesh = IT("SpecialMesh",wave)
1023
	mesh.MeshType = "FileMesh"
1024
	mesh.MeshId = "http://www.roblox.com/asset/?id=20329976"
1025
	mesh.Scale = VT(size,size,size)
1026
	mesh.Offset = VT(0,0,-size/8)
1027
	wave.CFrame = cframe
1028
	coroutine.resume(coroutine.create(function(PART)
1029
		for i = 1, waitt do
1030
			Swait()
1031
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
1032
			mesh.Offset = VT(0,0,-(mesh.Scale.X/8))
1033
			if doesrotate == true then
1034
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
1035
			end
1036
			wave.Transparency = wave.Transparency + (0.5/waitt)
1037
			if wave.Transparency > 0.99 then
1038
				wave:remove()
1039
			end
1040
		end
1041
	end))
1042
end
1043
1044
function CreateSwirl(inair,size,doesrotate,rotatedirection,waitt,cframe,color)
1045
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
1046
	local mesh = IT("SpecialMesh",wave)
1047
	mesh.MeshType = "FileMesh"
1048
	mesh.MeshId = "http://www.roblox.com/asset/?id=1051557"
1049
	mesh.Scale = VT(size,size,size)
1050
	wave.CFrame = cframe
1051
	coroutine.resume(coroutine.create(function(PART)
1052
		for i = 1, waitt do
1053
			Swait()
1054
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
1055
			if doesrotate == true then
1056
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
1057
			end
1058
			wave.Transparency = wave.Transparency + (0.5/waitt)
1059
			if wave.Transparency > 0.99 then
1060
				wave:remove()
1061
			end
1062
		end
1063
	end))
1064
end
1065
1066
function MakeForm(PART,TYPE)
1067
	if TYPE == "Cyl" then
1068
		local MSH = IT("CylinderMesh",PART)
1069
	elseif TYPE == "Ball" then
1070
		local MSH = IT("SpecialMesh",PART)
1071
		MSH.MeshType = "Sphere"
1072
	elseif TYPE == "Wedge" then
1073
		local MSH = IT("SpecialMesh",PART)
1074
		MSH.MeshType = "Wedge"
1075
	end
1076
end
1077
1078
function CreateTornado(inair,size,doesrotate,rotatedirection,waitt,cframe,color)
1079
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
1080
	local mesh = IT("SpecialMesh",wave)
1081
	mesh.MeshType = "FileMesh"
1082
	mesh.MeshId = "http://www.roblox.com/asset/?id=102638417"
1083
	mesh.Scale = VT(size,size,size)
1084
	wave.CFrame = cframe
1085
	coroutine.resume(coroutine.create(function(PART)
1086
		for i = 1, waitt do
1087
			Swait()
1088
			mesh.Scale = mesh.Scale + VT(size/5,0,size/5)
1089
			if doesrotate == true then
1090
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(0, rotatedirection, 0)
1091
			end
1092
			wave.Transparency = wave.Transparency + (0.5/waitt)
1093
			if wave.Transparency > 0.99 then
1094
				wave:remove()
1095
			end
1096
		end
1097
	end))
1098
end
1099
1100
function CreateRing(inair,size,doesrotate,rotatedirection,waitt,cframe,spin1,spin2,color)
1101
	local wave = CreatePart(3, Effects, "Neon", 0, 0.5, BRICKC(color), "Effect", VT(0,0,0))
1102
	local mesh = IT("SpecialMesh",wave)
1103
	mesh.MeshType = "FileMesh"
1104
	mesh.MeshId = "http://www.roblox.com/asset/?id=3270017"
1105
	mesh.Scale = VT(size,size,size)
1106
	mesh.Offset = VT(0,0,0)
1107
	wave.CFrame = cframe
1108
	coroutine.resume(coroutine.create(function(PART)
1109
		for i = 1, waitt do
1110
			Swait()
1111
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
1112
			if doesrotate == true then
1113
				wave.CFrame = wave.CFrame * CFrame.fromEulerAnglesXYZ(spin2, rotatedirection, spin1)
1114
			end
1115
			wave.Transparency = wave.Transparency + (0.5/waitt)
1116
			if wave.Transparency > 0.99 then
1117
				wave:remove()
1118
			end
1119
		end
1120
	end))
1121
end
1122
1123
function MagicSphere(size,waitt,cframe,color)
1124
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(1,1,1), true)
1125
	local mesh = IT("SpecialMesh",wave)
1126
	mesh.MeshType = "Sphere"
1127
	mesh.Scale = VT(size,size,size)
1128
	mesh.Offset = VT(0,0,0)
1129
	wave.CFrame = cframe
1130
	coroutine.resume(coroutine.create(function(PART)
1131
		for i = 1, waitt do
1132
			Swait()
1133
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
1134
			wave.Transparency = wave.Transparency + (1/waitt)
1135
			if wave.Transparency > 0.99 then
1136
				wave:remove()
1137
			end
1138
		end
1139
	end))
1140
end
1141
1142
function MagicSphere2(size,waitt,cframe,color)
1143
	local wave = CreatePart(3, Effects, "Neon", 0, 1, BRICKC(color), "Effect", VT(1,1,1), true)
1144
	local mesh = IT("SpecialMesh",wave)
1145
	mesh.MeshType = "Sphere"
1146
	mesh.Scale = VT(size,size,size)
1147
	mesh.Offset = VT(0,0,0)
1148
	wave.CFrame = cframe
1149
	coroutine.resume(coroutine.create(function(PART)
1150
		for i = 1, waitt do
1151
			Swait()
1152
			mesh.Scale = mesh.Scale - VT(size/waitt,size/waitt,size/waitt)
1153
			wave.Transparency = wave.Transparency - (1/waitt)
1154
		end
1155
		wave:remove()
1156
	end))
1157
end
1158
1159
function MagicBlock(size,waitt,cframe,color)
1160
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size), true)
1161
	local mesh = IT("BlockMesh",wave)
1162
	wave.CFrame = cframe
1163
	coroutine.resume(coroutine.create(function(PART)
1164
		for i = 1, waitt do
1165
			Swait()
1166
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
1167
			wave.CFrame = cframe * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360)))
1168
			wave.Transparency = wave.Transparency + (1/waitt)
1169
			if wave.Transparency > 0.99 then
1170
				wave:remove()
1171
			end
1172
		end
1173
	end))
1174
end
1175
1176
function MagicBlock2(size,waitt,cframe,color)
1177
	local wave = CreatePart(3, Effects, "Neon", 0, 1, BRICKC(color), "Effect", VT(size,size,size), true)
1178
	local mesh = IT("BlockMesh",wave)
1179
	wave.CFrame = cframe
1180
	coroutine.resume(coroutine.create(function(PART)
1181
		for i = 1, waitt do
1182
			Swait()
1183
			mesh.Scale = mesh.Scale - VT(1/waitt,1/waitt,1/waitt)
1184
			wave.CFrame = cframe * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360)))
1185
			wave.Transparency = wave.Transparency - (1/waitt)
1186
		end
1187
		wave:Destroy()
1188
	end))
1189
end
1190
1191
function MagicBlock(size,waitt,cframe,color)
1192
	local wave = CreatePart(3, Effects, "Neon", 0, 0, BRICKC(color), "Effect", VT(size,size,size))
1193
	local mesh = IT("BlockMesh",wave)
1194
	wave.CFrame = cframe
1195
	coroutine.resume(coroutine.create(function(PART)
1196
		for i = 1, waitt do
1197
			Swait()
1198
			mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
1199
			wave.CFrame = CF(wave.Position) * ANGLES(RAD(math(-360,360)),RAD(math(-360,360)),RAD(math(-360,360)))
1200
			wave.Transparency = wave.Transparency + (1/waitt)
1201
			if wave.Transparency > 0.99 then
1202
				wave:remove()
1203
			end
1204
		end
1205
	end))
1206
end
1207
1208
function CheckTableForString(Table, String)
1209
	for i, v in pairs(Table) do
1210
		if string.find(string.lower(String), string.lower(v)) then
1211
			return true
1212
		end
1213
	end
1214
	return false
1215
end
1216
1217
function CheckIntangible(Hit)
1218
	local ProjectileNames = {"Water", "Arrow", "Projectile", "Effect", "Rail", "Lightning", "Bullet"}
1219
	if Hit and Hit.Parent then
1220
		if ((not Hit.CanCollide or CheckTableForString(ProjectileNames, Hit.Name)) and not Hit.Parent:FindFirstChild("Humanoid")) then
1221
			return true
1222
		end
1223
	end
1224
	return false
1225
end
1226
1227
Debris = game:GetService("Debris")
1228
1229
function CastZapRay(StartPos, Vec, Length, Ignore, DelayIfHit)
1230
	local Direction = CFrame.new(StartPos, Vec).lookVector
1231
	local Ignore = ((type(Ignore) == "table" and Ignore) or {Ignore})
1232
	local RayHit, RayPos, RayNormal = game:GetService("Workspace"):FindPartOnRayWithIgnoreList(Ray.new(StartPos, Direction * Length), Ignore)
1233
	if RayHit and CheckIntangible(RayHit) then
1234
		if DelayIfHit then
1235
			wait()
1236
		end
1237
		RayHit, RayPos, RayNormal = CastZapRay((RayPos + (Vec * 0.01)), Vec, (Length - ((StartPos - RayPos).magnitude)), Ignore, DelayIfHit)
1238
	end
1239
	return RayHit, RayPos, RayNormal
1240
end
1241
1242
function turnto(position)
1243
	RootPart.CFrame=CFrame.new(RootPart.CFrame.p,VT(position.X,RootPart.Position.Y,position.Z)) * CFrame.new(0, 0, 0)
1244
end
1245
1246
--//=================================\\
1247
--||	     WEAPON CREATION
1248
--\\=================================//
1249
1250
for _, c in pairs(Weapon:GetChildren()) do
1251
	if c.ClassName == "Part" then
1252
		c.CustomPhysicalProperties = PhysicalProperties.new(0, 0, 0, 0, 0)
1253
	end
1254
end
1255
1256
Weapon.Parent = Character
1257
1258
Humanoid.Died:connect(function()
1259
	ATTACK = true
1260
end)
1261
1262
print(Class_Name.." loaded.")
1263
1264
local SKILL1FRAME = CreateFrame(WEAPONGUI, 0.5, 2, UD2(0.365, 0, 0.86, 0), UD2(0.26, 0, 0.07, 0), C3(0,0,0), C3(0, 0, 0), "Skill 1 Frame")
1265
local SKILL1TEXT = CreateLabel(SKILL1FRAME, "[X] Toggle [ON]", SKILLTEXTCOLOR, 8, "SciFi", 0, 2, 1, "Text 1")
1266
1267
--//=================================\\
1268
--||	     DAMAGE FUNCTIONS
1269
--\\=================================//
1270
1271
function StatLabel(LABELTYPE, CFRAME, TEXT, COLOR)
1272
	local STATPART = CreatePart(3, Effects, "SmoothPlastic", 0, 1, "Really black", "Effect", VT())
1273
	STATPART.CFrame = CF(CFRAME.p + VT(0, 1.5, 0))
1274
	local BODYGYRO = IT("BodyGyro", STATPART)
1275
	local BODYPOSITION = IT("BodyPosition", STATPART)
1276
	BODYPOSITION.P = 2000
1277
	BODYPOSITION.D = 100
1278
	BODYPOSITION.maxForce = VT(math.huge, math.huge, math.huge)
1279
	if LABELTYPE == "Normal" then
1280
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 6, MRANDOM(-2, 2))
1281
	elseif LABELTYPE == "Debuff" then
1282
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2, 2), 8, MRANDOM(-2, 2))
1283
	elseif LABELTYPE == "Interruption" then
1284
		BODYPOSITION.position = STATPART.Position + VT(MRANDOM(-2,2), 8, MRANDOM(-2, 2))
1285
	end
1286
	game:GetService("Debris"):AddItem(STATPART ,5)
1287
	local BILLBOARDGUI = Instance.new("BillboardGui", STATPART)
1288
	BILLBOARDGUI.Adornee = STATPART
1289
	BILLBOARDGUI.Size = UD2(2.5, 0, 2.5 ,0)
1290
	BILLBOARDGUI.StudsOffset = VT(-2, 2, 0)
1291
	BILLBOARDGUI.AlwaysOnTop = false
1292
	local TEXTLABEL = Instance.new("TextLabel", BILLBOARDGUI)
1293
	TEXTLABEL.BackgroundTransparency = 1
1294
	TEXTLABEL.Size = UD2(2.5, 0, 2.5, 0)
1295
	TEXTLABEL.Text = TEXT
1296
	TEXTLABEL.Font = "SciFi"
1297
	TEXTLABEL.FontSize="Size42"
1298
	TEXTLABEL.TextColor3 = COLOR
1299
	TEXTLABEL.TextStrokeTransparency = 1
1300
	TEXTLABEL.TextScaled = true
1301
	TEXTLABEL.TextWrapped = true
1302
	coroutine.resume(coroutine.create(function(THEPART, THEBODYPOSITION, THETEXTLABEL)
1303
		wait(0.2)
1304
		for i=1, 5 do
1305
			wait()
1306
			THEBODYPOSITION.Position = THEPART.Position - VT(0, 0.5 ,0)
1307
		end
1308
		wait(1.2)
1309
		for i=1, 5 do
1310
			wait()
1311
			THETEXTLABEL.TextTransparency = THETEXTLABEL.TextTransparency + 0.2
1312
			THETEXTLABEL.TextStrokeTransparency = THETEXTLABEL.TextStrokeTransparency + 0.2
1313
			THEBODYPOSITION.position = THEPART.Position + VT(0, 0.5, 0)
1314
		end
1315
		THEPART.Parent = nil
1316
	end),STATPART, BODYPOSITION, TEXTLABEL)
1317
end
1318
1319
1320
--//=================================\\
1321
--||			DAMAGING
1322
--\\=================================//
1323
1324
function GoDeeper(object,position,range,maxstrength,hasdugdeep)
1325
	if object ~= Character and object~= Effects then
1326
		local body = object:GetChildren()
1327
		for part = 1, #body do
1328
			if (body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") then
1329
				if (body[part].Position - position).Magnitude < range then
1330
					if body[part]:FindFirstChild("OOF") == nil then
1331
						CastBlast(range/2)
1332
						local defence = Instance.new("BoolValue",body[part])
1333
						defence.Name = ("OOF")
1334
						body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1335
					end
1336
					if hasdugdeep == true then
1337
						body[part]:Destroy()
1338
					end
1339
				end
1340
			elseif body[part].ClassName == "Model" or body[part].ClassName == "Folder" then
1341
				GoDeeper(body[part],position,range,maxstrength,true)
1342
			end
1343
		end
1344
	end
1345
end
1346
1347
function CastEffective(position,range,maxstrength)
1348
	for i,v in ipairs(workspace:GetChildren()) do
1349
	GoDeeper(v,position,range,maxstrength,false)
1350
	local body = v:GetChildren()
1351
		for part = 1, #body do
1352
			if((body[part].ClassName == "Part" or body[part].ClassName == "MeshPart") and v ~= Character) then
1353
				if(body[part].Position - position).Magnitude < range then
1354
					if v.ClassName == "Model" then
1355
						v:BreakJoints()
1356
					end
1357
					if body[part]:FindFirstChild("OOF") == nil then
1358
						CastBlast(range/2)
1359
						local defence = Instance.new("BoolValue",body[part])
1360
						defence.Name = ("OOF")
1361
					end
1362
					--table.insert(Effects2,{body[part],"Disappear",0.02,2,2,2,2})
1363
					body[part].Velocity = CFrame.new(position,body[part].Position).lookVector*5*maxstrength
1364
				end
1365
			end
1366
		end
1367
		if v.ClassName == "Part" then
1368
			if v.Anchored == false and (v.Position - position).Magnitude < range then
1369
				--table.insert(Effects2,{v,"Disappear",0.02,2,2,2,2})
1370
				v.Velocity = CFrame.new(position,v.Position).lookVector*5*maxstrength
1371
			end
1372
		end
1373
	end
1374
end
1375
1376
--//=================================\\
1377
--||	ATTACK FUNCTIONS AND STUFF
1378
--\\=================================//
1379
1380
function CastBlast(size)
1381
	coroutine.resume(coroutine.create(function()
1382
		for i = 1, 3 do
1383
			CreateSwirl(0,size*0.8,true,-0.2,25,Torso.CFrame * ANGLES(RAD(math.random(-360,360)),RAD(math.random(-360,360)),RAD(math.random(-360,360))),"Pear")
1384
		end
1385
		local wave = CreatePart(3, Effects, "Neon", 0, 0.8, BRICKC("Pearl"), "Effect", VT(1,1,1))
1386
		local mesh = IT("SpecialMesh",wave)
1387
		mesh.MeshType = "Sphere"
1388
		mesh.Scale = VT(size,size,size)
1389
		mesh.Offset = VT(0,0,0)
1390
		wave.CFrame = Torso.CFrame
1391
		coroutine.resume(coroutine.create(function(PART)
1392
			for i = 1, 25 do
1393
				Swait()
1394
				mesh.Scale = mesh.Scale + VT(size/5,size/5,size/5)
1395
				wave.Transparency = wave.Transparency + (0.2/25)
1396
			end
1397
			wave:remove()
1398
		end))
1399
	end))
1400
end
1401
1402
--//=================================\\
1403
--||	  ASSIGN THINGS TO KEYS
1404
--\\=================================//
1405
1406
function MouseDown(Mouse)
1407
	if ATTACK == false then
1408
	end
1409
end
1410
1411
function MouseUp(Mouse)
1412
HOLD = false
1413
end
1414
1415
function KeyDown(Key)
1416
	KEYHOLD = true
1417
	if Key == "x" and ATTACK == false then
1418
		if VALUE1 == true then
1419
			VALUE1 = false
1420
			SKILL1TEXT.Text = "[X] Toggle [OFF]"
1421
		elseif VALUE1 == false then
1422
			VALUE1 = true
1423
			SKILL1TEXT.Text = "[X] Toggle [ON]"
1424
		end
1425
	end
1426
end
1427
1428
function KeyUp(Key)
1429
	KEYHOLD = false
1430
end
1431
1432
	Mouse.Button1Down:connect(function(NEWKEY)
1433
		MouseDown(NEWKEY)
1434
	end)
1435
	Mouse.Button1Up:connect(function(NEWKEY)
1436
		MouseUp(NEWKEY)
1437
	end)
1438
	Mouse.KeyDown:connect(function(NEWKEY)
1439
		KeyDown(NEWKEY)
1440
	end)
1441
	Mouse.KeyUp:connect(function(NEWKEY)
1442
		KeyUp(NEWKEY)
1443
	end)
1444
1445
--//=================================\\
1446
--\\=================================//
1447
1448
1449
function unanchor()
1450
	if UNANCHOR == true then
1451
		g = Character:GetChildren()
1452
		for i = 1, #g do
1453
			if g[i].ClassName == "Part" then
1454
				g[i].Anchored = false
1455
			end
1456
		end
1457
	end
1458
end
1459
1460
local ff = IT("ForceField",Character)
1461
ff.Visible = false
1462
1463
--//=================================\\
1464
--||	WRAP THE WHOLE SCRIPT UP
1465
--\\=================================//
1466
1467
Humanoid.HealthChanged:connect(function()
1468
	if Humanoid.Health ~= "inf" then
1469
		Humanoid.Health = "inf"
1470
	end
1471
	if Humanoid.MaxHealth ~= "inf" then
1472
		Humanoid.MaxHealth = "inf"
1473
	end
1474
end)
1475
1476
1477
VALUE1 = true
1478
1479
while true do
1480
	Swait()
1481
if #Effects2>0 then
1482
for e=1,#Effects2 do
1483
if Effects2[e]~=nil then
1484
local Thing=Effects2[e]
1485
if Thing~=nil then
1486
local Part=Thing[1]
1487
local Mode=Thing[2]
1488
local Delay=Thing[3]
1489
local IncX=Thing[4]
1490
local IncY=Thing[5]
1491
local IncZ=Thing[6]
1492
local Part2=Thing[8]
1493
if Thing[1].Transparency<=1 then
1494
if Thing[2]=="Block1" then
1495
Thing[1].CFrame=Thing[1].CFrame
1496
Mesh=Thing[1].Mesh
1497
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1498
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1499
elseif Thing[2]=="Cylinder" then
1500
Mesh=Thing[1].Mesh
1501
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1502
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1503
elseif Thing[2]=="Blood" then
1504
Mesh=Thing[7]
1505
Thing[1].CFrame=Thing[1].CFrame*CF(0,.5,0)
1506
Mesh.Scale=Mesh.Scale+VT(Thing[4],Thing[5],Thing[6])
1507
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1508
elseif Thing[2]=="Elec" then
1509
Mesh=Thing[1].Mesh
1510
Mesh.Scale=Mesh.Scale+VT(Thing[7],Thing[8],Thing[9])
1511
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1512
elseif Thing[2]=="Disappear" then
1513
Thing[1].Transparency=Thing[1].Transparency+Thing[3]
1514
end
1515
else
1516
Part.Parent=nil
1517
table.remove(Effects2,e)
1518
end
1519
end
1520
end
1521
end
1522
end
1523
unanchor()
1524
Humanoid.MaxHealth = "inf"
1525
Humanoid.Health = "inf"
1526
if VALUE1 == true then
1527
	CastEffective(Torso.Position,10,100)
1528
end
1529
local MATHS = {"A","C","E","G","I","K","N","P"}
1530
Humanoid.Name = MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]..MATHS[MRANDOM(1,#MATHS)]
1531
end
1532
1533
--//=================================\\
1534
--\\=================================//
1535
1536
1537
1538
1539
1540
--//====================================================\\--
1541
--||			  		 END OF SCRIPT
1542
--\\====================================================//--