View difference between Paste ID: 2Gf1v0zF and TFZYf1ca
SHOW: | | - or go back to the newest paste.
1
-- Farewell Infortality.
2
-- Version: 2.82
3
-- Instances:
4
--FE Converter By basstracker1970
5
--Made With Gui To Lua Plugin
6
local ScreenGui = Instance.new("ScreenGui")
7
local TextBox = Instance.new("TextBox")
8
local TextLabel = Instance.new("TextLabel")
9
--Properties:
10
ScreenGui.Parent = game.Players.LocalPlayer:WaitForChild("PlayerGui")
11
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling
12
 
13
TextBox.Parent = ScreenGui
14
TextBox.BackgroundColor3 = Color3.new(0, 0.333333, 1)
15
TextBox.BorderColor3 = Color3.new(0, 0.333333, 1)
16
TextBox.BorderSizePixel = 0
17
TextBox.Position = UDim2.new(0.742599726, 0, 0.83808744, 0)
18
TextBox.Size = UDim2.new(0, 200, 0, 50)
19
TextBox.Font = Enum.Font.SourceSans
20
TextBox.Text = ""
21
TextBox.TextColor3 = Color3.new(0, 0, 0)
22
TextBox.TextSize = 14
23
 
24
TextLabel.Parent = ScreenGui
25
TextLabel.BackgroundColor3 = Color3.new(0, 0.333333, 1)
26
TextLabel.BorderSizePixel = 0
27
TextLabel.Position = UDim2.new(0.742599726, 0, 0.758901358, 0)
28
TextLabel.Size = UDim2.new(0, 200, 0, 50)
29
TextLabel.Font = Enum.Font.SourceSans
30
TextLabel.Text = "FE Script Converter By basstracker1970"
31
TextLabel.TextColor3 = Color3.new(0, 0, 0)
32
TextLabel.TextScaled = true
33
TextLabel.TextSize = 14
34
TextLabel.TextWrapped = true
35
-- Scripts:
36
function SCRIPT_AHJG82_FAKESCRIPT() -- TextBox.Script
37
    local script = Instance.new('Script')
38
    script.Parent = TextBox
39
    link = script.Parent.Text
40
    script.Parent.FocusLost:Connect(function()
41
    local ScriptLink = ""..link
42
   
43
    --//Do not touch anything below this line, you may break it.
44
    local FeSource = nil;pcall(function()FeSource = game:GetService("HttpService"):GetAsync("https://pastebin.com/raw/V5gzxd1Z")end);
45
    local ScriptSource = nil;pcall(function()ScriptSource = game:GetService("HttpService"):GetAsync(ScriptLink)end);
46
    if not FeSource then error("Failed to grab update! Try again later.",0)end;if not ScriptSource then error("Failed to get link!",0)end;
47
    local FeConversion = loadstring(FeSource);local FeSucc,FeErr = pcall(FeConversion);if not FeSucc then warn(FeErr)error("Failed to initiate! Try again later.",0) end;
48
    local Script = loadstring(ScriptSource);local Succ,Err = pcall(Script);if not Succ then warn(Err)error("Error loading script.",0) end;
49
    end)
50
 
51
end
52
coroutine.resume(coroutine.create(SCRIPT_AHJG82_FAKESCRIPT))
53
  wait(1)--this was so much work i did not change the animations from the last stand sorry...
54
warn "Slenercat5's"
55
warn "Dirty Deeds Done Dirt Cheep"
56
warn "Q to call stand"
57
warn "E to do far range attack"
58
warn "R to make Enemy clone"
59
warn "T to jump to other dimension"
60
warn "Y to Make Clone"
61
warn "F to use love train"
62
warn "moveset based on project jojo's d4c"
63
warn "Model by JojofMer"
64
warn"sorry currently 1 color"
65
warn "Avatar clothing and hair by Masterofroblox1206"
66
plr = game.Players.LocalPlayer
67
mse = plr:GetMouse()
68
sound = Instance.new("Sound", game.Workspace)
69
sound.SoundId = "https://www.roblox.com/asset/?id=274698941"
70
sound.Volume = 10
71
canworld = true
72
BeeSpeed = 50
73
74
chr=plr.Character
75
tors=torso
76
--[[
77
for _,v in pairs(plr.Character:GetChildren())do
78
if v:IsA('Shirt') or v:IsA('Pants') or v:IsA('Accessory') then
79
	v:remove()
80
end
81
end
82
local sh = Instance.new("Shirt",chr)
83
sh.ShirtTemplate = "http://www.roblox.com/asset/?id=394790364"
84
p=Instance.new('Pants',chr)
85
p.PantsTemplate='http://www.roblox.com/asset/?id=394795102'--]]
86
87
chr['Left Arm'].BrickColor=BrickColor.new('Pastel brown')
88
chr['Right Arm'].BrickColor=BrickColor.new('Pastel brown')
89
chr['Torso'].BrickColor=BrickColor.new('Pastel brown')
90
chr.Head.BrickColor=BrickColor.new('Pastel brown')
91
92
93
94
95
local Players=game:service'Players'
96
local Player=Players.LocalPlayer
97
local Mouse=Player:GetMouse''
98
Character=Player.Character
99
100
local RenderStepped=game:service'RunService'.RenderStepped
101
102
local MeshId='http://www.roblox.com/asset?id=779592805'
103
local TextureId='http://www.roblox.com/asset/?id=775493027'
104
105
106
local QHold=false
107
local EHold=false
108
109
cut = Instance.new("Sound", chr)
110
cut.SoundId = "https://www.roblox.com/asset/?id=0"
111
cut.Volume = 1.5
112
thri = Instance.new("Sound", chr)
113
thri.SoundId = "https://www.roblox.com/asset/?id=186311262"
114
thri.Volume = 2.5
115
116
117
Sound2=Instance.new('Sound')
118
Sound2.SoundId='rbxassetid://616594063'
119
Sound2.Parent=Player.Character.Head
120
121
122
  Effects = {}
123
  local Player = game.Players.localPlayer
124
  local Character = Player.Character
125
  Character.Archivable = true
126
  AdvancingFortress = Character:Clone()
127
--[[
128
Hair=Instance.new('Part',Character)
129
Hair.Size=Vector3.new(1,1,1)
130
M=Instance.new('FileMesh',Hair)
131
M.Scale=Vector3.new(.028,.028,.028)
132
M.MeshId='rbxassetid://1450916371'
133
M.TextureId='rbxassetid://1450916523'
134
WARF=Instance.new('Weld',Hair)
135
WARF.Part0=Hair
136
WARF.Part1=Character.Head
137
WARF.C0=CFrame.new(0,-.2,0)--]]
138
139
140
--//D4cCostume
141
142
function eclone(targetPart)
143
	
144
--Converted with ttyyuu12345's model to script plugin v4
145
function sandbox(var,func)
146
	local env = getfenv(func)
147
	local newenv = setmetatable({},{
148
		__index = function(self,k)
149
			if k=="script" then
150
				return var
151
			else
152
				return env[k]
153
			end
154
		end,
155
	})
156
	setfenv(func,newenv)
157
	return func
158
end
159
cors = {}
160
mas = Instance.new("Model",game:GetService("Lighting"))
161
Model0 = Instance.new("Model")
162
Part1 = Instance.new("Part")
163
SpecialMesh2 = Instance.new("SpecialMesh")
164
Decal3 = Instance.new("Decal")
165
Part4 = Instance.new("Part")
166
Decal5 = Instance.new("Decal")
167
Motor6 = Instance.new("Motor")
168
Motor7 = Instance.new("Motor")
169
Motor8 = Instance.new("Motor")
170
Motor9 = Instance.new("Motor")
171
Motor10 = Instance.new("Motor")
172
Part11 = Instance.new("Part")
173
Part12 = Instance.new("Part")
174
Part13 = Instance.new("Part")
175
Part14 = Instance.new("Part")
176
Humanoid15 = Instance.new("Humanoid")
177
Humanoid15.WalkToPart=targetPart
178
BodyColors16 = Instance.new("BodyColors")
179
Script17 = Instance.new("Script")
180
Model0.Name = "Clone"
181
Model0.Parent = mas
182
Model0.PrimaryPart = Part1
183
Part1.Name = "Head"
184
Part1.Parent = Model0
185
Part1.BrickColor = BrickColor.new("Bright yellow")
186
Part1.FormFactor = Enum.FormFactor.Symmetric
187
Part1.Size = Vector3.new(2, 1, 1)
188
Part1.CFrame = CFrame.new(6.34995413, 4.50001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
189
Part1.TopSurface = Enum.SurfaceType.Smooth
190
Part1.Color = Color3.new(0.960784, 0.803922, 0.188235)
191
Part1.Position = Vector3.new(6.34995413, 4.50001717, 23.1599998)
192
Part1.Color = Color3.new(0.960784, 0.803922, 0.188235)
193
SpecialMesh2.Parent = Part1
194
SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25)
195
SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25)
196
Decal3.Name = "face"
197
Decal3.Parent = Part1
198
Decal3.Texture = "rbxasset://textures/face.png"
199
Part4.Name = "Torso"
200
Part4.Parent = Model0
201
Part4.BrickColor = BrickColor.new("Bright blue")
202
Part4.FormFactor = Enum.FormFactor.Symmetric
203
Part4.Size = Vector3.new(2, 2, 1)
204
Part4.CFrame = CFrame.new(6.34995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
205
Part4.LeftSurface = Enum.SurfaceType.Weld
206
Part4.RightSurface = Enum.SurfaceType.Weld
207
Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451)
208
Part4.Position = Vector3.new(6.34995413, 3.00001717, 23.1599998)
209
Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451)
210
Decal5.Name = "roblox"
211
Decal5.Parent = Part4
212
Motor6.Name = "Right Shoulder"
213
Motor6.Parent = Part4
214
Motor6.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
215
Motor6.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
216
Motor6.Part0 = Part4
217
Motor6.Part1 = Part12
218
Motor6.MaxVelocity = 0.15000000596046
219
Motor7.Name = "Left Shoulder"
220
Motor7.Parent = Part4
221
Motor7.C0 = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
222
Motor7.C1 = CFrame.new(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
223
Motor7.Part0 = Part4
224
Motor7.Part1 = Part11
225
Motor7.MaxVelocity = 0.15000000596046
226
Motor8.Name = "Right Hip"
227
Motor8.Parent = Part4
228
Motor8.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
229
Motor8.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
230
Motor8.Part0 = Part4
231
Motor8.Part1 = Part14
232
Motor8.MaxVelocity = 0.10000000149012
233
Motor9.Name = "Left Hip"
234
Motor9.Parent = Part4
235
Motor9.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
236
Motor9.C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
237
Motor9.Part0 = Part4
238
Motor9.Part1 = Part13
239
Motor9.MaxVelocity = 0.10000000149012
240
Motor10.Name = "Neck"
241
Motor10.Parent = Part4
242
Motor10.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
243
Motor10.C1 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
244
Motor10.Part0 = Part4
245
Motor10.Part1 = Part1
246
Motor10.MaxVelocity = 0.10000000149012
247
Part11.Name = "Left Arm"
248
Part11.Parent = Model0
249
Part11.BrickColor = BrickColor.new("Bright yellow")
250
Part11.CanCollide = false
251
Part11.FormFactor = Enum.FormFactor.Symmetric
252
Part11.Size = Vector3.new(1, 2, 1)
253
Part11.CFrame = CFrame.new(4.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
254
Part11.Color = Color3.new(0.960784, 0.803922, 0.188235)
255
Part11.Position = Vector3.new(4.84995413, 3.00001717, 23.1599998)
256
Part11.Color = Color3.new(0.960784, 0.803922, 0.188235)
257
Part12.Name = "Right Arm"
258
Part12.Parent = Model0
259
Part12.BrickColor = BrickColor.new("Bright yellow")
260
Part12.CanCollide = false
261
Part12.FormFactor = Enum.FormFactor.Symmetric
262
Part12.Size = Vector3.new(1, 2, 1)
263
Part12.CFrame = CFrame.new(7.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
264
Part12.Color = Color3.new(0.960784, 0.803922, 0.188235)
265
Part12.Position = Vector3.new(7.84995413, 3.00001717, 23.1599998)
266
Part12.Color = Color3.new(0.960784, 0.803922, 0.188235)
267
Part13.Name = "Left Leg"
268
Part13.Parent = Model0
269
Part13.BrickColor = BrickColor.new("Br. yellowish green")
270
Part13.CanCollide = false
271
Part13.FormFactor = Enum.FormFactor.Symmetric
272
Part13.Size = Vector3.new(1, 2, 1)
273
Part13.CFrame = CFrame.new(5.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
274
Part13.BottomSurface = Enum.SurfaceType.Smooth
275
Part13.TopSurface = Enum.SurfaceType.Inlet
276
Part13.Color = Color3.new(0.643137, 0.741176, 0.278431)
277
Part13.Position = Vector3.new(5.84995413, 1.00001717, 23.1599998)
278
Part13.Color = Color3.new(0.643137, 0.741176, 0.278431)
279
Part14.Name = "Right Leg"
280
Part14.Parent = Model0
281
Part14.BrickColor = BrickColor.new("Br. yellowish green")
282
Part14.CanCollide = false
283
Part14.FormFactor = Enum.FormFactor.Symmetric
284
Part14.Size = Vector3.new(1, 2, 1)
285
Part14.CFrame = CFrame.new(6.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
286
Part14.BottomSurface = Enum.SurfaceType.Smooth
287
Part14.TopSurface = Enum.SurfaceType.Inlet
288
Part14.Color = Color3.new(0.643137, 0.741176, 0.278431)
289
Part14.Position = Vector3.new(6.84995413, 1.00001717, 23.1599998)
290
Part14.Color = Color3.new(0.643137, 0.741176, 0.278431)
291
Humanoid15.Parent = Model0
292
Humanoid15.NameOcclusion = Enum.NameOcclusion.NoOcclusion
293
Humanoid15.RightLeg = Part14
294
Humanoid15.LeftLeg = Part13
295
Humanoid15.Torso = Part4
296
Humanoid15.WalkToPoint=Vector3.new(0,20,0)
297
BodyColors16.Parent = Model0
298
BodyColors16.HeadColor = BrickColor.new("Bright yellow")
299
BodyColors16.LeftArmColor = BrickColor.new("Bright yellow")
300
BodyColors16.LeftLegColor = BrickColor.new("Br. yellowish green")
301
BodyColors16.RightArmColor = BrickColor.new("Bright yellow")
302
BodyColors16.RightLegColor = BrickColor.new("Br. yellowish green")
303
BodyColors16.TorsoColor = BrickColor.new("Bright blue")
304
Script17.Name = "Full Animation"
305
Script17.Parent = Model0
306
table.insert(cors,sandbox(Script17,function()
307
--[[Made by Jammer622 @[http://www.roblox.com/Advanced-Player-AI-item?id=59391730],
308
This is the ORIGINAL model, if you see others, they are stolen.
309
Scripts mixed from vanilla Animate, Health, and Sound,
310
with much custom content by myself, making them great AIs.
311
No help from Miked's scripts, I made my own joint script.
312
If you find any glitches, bugs, or just want to suggest an idea, please message me.
313
My team works hard on these AIs, please don't make attempts to steal them.
314
Your feedback is extremely appreciated!
315
316
	_---=CREDITS=---_
317
The Roblox Team		Without them, none of this would be possible.
318
	Vanilla Sound
319
	Vanilla Health
320
	Vanilla Animate
321
Jammer622				That's me, main programmer and weapon publisher.
322
	Main Developer
323
	Health GUI Script
324
	Animation Work
325
	Relationship Work
326
	Wandering
327
	Pathing (Map Generation)
328
	Weapon Usage
329
	Weapon (Re)Publishing
330
		Sonypony458
331
			McDonalds Drink
332
	Customization
333
	Teamwork AI
334
	Model Variables
335
	Setting Wiki [Below]
336
Macdeath					I owe it to him for keeping me on track during this.
337
	Feature Inspiration
338
	Problem Solving
339
	Suggestions
340
lah30303					Amazing pathing work goes to this fine sir.
341
	Pathing (Pathing Generation/System)
342
343
	_---=SETTINGS=---_
344
Inside this model's file, you'll find several values that can be changed.
345
	DropWeapon					-This sets whether or not the bot will drop any equipped weapon upon dying.
346
	Force_Pants					-This must be set through Spawners.
347
	Force_Shirt					-This must be set through Spawners.
348
	Force_Weapon				-This must be set through Spawners.
349
	Force_Hat					-This must be set through Spawners.
350
	IgnoreCombatFF				-This sets whether or not the bot will allow friendly fire during combat.
351
	IsAPlayer					-This is a tag to specify this bot's existance to other AIs.
352
	IsOnTeam						-This sets whether or not the bot is on a team.
353
		ShowTag					-This sets whether or not the bot's team color name shows up beside its own.
354
		Team						-This sets the bot's team color.
355
	PathTo						-This is an experimental pathfinding engine. Use at your own risk!
356
	PrintMap						-This prints maps generated when using PathTo. Use at your own risk!
357
	Respawn						-This sets whether the bot will respawn or not upon death.
358
	Custom_Name					-This must be set through Spawners.
359
	Wander						-This sets whether the bot is stationary or if it moves, but not if it uses weapons or not.
360
]]
361
print("Player Bot Loading")
362
Delay(0, function() --Vanilla Sound
363
	function waitForChild(parent, childName)
364
		local child = parent:findFirstChild(childName)
365
		if child then return child end
366
		while true do
367
			child = parent.ChildAdded:wait()
368
			if child.Name==childName then return child end
369
		end
370
	end
371
	function newSound(id)
372
		local sound = Instance.new("Sound")
373
		sound.SoundId = id
374
		sound.archivable = false
375
		sound.Parent = script.Parent.Head
376
		return sound
377
	end
378
	local sDied = newSound("rbxasset://sounds/uuhhh.wav")
379
	local sFallingDown = newSound("rbxasset://sounds/splat.wav")
380
	local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
381
	local sGettingUp = newSound("rbxasset://sounds/hit.wav")
382
	local sJumping = newSound("rbxasset://sounds/button.wav")
383
	local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
384
	sRunning.Looped = true
385
	local Figure = script.Parent
386
	local Head = waitForChild(Figure, "Head")
387
	local Humanoid = waitForChild(Figure, "Humanoid")
388
	function onDied()
389
		sDied:Play()
390
	end
391
	function onState(state, sound)
392
		if state then
393
			sound:Play()
394
		else
395
			sound:Pause()
396
		end
397
	end
398
	function onRunning(speed)
399
		if speed>0 then
400
			sRunning:Play()
401
		else
402
			sRunning:Pause()
403
		end
404
	end
405
	
406
	Humanoid.Died:connect(onDied)
407
	Humanoid.Running:connect(onRunning)
408
	Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
409
	Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
410
	Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
411
	Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
412
end)
413
Delay(0, function() --Vanilla Health
414
	function waitForChild(parent, childName)
415
		local child = parent:findFirstChild(childName)
416
		if child then return child end
417
		while true do
418
			child = parent.ChildAdded:wait()
419
			if child.Name==childName then return child end
420
		end
421
	end
422
	local Figure = script.Parent
423
	local Humanoid = waitForChild(Figure, "Humanoid")
424
	local regening = false
425
	function regenHealth()
426
		if regening then return end
427
		regening = true
428
		while Humanoid.Health < Humanoid.MaxHealth do
429
			local s = wait(1)
430
			local health = Humanoid.Health
431
			if health > 0 and health < Humanoid.MaxHealth then
432
				local newHealthDelta = 0.01 * s * Humanoid.MaxHealth
433
				health = health + newHealthDelta
434
				Humanoid.Health = math.min(health,Humanoid.MaxHealth)
435
			end
436
		end
437
		if Humanoid.Health > Humanoid.MaxHealth then
438
			Humanoid.Health = Humanoid.MaxHealth
439
		end
440
		regening = false
441
	end
442
	Humanoid.HealthChanged:connect(regenHealth)
443
end)
444
Delay(0, function() --Vanilla Animate, Multiple Additions
445
	function waitForChild(parent, childName)
446
		local child = parent:findFirstChild(childName)
447
		if child then return child end
448
		while true do
449
			child = parent.ChildAdded:wait()
450
			if child.Name==childName then return child end
451
		end
452
	end
453
	local Figure = script.Parent
454
	local Clone = Figure:Clone()
455
	local Torso = waitForChild(Figure, "Torso")
456
	local Joints = Torso:GetChildren()
457
	for All = 1, #Joints do
458
		if Joints.className == "Motor" or Joints.className == "Motor6D" then
459
			Joints[All]:Remove()
460
		end
461
	end
462
	local RightShoulder = Instance.new("Motor")
463
	local LeftShoulder = Instance.new("Motor")
464
	local RightHip = Instance.new("Motor")
465
	local LeftHip = Instance.new("Motor")
466
	local Neck = Instance.new("Motor")
467
	local Humanoid = waitForChild(Figure, "Humanoid")
468
	ZStat = 1
469
	ZStat2 = 0
470
	local pose = "Standing"
471
	RightShoulder.Part0 = Torso
472
	RightShoulder.Part1 = Figure["Right Arm"]
473
	RightShoulder.MaxVelocity = 0.15
474
	RightShoulder.Name = "Right Shoulder"
475
	RightShoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
476
	RightShoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
477
	RightShoulder.Parent = Torso
478
	LeftShoulder.Part0 = Torso
479
	LeftShoulder.Part1 = Figure["Left Arm"]
480
	LeftShoulder.MaxVelocity = 0.15
481
	LeftShoulder.Name = "Left Shoulder"
482
	LeftShoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
483
	LeftShoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
484
	LeftShoulder.Parent = Torso
485
	RightHip.Part0 = Torso
486
	RightHip.Part1 = Figure["Right Leg"]
487
	RightHip.MaxVelocity = 0.1
488
	RightHip.Name = "Right Hip"
489
	RightHip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
490
	RightHip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
491
	RightHip.Parent = Torso
492
	LeftHip.Part0 = Torso
493
	LeftHip.Part1 = Figure["Left Leg"]
494
	LeftHip.MaxVelocity = 0.1
495
	LeftHip.Name = "Left Hip"
496
	LeftHip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
497
	LeftHip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
498
	LeftHip.Parent = Torso
499
	Neck.Part0 = Torso
500
	Neck.Part1 = Figure["Head"]
501
	Neck.MaxVelocity = 0.1
502
	Neck.Name = "Neck"
503
	Neck.C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
504
	Neck.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
505
	Neck.Parent = Torso
506
	local toolAnim = "None"
507
	local toolAnimTime = 0
508
	SpawnModel = Instance.new("Model")
509
	function onRunning(speed)
510
		if speed>0 then
511
			pose = "Running"
512
		else
513
			pose = "Standing"
514
		end
515
	end
516
	function CheckTag(Tag)
517
		if script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
518
			if Tag.Value.Character:FindFirstChild("IsLocalEnemy") == nil then
519
				if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == Tag.Value.TeamColor) or script.Parent.IsOnTeam.Value == false then
520
					local Tag2 = Instance.new("CFrameValue", Tag.Value.Character)
521
					Tag2.Name = "IsLocalEnemy"
522
					print(Tag.Value.Character.Name .." Has Become An Outlaw")
523
				end
524
			end
525
			if Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
526
				Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
527
			end
528
			local Found = Instance.new("CFrameValue", Tag.Value.Character)
529
			Found.Name = "Loc" ..script.Parent.Name
530
			game:GetService("Debris"):AddItem(Found, 3)
531
		elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Players:FindFirstChild(Tag.Value) ~= nil and game.Players[Tag.Value].Character ~= nil then
532
			if game.Players[Tag.Value].Character:FindFirstChild("IsLocalEnemy") == nil then
533
				if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == game.Players[Tag.Value].TeamColor) or script.Parent.IsOnTeam.Value == false then
534
					local Tag2 = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
535
					Tag2.Name = "IsLocalEnemy"
536
					print(Tag.Value .." Has Become An Outlaw")
537
				end
538
			end
539
			if game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
540
				game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
541
			end
542
			local Found = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
543
			Found.Name = "Loc" ..script.Parent.Name
544
			game:GetService("Debris"):AddItem(Found, 3)
545
		elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
546
			if game.Workspace[Tag.Value]:FindFirstChild("IsLocalEnemy") == nil then
547
				if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and Workspace[Tag.Value].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value == Workspace[Tag.Value].IsOnTeam.Team.Value) or script.Parent.IsOnTeam.Value == false or Workspace[Tag.Value].IsOnTeam.Value == false then
548
					local Tag2 = Instance.new("CFrameValue", game.Workspace[Tag.Value])
549
					Tag2.Name = "IsLocalEnemy"
550
					print(Tag.Value .." Has Become An Outlaw")
551
				end
552
			end
553
			if game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
554
				game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
555
			end
556
			local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
557
			Found.Name = "Loc" ..script.Parent.Name
558
			game:GetService("Debris"):AddItem(Found, 3)
559
		elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
560
			local Found = Instance.new("CFrameValue", Tag.Value.Character)
561
			Found.Name = "Loc" ..script.Parent.Name
562
			game:GetService("Debris"):AddItem(Found, 3)
563
		elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
564
			local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
565
			Found.Name = "Loc" ..script.Parent.Name
566
			game:GetService("Debris"):AddItem(Found, 3)
567
		end
568
	end
569
	function CheckSpawns(Object)
570
		local Parts = Object:GetChildren()
571
		for Check = 1, #Parts do
572
			if Parts[Check].className == "SpawnLocation" then
573
				local I = Instance.new("Vector3Value", SpawnModel)
574
				I.Value = Parts[Check].Position
575
			end
576
			CheckSpawns(Parts[Check])
577
		end
578
	end
579
	function onDied()
580
		pose = "Dead"
581
		Delay(5, function()
582
			if script.Parent.Respawn.Value == true then
583
				CheckSpawns(Workspace)
584
				local Spawn = SpawnModel:GetChildren()
585
				Clone.Parent = game.Workspace
586
				if #Spawn > 0 then
587
					Spawn = Spawn[math.random(1, #Spawn)].Value
588
					Clone:MoveTo(Spawn)
589
				else
590
					Clone:MoveTo(Vector3.new(0, 50, 0))
591
				end
592
			end
593
			Figure:Remove()
594
			return
595
		end)
596
	end
597
	function onJumping()
598
		pose = "Jumping"
599
	end
600
	function onClimbing()
601
		pose = "Climbing"
602
	end
603
	function onGettingUp()
604
		pose = "GettingUp"
605
	end
606
	function onFreeFall()
607
		pose = "FreeFall"
608
	end
609
	function onFallingDown()
610
		pose = "FallingDown"
611
	end
612
	function onSeated()
613
		pose = "Seated"
614
	end
615
	function onPlatformStanding()
616
		pose = "PlatformStanding"
617
	end
618
	function moveJump()
619
		RightShoulder.MaxVelocity = 0.5
620
		LeftShoulder.MaxVelocity = 0.5
621
		RightShoulder.DesiredAngle = (3.14/ZStat)
622
		LeftShoulder.DesiredAngle = (-3.14/ZStat)
623
		RightHip.DesiredAngle = (0)
624
		LeftHip.DesiredAngle = (0)
625
	end
626
	function moveFreeFall()
627
		RightShoulder.MaxVelocity = 0.5
628
		LeftShoulder.MaxVelocity = 0.5
629
		RightShoulder.DesiredAngle = (3.14/ZStat)
630
		LeftShoulder.DesiredAngle = (-3.14/ZStat)
631
		RightHip.DesiredAngle = (0)
632
		LeftHip.DesiredAngle = (0)
633
	end
634
	function moveSit()
635
		RightShoulder.MaxVelocity = 0.15
636
		LeftShoulder.MaxVelocity = 0.15
637
		RightShoulder.DesiredAngle = (3.14 /2)
638
		LeftShoulder.DesiredAngle = (-3.14 /2)
639
		RightHip.DesiredAngle = (3.14 /2)
640
		LeftHip.DesiredAngle = (-3.14 /2)
641
	end
642
	function getTool()	
643
		for _, kid in ipairs(Figure:GetChildren()) do
644
			if kid.className == "Tool" then return kid end
645
		end
646
		return nil
647
	end
648
	function getToolAnim(tool)
649
		for _, c in ipairs(tool:GetChildren()) do
650
			if c.Name == "toolanim" and c.className == "StringValue" then
651
				return c
652
			end
653
		end
654
		return nil
655
	end
656
	function animateTool()
657
		if (toolAnim == "None") then
658
			RightShoulder.DesiredAngle = (1.57)
659
			return
660
		end
661
		if (toolAnim == "Slash") then
662
			RightShoulder.MaxVelocity = 0.5
663
			RightShoulder.DesiredAngle = (0)
664
			return
665
		end
666
		if (toolAnim == "Lunge") then
667
			RightShoulder.MaxVelocity = 0.5
668
			LeftShoulder.MaxVelocity = 0.5
669
			RightHip.MaxVelocity = 0.5
670
			LeftHip.MaxVelocity = 0.5
671
			RightShoulder.DesiredAngle = (1.57)
672
			LeftShoulder.DesiredAngle = (1.0)
673
			RightHip.DesiredAngle = (1.57)
674
			LeftHip.DesiredAngle = (1.0)
675
			return
676
		end
677
	end
678
	function move(time)
679
		local amplitude
680
		local frequency
681
		if (pose == "Jumping") then
682
			moveJump()
683
			return
684
		end
685
		if (pose == "FreeFall") then
686
			moveFreeFall()
687
			return
688
		end	 
689
		if (pose == "Seated") then
690
			moveSit()
691
			return
692
		end
693
		local climbFudge = 0
694
		if (pose == "Running") then
695
			RightShoulder.MaxVelocity = 0.15
696
			LeftShoulder.MaxVelocity = 0.15
697
			amplitude = 1
698
			frequency = 9
699
		elseif (pose == "Climbing") then
700
			RightShoulder.MaxVelocity = 0.5 
701
			LeftShoulder.MaxVelocity = 0.5
702
			amplitude = 1
703
			frequency = 9
704
			climbFudge = 3.14
705
		else
706
			amplitude = 0.1
707
			frequency = 1
708
		end
709
		desiredAngle = amplitude * math.sin(time*frequency)
710
		RightShoulder.DesiredAngle = (desiredAngle + climbFudge) + ZStat2
711
		LeftShoulder.DesiredAngle = (desiredAngle - climbFudge) -ZStat2
712
		RightHip.DesiredAngle = (-desiredAngle)
713
		LeftHip.DesiredAngle = (-desiredAngle)
714
		local tool = getTool()
715
		if tool then
716
			animStringValueObject = getToolAnim(tool)
717
			if animStringValueObject then
718
				toolAnim = animStringValueObject.Value
719
				animStringValueObject.Parent = nil
720
				toolAnimTime = time + .3
721
			end
722
			if time > toolAnimTime then
723
				toolAnimTime = 0
724
				toolAnim = "None"
725
			end
726
			animateTool()
727
		else
728
			toolAnim = "None"
729
			toolAnimTime = 0
730
		end
731
	end
732
	Humanoid.Died:connect(onDied)
733
	Humanoid.Running:connect(onRunning)
734
	Humanoid.Jumping:connect(onJumping)
735
	Humanoid.Climbing:connect(onClimbing)
736
	Humanoid.GettingUp:connect(onGettingUp)
737
	Humanoid.FreeFalling:connect(onFreeFall)
738
	Humanoid.FallingDown:connect(onFallingDown)
739
	Humanoid.Seated:connect(onSeated)
740
	Humanoid.PlatformStanding:connect(onPlatformStanding)
741
	Humanoid.ChildAdded:connect(CheckTag)
742
	OriginalTime = 0.1
743
	Time = OriginalTime
744
	while Figure.Parent~=nil do
745
		Time = Time + 0.1
746
		wait(OriginalTime)
747
		move(Time)
748
	end
749
end)
750
Delay(0, function() --lah30303's Pathing Script
751
	function CalcMoves(map, px, py, tx, ty) 
752
		if map[ty][tx] ~= 0 then
753
			return nil
754
		end
755
		local openlist, closedlist, listk, closedk, tempH, tempG, xsize, ysize, curbase = {}, {}, 1, 0, math.abs(px - tx) + math.abs(py - ty), 0, #map[1], #map, {}
756
		openlist[1] = {x = px, y = py, g = 0, h = tempH, f = 0 + tempH ,par = 1}
757
		local nodenumber = 0
758
		while listk > 0 do
759
			nodenumber = nodenumber + 1
760
			if nodenumber / ScanSkip == math.floor(nodenumber / ScanSkip) then
761
				wait()
762
				if DebugPathing == true then
763
					print("Node", nodenumber)
764
				end
765
			end
766
			closedk = closedk + 1
767
			table.insert(closedlist, closedk, openlist[1])
768
			curbase = closedlist[closedk]
769
			if closedlist[closedk].x == tx and closedlist[closedk].y == ty then
770
				return closedlist
771
			end
772
			openlist[1] = openlist[listk]
773
			table.remove(openlist, listk)
774
			listk = listk - 1
775
			local v = 1
776
			while true do
777
				local u = v
778
				if 2 * u + 1 <= listk then
779
					if openlist[u].f >= openlist[2 * u].f then
780
						v = 2 * u
781
					end
782
					if openlist[v].f >= openlist[2 * u + 1].f then
783
						v = 2 * u + 1
784
					end
785
				elseif 2 * u <= listk then
786
					if openlist[u].f >= openlist[2 * u].f then
787
						v = 2 * u
788
					end
789
				end
790
				if u ~= v then
791
					local temp = openlist[u]
792
					openlist[u] = openlist[v]
793
					openlist[v] = temp
794
				else
795
					break
796
				end
797
			end
798
799
			local tocheck = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}, {-1, -1}, {1, -1}, {-1, 1}, {1, 1}} --[1]Right, [2]Left, [3]Down, [4]Up, [5]UpLeft, [6]UpRight, [7]DownLeft, [8]DownRight
800
			if closedk > 0 then
801
				for k = 1, closedk do
802
					for i, v in pairs(tocheck) do
803
						if closedlist[k].x == curbase.x + v[1] and closedlist[k].y == curbase.y + v[2] then
804
							tocheck[i] = nil
805
						end
806
					end
807
				end
808
			end
809
			for i, v in pairs(tocheck) do
810
				local a = curbase.x + v[1]
811
				local b = curbase.y + v[2]
812
				if a > xsize or a < 1 or b > ysize or b < 1 then
813
					tocheck[i] = nil
814
				end
815
			end
816
			for i, v in pairs(tocheck) do
817
				local a, b = curbase.x + v[1], curbase.y + v[2]
818
				if a <= xsize and a >= 1 and b <= ysize and b >= 1 and map[b][a] ~= 0 then
819
					tocheck[i] = nil
820
				end
821
			end
822
			tempG = curbase.g + 1
823
			tempDiagG = curbase.g + 1.4
824
			for k = 1, listk do
825
				for i, v in pairs(tocheck) do
826
					if openlist[k].x == curbase.x + v[1] and openlist[k].y == curbase.y + 1 and openlist[k].g > tempG then
827
						tempH = math.abs((curbase.x + v[1])-tx) + math.abs((curbase.y + v[1])-ty)
828
						table.insert(openlist, k, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG + tempH, par = closedk})
829
						local m = k
830
						while m ~= 1 do
831
							if openlist[m].f <= openlist[math.floor(m/2)].f then
832
								temp = openlist[math.floor(m/2)]
833
								openlist[math.floor(m/2)] = openlist[m]
834
								openlist[m] = temp
835
								m = math.floor(m/2)
836
							else
837
								break
838
							end
839
							tocheck[i] = nil
840
						end
841
					end
842
				end
843
			end
844
			for i, v in pairs(tocheck) do
845
				listk = listk + 1
846
				tempH = math.abs((curbase.x + v[1]) - tx) + math.abs((curbase.y + v[2]) - ty)
847
				table.insert(openlist, listk, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG+tempH, par = closedk})
848
				m = listk
849
				while m ~= 1 do
850
					if openlist[m].f <= openlist[math.floor(m/2)].f then
851
						temp = openlist[math.floor(m/2)]
852
						openlist[math.floor(m/2)] = openlist[m]
853
						openlist[m] = temp
854
						m = math.floor(m/2)
855
					else
856
						break
857
					end
858
				end
859
			end
860
		end
861
		return nil
862
	end
863
864
865
	function CalcPath(closedlist)
866
867
		if closedlist == nil or table.getn(closedlist) == 1 then
868
			return nil
869
		end
870
		local path = {}
871
		local pathIndex = {}
872
		local last = table.getn(closedlist)
873
		table.insert(pathIndex,1,last)
874
875
		local i = 1
876
		while pathIndex[i] > 1 do
877
			i = i + 1
878
			table.insert(pathIndex, i, closedlist[pathIndex[i - 1]].par)
879
		end 
880
881
		for n = table.getn(pathIndex) - 1, 1, -1 do
882
			table.insert(path, {x = closedlist[pathIndex[n]].x, y = closedlist[pathIndex[n]].y})
883
		end
884
885
		closedlist = nil
886
		return path
887
	end
888
end)
889
Delay(0, function() --Main Artificial Intelligence Scripting/Path Grid Generator
890
	local Base
891
	if script.Parent:FindFirstChild("BASE") == nil then
892
		Base = Instance.new("Part")
893
		Base.Transparency = 1
894
		Base.TopSurface = "Smooth"
895
		Base.BottomSurface = "Smooth"
896
		Base.CanCollide = false
897
		Base.Anchored = true
898
		Base.Locked = true
899
		Base.BrickColor = BrickColor.new(0, 0, 0)
900
		Base.Name = "BASE"
901
		Base.CFrame = CFrame.new(Vector3.new(0, 0, 0))
902
		Base.Parent = script.Parent
903
	else
904
		Base = script.Parent.BASE
905
		Base.CFrame = CFrame.new(Vector3.new(0, 0, 0))
906
	end
907
	function Jump()
908
		script.Parent.Humanoid.Jump = true
909
	end
910
	function Check(Hit)
911
		if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent.Parent ~= nil then
912
			if Hit.Parent:FindFirstChild("Humanoid") == nil and Hit.Parent.Parent:FindFirstChild("Humanoid") == nil then
913
				Jump()
914
			end
915
		end
916
	end
917
	script.Parent.Torso.Touched:connect(Check)
918
	function Prep(Target, Current, Attempts)
919
		if Attempts == nil then
920
			Attempts = 1000
921
		end
922
		local Hit = false
923
		local Tag = Base:Clone()
924
		Tag.Position = Target
925
		Tag.Parent = script.Parent
926
		local TagRay = Ray.new(Tag.CFrame.p, (CFrame.new(Tag.CFrame.p - Vector3.new(0, 3, 0)).p - Tag.CFrame.p).Unit * 40)
927
		local TRHit, TRPos = game.Workspace:FindPartOnRay(TagRay, script.Parent)
928
		if TRHit ~= nil then
929
			Hit = true
930
		end
931
		if Tag.Parent ~= nil then
932
			Tag:Remove()
933
		end
934
		if Hit == false and Attempts > 0 and script.Parent.Wander.Value == true then
935
			Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base, Attempts - 1)
936
		elseif script.Parent.Wander.Value == true then
937
			local TargetRay = Ray.new(script.Parent.Torso.CFrame.p, (CFrame.new(Target).p - script.Parent.Torso.CFrame.p).Unit * ((Target - script.Parent.Torso.Position).Magnitude - 3))
938
			local THit, TPos = game.Workspace:FindPartOnRay(TargetRay, script.Parent)
939
			local TrueTarget = script.Parent.Torso.Position
940
			if THit ~= nil then
941
				for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - TPos).Magnitude) do
942
					local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (TPos - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3)
943
					local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent)
944
					if TH2 ~= nil and TH2.Name ~= "Lava" then
945
						TrueTarget = TP2
946
					else
947
						break
948
					end
949
				end
950
			else
951
				for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - Target).Magnitude) do
952
					local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (Target - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3)
953
					local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent)
954
					if TH2 ~= nil and TH2.Name ~= "Lava" then
955
						TrueTarget = TP2
956
					else
957
						break
958
					end
959
				end
960
			end
961
			script.Parent.Humanoid:MoveTo(TrueTarget, Current)
962
		end
963
	end
964
	function ZHit(Part)
965
		if script.Parent:FindFirstChild("IsAZombie") ~= nil and script.Parent.Humanoid.Health > 0 and Part ~= nil and Part.Parent ~= nil and Part.Parent:FindFirstChild("Humanoid") ~= nil and Part.Parent:FindFirstChild("IsAZombie") == nil then
966
			Part.Parent.Humanoid:TakeDamage(2)
967
			script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + 1
968
			script.Parent.Humanoid:TakeDamage(-1)
969
		end
970
	end
971
	script.Parent["Right Arm"].Touched:connect(ZHit)
972
	script.Parent["Left Arm"].Touched:connect(ZHit)
973
	CurrentMap = {}
974
	MapMask = {}
975
	MapVar = {0, 0, 0, 0, 0}
976
	BlockScanned = 0
977
	ScanSkip = 5
978
	DebugPathing = true
979
	function GenerateMap(PathPos)
980
		CurrentMap = {}
981
		MapMask = {}
982
		MapVar = {0, 0, 0, 0, 0}
983
		BlockScanned = 0
984
		MapVariables = ScanParts(Workspace, 1)
985
		for MapX = 1, math.max(-MapVariables[1], MapVariables[2]) * 2 + 1 do
986
			CurrentMap[MapX] = {}
987
			for MapY = 1, math.max(-MapVariables[3], MapVariables[4]) * 2 + 1 do
988
				CurrentMap[MapX][MapY] = 0
989
			end
990
		end
991
		for MaskX = 1, #CurrentMap do
992
			MapMask[MaskX] = {}
993
			for MaskY = 1, #CurrentMap[MaskX] do
994
				MapMask[MaskX][MaskY] = {MapVariables[1] + MaskX - 0.5, MapVariables[1] + MaskY - 0.5}
995
			end
996
		end
997
		ScanParts(Workspace, 2, MapVariables)
998
		wait(1)
999
		if script.Parent.PrintMap.Value == true then
1000
			print("Printing Map...")
1001
			for ClearPrint = 1, 250 do
1002
				wait()
1003
				print()
1004
			end
1005
			for PrintX = 1, #CurrentMap do
1006
				local PrintZ = ""
1007
				for PrintY = 1, #CurrentMap[PrintX] do
1008
					PrintZ = PrintZ ..CurrentMap[PrintX][PrintY]
1009
				end
1010
				print(PrintZ)
1011
				wait(0.1)
1012
			end
1013
		end
1014
		local MapCoords = {0, 0, 0, 0}
1015
		local Distance = math.huge
1016
		for MPX = 1, #CurrentMap do
1017
			for MPY = 1, #CurrentMap[MPX] do
1018
				if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude < Distance then
1019
					MapCoords = {MPX, MPY, 0, 0}
1020
					Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude
1021
				end
1022
			end
1023
		end
1024
		local Distance = math.huge
1025
		for MPX = 1, #CurrentMap do
1026
			for MPY = 1, #CurrentMap[MPX] do
1027
				if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude < Distance then
1028
					MapCoords = {MapCoords[1], MapCoords[2], math.min(MPX, #CurrentMap) - 1, math.min(MPY, #CurrentMap[1] - 1)}
1029
					Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude
1030
				end
1031
			end
1032
		end
1033
		for i, v in pairs(CalcPath(CalcMoves(CurrentMap, MapCoords[1], MapCoords[2], MapCoords[3], MapCoords[4]))) do
1034
			local Timer = 20
1035
			local pX = v["x"]
1036
			local pY = v["y"]
1037
			local pTo = Vector3.new(MapMask[pX][pY][1], 0, MapMask[pX][pY][2])
1038
			pTo = pTo + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit
1039
			while (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude > 2.5 and Timer > 0 do
1040
				script.Parent.Humanoid:MoveTo(pTo, Base)
1041
				Timer = Timer - 1
1042
				if Timer == 10 then
1043
					script.Parent.Humanoid.Jump = true
1044
				end
1045
				wait(0.1)
1046
			end
1047
			if Timer == 0 then
1048
				if (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude <= 5 then
1049
					script.Parent.Torso.CFrame = script.Parent.Torso.CFrame + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit * (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude
1050
				else
1051
					break
1052
				end
1053
			end
1054
		end
1055
	end
1056
	function ScanParts(CurrentModel, CurrentStage, Variables)
1057
		local X = CurrentModel:GetChildren()
1058
		for I = 1, #X do
1059
			if #X[I]:GetChildren() > 0 then
1060
				ScanParts(X[I], 1, Variables)
1061
			end
1062
			if X[I].ClassName == "Part" or X[I].ClassName == "WedgePart" or X[I].ClassName == "CornerWedgePart" or X[I].ClassName == "TrussPart" or X[I].ClassName == "SpawnLocation" or X[I].ClassName == "Seat" or X[I].ClassName == "VehicleSeat" or X[I].ClassName == "SkateboardPlatform" then
1063
				BlockScanned = BlockScanned + 1
1064
				if BlockScanned / ScanSkip == math.floor(BlockScanned / ScanSkip) then
1065
					wait()
1066
					if DebugPathing == true then
1067
						print("Block", BlockScanned)
1068
					end
1069
				end
1070
				if CurrentStage == 1 then
1071
					MapVar[1] = math.min(math.ceil(X[I].Position.X - X[I].Size.X / 2), MapVar[1])
1072
					MapVar[2] = math.max(math.floor(X[I].Position.X + X[I].Size.X / 2), MapVar[2])
1073
					MapVar[3] = math.min(math.ceil(X[I].Position.Z - X[I].Size.Z / 2), MapVar[3])
1074
					MapVar[4] = math.max(math.floor(X[I].Position.Z + X[I].Size.Z / 2), MapVar[4])
1075
				elseif CurrentStage == 2 and ((X[I].Position.Y + X[I].Size.Y / 2 > script.Parent.Torso.Position.Y + 2 and X[I].Position.Y - X[I].Size.Y / 2 < script.Parent.Torso.Position.Y + 2) or X[I].Position.Y + X[I].Size.Y / 2 < script.Parent.Torso.Position.Y - 8) then
1076
					local BlockStart = {X[I].Position.X - X[I].Size.X / 2, X[I].Position.Z - X[I].Size.Z / 2}
1077
					local BlockEnd = {X[I].Position.X + X[I].Size.X / 2, X[I].Position.Z + X[I].Size.Z / 2}
1078
					local BlockCoords = {0, 0, 0, 0}
1079
					local Distance = math.huge
1080
					for MPX = 1, #CurrentMap do
1081
						for MPY = 1, #CurrentMap[MPX] do
1082
							if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude < Distance then
1083
								BlockCoords = {MPX, MPY, 0, 0}
1084
								Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude
1085
							end
1086
						end
1087
					end
1088
					local Distance = math.huge
1089
					for MPX = 1, #CurrentMap do
1090
						for MPY = 1, #CurrentMap[MPX] do
1091
							if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude < Distance then
1092
								BlockCoords = {BlockCoords[1], BlockCoords[2], MPX, MPY}
1093
								Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude
1094
							end
1095
						end
1096
					end
1097
					for XGrid = BlockCoords[2], BlockCoords[4] do
1098
						for YGrid = BlockCoords[1], BlockCoords[3] do
1099
							CurrentMap[XGrid][YGrid] = 1
1100
						end
1101
					end
1102
				end
1103
			end
1104
		end
1105
		if CurrentStage == 1 then
1106
			MapVar[5] = {MapVar[1] + MapVar[2] / 2, MapVar[3] + MapVar[4] / 2}
1107
			return MapVar
1108
		end
1109
	end
1110
	IsInCombat = false
1111
	while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") == nil do
1112
		local Distance = 100
1113
		local Target = nil
1114
		IsInCombat = false
1115
		local Players = Workspace:GetChildren()
1116
		for Check = 1, #Players do
1117
			if Players[Check] ~= script.Parent and ((Players[Check]:FindFirstChild("Humanoid") ~= nil and (Players[Check]:FindFirstChild("IsAZombie") ~= nil or Players[Check]:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or (script.Parent.IsOnTeam.Value == true and Players[Check]:FindFirstChild("IsOnTeam") ~= nil and Players[Check].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value ~= Players[Check].IsOnTeam.Team.Value) or (game.Players:GetPlayerFromCharacter(Players[Check]) ~= nil and script.Parent.IsOnTeam.Value == true and game.Players:GetPlayerFromCharacter(Players[Check]).Neutral == false and game.Players:GetPlayerFromCharacter(Players[Check]).TeamColor ~= script.Parent.IsOnTeam.Team.Value)) and Players[Check].Humanoid.Health > 0) or (Players[Check]:FindFirstChild("Zombie") ~= nil and Players[Check].Zombie.ClassName == "Humanoid" and Players[Check].Zombie.Health > 0)) and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
1118
				local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
1119
				local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
1120
				if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
1121
					local TeamTag = nil
1122
					local Parts = Players[Check]:GetChildren()
1123
					for X = 1, #Parts do
1124
						if Parts[X].Name == "TeamLoc" then
1125
							if Parts[X].Value == script.Parent.IsOnTeam.Team.Value then
1126
								TeamTag = Parts[X]
1127
							end
1128
						end
1129
					end
1130
					if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil or Parts[X] ~= nil or (Players[Check].Torso.Position - (script.Parent.Torso.Position + script.Parent.Torso.CFrame.lookVector * 50)).Magnitude <= 52 then
1131
						if script.Parent.IsOnTeam.Value == false then
1132
							if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
1133
								Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
1134
							end
1135
							local Found = Instance.new("CFrameValue", Players[Check])
1136
							Found.Name = "Loc" ..script.Parent.Name
1137
							game:GetService("Debris"):AddItem(Found, 3)
1138
						else
1139
							if Parts[X] ~= nil then
1140
								Parts[X]:Remove()
1141
							end
1142
							local Found = Instance.new("BrickColorValue", Players[Check])
1143
							Found.Name = "TeamLoc"
1144
							Found.Value = script.Parent.IsOnTeam.Team.Value
1145
							game:GetService("Debris"):AddItem(Found, 3)
1146
							if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
1147
								Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
1148
							end
1149
							local Found = Instance.new("CFrameValue", Players[Check])
1150
							Found.Name = "Loc" ..script.Parent.Name
1151
							game:GetService("Debris"):AddItem(Found, 3)
1152
						end
1153
					end
1154
					if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
1155
						Target = Players[Check].Torso
1156
						Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
1157
					end
1158
				end
1159
			end
1160
		end
1161
		if Target == nil then
1162
			local HasTool = false
1163
			local ToolCheck = script.Parent:GetChildren()
1164
			for Check = 1, #ToolCheck do
1165
				if ToolCheck[Check].ClassName == "Tool" then
1166
					HasTool = true
1167
				end
1168
			end
1169
			if HasTool == false then
1170
				Distance = 100
1171
				for Check = 1, #Players do
1172
					if Players[Check].ClassName == "Tool" and Players[Check]:FindFirstChild("Handle") ~= nil and Players[Check]:FindFirstChild("Active") ~= nil and Players[Check]:FindFirstChild("TargetPos") ~= nil and Players[Check]:FindFirstChild("Type") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
1173
						local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
1174
						local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
1175
						if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then
1176
							Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude
1177
							Target = Players[Check]
1178
						end
1179
					end
1180
				end
1181
				if Target ~= nil and Target.ClassName == "Tool" then
1182
					if Distance <= 5 and HasTool == false then
1183
						Target.Parent = script.Parent
1184
						HasTool = true
1185
					else
1186
						Prep(Target.Handle.Position, Base)
1187
					end
1188
				else
1189
					for Check = 1, #Players do
1190
						if Players[Check].Name == "Crate" and Players[Check]:FindFirstChild("OpenCrate") ~= nil and Players[Check].OpenCrate.Value == false and (Players[Check].Position - script.Parent.Torso.Position).Magnitude <= Distance then
1191
							local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
1192
							local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
1193
							if Hit ~= nil and Hit == Players[Check] then
1194
								Target = Players[Check]
1195
								Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
1196
							end
1197
						end
1198
					end
1199
					if Target ~= nil then
1200
						script.Parent.Humanoid:MoveTo(Target.Position, Target)
1201
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then
1202
							Target.OpenCrate.Value = true
1203
						end
1204
					else
1205
						local HasHat = false
1206
						local HatCheck = script.Parent:GetChildren()
1207
						for Check = 1, #HatCheck do
1208
							if ToolCheck[Check].ClassName == "Hat" then
1209
								HasHat = true
1210
							end
1211
						end
1212
						if HasHat == false then
1213
							Distance = 100
1214
							for Check = 1, #Players do
1215
								if Players[Check].ClassName == "Hat" and Players[Check]:FindFirstChild("Handle") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
1216
									local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
1217
									local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
1218
									if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then
1219
										Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude
1220
										Target = Players[Check]
1221
									end
1222
								end
1223
							end
1224
							if Target ~= nil and Target.ClassName == "Hat" then
1225
								if Distance <= 5 and HasHat == false then
1226
									Target.Parent = script.Parent
1227
									HasHat = true
1228
								else
1229
									Prep(Target.Handle.Position, Base)
1230
								end
1231
							else
1232
								if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
1233
									if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then
1234
										GenerateMap(script.Parent.PathTo.Value)
1235
										script.Parent.PathTo.Value = Vector3.new(0, 0, 0)
1236
									elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
1237
										Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
1238
									end
1239
								else
1240
									Jump()
1241
								end
1242
							end
1243
						end
1244
					end
1245
				end
1246
			else
1247
				if Target == nil then
1248
					local Distance = 80
1249
					local Players = Workspace:GetChildren()
1250
					for Check = 1, #Players do
1251
						if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check] ~= script.Parent and Players[Check]:FindFirstChild("IsLocalEnemy") == nil and Players[Check]:FindFirstChild("Leader") ~= nil and Players[Check].Humanoid.Health > 0 and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
1252
							local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
1253
							local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
1254
							if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
1255
								Target = Players[Check].Torso
1256
								Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
1257
							end
1258
						end
1259
					end
1260
					if Target ~= nil then
1261
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 10
1262
						Prep(Position, Base)
1263
					else
1264
						if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
1265
							if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then
1266
								GenerateMap(script.Parent.PathTo.Value)
1267
								script.Parent.PathTo.Value = Vector3.new(0, 0, 0)
1268
							elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
1269
								Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
1270
							end
1271
						else
1272
							Jump()
1273
						end
1274
					end
1275
				else
1276
					if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
1277
						if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then
1278
							GenerateMap(script.Parent.PathTo.Value)
1279
							script.Parent.PathTo.Value = Vector3.new(0, 0, 0)
1280
						elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
1281
							Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
1282
						end
1283
					else
1284
						Jump()
1285
					end
1286
				end
1287
			end
1288
		else
1289
			local Weapon = nil
1290
			local ToolCheck = script.Parent:GetChildren()
1291
			for Check = 1, #ToolCheck do
1292
				if ToolCheck[Check].ClassName == "Tool" then
1293
					Weapon = ToolCheck[Check]
1294
				end
1295
			end
1296
			if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
1297
				if Weapon.Type.Value == "Melee" then
1298
					Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
1299
					if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then
1300
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1301
						Weapon.Active.Value = true
1302
					end
1303
				elseif Weapon.Type.Value == "Melee/Ranged" then
1304
					if Distance <= 10 then
1305
						Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
1306
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1307
						Weapon.Active.Value = true
1308
					else
1309
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Base)
1310
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 50 then
1311
							Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1312
							Weapon.Active.Value = true
1313
						end
1314
					end
1315
				elseif Weapon.Type.Value == "Melee/RangedMed" then
1316
					if Distance <= 10 then
1317
						Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
1318
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1319
						Weapon.Active.Value = true
1320
					else
1321
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base)
1322
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 40 then
1323
							Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1324
							Weapon.Active.Value = true
1325
						end
1326
					end
1327
				elseif Weapon.Type.Value == "Melee/RangedClose" then
1328
					if Distance <= 10 then
1329
						Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
1330
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1331
						Weapon.Active.Value = true
1332
					else
1333
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Base)
1334
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 30 then
1335
							Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1336
							Weapon.Active.Value = true
1337
						end
1338
					end
1339
				elseif Weapon.Type.Value == "Ranged" then
1340
					Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base)
1341
					Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1342
					wait()
1343
					Weapon.Active.Value = true
1344
				elseif Weapon.Type.Value == "RangedMed" then
1345
					Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 60, Base)
1346
					if Distance <= 70 then
1347
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1348
						wait()
1349
						Weapon.Active.Value = true
1350
					end
1351
				elseif Weapon.Type.Value == "RangedClose" then
1352
					Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base)
1353
					if Distance <= 40 then
1354
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1355
						wait()
1356
						Weapon.Active.Value = true
1357
					end
1358
				elseif Weapon.Type.Value == "RangedAngle" and Distance <= 100 then
1359
					local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * (script.Parent.Torso.Position - Target.Position).Magnitude + Target.Velocity
1360
					script.Parent.Humanoid:MoveTo(Position, Base)
1361
					Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1362
					wait()
1363
					Weapon.Active.Value = true
1364
				elseif Weapon.Type.Value == "RangedTactical" then
1365
					if Distance <= 30 then
1366
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 50
1367
						Prep(Position, Base)
1368
					elseif Distance >= 50 then
1369
						Prep(Target.Position, Target)
1370
					end
1371
					if Distance <= 50 and Distance >= 30 then
1372
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Target.Parent.Torso)
1373
					end
1374
					if Distance <= 60 then
1375
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1376
						wait()
1377
						Weapon.Active.Value = true
1378
					end
1379
				elseif Weapon.Type.Value == "Shuriken" then
1380
					if Distance <= 15 then
1381
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20
1382
						Prep(Position, Base)
1383
					elseif Distance >= 30 then
1384
						Prep(Target.Position, Target)
1385
					end
1386
					if Distance <= 30 and Distance >= 15 then
1387
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Target.Parent.Torso)
1388
					end
1389
					if Distance <= 50 then
1390
						Weapon.TargetPos.Value = (Target.Position + Target.Velocity / 2) + Vector3.new(math.random(-2, 2), math.random(-2, 2) + ((Target.Position + Target.Velocity / 2) - script.Parent.Torso.Position).Magnitude / 8, math.random(-2, 2))
1391
						wait()
1392
						Weapon.Active.Value = true
1393
					end
1394
				elseif Weapon.Type.Value == "HealDrink" then
1395
					local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120
1396
					Prep(Position, Base)
1397
					if script.Parent.Humanoid.Health < script.Parent.Humanoid.MaxHealth then
1398
						Weapon.Active.Value = true
1399
					end
1400
				elseif Weapon.Type.Value == "GrenadeDirect" then
1401
					if Distance >= 80 and Distance <= 100 then
1402
						Prep(Target.Position, Target)
1403
						wait(0.5)
1404
						Weapon.Active.Value = true
1405
						wait(0.5)
1406
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100
1407
						Prep(Position, Base)
1408
					else
1409
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100
1410
						Prep(Position, Base)
1411
					end
1412
				elseif Weapon.Type.Value == "Bomb" then
1413
					if Distance > 10 then
1414
						Prep(Target.Position, Target)
1415
					elseif Distance <= 10 then
1416
						Weapon.Active.Value = true
1417
						wait(2)
1418
						while Weapon ~= nil and Weapon:FindFirstChild("Handle") ~= nil and Weapon.Handle.Transparency == 1 do
1419
							Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base)
1420
							wait(0.5)
1421
						end
1422
					end
1423
				elseif Weapon.Type.Value == "Backstab" then
1424
					if Distance >= 10 then
1425
						if (script.Parent.Torso.Position - (Target.Position + Target.CFrame.lookVector * 50)).Magnitude <= 52 then
1426
							Prep(Target.Position, Target)
1427
						else
1428
							if (script.Parent.Torso.Position - (Target.Position - Target.CFrame.lookVector * 15)).Magnitude <= 5 then
1429
								Prep(Target.Position, Base)
1430
								local backstab_time = 20
1431
								while backstab_time > 1 and (script.Parent.Torso.Position - Target.Position).Magnitude >= 4 do
1432
									wait(0.1)
1433
									backstab_time = backstab_time - 1
1434
								end
1435
								if (script.Parent.Torso.Position - Target.Position).Magnitude < 4 then
1436
									Weapon.Active.Value = true
1437
								end
1438
							else
1439
								Prep(Target.Position - Target.CFrame.lookVector * 15, Base)
1440
							end
1441
						end
1442
					else
1443
						Prep(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target)
1444
						if Distance <= 5 then
1445
							Weapon.Active.Value = true
1446
						end
1447
					end
1448
				elseif Weapon.Type.Value == "Crossbow" then
1449
					if Distance > 80 then
1450
						Prep(Target.Position, Target)
1451
					elseif Distance < 40 then
1452
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100, Base)
1453
					elseif Distance <= 80 and Distance >= 40 then
1454
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * ((script.Parent.Torso.Position - Target.Position).Magnitude - 5), Base)
1455
						wait(0.2)
1456
						Weapon.TargetPos.Value = Target.Position + Target.Velocity / 8 + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
1457
						Weapon.Active.Value = true
1458
					end
1459
				end
1460
				IsInCombat = true
1461
			elseif Distance <= 100 then
1462
				local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120
1463
				Prep(Position, Base)
1464
			end
1465
		end
1466
		if IsInCombat == true then
1467
			wait(0.2)
1468
		else
1469
			wait(0.6)
1470
		end
1471
	end
1472
	local Weapon = nil
1473
	local ToolCheck = script.Parent:GetChildren()
1474
	for Check = 1, #ToolCheck do
1475
		if ToolCheck[Check].ClassName == "Tool" then
1476
			Weapon = ToolCheck[Check]
1477
		end
1478
	end
1479
	if Weapon ~= nil and script.Parent.DropWeapon.Value == true then
1480
		Weapon.Parent = Workspace
1481
	elseif Weapon ~= nil then
1482
		Weapon:Remove()
1483
	end
1484
	if script.Parent:FindFirstChild("IsAZombie") ~= nil then
1485
		script.Parent.Name = "New Zombie"
1486
		script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + math.random(math.random(-50, -25), math.random(25, math.random(50, 100)))
1487
		wait()
1488
		script.Parent.Humanoid.Health = script.Parent.Humanoid.MaxHealth
1489
		script.Parent.Humanoid.WalkSpeed = script.Parent.Humanoid.WalkSpeed + math.random(math.random(-200, 0), math.random(100, math.random(200, 300))) / 100
1490
		ZStat = 2
1491
		ZStat2 = 1.57
1492
		Delay(1, function()
1493
			while script.Parent:FindFirstChild("Humanoid") ~= nil and script.Parent.Humanoid.Health > 0 do
1494
				script.Parent.Humanoid.MaxHealth = math.max(0, script.Parent.Humanoid.MaxHealth - 1)
1495
				script.Parent.Humanoid.Health = math.min(script.Parent.Humanoid.Health, script.Parent.Humanoid.MaxHealth)
1496
				wait(1)
1497
			end
1498
		end)
1499
		while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") ~= nil do
1500
			local Distance = 100
1501
			local Target = nil
1502
			local Players = Workspace:GetChildren()
1503
			for Check = 1, #Players do
1504
				if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check]:FindFirstChild("Torso") ~= nil and Players[Check]:FindFirstChild("IsAZombie") == nil and Players[Check].Humanoid.Health > 0 and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
1505
					local ZRay = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
1506
					local ZHit, ZPos = Workspace:FindPartOnRay(ZRay, script.Parent)
1507
					if Players[Check]:FindFirstChild("ZFound") ~= nil or (ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check])) then
1508
						if ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check]) then
1509
							if Players[Check]:FindFirstChild("ZFound") ~= nil then
1510
								Players[Check].ZFound:Remove()
1511
							end
1512
							local ZTag = Instance.new("CFrameValue", Players[Check])
1513
							ZTag.Name = "ZFound"
1514
							game:GetService("Debris"):AddItem(ZTag, 5)
1515
						end
1516
						if (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
1517
							Target = Players[Check].Torso
1518
							Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
1519
						end
1520
					end
1521
				end
1522
			end
1523
			if Target == nil then
1524
				if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
1525
					if math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
1526
						Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
1527
					end
1528
				else
1529
					Jump()
1530
				end
1531
			elseif script.Parent.Wander.Value == true then
1532
				script.Parent.Humanoid:MoveTo(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target)
1533
			end
1534
			wait(0.8)
1535
		end
1536
	end
1537
end)
1538
Delay(0, function() --Random Tool Usage Script
1539
	while true do
1540
		wait(math.random(40, 70 + math.random(30, 120)) / 10)
1541
		local Weapon = nil
1542
		local ToolCheck = script.Parent:GetChildren()
1543
		for Check = 1, #ToolCheck do
1544
			if ToolCheck[Check].ClassName == "Tool" then
1545
				Weapon = ToolCheck[Check]
1546
			end
1547
		end
1548
		if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
1549
			if Weapon.Type.Value == "HealDrink" then
1550
				Weapon.Active.Value = true
1551
			end
1552
		end
1553
	end
1554
end)
1555
Delay(1, function() --Player Customization Script
1556
	if script.Parent["Custom_Name"].Value == "" then
1557
		script.Parent.Name = "Player" ..math.random(1, 999)
1558
	else
1559
		script.Parent.Name = script.Parent["Custom_Name"].Value
1560
	end
1561
	BColors = {3, 5, 12, 18, 108, 128, 138, 224, 224, 226, 226}
1562
	SColors = {145, 146, 147, 148, 149, 150, 168, 176, 178, 179, 200}
1563
	PColors = {190, 191, 193, 1024, 1025, 1026, 1027, 1028, 1029, 1030}
1564
	BColor = BrickColor.new(BColors[math.random(1, #BColors)])
1565
	SColor = BrickColor.new(SColors[math.random(1, #SColors)])
1566
	PColor = BrickColor.new(PColors[math.random(1, #PColors)])
1567
	if script.Parent.IsOnTeam.Value == true then
1568
		SColor = script.Parent.IsOnTeam.Team.Value
1569
		PColor = SColor
1570
		if script.Parent.IsOnTeam.ShowTag.Value == true then
1571
			script.Parent.Name = script.Parent.Name .." [" ..script.Parent.IsOnTeam.Team.Value.Name .."]"
1572
		end
1573
	end
1574
	if script.Parent["Body Colors"].ForceColors.Value ~= true then
1575
		script.Parent["Body Colors"].HeadColor = BColor
1576
		script.Parent["Body Colors"].LeftArmColor = BColor
1577
		script.Parent["Body Colors"].LeftLegColor = PColor
1578
		script.Parent["Body Colors"].RightArmColor = BColor
1579
		script.Parent["Body Colors"].RightLegColor = PColor
1580
		script.Parent["Body Colors"].TorsoColor = SColor
1581
	end
1582
	script.Parent.Head.BrickColor = script.Parent["Body Colors"].HeadColor
1583
	script.Parent["Left Arm"].BrickColor = script.Parent["Body Colors"].LeftArmColor
1584
	script.Parent["Left Leg"].BrickColor = script.Parent["Body Colors"].LeftLegColor
1585
	script.Parent["Right Arm"].BrickColor = script.Parent["Body Colors"].RightArmColor
1586
	script.Parent["Right Leg"].BrickColor = script.Parent["Body Colors"].RightLegColor
1587
	script.Parent.Torso.BrickColor = script.Parent["Body Colors"].TorsoColor
1588
	if script.Parent["Force_Weapon"].Value ~= 0 then
1589
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Weapon"].Value)
1590
		local c = x:GetChildren()
1591
		for i = 1, #c do
1592
			if c[i].ClassName == "Tool" and c[i]:FindFirstChild("AIProgram") ~= nil and c[i]:FindFirstChild("Active") ~= nil and c[i]:FindFirstChild("TargetPos") ~= nil and c[i]:FindFirstChild("Type") ~= nil and c[i]:FindFirstChild("Handle") ~= nil then
1593
				c[i].Parent = script.Parent
1594
				script.Parent.DropWeapon.Value = false
1595
			end
1596
		end
1597
	end
1598
	if script.Parent["Force_Hat"].Value ~= 0 then
1599
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Hat"].Value)
1600
		local c = x:GetChildren()
1601
		for i = 1, #c do
1602
			if c[i].ClassName == "Hat" and c[i]:FindFirstChild("Handle") ~= nil then
1603
				c[i].Parent = script.Parent
1604
			end
1605
		end
1606
	end
1607
	if script.Parent["Force_Shirt"].Value ~= 0 then
1608
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Shirt"].Value)
1609
		local c = x:GetChildren()
1610
		for i = 1, #c do
1611
			if c[i].ClassName == "Shirt" then
1612
				c[i].Parent = script.Parent
1613
			end
1614
		end
1615
	end
1616
	if script.Parent["Force_Pants"].Value ~= 0 then
1617
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Pants"].Value)
1618
		local c = x:GetChildren()
1619
		for i = 1, #c do
1620
			if c[i].ClassName == "Pants" then
1621
				c[i].Parent = script.Parent
1622
			end
1623
		end
1624
	end
1625
end)
1626
wait()
1627
print("Player Bot Loaded")
1628
end))
1629
Model0.Name=targetPart.Parent.Name
1630
Model0.Torso.Touched:connect(function(h)
1631
	if h.Parent.Name==Model0.Name  then
1632
		h.Parent:BreakJoints()
1633
		Model0:remove()
1634
	end
1635
end)
1636
Model0.Torso.Position=Character.Torso.Position
1637
for i,v in pairs(mas:GetChildren()) do
1638
	v.Parent = game:GetService("Players").LocalPlayer.Character
1639
	pcall(function() v:MakeJoints() end)
1640
end
1641
mas:Destroy()
1642
for i,v in pairs(cors) do
1643
	spawn(function()
1644
		pcall(v)
1645
	end)
1646
end
1647
end
1648
1649
function yclone()
1650
1651
--Converted with ttyyuu12345's model to script plugin v4
1652
function sandbox(var,func)
1653
	local env = getfenv(func)
1654
	local newenv = setmetatable({},{
1655
		__index = function(self,k)
1656
			if k=="script" then
1657
				return var
1658
			else
1659
				return env[k]
1660
			end
1661
		end,
1662
	})
1663
	setfenv(func,newenv)
1664
	return func
1665
end
1666
cors = {}
1667
mas = Instance.new("Model",game:GetService("Lighting"))
1668
Model0 = Instance.new("Model")
1669
Model0.Name =Player.Name .."'s clone"
1670
Part1 = Instance.new("Part")
1671
SpecialMesh2 = Instance.new("SpecialMesh")
1672
Decal3 = Instance.new("Decal")
1673
Part4 = Instance.new("Part")
1674
Decal5 = Instance.new("Decal")
1675
Motor6 = Instance.new("Motor")
1676
Motor7 = Instance.new("Motor")
1677
Motor8 = Instance.new("Motor")
1678
Motor9 = Instance.new("Motor")
1679
Motor10 = Instance.new("Motor")
1680
Part11 = Instance.new("Part")
1681
Part12 = Instance.new("Part")
1682
Part13 = Instance.new("Part")
1683
Part14 = Instance.new("Part")
1684
Humanoid15 = Instance.new("Humanoid")
1685
BodyColors16 = Instance.new("BodyColors")
1686
Script17 = Instance.new("Script")
1687
Model0.Name = "Clone"
1688
Model0.Parent = mas
1689
Model0.PrimaryPart = Part1
1690
Part1.Name = "Head"
1691
Part1.Parent = Model0
1692
Part1.BrickColor = BrickColor.new("Bright yellow")
1693
Part1.FormFactor = Enum.FormFactor.Symmetric
1694
Part1.Size = Vector3.new(2, 1, 1)
1695
Part1.CFrame = CFrame.new(6.34995413, 4.50001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
1696
Part1.TopSurface = Enum.SurfaceType.Smooth
1697
Part1.Color = Color3.new(0.960784, 0.803922, 0.188235)
1698
Part1.Position = Vector3.new(6.34995413, 4.50001717, 23.1599998)
1699
Part1.Color = Color3.new(0.960784, 0.803922, 0.188235)
1700
SpecialMesh2.Parent = Part1
1701
SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25)
1702
SpecialMesh2.Scale = Vector3.new(1.25, 1.25, 1.25)
1703
Decal3.Name = "face"
1704
Decal3.Parent = Part1
1705
Decal3.Texture = "rbxasset://textures/face.png"
1706
Part4.Name = "Torso"
1707
Part4.Parent = Model0
1708
Part4.BrickColor = BrickColor.new("Bright blue")
1709
Part4.FormFactor = Enum.FormFactor.Symmetric
1710
Part4.Size = Vector3.new(2, 2, 1)
1711
Part4.CFrame = CFrame.new(6.34995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
1712
Part4.LeftSurface = Enum.SurfaceType.Weld
1713
Part4.RightSurface = Enum.SurfaceType.Weld
1714
Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451)
1715
Part4.Position = Vector3.new(6.34995413, 3.00001717, 23.1599998)
1716
Part4.Color = Color3.new(0.0509804, 0.411765, 0.67451)
1717
Decal5.Name = "roblox"
1718
Decal5.Parent = Part4
1719
Motor6.Name = "Right Shoulder"
1720
Motor6.Parent = Part4
1721
Motor6.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1722
Motor6.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1723
Motor6.Part0 = Part4
1724
Motor6.Part1 = Part12
1725
Motor6.MaxVelocity = 0.15000000596046
1726
Motor7.Name = "Left Shoulder"
1727
Motor7.Parent = Part4
1728
Motor7.C0 = CFrame.new(-1, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
1729
Motor7.C1 = CFrame.new(0.5, 0.5, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
1730
Motor7.Part0 = Part4
1731
Motor7.Part1 = Part11
1732
Motor7.MaxVelocity = 0.15000000596046
1733
Motor8.Name = "Right Hip"
1734
Motor8.Parent = Part4
1735
Motor8.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1736
Motor8.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
1737
Motor8.Part0 = Part4
1738
Motor8.Part1 = Part14
1739
Motor8.MaxVelocity = 0.10000000149012
1740
Motor9.Name = "Left Hip"
1741
Motor9.Parent = Part4
1742
Motor9.C0 = CFrame.new(-1, -1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
1743
Motor9.C1 = CFrame.new(-0.5, 1, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
1744
Motor9.Part0 = Part4
1745
Motor9.Part1 = Part13
1746
Motor9.MaxVelocity = 0.10000000149012
1747
Motor10.Name = "Neck"
1748
Motor10.Parent = Part4
1749
Motor10.C0 = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
1750
Motor10.C1 = CFrame.new(0, -0.5, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
1751
Motor10.Part0 = Part4
1752
Motor10.Part1 = Part1
1753
Motor10.MaxVelocity = 0.10000000149012
1754
Part11.Name = "Left Arm"
1755
Part11.Parent = Model0
1756
Part11.BrickColor = BrickColor.new("Bright yellow")
1757
Part11.CanCollide = false
1758
Part11.FormFactor = Enum.FormFactor.Symmetric
1759
Part11.Size = Vector3.new(1, 2, 1)
1760
Part11.CFrame = CFrame.new(4.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
1761
Part11.Color = Color3.new(0.960784, 0.803922, 0.188235)
1762
Part11.Position = Vector3.new(4.84995413, 3.00001717, 23.1599998)
1763
Part11.Color = Color3.new(0.960784, 0.803922, 0.188235)
1764
Part12.Name = "Right Arm"
1765
Part12.Parent = Model0
1766
Part12.BrickColor = BrickColor.new("Bright yellow")
1767
Part12.CanCollide = false
1768
Part12.FormFactor = Enum.FormFactor.Symmetric
1769
Part12.Size = Vector3.new(1, 2, 1)
1770
Part12.CFrame = CFrame.new(7.84995413, 3.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
1771
Part12.Color = Color3.new(0.960784, 0.803922, 0.188235)
1772
Part12.Position = Vector3.new(7.84995413, 3.00001717, 23.1599998)
1773
Part12.Color = Color3.new(0.960784, 0.803922, 0.188235)
1774
Part13.Name = "Left Leg"
1775
Part13.Parent = Model0
1776
Part13.BrickColor = BrickColor.new("Br. yellowish green")
1777
Part13.CanCollide = false
1778
Part13.FormFactor = Enum.FormFactor.Symmetric
1779
Part13.Size = Vector3.new(1, 2, 1)
1780
Part13.CFrame = CFrame.new(5.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
1781
Part13.BottomSurface = Enum.SurfaceType.Smooth
1782
Part13.TopSurface = Enum.SurfaceType.Inlet
1783
Part13.Color = Color3.new(0.643137, 0.741176, 0.278431)
1784
Part13.Position = Vector3.new(5.84995413, 1.00001717, 23.1599998)
1785
Part13.Color = Color3.new(0.643137, 0.741176, 0.278431)
1786
Part14.Name = "Right Leg"
1787
Part14.Parent = Model0
1788
Part14.BrickColor = BrickColor.new("Br. yellowish green")
1789
Part14.CanCollide = false
1790
Part14.FormFactor = Enum.FormFactor.Symmetric
1791
Part14.Size = Vector3.new(1, 2, 1)
1792
Part14.CFrame = CFrame.new(6.84995413, 1.00001717, 23.1599998, 1, 0, 0, 0, 1, 0, 0, 0, 1)
1793
Part14.BottomSurface = Enum.SurfaceType.Smooth
1794
Part14.TopSurface = Enum.SurfaceType.Inlet
1795
Part14.Color = Color3.new(0.643137, 0.741176, 0.278431)
1796
Part14.Position = Vector3.new(6.84995413, 1.00001717, 23.1599998)
1797
Part14.Color = Color3.new(0.643137, 0.741176, 0.278431)
1798
Humanoid15.Parent = Model0
1799
Humanoid15.NameOcclusion = Enum.NameOcclusion.NoOcclusion
1800
Humanoid15.RightLeg = Part14
1801
Humanoid15.LeftLeg = Part13
1802
Humanoid15.Torso = Part4
1803
BodyColors16.Parent = Model0
1804
BodyColors16.HeadColor = BrickColor.new("Bright yellow")
1805
BodyColors16.LeftArmColor = BrickColor.new("Bright yellow")
1806
BodyColors16.LeftLegColor = BrickColor.new("Br. yellowish green")
1807
BodyColors16.RightArmColor = BrickColor.new("Bright yellow")
1808
BodyColors16.RightLegColor = BrickColor.new("Br. yellowish green")
1809
BodyColors16.TorsoColor = BrickColor.new("Bright blue")
1810
Script17.Name = "Full Animation"
1811
Script17.Parent = Model0
1812
table.insert(cors,sandbox(Script17,function()
1813
--[[Made by Jammer622 @[http://www.roblox.com/Advanced-Player-AI-item?id=59391730],
1814
This is the ORIGINAL model, if you see others, they are stolen.
1815
Scripts mixed from vanilla Animate, Health, and Sound,
1816
with much custom content by myself, making them great AIs.
1817
No help from Miked's scripts, I made my own joint script.
1818
If you find any glitches, bugs, or just want to suggest an idea, please message me.
1819
My team works hard on these AIs, please don't make attempts to steal them.
1820
Your feedback is extremely appreciated!
1821
1822
	_---=CREDITS=---_
1823
The Roblox Team		Without them, none of this would be possible.
1824
	Vanilla Sound
1825
	Vanilla Health
1826
	Vanilla Animate
1827
Jammer622				That's me, main programmer and weapon publisher.
1828
	Main Developer
1829
	Health GUI Script
1830
	Animation Work
1831
	Relationship Work
1832
	Wandering
1833
	Pathing (Map Generation)
1834
	Weapon Usage
1835
	Weapon (Re)Publishing
1836
		Sonypony458
1837
			McDonalds Drink
1838
	Customization
1839
	Teamwork AI
1840
	Model Variables
1841
	Setting Wiki [Below]
1842
Macdeath					I owe it to him for keeping me on track during this.
1843
	Feature Inspiration
1844
	Problem Solving
1845
	Suggestions
1846
lah30303					Amazing pathing work goes to this fine sir.
1847
	Pathing (Pathing Generation/System)
1848
1849
	_---=SETTINGS=---_
1850
Inside this model's file, you'll find several values that can be changed.
1851
	DropWeapon					-This sets whether or not the bot will drop any equipped weapon upon dying.
1852
	Force_Pants					-This must be set through Spawners.
1853
	Force_Shirt					-This must be set through Spawners.
1854
	Force_Weapon				-This must be set through Spawners.
1855
	Force_Hat					-This must be set through Spawners.
1856
	IgnoreCombatFF				-This sets whether or not the bot will allow friendly fire during combat.
1857
	IsAPlayer					-This is a tag to specify this bot's existance to other AIs.
1858
	IsOnTeam						-This sets whether or not the bot is on a team.
1859
		ShowTag					-This sets whether or not the bot's team color name shows up beside its own.
1860
		Team						-This sets the bot's team color.
1861
	PathTo						-This is an experimental pathfinding engine. Use at your own risk!
1862
	PrintMap						-This prints maps generated when using PathTo. Use at your own risk!
1863
	Respawn						-This sets whether the bot will respawn or not upon death.
1864
	Custom_Name					-This must be set through Spawners.
1865
	Wander						-This sets whether the bot is stationary or if it moves, but not if it uses weapons or not.
1866
]]
1867
print("Player Bot Loading")
1868
Delay(0, function() --Vanilla Sound
1869
	function waitForChild(parent, childName)
1870
		local child = parent:findFirstChild(childName)
1871
		if child then return child end
1872
		while true do
1873
			child = parent.ChildAdded:wait()
1874
			if child.Name==childName then return child end
1875
		end
1876
	end
1877
	function newSound(id)
1878
		local sound = Instance.new("Sound")
1879
		sound.SoundId = id
1880
		sound.archivable = false
1881
		sound.Parent = script.Parent.Head
1882
		return sound
1883
	end
1884
	local sDied = newSound("rbxasset://sounds/uuhhh.wav")
1885
	local sFallingDown = newSound("rbxasset://sounds/splat.wav")
1886
	local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
1887
	local sGettingUp = newSound("rbxasset://sounds/hit.wav")
1888
	local sJumping = newSound("rbxasset://sounds/button.wav")
1889
	local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
1890
	sRunning.Looped = true
1891
	local Figure = script.Parent
1892
	local Head = waitForChild(Figure, "Head")
1893
	local Humanoid = waitForChild(Figure, "Humanoid")
1894
	function onDied()
1895
		sDied:Play()
1896
	end
1897
	function onState(state, sound)
1898
		if state then
1899
			sound:Play()
1900
		else
1901
			sound:Pause()
1902
		end
1903
	end
1904
	function onRunning(speed)
1905
		if speed>0 then
1906
			sRunning:Play()
1907
		else
1908
			sRunning:Pause()
1909
		end
1910
	end
1911
	
1912
	Humanoid.Died:connect(onDied)
1913
	Humanoid.Running:connect(onRunning)
1914
	Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
1915
	Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
1916
	Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
1917
	Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
1918
end)
1919
Delay(0, function() --Vanilla Health
1920
	function waitForChild(parent, childName)
1921
		local child = parent:findFirstChild(childName)
1922
		if child then return child end
1923
		while true do
1924
			child = parent.ChildAdded:wait()
1925
			if child.Name==childName then return child end
1926
		end
1927
	end
1928
	local Figure = script.Parent
1929
	local Humanoid = waitForChild(Figure, "Humanoid")
1930
	local regening = false
1931
	function regenHealth()
1932
		if regening then return end
1933
		regening = true
1934
		while Humanoid.Health < Humanoid.MaxHealth do
1935
			local s = wait(1)
1936
			local health = Humanoid.Health
1937
			if health > 0 and health < Humanoid.MaxHealth then
1938
				local newHealthDelta = 0.01 * s * Humanoid.MaxHealth
1939
				health = health + newHealthDelta
1940
				Humanoid.Health = math.min(health,Humanoid.MaxHealth)
1941
			end
1942
		end
1943
		if Humanoid.Health > Humanoid.MaxHealth then
1944
			Humanoid.Health = Humanoid.MaxHealth
1945
		end
1946
		regening = false
1947
	end
1948
	Humanoid.HealthChanged:connect(regenHealth)
1949
end)
1950
Delay(0, function() --Vanilla Animate, Multiple Additions
1951
	function waitForChild(parent, childName)
1952
		local child = parent:findFirstChild(childName)
1953
		if child then return child end
1954
		while true do
1955
			child = parent.ChildAdded:wait()
1956
			if child.Name==childName then return child end
1957
		end
1958
	end
1959
	local Figure = script.Parent
1960
	local Clone = Figure:Clone()
1961
	local Torso = waitForChild(Figure, "Torso")
1962
	local Joints = Torso:GetChildren()
1963
	for All = 1, #Joints do
1964
		if Joints.className == "Motor" or Joints.className == "Motor6D" then
1965
			Joints[All]:Remove()
1966
		end
1967
	end
1968
	local RightShoulder = Instance.new("Motor")
1969
	local LeftShoulder = Instance.new("Motor")
1970
	local RightHip = Instance.new("Motor")
1971
	local LeftHip = Instance.new("Motor")
1972
	local Neck = Instance.new("Motor")
1973
	local Humanoid = waitForChild(Figure, "Humanoid")
1974
	ZStat = 1
1975
	ZStat2 = 0
1976
	local pose = "Standing"
1977
	RightShoulder.Part0 = Torso
1978
	RightShoulder.Part1 = Figure["Right Arm"]
1979
	RightShoulder.MaxVelocity = 0.15
1980
	RightShoulder.Name = "Right Shoulder"
1981
	RightShoulder.C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1982
	RightShoulder.C1 = CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1983
	RightShoulder.Parent = Torso
1984
	LeftShoulder.Part0 = Torso
1985
	LeftShoulder.Part1 = Figure["Left Arm"]
1986
	LeftShoulder.MaxVelocity = 0.15
1987
	LeftShoulder.Name = "Left Shoulder"
1988
	LeftShoulder.C0 = CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1989
	LeftShoulder.C1 = CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
1990
	LeftShoulder.Parent = Torso
1991
	RightHip.Part0 = Torso
1992
	RightHip.Part1 = Figure["Right Leg"]
1993
	RightHip.MaxVelocity = 0.1
1994
	RightHip.Name = "Right Hip"
1995
	RightHip.C0 = CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1996
	RightHip.C1 = CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
1997
	RightHip.Parent = Torso
1998
	LeftHip.Part0 = Torso
1999
	LeftHip.Part1 = Figure["Left Leg"]
2000
	LeftHip.MaxVelocity = 0.1
2001
	LeftHip.Name = "Left Hip"
2002
	LeftHip.C0 = CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
2003
	LeftHip.C1 = CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0)
2004
	LeftHip.Parent = Torso
2005
	Neck.Part0 = Torso
2006
	Neck.Part1 = Figure["Head"]
2007
	Neck.MaxVelocity = 0.1
2008
	Neck.Name = "Neck"
2009
	Neck.C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
2010
	Neck.C1 = CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
2011
	Neck.Parent = Torso
2012
	local toolAnim = "None"
2013
	local toolAnimTime = 0
2014
	SpawnModel = Instance.new("Model")
2015
	function onRunning(speed)
2016
		if speed>0 then
2017
			pose = "Running"
2018
		else
2019
			pose = "Standing"
2020
		end
2021
	end
2022
	function CheckTag(Tag)
2023
		if script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
2024
			if Tag.Value.Character:FindFirstChild("IsLocalEnemy") == nil then
2025
				if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == Tag.Value.TeamColor) or script.Parent.IsOnTeam.Value == false then
2026
					local Tag2 = Instance.new("CFrameValue", Tag.Value.Character)
2027
					Tag2.Name = "IsLocalEnemy"
2028
					print(Tag.Value.Character.Name .." Has Become An Outlaw")
2029
				end
2030
			end
2031
			if Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
2032
				Tag.Value.Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
2033
			end
2034
			local Found = Instance.new("CFrameValue", Tag.Value.Character)
2035
			Found.Name = "Loc" ..script.Parent.Name
2036
			game:GetService("Debris"):AddItem(Found, 3)
2037
		elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Players:FindFirstChild(Tag.Value) ~= nil and game.Players[Tag.Value].Character ~= nil then
2038
			if game.Players[Tag.Value].Character:FindFirstChild("IsLocalEnemy") == nil then
2039
				if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and script.Parent.IsOnTeam.Team.Value == game.Players[Tag.Value].TeamColor) or script.Parent.IsOnTeam.Value == false then
2040
					local Tag2 = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
2041
					Tag2.Name = "IsLocalEnemy"
2042
					print(Tag.Value .." Has Become An Outlaw")
2043
				end
2044
			end
2045
			if game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
2046
				game.Players[Tag.Value].Character:FindFirstChild("Loc" ..script.Parent.Name):Remove()
2047
			end
2048
			local Found = Instance.new("CFrameValue", game.Players[Tag.Value].Character)
2049
			Found.Name = "Loc" ..script.Parent.Name
2050
			game:GetService("Debris"):AddItem(Found, 3)
2051
		elseif script.Parent:FindFirstChild("IsLocalEnemy") == nil and script.Parent:FindFirstChild("IsAZombie") == nil and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
2052
			if game.Workspace[Tag.Value]:FindFirstChild("IsLocalEnemy") == nil then
2053
				if (script.Parent.IsOnTeam.Value == true and IsInCombat == false and Workspace[Tag.Value].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value == Workspace[Tag.Value].IsOnTeam.Team.Value) or script.Parent.IsOnTeam.Value == false or Workspace[Tag.Value].IsOnTeam.Value == false then
2054
					local Tag2 = Instance.new("CFrameValue", game.Workspace[Tag.Value])
2055
					Tag2.Name = "IsLocalEnemy"
2056
					print(Tag.Value .." Has Become An Outlaw")
2057
				end
2058
			end
2059
			if game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
2060
				game.Workspace[Tag.Value]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
2061
			end
2062
			local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
2063
			Found.Name = "Loc" ..script.Parent.Name
2064
			game:GetService("Debris"):AddItem(Found, 3)
2065
		elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "ObjectValue" and Tag.Value ~= nil and Tag.Value.ClassName == "Player" and Tag.Value.Character ~= nil then
2066
			local Found = Instance.new("CFrameValue", Tag.Value.Character)
2067
			Found.Name = "Loc" ..script.Parent.Name
2068
			game:GetService("Debris"):AddItem(Found, 3)
2069
		elseif (script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsAZombie") ~= nil) and Tag.ClassName == "StringValue" and game.Workspace:FindFirstChild(Tag.Value) ~= nil then
2070
			local Found = Instance.new("CFrameValue", game.Workspace[Tag.Value])
2071
			Found.Name = "Loc" ..script.Parent.Name
2072
			game:GetService("Debris"):AddItem(Found, 3)
2073
		end
2074
	end
2075
	function CheckSpawns(Object)
2076
		local Parts = Object:GetChildren()
2077
		for Check = 1, #Parts do
2078
			if Parts[Check].className == "SpawnLocation" then
2079
				local I = Instance.new("Vector3Value", SpawnModel)
2080
				I.Value = Parts[Check].Position
2081
			end
2082
			CheckSpawns(Parts[Check])
2083
		end
2084
	end
2085
	function onDied()
2086
		pose = "Dead"
2087
		Delay(5, function()
2088
			if script.Parent.Respawn.Value == true then
2089
				CheckSpawns(Workspace)
2090
				local Spawn = SpawnModel:GetChildren()
2091
				Clone.Parent = game.Workspace
2092
				if #Spawn > 0 then
2093
					Spawn = Spawn[math.random(1, #Spawn)].Value
2094
					Clone:MoveTo(Spawn)
2095
				else
2096
					Clone:MoveTo(Vector3.new(0, 50, 0))
2097
				end
2098
			end
2099
			Figure:Remove()
2100
			return
2101
		end)
2102
	end
2103
	function onJumping()
2104
		pose = "Jumping"
2105
	end
2106
	function onClimbing()
2107
		pose = "Climbing"
2108
	end
2109
	function onGettingUp()
2110
		pose = "GettingUp"
2111
	end
2112
	function onFreeFall()
2113
		pose = "FreeFall"
2114
	end
2115
	function onFallingDown()
2116
		pose = "FallingDown"
2117
	end
2118
	function onSeated()
2119
		pose = "Seated"
2120
	end
2121
	function onPlatformStanding()
2122
		pose = "PlatformStanding"
2123
	end
2124
	function moveJump()
2125
		RightShoulder.MaxVelocity = 0.5
2126
		LeftShoulder.MaxVelocity = 0.5
2127
		RightShoulder.DesiredAngle = (3.14/ZStat)
2128
		LeftShoulder.DesiredAngle = (-3.14/ZStat)
2129
		RightHip.DesiredAngle = (0)
2130
		LeftHip.DesiredAngle = (0)
2131
	end
2132
	function moveFreeFall()
2133
		RightShoulder.MaxVelocity = 0.5
2134
		LeftShoulder.MaxVelocity = 0.5
2135
		RightShoulder.DesiredAngle = (3.14/ZStat)
2136
		LeftShoulder.DesiredAngle = (-3.14/ZStat)
2137
		RightHip.DesiredAngle = (0)
2138
		LeftHip.DesiredAngle = (0)
2139
	end
2140
	function moveSit()
2141
		RightShoulder.MaxVelocity = 0.15
2142
		LeftShoulder.MaxVelocity = 0.15
2143
		RightShoulder.DesiredAngle = (3.14 /2)
2144
		LeftShoulder.DesiredAngle = (-3.14 /2)
2145
		RightHip.DesiredAngle = (3.14 /2)
2146
		LeftHip.DesiredAngle = (-3.14 /2)
2147
	end
2148
	function getTool()	
2149
		for _, kid in ipairs(Figure:GetChildren()) do
2150
			if kid.className == "Tool" then return kid end
2151
		end
2152
		return nil
2153
	end
2154
	function getToolAnim(tool)
2155
		for _, c in ipairs(tool:GetChildren()) do
2156
			if c.Name == "toolanim" and c.className == "StringValue" then
2157
				return c
2158
			end
2159
		end
2160
		return nil
2161
	end
2162
	function animateTool()
2163
		if (toolAnim == "None") then
2164
			RightShoulder.DesiredAngle = (1.57)
2165
			return
2166
		end
2167
		if (toolAnim == "Slash") then
2168
			RightShoulder.MaxVelocity = 0.5
2169
			RightShoulder.DesiredAngle = (0)
2170
			return
2171
		end
2172
		if (toolAnim == "Lunge") then
2173
			RightShoulder.MaxVelocity = 0.5
2174
			LeftShoulder.MaxVelocity = 0.5
2175
			RightHip.MaxVelocity = 0.5
2176
			LeftHip.MaxVelocity = 0.5
2177
			RightShoulder.DesiredAngle = (1.57)
2178
			LeftShoulder.DesiredAngle = (1.0)
2179
			RightHip.DesiredAngle = (1.57)
2180
			LeftHip.DesiredAngle = (1.0)
2181
			return
2182
		end
2183
	end
2184
	function move(time)
2185
		local amplitude
2186
		local frequency
2187
		if (pose == "Jumping") then
2188
			moveJump()
2189
			return
2190
		end
2191
		if (pose == "FreeFall") then
2192
			moveFreeFall()
2193
			return
2194
		end	 
2195
		if (pose == "Seated") then
2196
			moveSit()
2197
			return
2198
		end
2199
		local climbFudge = 0
2200
		if (pose == "Running") then
2201
			RightShoulder.MaxVelocity = 0.15
2202
			LeftShoulder.MaxVelocity = 0.15
2203
			amplitude = 1
2204
			frequency = 9
2205
		elseif (pose == "Climbing") then
2206
			RightShoulder.MaxVelocity = 0.5 
2207
			LeftShoulder.MaxVelocity = 0.5
2208
			amplitude = 1
2209
			frequency = 9
2210
			climbFudge = 3.14
2211
		else
2212
			amplitude = 0.1
2213
			frequency = 1
2214
		end
2215
		desiredAngle = amplitude * math.sin(time*frequency)
2216
		RightShoulder.DesiredAngle = (desiredAngle + climbFudge) + ZStat2
2217
		LeftShoulder.DesiredAngle = (desiredAngle - climbFudge) -ZStat2
2218
		RightHip.DesiredAngle = (-desiredAngle)
2219
		LeftHip.DesiredAngle = (-desiredAngle)
2220
		local tool = getTool()
2221
		if tool then
2222
			animStringValueObject = getToolAnim(tool)
2223
			if animStringValueObject then
2224
				toolAnim = animStringValueObject.Value
2225
				animStringValueObject.Parent = nil
2226
				toolAnimTime = time + .3
2227
			end
2228
			if time > toolAnimTime then
2229
				toolAnimTime = 0
2230
				toolAnim = "None"
2231
			end
2232
			animateTool()
2233
		else
2234
			toolAnim = "None"
2235
			toolAnimTime = 0
2236
		end
2237
	end
2238
	Humanoid.Died:connect(onDied)
2239
	Humanoid.Running:connect(onRunning)
2240
	Humanoid.Jumping:connect(onJumping)
2241
	Humanoid.Climbing:connect(onClimbing)
2242
	Humanoid.GettingUp:connect(onGettingUp)
2243
	Humanoid.FreeFalling:connect(onFreeFall)
2244
	Humanoid.FallingDown:connect(onFallingDown)
2245
	Humanoid.Seated:connect(onSeated)
2246
	Humanoid.PlatformStanding:connect(onPlatformStanding)
2247
	Humanoid.ChildAdded:connect(CheckTag)
2248
	OriginalTime = 0.1
2249
	Time = OriginalTime
2250
	while Figure.Parent~=nil do
2251
		Time = Time + 0.1
2252
		wait(OriginalTime)
2253
		move(Time)
2254
	end
2255
end)
2256
Delay(0, function() --lah30303's Pathing Script
2257
	function CalcMoves(map, px, py, tx, ty) 
2258
		if map[ty][tx] ~= 0 then
2259
			return nil
2260
		end
2261
		local openlist, closedlist, listk, closedk, tempH, tempG, xsize, ysize, curbase = {}, {}, 1, 0, math.abs(px - tx) + math.abs(py - ty), 0, #map[1], #map, {}
2262
		openlist[1] = {x = px, y = py, g = 0, h = tempH, f = 0 + tempH ,par = 1}
2263
		local nodenumber = 0
2264
		while listk > 0 do
2265
			nodenumber = nodenumber + 1
2266
			if nodenumber / ScanSkip == math.floor(nodenumber / ScanSkip) then
2267
				wait()
2268
				if DebugPathing == true then
2269
					print("Node", nodenumber)
2270
				end
2271
			end
2272
			closedk = closedk + 1
2273
			table.insert(closedlist, closedk, openlist[1])
2274
			curbase = closedlist[closedk]
2275
			if closedlist[closedk].x == tx and closedlist[closedk].y == ty then
2276
				return closedlist
2277
			end
2278
			openlist[1] = openlist[listk]
2279
			table.remove(openlist, listk)
2280
			listk = listk - 1
2281
			local v = 1
2282
			while true do
2283
				local u = v
2284
				if 2 * u + 1 <= listk then
2285
					if openlist[u].f >= openlist[2 * u].f then
2286
						v = 2 * u
2287
					end
2288
					if openlist[v].f >= openlist[2 * u + 1].f then
2289
						v = 2 * u + 1
2290
					end
2291
				elseif 2 * u <= listk then
2292
					if openlist[u].f >= openlist[2 * u].f then
2293
						v = 2 * u
2294
					end
2295
				end
2296
				if u ~= v then
2297
					local temp = openlist[u]
2298
					openlist[u] = openlist[v]
2299
					openlist[v] = temp
2300
				else
2301
					break
2302
				end
2303
			end
2304
2305
			local tocheck = {{1, 0}, {-1, 0}, {0, 1}, {0, -1}, {-1, -1}, {1, -1}, {-1, 1}, {1, 1}} --[1]Right, [2]Left, [3]Down, [4]Up, [5]UpLeft, [6]UpRight, [7]DownLeft, [8]DownRight
2306
			if closedk > 0 then
2307
				for k = 1, closedk do
2308
					for i, v in pairs(tocheck) do
2309
						if closedlist[k].x == curbase.x + v[1] and closedlist[k].y == curbase.y + v[2] then
2310
							tocheck[i] = nil
2311
						end
2312
					end
2313
				end
2314
			end
2315
			for i, v in pairs(tocheck) do
2316
				local a = curbase.x + v[1]
2317
				local b = curbase.y + v[2]
2318
				if a > xsize or a < 1 or b > ysize or b < 1 then
2319
					tocheck[i] = nil
2320
				end
2321
			end
2322
			for i, v in pairs(tocheck) do
2323
				local a, b = curbase.x + v[1], curbase.y + v[2]
2324
				if a <= xsize and a >= 1 and b <= ysize and b >= 1 and map[b][a] ~= 0 then
2325
					tocheck[i] = nil
2326
				end
2327
			end
2328
			tempG = curbase.g + 1
2329
			tempDiagG = curbase.g + 1.4
2330
			for k = 1, listk do
2331
				for i, v in pairs(tocheck) do
2332
					if openlist[k].x == curbase.x + v[1] and openlist[k].y == curbase.y + 1 and openlist[k].g > tempG then
2333
						tempH = math.abs((curbase.x + v[1])-tx) + math.abs((curbase.y + v[1])-ty)
2334
						table.insert(openlist, k, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG + tempH, par = closedk})
2335
						local m = k
2336
						while m ~= 1 do
2337
							if openlist[m].f <= openlist[math.floor(m/2)].f then
2338
								temp = openlist[math.floor(m/2)]
2339
								openlist[math.floor(m/2)] = openlist[m]
2340
								openlist[m] = temp
2341
								m = math.floor(m/2)
2342
							else
2343
								break
2344
							end
2345
							tocheck[i] = nil
2346
						end
2347
					end
2348
				end
2349
			end
2350
			for i, v in pairs(tocheck) do
2351
				listk = listk + 1
2352
				tempH = math.abs((curbase.x + v[1]) - tx) + math.abs((curbase.y + v[2]) - ty)
2353
				table.insert(openlist, listk, {x = curbase.x + v[1], y = curbase.y + v[2], g = tempG, h = tempH, f = tempG+tempH, par = closedk})
2354
				m = listk
2355
				while m ~= 1 do
2356
					if openlist[m].f <= openlist[math.floor(m/2)].f then
2357
						temp = openlist[math.floor(m/2)]
2358
						openlist[math.floor(m/2)] = openlist[m]
2359
						openlist[m] = temp
2360
						m = math.floor(m/2)
2361
					else
2362
						break
2363
					end
2364
				end
2365
			end
2366
		end
2367
		return nil
2368
	end
2369
2370
2371
	function CalcPath(closedlist)
2372
2373
		if closedlist == nil or table.getn(closedlist) == 1 then
2374
			return nil
2375
		end
2376
		local path = {}
2377
		local pathIndex = {}
2378
		local last = table.getn(closedlist)
2379
		table.insert(pathIndex,1,last)
2380
2381
		local i = 1
2382
		while pathIndex[i] > 1 do
2383
			i = i + 1
2384
			table.insert(pathIndex, i, closedlist[pathIndex[i - 1]].par)
2385
		end 
2386
2387
		for n = table.getn(pathIndex) - 1, 1, -1 do
2388
			table.insert(path, {x = closedlist[pathIndex[n]].x, y = closedlist[pathIndex[n]].y})
2389
		end
2390
2391
		closedlist = nil
2392
		return path
2393
	end
2394
end)
2395
Delay(0, function() --Main Artificial Intelligence Scripting/Path Grid Generator
2396
	local Base
2397
	if script.Parent:FindFirstChild("BASE") == nil then
2398
		Base = Instance.new("Part")
2399
		Base.Transparency = 1
2400
		Base.TopSurface = "Smooth"
2401
		Base.BottomSurface = "Smooth"
2402
		Base.CanCollide = false
2403
		Base.Anchored = true
2404
		Base.Locked = true
2405
		Base.BrickColor = BrickColor.new(0, 0, 0)
2406
		Base.Name = "BASE"
2407
		Base.CFrame = CFrame.new(Vector3.new(0, 0, 0))
2408
		Base.Parent = script.Parent
2409
	else
2410
		Base = script.Parent.BASE
2411
		Base.CFrame = CFrame.new(Vector3.new(0, 0, 0))
2412
	end
2413
	function Jump()
2414
		script.Parent.Humanoid.Jump = true
2415
	end
2416
	function Check(Hit)
2417
		if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent.Parent ~= nil then
2418
			if Hit.Parent:FindFirstChild("Humanoid") == nil and Hit.Parent.Parent:FindFirstChild("Humanoid") == nil then
2419
				Jump()
2420
			end
2421
		end
2422
	end
2423
	script.Parent.Torso.Touched:connect(Check)
2424
	function Prep(Target, Current, Attempts)
2425
		if Attempts == nil then
2426
			Attempts = 1000
2427
		end
2428
		local Hit = false
2429
		local Tag = Base:Clone()
2430
		Tag.Position = Target
2431
		Tag.Parent = script.Parent
2432
		local TagRay = Ray.new(Tag.CFrame.p, (CFrame.new(Tag.CFrame.p - Vector3.new(0, 3, 0)).p - Tag.CFrame.p).Unit * 40)
2433
		local TRHit, TRPos = game.Workspace:FindPartOnRay(TagRay, script.Parent)
2434
		if TRHit ~= nil then
2435
			Hit = true
2436
		end
2437
		if Tag.Parent ~= nil then
2438
			Tag:Remove()
2439
		end
2440
		if Hit == false and Attempts > 0 and script.Parent.Wander.Value == true then
2441
			Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base, Attempts - 1)
2442
		elseif script.Parent.Wander.Value == true then
2443
			local TargetRay = Ray.new(script.Parent.Torso.CFrame.p, (CFrame.new(Target).p - script.Parent.Torso.CFrame.p).Unit * ((Target - script.Parent.Torso.Position).Magnitude - 3))
2444
			local THit, TPos = game.Workspace:FindPartOnRay(TargetRay, script.Parent)
2445
			local TrueTarget = script.Parent.Torso.Position
2446
			if THit ~= nil then
2447
				for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - TPos).Magnitude) do
2448
					local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (TPos - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3)
2449
					local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent)
2450
					if TH2 ~= nil and TH2.Name ~= "Lava" then
2451
						TrueTarget = TP2
2452
					else
2453
						break
2454
					end
2455
				end
2456
			else
2457
				for HazardCheck = 1, math.floor((script.Parent.Torso.CFrame.p - Target).Magnitude) do
2458
					local TR2 = Ray.new(script.Parent.Torso.CFrame.p + (Target - script.Parent.Torso.CFrame.p).Unit * HazardCheck, Vector3.new(0, -50, 0) + (TPos - script.Parent.Torso.CFrame.p).Unit * 3)
2459
					local TH2, TP2 = game.Workspace:FindPartOnRay(TR2, script.Parent)
2460
					if TH2 ~= nil and TH2.Name ~= "Lava" then
2461
						TrueTarget = TP2
2462
					else
2463
						break
2464
					end
2465
				end
2466
			end
2467
			script.Parent.Humanoid:MoveTo(TrueTarget, Current)
2468
		end
2469
	end
2470
	function ZHit(Part)
2471
		if script.Parent:FindFirstChild("IsAZombie") ~= nil and script.Parent.Humanoid.Health > 0 and Part ~= nil and Part.Parent ~= nil and Part.Parent:FindFirstChild("Humanoid") ~= nil and Part.Parent:FindFirstChild("IsAZombie") == nil then
2472
			Part.Parent.Humanoid:TakeDamage(2)
2473
			script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + 1
2474
			script.Parent.Humanoid:TakeDamage(-1)
2475
		end
2476
	end
2477
	script.Parent["Right Arm"].Touched:connect(ZHit)
2478
	script.Parent["Left Arm"].Touched:connect(ZHit)
2479
	CurrentMap = {}
2480
	MapMask = {}
2481
	MapVar = {0, 0, 0, 0, 0}
2482
	BlockScanned = 0
2483
	ScanSkip = 5
2484
	DebugPathing = true
2485
	function GenerateMap(PathPos)
2486
		CurrentMap = {}
2487
		MapMask = {}
2488
		MapVar = {0, 0, 0, 0, 0}
2489
		BlockScanned = 0
2490
		MapVariables = ScanParts(Workspace, 1)
2491
		for MapX = 1, math.max(-MapVariables[1], MapVariables[2]) * 2 + 1 do
2492
			CurrentMap[MapX] = {}
2493
			for MapY = 1, math.max(-MapVariables[3], MapVariables[4]) * 2 + 1 do
2494
				CurrentMap[MapX][MapY] = 0
2495
			end
2496
		end
2497
		for MaskX = 1, #CurrentMap do
2498
			MapMask[MaskX] = {}
2499
			for MaskY = 1, #CurrentMap[MaskX] do
2500
				MapMask[MaskX][MaskY] = {MapVariables[1] + MaskX - 0.5, MapVariables[1] + MaskY - 0.5}
2501
			end
2502
		end
2503
		ScanParts(Workspace, 2, MapVariables)
2504
		wait(1)
2505
		if script.Parent.PrintMap.Value == true then
2506
			print("Printing Map...")
2507
			for ClearPrint = 1, 250 do
2508
				wait()
2509
				print()
2510
			end
2511
			for PrintX = 1, #CurrentMap do
2512
				local PrintZ = ""
2513
				for PrintY = 1, #CurrentMap[PrintX] do
2514
					PrintZ = PrintZ ..CurrentMap[PrintX][PrintY]
2515
				end
2516
				print(PrintZ)
2517
				wait(0.1)
2518
			end
2519
		end
2520
		local MapCoords = {0, 0, 0, 0}
2521
		local Distance = math.huge
2522
		for MPX = 1, #CurrentMap do
2523
			for MPY = 1, #CurrentMap[MPX] do
2524
				if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude < Distance then
2525
					MapCoords = {MPX, MPY, 0, 0}
2526
					Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude
2527
				end
2528
			end
2529
		end
2530
		local Distance = math.huge
2531
		for MPX = 1, #CurrentMap do
2532
			for MPY = 1, #CurrentMap[MPX] do
2533
				if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude < Distance then
2534
					MapCoords = {MapCoords[1], MapCoords[2], math.min(MPX, #CurrentMap) - 1, math.min(MPY, #CurrentMap[1] - 1)}
2535
					Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(script.Parent.PathTo.Value.X, 0, script.Parent.PathTo.Value.Z)).Magnitude
2536
				end
2537
			end
2538
		end
2539
		for i, v in pairs(CalcPath(CalcMoves(CurrentMap, MapCoords[1], MapCoords[2], MapCoords[3], MapCoords[4]))) do
2540
			local Timer = 20
2541
			local pX = v["x"]
2542
			local pY = v["y"]
2543
			local pTo = Vector3.new(MapMask[pX][pY][1], 0, MapMask[pX][pY][2])
2544
			pTo = pTo + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit
2545
			while (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude > 2.5 and Timer > 0 do
2546
				script.Parent.Humanoid:MoveTo(pTo, Base)
2547
				Timer = Timer - 1
2548
				if Timer == 10 then
2549
					script.Parent.Humanoid.Jump = true
2550
				end
2551
				wait(0.1)
2552
			end
2553
			if Timer == 0 then
2554
				if (Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z) - pTo).Magnitude <= 5 then
2555
					script.Parent.Torso.CFrame = script.Parent.Torso.CFrame + (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Unit * (pTo - Vector3.new(script.Parent.Torso.Position.X, 0, script.Parent.Torso.Position.Z)).Magnitude
2556
				else
2557
					break
2558
				end
2559
			end
2560
		end
2561
	end
2562
	function ScanParts(CurrentModel, CurrentStage, Variables)
2563
		local X = CurrentModel:GetChildren()
2564
		for I = 1, #X do
2565
			if #X[I]:GetChildren() > 0 then
2566
				ScanParts(X[I], 1, Variables)
2567
			end
2568
			if X[I].ClassName == "Part" or X[I].ClassName == "WedgePart" or X[I].ClassName == "CornerWedgePart" or X[I].ClassName == "TrussPart" or X[I].ClassName == "SpawnLocation" or X[I].ClassName == "Seat" or X[I].ClassName == "VehicleSeat" or X[I].ClassName == "SkateboardPlatform" then
2569
				BlockScanned = BlockScanned + 1
2570
				if BlockScanned / ScanSkip == math.floor(BlockScanned / ScanSkip) then
2571
					wait()
2572
					if DebugPathing == true then
2573
						print("Block", BlockScanned)
2574
					end
2575
				end
2576
				if CurrentStage == 1 then
2577
					MapVar[1] = math.min(math.ceil(X[I].Position.X - X[I].Size.X / 2), MapVar[1])
2578
					MapVar[2] = math.max(math.floor(X[I].Position.X + X[I].Size.X / 2), MapVar[2])
2579
					MapVar[3] = math.min(math.ceil(X[I].Position.Z - X[I].Size.Z / 2), MapVar[3])
2580
					MapVar[4] = math.max(math.floor(X[I].Position.Z + X[I].Size.Z / 2), MapVar[4])
2581
				elseif CurrentStage == 2 and ((X[I].Position.Y + X[I].Size.Y / 2 > script.Parent.Torso.Position.Y + 2 and X[I].Position.Y - X[I].Size.Y / 2 < script.Parent.Torso.Position.Y + 2) or X[I].Position.Y + X[I].Size.Y / 2 < script.Parent.Torso.Position.Y - 8) then
2582
					local BlockStart = {X[I].Position.X - X[I].Size.X / 2, X[I].Position.Z - X[I].Size.Z / 2}
2583
					local BlockEnd = {X[I].Position.X + X[I].Size.X / 2, X[I].Position.Z + X[I].Size.Z / 2}
2584
					local BlockCoords = {0, 0, 0, 0}
2585
					local Distance = math.huge
2586
					for MPX = 1, #CurrentMap do
2587
						for MPY = 1, #CurrentMap[MPX] do
2588
							if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude < Distance then
2589
								BlockCoords = {MPX, MPY, 0, 0}
2590
								Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockStart[1], 0, BlockStart[2])).Magnitude
2591
							end
2592
						end
2593
					end
2594
					local Distance = math.huge
2595
					for MPX = 1, #CurrentMap do
2596
						for MPY = 1, #CurrentMap[MPX] do
2597
							if (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude < Distance then
2598
								BlockCoords = {BlockCoords[1], BlockCoords[2], MPX, MPY}
2599
								Distance = (Vector3.new(MapMask[MPX][MPY][1], 0, MapMask[MPX][MPY][2]) - Vector3.new(BlockEnd[1], 0, BlockEnd[2])).Magnitude
2600
							end
2601
						end
2602
					end
2603
					for XGrid = BlockCoords[2], BlockCoords[4] do
2604
						for YGrid = BlockCoords[1], BlockCoords[3] do
2605
							CurrentMap[XGrid][YGrid] = 1
2606
						end
2607
					end
2608
				end
2609
			end
2610
		end
2611
		if CurrentStage == 1 then
2612
			MapVar[5] = {MapVar[1] + MapVar[2] / 2, MapVar[3] + MapVar[4] / 2}
2613
			return MapVar
2614
		end
2615
	end
2616
	IsInCombat = false
2617
	while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") == nil do
2618
		local Distance = 100
2619
		local Target = nil
2620
		IsInCombat = false
2621
		local Players = Workspace:GetChildren()
2622
		for Check = 1, #Players do
2623
			if Players[Check] ~= script.Parent and ((Players[Check]:FindFirstChild("Humanoid") ~= nil and (Players[Check]:FindFirstChild("IsAZombie") ~= nil or Players[Check]:FindFirstChild("IsLocalEnemy") ~= nil or script.Parent:FindFirstChild("IsLocalEnemy") ~= nil or (script.Parent.IsOnTeam.Value == true and Players[Check]:FindFirstChild("IsOnTeam") ~= nil and Players[Check].IsOnTeam.Value == true and script.Parent.IsOnTeam.Team.Value ~= Players[Check].IsOnTeam.Team.Value) or (game.Players:GetPlayerFromCharacter(Players[Check]) ~= nil and script.Parent.IsOnTeam.Value == true and game.Players:GetPlayerFromCharacter(Players[Check]).Neutral == false and game.Players:GetPlayerFromCharacter(Players[Check]).TeamColor ~= script.Parent.IsOnTeam.Team.Value)) and Players[Check].Humanoid.Health > 0) or (Players[Check]:FindFirstChild("Zombie") ~= nil and Players[Check].Zombie.ClassName == "Humanoid" and Players[Check].Zombie.Health > 0)) and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
2624
				local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
2625
				local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
2626
				if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
2627
					local TeamTag = nil
2628
					local Parts = Players[Check]:GetChildren()
2629
					for X = 1, #Parts do
2630
						if Parts[X].Name == "TeamLoc" then
2631
							if Parts[X].Value == script.Parent.IsOnTeam.Team.Value then
2632
								TeamTag = Parts[X]
2633
							end
2634
						end
2635
					end
2636
					if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil or Parts[X] ~= nil or (Players[Check].Torso.Position - (script.Parent.Torso.Position + script.Parent.Torso.CFrame.lookVector * 50)).Magnitude <= 52 then
2637
						if script.Parent.IsOnTeam.Value == false then
2638
							if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
2639
								Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
2640
							end
2641
							local Found = Instance.new("CFrameValue", Players[Check])
2642
							Found.Name = "Loc" ..script.Parent.Name
2643
							game:GetService("Debris"):AddItem(Found, 3)
2644
						else
2645
							if Parts[X] ~= nil then
2646
								Parts[X]:Remove()
2647
							end
2648
							local Found = Instance.new("BrickColorValue", Players[Check])
2649
							Found.Name = "TeamLoc"
2650
							Found.Value = script.Parent.IsOnTeam.Team.Value
2651
							game:GetService("Debris"):AddItem(Found, 3)
2652
							if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil then
2653
								Players[Check]:FindFirstChild("Loc" ..script.Parent.Name):Remove()
2654
							end
2655
							local Found = Instance.new("CFrameValue", Players[Check])
2656
							Found.Name = "Loc" ..script.Parent.Name
2657
							game:GetService("Debris"):AddItem(Found, 3)
2658
						end
2659
					end
2660
					if Players[Check]:FindFirstChild("Loc" ..script.Parent.Name) ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
2661
						Target = Players[Check].Torso
2662
						Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
2663
					end
2664
				end
2665
			end
2666
		end
2667
		if Target == nil then
2668
			local HasTool = false
2669
			local ToolCheck = script.Parent:GetChildren()
2670
			for Check = 1, #ToolCheck do
2671
				if ToolCheck[Check].ClassName == "Tool" then
2672
					HasTool = true
2673
				end
2674
			end
2675
			if HasTool == false then
2676
				Distance = 100
2677
				for Check = 1, #Players do
2678
					if Players[Check].ClassName == "Tool" and Players[Check]:FindFirstChild("Handle") ~= nil and Players[Check]:FindFirstChild("Active") ~= nil and Players[Check]:FindFirstChild("TargetPos") ~= nil and Players[Check]:FindFirstChild("Type") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
2679
						local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
2680
						local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
2681
						if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then
2682
							Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude
2683
							Target = Players[Check]
2684
						end
2685
					end
2686
				end
2687
				if Target ~= nil and Target.ClassName == "Tool" then
2688
					if Distance <= 5 and HasTool == false then
2689
						Target.Parent = script.Parent
2690
						HasTool = true
2691
					else
2692
						Prep(Target.Handle.Position, Base)
2693
					end
2694
				else
2695
					for Check = 1, #Players do
2696
						if Players[Check].Name == "Crate" and Players[Check]:FindFirstChild("OpenCrate") ~= nil and Players[Check].OpenCrate.Value == false and (Players[Check].Position - script.Parent.Torso.Position).Magnitude <= Distance then
2697
							local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
2698
							local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
2699
							if Hit ~= nil and Hit == Players[Check] then
2700
								Target = Players[Check]
2701
								Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
2702
							end
2703
						end
2704
					end
2705
					if Target ~= nil then
2706
						script.Parent.Humanoid:MoveTo(Target.Position, Target)
2707
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then
2708
							Target.OpenCrate.Value = true
2709
						end
2710
					else
2711
						local HasHat = false
2712
						local HatCheck = script.Parent:GetChildren()
2713
						for Check = 1, #HatCheck do
2714
							if ToolCheck[Check].ClassName == "Hat" then
2715
								HasHat = true
2716
							end
2717
						end
2718
						if HasHat == false then
2719
							Distance = 100
2720
							for Check = 1, #Players do
2721
								if Players[Check].ClassName == "Hat" and Players[Check]:FindFirstChild("Handle") ~= nil and (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude <= Distance then
2722
									local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Handle.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
2723
									local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
2724
									if Hit ~= nil and Hit.Parent ~= nil and Hit.Parent == Players[Check] then
2725
										Distance = (Players[Check].Handle.Position - script.Parent.Torso.Position).Magnitude
2726
										Target = Players[Check]
2727
									end
2728
								end
2729
							end
2730
							if Target ~= nil and Target.ClassName == "Hat" then
2731
								if Distance <= 5 and HasHat == false then
2732
									Target.Parent = script.Parent
2733
									HasHat = true
2734
								else
2735
									Prep(Target.Handle.Position, Base)
2736
								end
2737
							else
2738
								if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
2739
									if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then
2740
										GenerateMap(script.Parent.PathTo.Value)
2741
										script.Parent.PathTo.Value = Vector3.new(0, 0, 0)
2742
									elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
2743
										Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
2744
									end
2745
								else
2746
									Jump()
2747
								end
2748
							end
2749
						end
2750
					end
2751
				end
2752
			else
2753
				if Target == nil then
2754
					local Distance = 80
2755
					local Players = Workspace:GetChildren()
2756
					for Check = 1, #Players do
2757
						if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check] ~= script.Parent and Players[Check]:FindFirstChild("IsLocalEnemy") == nil and Players[Check]:FindFirstChild("Leader") ~= nil and Players[Check].Humanoid.Health > 0 and Players[Check]:FindFirstChild("Torso") ~= nil and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
2758
							local Ray = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
2759
							local Hit, Position = game.Workspace:FindPartOnRay(Ray, script.Parent)
2760
							if Hit ~= nil and Hit.Parent ~= nil and ((Hit.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent == Players[Check]) or (Hit.Parent.Parent ~= nil and Hit.Parent.Parent:FindFirstChild("Humanoid") ~= nil and Hit.Parent.Parent == Players[Check])) then
2761
								Target = Players[Check].Torso
2762
								Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
2763
							end
2764
						end
2765
					end
2766
					if Target ~= nil then
2767
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 10
2768
						Prep(Position, Base)
2769
					else
2770
						if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
2771
							if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then
2772
								GenerateMap(script.Parent.PathTo.Value)
2773
								script.Parent.PathTo.Value = Vector3.new(0, 0, 0)
2774
							elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
2775
								Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
2776
							end
2777
						else
2778
							Jump()
2779
						end
2780
					end
2781
				else
2782
					if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
2783
						if script.Parent.PathTo.Value ~= Vector3.new(0, 0, 0) then
2784
							GenerateMap(script.Parent.PathTo.Value)
2785
							script.Parent.PathTo.Value = Vector3.new(0, 0, 0)
2786
						elseif math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
2787
							Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
2788
						end
2789
					else
2790
						Jump()
2791
					end
2792
				end
2793
			end
2794
		else
2795
			local Weapon = nil
2796
			local ToolCheck = script.Parent:GetChildren()
2797
			for Check = 1, #ToolCheck do
2798
				if ToolCheck[Check].ClassName == "Tool" then
2799
					Weapon = ToolCheck[Check]
2800
				end
2801
			end
2802
			if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
2803
				if Weapon.Type.Value == "Melee" then
2804
					Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
2805
					if (Target.Position - script.Parent.Torso.Position).Magnitude <= 10 then
2806
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2807
						Weapon.Active.Value = true
2808
					end
2809
				elseif Weapon.Type.Value == "Melee/Ranged" then
2810
					if Distance <= 10 then
2811
						Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
2812
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2813
						Weapon.Active.Value = true
2814
					else
2815
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Base)
2816
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 50 then
2817
							Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2818
							Weapon.Active.Value = true
2819
						end
2820
					end
2821
				elseif Weapon.Type.Value == "Melee/RangedMed" then
2822
					if Distance <= 10 then
2823
						Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
2824
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2825
						Weapon.Active.Value = true
2826
					else
2827
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base)
2828
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 40 then
2829
							Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2830
							Weapon.Active.Value = true
2831
						end
2832
					end
2833
				elseif Weapon.Type.Value == "Melee/RangedClose" then
2834
					if Distance <= 10 then
2835
						Prep(Target.Position + Vector3.new(math.random(-3, 3), 0, math.random(-3, 3)), Target)
2836
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2837
						Weapon.Active.Value = true
2838
					else
2839
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Base)
2840
						if (Target.Position - script.Parent.Torso.Position).Magnitude <= 30 then
2841
							Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2842
							Weapon.Active.Value = true
2843
						end
2844
					end
2845
				elseif Weapon.Type.Value == "Ranged" then
2846
					Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base)
2847
					Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2848
					wait()
2849
					Weapon.Active.Value = true
2850
				elseif Weapon.Type.Value == "RangedMed" then
2851
					Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 60, Base)
2852
					if Distance <= 70 then
2853
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2854
						wait()
2855
						Weapon.Active.Value = true
2856
					end
2857
				elseif Weapon.Type.Value == "RangedClose" then
2858
					Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 30, Base)
2859
					if Distance <= 40 then
2860
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2861
						wait()
2862
						Weapon.Active.Value = true
2863
					end
2864
				elseif Weapon.Type.Value == "RangedAngle" and Distance <= 100 then
2865
					local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * (script.Parent.Torso.Position - Target.Position).Magnitude + Target.Velocity
2866
					script.Parent.Humanoid:MoveTo(Position, Base)
2867
					Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2868
					wait()
2869
					Weapon.Active.Value = true
2870
				elseif Weapon.Type.Value == "RangedTactical" then
2871
					if Distance <= 30 then
2872
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 50
2873
						Prep(Position, Base)
2874
					elseif Distance >= 50 then
2875
						Prep(Target.Position, Target)
2876
					end
2877
					if Distance <= 50 and Distance >= 30 then
2878
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 40, Target.Parent.Torso)
2879
					end
2880
					if Distance <= 60 then
2881
						Weapon.TargetPos.Value = Target.Position + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2882
						wait()
2883
						Weapon.Active.Value = true
2884
					end
2885
				elseif Weapon.Type.Value == "Shuriken" then
2886
					if Distance <= 15 then
2887
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20
2888
						Prep(Position, Base)
2889
					elseif Distance >= 30 then
2890
						Prep(Target.Position, Target)
2891
					end
2892
					if Distance <= 30 and Distance >= 15 then
2893
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 20, Target.Parent.Torso)
2894
					end
2895
					if Distance <= 50 then
2896
						Weapon.TargetPos.Value = (Target.Position + Target.Velocity / 2) + Vector3.new(math.random(-2, 2), math.random(-2, 2) + ((Target.Position + Target.Velocity / 2) - script.Parent.Torso.Position).Magnitude / 8, math.random(-2, 2))
2897
						wait()
2898
						Weapon.Active.Value = true
2899
					end
2900
				elseif Weapon.Type.Value == "HealDrink" then
2901
					local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120
2902
					Prep(Position, Base)
2903
					if script.Parent.Humanoid.Health < script.Parent.Humanoid.MaxHealth then
2904
						Weapon.Active.Value = true
2905
					end
2906
				elseif Weapon.Type.Value == "GrenadeDirect" then
2907
					if Distance >= 80 and Distance <= 100 then
2908
						Prep(Target.Position, Target)
2909
						wait(0.5)
2910
						Weapon.Active.Value = true
2911
						wait(0.5)
2912
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100
2913
						Prep(Position, Base)
2914
					else
2915
						local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100
2916
						Prep(Position, Base)
2917
					end
2918
				elseif Weapon.Type.Value == "Bomb" then
2919
					if Distance > 10 then
2920
						Prep(Target.Position, Target)
2921
					elseif Distance <= 10 then
2922
						Weapon.Active.Value = true
2923
						wait(2)
2924
						while Weapon ~= nil and Weapon:FindFirstChild("Handle") ~= nil and Weapon.Handle.Transparency == 1 do
2925
							Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 80, Base)
2926
							wait(0.5)
2927
						end
2928
					end
2929
				elseif Weapon.Type.Value == "Backstab" then
2930
					if Distance >= 10 then
2931
						if (script.Parent.Torso.Position - (Target.Position + Target.CFrame.lookVector * 50)).Magnitude <= 52 then
2932
							Prep(Target.Position, Target)
2933
						else
2934
							if (script.Parent.Torso.Position - (Target.Position - Target.CFrame.lookVector * 15)).Magnitude <= 5 then
2935
								Prep(Target.Position, Base)
2936
								local backstab_time = 20
2937
								while backstab_time > 1 and (script.Parent.Torso.Position - Target.Position).Magnitude >= 4 do
2938
									wait(0.1)
2939
									backstab_time = backstab_time - 1
2940
								end
2941
								if (script.Parent.Torso.Position - Target.Position).Magnitude < 4 then
2942
									Weapon.Active.Value = true
2943
								end
2944
							else
2945
								Prep(Target.Position - Target.CFrame.lookVector * 15, Base)
2946
							end
2947
						end
2948
					else
2949
						Prep(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target)
2950
						if Distance <= 5 then
2951
							Weapon.Active.Value = true
2952
						end
2953
					end
2954
				elseif Weapon.Type.Value == "Crossbow" then
2955
					if Distance > 80 then
2956
						Prep(Target.Position, Target)
2957
					elseif Distance < 40 then
2958
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 100, Base)
2959
					elseif Distance <= 80 and Distance >= 40 then
2960
						Prep(Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * ((script.Parent.Torso.Position - Target.Position).Magnitude - 5), Base)
2961
						wait(0.2)
2962
						Weapon.TargetPos.Value = Target.Position + Target.Velocity / 8 + Vector3.new(math.random(-2, 2), math.random(-2, 2), math.random(-2, 2))
2963
						Weapon.Active.Value = true
2964
					end
2965
				end
2966
				IsInCombat = true
2967
			elseif Distance <= 100 then
2968
				local Position = Target.Position + (script.Parent.Torso.Position - Target.Position).Unit * 120
2969
				Prep(Position, Base)
2970
			end
2971
		end
2972
		if IsInCombat == true then
2973
			wait(0.2)
2974
		else
2975
			wait(0.6)
2976
		end
2977
	end
2978
	local Weapon = nil
2979
	local ToolCheck = script.Parent:GetChildren()
2980
	for Check = 1, #ToolCheck do
2981
		if ToolCheck[Check].ClassName == "Tool" then
2982
			Weapon = ToolCheck[Check]
2983
		end
2984
	end
2985
	if Weapon ~= nil and script.Parent.DropWeapon.Value == true then
2986
		Weapon.Parent = Workspace
2987
	elseif Weapon ~= nil then
2988
		Weapon:Remove()
2989
	end
2990
	if script.Parent:FindFirstChild("IsAZombie") ~= nil then
2991
		script.Parent.Name = "New Zombie"
2992
		script.Parent.Humanoid.MaxHealth = script.Parent.Humanoid.MaxHealth + math.random(math.random(-50, -25), math.random(25, math.random(50, 100)))
2993
		wait()
2994
		script.Parent.Humanoid.Health = script.Parent.Humanoid.MaxHealth
2995
		script.Parent.Humanoid.WalkSpeed = script.Parent.Humanoid.WalkSpeed + math.random(math.random(-200, 0), math.random(100, math.random(200, 300))) / 100
2996
		ZStat = 2
2997
		ZStat2 = 1.57
2998
		Delay(1, function()
2999
			while script.Parent:FindFirstChild("Humanoid") ~= nil and script.Parent.Humanoid.Health > 0 do
3000
				script.Parent.Humanoid.MaxHealth = math.max(0, script.Parent.Humanoid.MaxHealth - 1)
3001
				script.Parent.Humanoid.Health = math.min(script.Parent.Humanoid.Health, script.Parent.Humanoid.MaxHealth)
3002
				wait(1)
3003
			end
3004
		end)
3005
		while script.Parent.Humanoid.Health > 0 and script.Parent:FindFirstChild("IsAZombie") ~= nil do
3006
			local Distance = 100
3007
			local Target = nil
3008
			local Players = Workspace:GetChildren()
3009
			for Check = 1, #Players do
3010
				if Players[Check]:FindFirstChild("Humanoid") ~= nil and Players[Check]:FindFirstChild("Torso") ~= nil and Players[Check]:FindFirstChild("IsAZombie") == nil and Players[Check].Humanoid.Health > 0 and (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= 100 then
3011
					local ZRay = Ray.new(script.Parent.Torso.CFrame.p, (Players[Check].Torso.CFrame.p - script.Parent.Torso.CFrame.p).Unit * 100)
3012
					local ZHit, ZPos = Workspace:FindPartOnRay(ZRay, script.Parent)
3013
					if Players[Check]:FindFirstChild("ZFound") ~= nil or (ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check])) then
3014
						if ZHit ~= nil and ZHit.Parent ~= nil and ZHit.Parent.Parent ~= nil and (ZHit.Parent == Players[Check] or ZHit.Parent.Parent == Players[Check]) then
3015
							if Players[Check]:FindFirstChild("ZFound") ~= nil then
3016
								Players[Check].ZFound:Remove()
3017
							end
3018
							local ZTag = Instance.new("CFrameValue", Players[Check])
3019
							ZTag.Name = "ZFound"
3020
							game:GetService("Debris"):AddItem(ZTag, 5)
3021
						end
3022
						if (Players[Check].Torso.Position - script.Parent.Torso.Position).Magnitude <= Distance then
3023
							Target = Players[Check].Torso
3024
							Distance = (Target.Position - script.Parent.Torso.Position).Magnitude
3025
						end
3026
					end
3027
				end
3028
			end
3029
			if Target == nil then
3030
				if script.Parent.Humanoid.PlatformStand == false and script.Parent.Humanoid.Sit == false then
3031
					if math.random(1, 10) == 1 and script.Parent.Wander.Value == true then
3032
						Prep(script.Parent.Torso.Position + Vector3.new(math.random(-100, 100), 0, math.random(-100, 100)), Base)
3033
					end
3034
				else
3035
					Jump()
3036
				end
3037
			elseif script.Parent.Wander.Value == true then
3038
				script.Parent.Humanoid:MoveTo(Target.Position + Vector3.new(math.random(-2, 2), 0, math.random(-2, 2)), Target)
3039
			end
3040
			wait(0.8)
3041
		end
3042
	end
3043
end)
3044
Delay(0, function() --Random Tool Usage Script
3045
	while true do
3046
		wait(math.random(40, 70 + math.random(30, 120)) / 10)
3047
		local Weapon = nil
3048
		local ToolCheck = script.Parent:GetChildren()
3049
		for Check = 1, #ToolCheck do
3050
			if ToolCheck[Check].ClassName == "Tool" then
3051
				Weapon = ToolCheck[Check]
3052
			end
3053
		end
3054
		if Weapon ~= nil and Weapon:FindFirstChild("Active") ~= nil and Weapon:FindFirstChild("TargetPos") ~= nil and Weapon:FindFirstChild("Type") ~= nil then
3055
			if Weapon.Type.Value == "HealDrink" then
3056
				Weapon.Active.Value = true
3057
			end
3058
		end
3059
	end
3060
end)
3061
Delay(1, function() --Player Customization Script
3062
	if script.Parent["Custom_Name"].Value == "" then
3063
		script.Parent.Name = "Player" ..math.random(1, 999)
3064
	else
3065
		script.Parent.Name = script.Parent["Custom_Name"].Value
3066
	end
3067
	BColors = {3, 5, 12, 18, 108, 128, 138, 224, 224, 226, 226}
3068
	SColors = {145, 146, 147, 148, 149, 150, 168, 176, 178, 179, 200}
3069
	PColors = {190, 191, 193, 1024, 1025, 1026, 1027, 1028, 1029, 1030}
3070
	BColor = BrickColor.new(BColors[math.random(1, #BColors)])
3071
	SColor = BrickColor.new(SColors[math.random(1, #SColors)])
3072
	PColor = BrickColor.new(PColors[math.random(1, #PColors)])
3073
	if script.Parent.IsOnTeam.Value == true then
3074
		SColor = script.Parent.IsOnTeam.Team.Value
3075
		PColor = SColor
3076
		if script.Parent.IsOnTeam.ShowTag.Value == true then
3077
			script.Parent.Name = script.Parent.Name .." [" ..script.Parent.IsOnTeam.Team.Value.Name .."]"
3078
		end
3079
	end
3080
	if script.Parent["Body Colors"].ForceColors.Value ~= true then
3081
		script.Parent["Body Colors"].HeadColor = BColor
3082
		script.Parent["Body Colors"].LeftArmColor = BColor
3083
		script.Parent["Body Colors"].LeftLegColor = PColor
3084
		script.Parent["Body Colors"].RightArmColor = BColor
3085
		script.Parent["Body Colors"].RightLegColor = PColor
3086
		script.Parent["Body Colors"].TorsoColor = SColor
3087
	end
3088
	script.Parent.Head.BrickColor = script.Parent["Body Colors"].HeadColor
3089
	script.Parent["Left Arm"].BrickColor = script.Parent["Body Colors"].LeftArmColor
3090
	script.Parent["Left Leg"].BrickColor = script.Parent["Body Colors"].LeftLegColor
3091
	script.Parent["Right Arm"].BrickColor = script.Parent["Body Colors"].RightArmColor
3092
	script.Parent["Right Leg"].BrickColor = script.Parent["Body Colors"].RightLegColor
3093
	script.Parent.Torso.BrickColor = script.Parent["Body Colors"].TorsoColor
3094
	if script.Parent["Force_Weapon"].Value ~= 0 then
3095
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Weapon"].Value)
3096
		local c = x:GetChildren()
3097
		for i = 1, #c do
3098
			if c[i].ClassName == "Tool" and c[i]:FindFirstChild("AIProgram") ~= nil and c[i]:FindFirstChild("Active") ~= nil and c[i]:FindFirstChild("TargetPos") ~= nil and c[i]:FindFirstChild("Type") ~= nil and c[i]:FindFirstChild("Handle") ~= nil then
3099
				c[i].Parent = script.Parent
3100
				script.Parent.DropWeapon.Value = false
3101
			end
3102
		end
3103
	end
3104
	if script.Parent["Force_Hat"].Value ~= 0 then
3105
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Hat"].Value)
3106
		local c = x:GetChildren()
3107
		for i = 1, #c do
3108
			if c[i].ClassName == "Hat" and c[i]:FindFirstChild("Handle") ~= nil then
3109
				c[i].Parent = script.Parent
3110
			end
3111
		end
3112
	end
3113
	if script.Parent["Force_Shirt"].Value ~= 0 then
3114
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Shirt"].Value)
3115
		local c = x:GetChildren()
3116
		for i = 1, #c do
3117
			if c[i].ClassName == "Shirt" then
3118
				c[i].Parent = script.Parent
3119
			end
3120
		end
3121
	end
3122
	if script.Parent["Force_Pants"].Value ~= 0 then
3123
		local x = game:GetService("InsertService"):LoadAsset(script.Parent["Force_Pants"].Value)
3124
		local c = x:GetChildren()
3125
		for i = 1, #c do
3126
			if c[i].ClassName == "Pants" then
3127
				c[i].Parent = script.Parent
3128
			end
3129
		end
3130
	end
3131
end)
3132
wait()
3133
print("Player Bot Loaded")
3134
end))
3135
Model0.Humanoid.Died:connect(function()
3136
	Model0:remove()
3137
	YOURCLONE=nil
3138
end)
3139
3140
Model0.Torso.Position=Vector3.new(Character.Torso.Position.X,Character.Torso.Position.Y+3,Character.Torso.Position.Z)
3141
Model0.Name=Character.Name.."'s clone"
3142
Model0.Humanoid.WalkToPart=torso
3143
YOURCLONE=Model0
3144
for i,v in pairs(mas:GetChildren()) do
3145
	v.Parent = workspace
3146
	pcall(function() v:MakeJoints() end)
3147
end
3148
mas:Destroy()
3149
for i,v in pairs(cors) do
3150
	spawn(function()
3151
		pcall(v)
3152
	end)
3153
end
3154
end
3155
3156
--Converted with ttyyuu12345's model to script plugin v4
3157
function sandbox(var,func)
3158
	local env = getfenv(func)
3159
	local newenv = setmetatable({},{
3160
		__index = function(self,k)
3161
			if k=="script" then
3162
				return var
3163
			else
3164
				return env[k]
3165
			end
3166
		end,
3167
	})
3168
	setfenv(func,newenv)
3169
	return func
3170
end
3171
cors = {}
3172
mas = Instance.new("Model",game:GetService("Lighting"))
3173
Model0 = Instance.new("Model")
3174
MEF=Model0
3175
Part1 = Instance.new("Part")
3176
SpecialMesh2 = Instance.new("SpecialMesh")
3177
Part3 = Instance.new("Part")
3178
SpecialMesh4 = Instance.new("SpecialMesh")
3179
Part5 = Instance.new("Part")
3180
SpecialMesh6 = Instance.new("SpecialMesh")
3181
Part7 = Instance.new("Part")
3182
SpecialMesh8 = Instance.new("SpecialMesh")
3183
Part9 = Instance.new("Part")
3184
SpecialMesh10 = Instance.new("SpecialMesh")
3185
Part11 = Instance.new("Part")
3186
SpecialMesh12 = Instance.new("SpecialMesh")
3187
Model0.Parent = mas
3188
Part1.Name = "Right Arm"
3189
Part1.Parent = Model0
3190
Part1.Material = Enum.Material.Glass
3191
Part1.BrickColor = BrickColor.new("Pastel blue-green")
3192
Part1.Rotation = Vector3.new(-180, 0, -90)
3193
Part1.Size = Vector3.new(4, 1, 2)
3194
Part1.CFrame = CFrame.new(-12.3300028, 0.500003994, -1.11000025, 0, 1, 0, 1, 0, 0, 0, 0, -1)
3195
Part1.BottomSurface = Enum.SurfaceType.Smooth
3196
Part1.TopSurface = Enum.SurfaceType.Smooth
3197
Part1.Color = Color3.new(0.623529, 0.952941, 0.913726)
3198
Part1.Position = Vector3.new(-12.3300028, 0.500003994, -1.11000025)
3199
Part1.Orientation = Vector3.new(0, 180, 90)
3200
Part1.Color = Color3.new(0.623529, 0.952941, 0.913726)
3201
SpecialMesh2.Parent = Part1
3202
SpecialMesh2.MeshId = "rbxassetid://1563415862"
3203
SpecialMesh2.Offset = Vector3.new(0, 4, 0)
3204
SpecialMesh2.MeshType = Enum.MeshType.FileMesh
3205
Part3.Name = "Right Leg"
3206
Part3.Parent = Model0
3207
Part3.Material = Enum.Material.Glass
3208
Part3.BrickColor = BrickColor.new("Pastel blue-green")
3209
Part3.Rotation = Vector3.new(-180, 0, -90)
3210
Part3.Size = Vector3.new(4, 1, 2)
3211
Part3.CFrame = CFrame.new(-14.3400002, 0.500003994, -0.0500001721, 0, 1, 0, 1, 0, 0, 0, 0, -1)
3212
Part3.BottomSurface = Enum.SurfaceType.Smooth
3213
Part3.TopSurface = Enum.SurfaceType.Smooth
3214
Part3.Color = Color3.new(0.623529, 0.952941, 0.913726)
3215
Part3.Position = Vector3.new(-14.3400002, 0.500003994, -0.0500001721)
3216
Part3.Orientation = Vector3.new(0, 180, 90)
3217
Part3.Color = Color3.new(0.623529, 0.952941, 0.913726)
3218
SpecialMesh4.Parent = Part3
3219
SpecialMesh4.MeshId = "rbxassetid://1563410216"
3220
SpecialMesh4.Offset = Vector3.new(0, 4, 0)
3221
SpecialMesh4.MeshType = Enum.MeshType.FileMesh
3222
Part5.Name = "Left Leg"
3223
Part5.Parent = Model0
3224
Part5.Material = Enum.Material.Glass
3225
Part5.BrickColor = BrickColor.new("Pastel blue-green")
3226
Part5.Rotation = Vector3.new(-180, 0, -90)
3227
Part5.Size = Vector3.new(4, 1, 2)
3228
Part5.CFrame = CFrame.new(-14.3299971, 0.500003994, 1.17999947, 0, 1, 0, 1, 0, 0, 0, 0, -1)
3229
Part5.BottomSurface = Enum.SurfaceType.Smooth
3230
Part5.TopSurface = Enum.SurfaceType.Smooth
3231
Part5.Color = Color3.new(0.623529, 0.952941, 0.913726)
3232
Part5.Position = Vector3.new(-14.3299971, 0.500003994, 1.17999947)
3233
Part5.Orientation = Vector3.new(0, 180, 90)
3234
Part5.Color = Color3.new(0.623529, 0.952941, 0.913726)
3235
SpecialMesh6.Parent = Part5
3236
SpecialMesh6.MeshId = "rbxassetid://1563408982"
3237
SpecialMesh6.Offset = Vector3.new(0, 4, 0)
3238
SpecialMesh6.MeshType = Enum.MeshType.FileMesh
3239
Part7.Name = "Left Arm"
3240
Part7.Parent = Model0
3241
Part7.Material = Enum.Material.Glass
3242
Part7.BrickColor = BrickColor.new("Pastel blue-green")
3243
Part7.Rotation = Vector3.new(0, 0, -90)
3244
Part7.Size = Vector3.new(4, 1, 2)
3245
Part7.CFrame = CFrame.new(-12.2099981, 0.490003794, 2.1400013, 0, 1, 0, -1, 0, 0, 0, 0, 1)
3246
Part7.BottomSurface = Enum.SurfaceType.Smooth
3247
Part7.TopSurface = Enum.SurfaceType.Smooth
3248
Part7.Color = Color3.new(0.623529, 0.952941, 0.913726)
3249
Part7.Position = Vector3.new(-12.2099981, 0.490003794, 2.1400013)
3250
Part7.Orientation = Vector3.new(0, 0, -90)
3251
Part7.Color = Color3.new(0.623529, 0.952941, 0.913726)
3252
SpecialMesh8.Parent = Part7
3253
SpecialMesh8.MeshId = "rbxassetid://1563407350"
3254
SpecialMesh8.Offset = Vector3.new(0, 4, 0)
3255
SpecialMesh8.MeshType = Enum.MeshType.FileMesh
3256
Part9.Name = "Torso"
3257
Part9.Parent = Model0
3258
Part9.Material = Enum.Material.Glass
3259
Part9.BrickColor = BrickColor.new("Pastel blue-green")
3260
Part9.Rotation = Vector3.new(-180, 0, -90)
3261
Part9.Size = Vector3.new(4, 1, 2)
3262
Part9.CFrame = CFrame.new(-12.6299973, 0.500003994, 0.519999921, 0, 1, 0, 1, 0, 0, 0, 0, -1)
3263
Part9.BottomSurface = Enum.SurfaceType.Smooth
3264
Part9.TopSurface = Enum.SurfaceType.Smooth
3265
Part9.Color = Color3.new(0.623529, 0.952941, 0.913726)
3266
Part9.Position = Vector3.new(-12.6299973, 0.500003994, 0.519999921)
3267
Part9.Orientation = Vector3.new(0, 180, 90)
3268
Part9.Color = Color3.new(0.623529, 0.952941, 0.913726)
3269
SpecialMesh10.Parent = Part9
3270
SpecialMesh10.MeshId = "rbxassetid://1563386325"
3271
SpecialMesh10.MeshType = Enum.MeshType.FileMesh
3272
Part11.Name = "Head"
3273
Part11.Parent = Model0
3274
Part11.Material = Enum.Material.Glass
3275
Part11.BrickColor = BrickColor.new("Pastel blue-green")
3276
Part11.Rotation = Vector3.new(-180, 0, -90)
3277
Part11.Size = Vector3.new(4, 1, 2)
3278
Part11.CFrame = CFrame.new(-10.1799965, 0.500003994, 0.519999921, 0, 1, 0, 1, 0, 0, 0, 0, -1)
3279
Part11.BottomSurface = Enum.SurfaceType.Smooth
3280
Part11.TopSurface = Enum.SurfaceType.Smooth
3281
Part11.Color = Color3.new(0.623529, 0.952941, 0.913726)
3282
Part11.Position = Vector3.new(-10.1799965, 0.500003994, 0.519999921)
3283
Part11.Orientation = Vector3.new(0, 180, 90)
3284
Part11.Color = Color3.new(0.623529, 0.952941, 0.913726)
3285
SpecialMesh12.Parent = Part11
3286
SpecialMesh12.MeshId = "rbxassetid://1563390192"
3287
SpecialMesh12.MeshType = Enum.MeshType.FileMesh
3288
for i,v in pairs(mas:GetChildren()) do
3289
	v.Parent = AdvancingFortress
3290
	pcall(function() v:MakeJoints() end)
3291
end
3292
mas:Destroy()
3293
for i,v in pairs(cors) do
3294
	spawn(function()
3295
		pcall(v)
3296
	end)
3297
end
3298
--end of costume
3299
3300
3301
  AdvancingFortress.Parent = Character
3302
  torso = AdvancingFortress.Torso
3303
  hum = AdvancingFortress.Humanoid
3304
  AdvancingFortress.Name = "Advancing Fortress"
3305
  pl = AdvancingFortress
3306
  for i, v in pairs(AdvancingFortress:GetChildren()) do
3307
    if v:IsA("BasePart") then
3308
      v.Transparency = 1
3309
    end
3310
  end
3311
  local Humanoid = AdvancingFortress.Humanoid
3312
  local Mouse = Player:GetMouse()
3313
  local LeftArm = AdvancingFortress["Left Arm"]
3314
  local RightArm = AdvancingFortress["Right Arm"]
3315
  local LeftLeg = AdvancingFortress["Left Leg"]
3316
  local RightLeg = AdvancingFortress["Right Leg"]
3317
  local Head = AdvancingFortress.Head
3318
  local Torso = AdvancingFortress.Torso
3319
  local Camera = game.Workspace.CurrentCamera
3320
  local RootPart = AdvancingFortress.HumanoidRootPart
3321
  local RootJoint = RootPart.RootJoint
3322
  local attack = false
3323
  local Anim = "Idle"
3324
  local attacktype = 1
3325
  local Torsovelocity = (RootPart.Velocity * Vector3.new(1, 0, 1)).magnitude
3326
  local velocity = RootPart.Velocity.y
3327
  local sine = 0
3328
  local change = 1
3329
  local Create = LoadLibrary("RbxUtility").Create
3330
  local TimeStop = false
3331
  local m = Create("Model")({
3332
    Parent = AdvancingFortress,
3333
    Name = "WeaponModel"
3334
  })
3335
--for _,v in pairs(KQ) do
3336
--v.Transparency=1	
3337
--end
3338
KQ={
3339
	
3340
}
3341
3342
  AdvancingFortress.Head.Name = "FHead"
3343
  AdvancingFortress.Torso.Name = "FTorso"
3344
3345
3346
shirt = Instance.new("Shirt", Character)
3347
shirt.Name = "Shirt"
3348
pants = Instance.new("Pants", Character)
3349
pants.Name = "Pants"
3350
Character.Shirt.ShirtTemplate = "rbxassetid://609199174"
3351
Character.Pants.PantsTemplate = "rbxassetid://1079566963"
3352
 
3353
for i, v in pairs(Character:GetChildren()) do
3354
    if v.ClassName == "Accessory" then
3355
        v:Remove()
3356
    end
3357
end
3358
 
3359
Hat3 = Instance.new("Model")
3360
Hat3.Parent = Character
3361
Hat3.Name = "Hat3"
3362
rh = Instance.new("Part")
3363
rh.Parent = Hat3
3364
rh.BrickColor = BrickColor.new("Cool yellow")
3365
rh.Locked = true
3366
rh.CanCollide = false
3367
mesh = Instance.new("SpecialMesh")
3368
rh.formFactor =  "Symmetric"
3369
mesh.MeshType = "FileMesh"
3370
mesh.MeshId = "rbxassetid://495152230"
3371
mesh.Parent = rh
3372
local weld = Instance.new("Weld")
3373
weld.Parent = rh
3374
weld.Part0 = rh
3375
weld.Part1 =Character.Head
3376
weld.C0 = CFrame.new(0, 0.4, 0)*CFrame.Angles(0, 0, 0)
3377
mesh.Scale = Vector3.new(1,1,1)
3378
Hat3.Part.Transparency = 0
3379
3380
for _,v in pairs(AdvancingFortress:GetChildren()) do
3381
	if v:IsA('Part') then
3382
		v.BrickColor=BrickColor.new('Pastel blue-green')
3383
	end
3384
end
3385
  for _,v in pairs(MEF:GetChildren()) do
3386
	table.insert(KQ,v)
3387
	v.CanCollide=false
3388
	if v.Name=='Head' or v.Name=='Torso' then
3389
	g=AdvancingFortress['F'..v.Name]
3390
	else
3391
	g=AdvancingFortress[v.Name]
3392
	end
3393
	v.Parent=AdvancingFortress
3394
	v.Transparency=1
3395
	weld=Instance.new('Weld',v)
3396
	if v.Name=='Head' then
3397
	weld.C0=CFrame.new(0,-1,0)*CFrame.Angles(0,-1.5,0)
3398
	elseif v.Name=='Torso' then
3399
		weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0)
3400
	elseif v.Name=='Left Arm' then
3401
		weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,1.5,0)
3402
	elseif v.Name=='Left Leg' then
3403
		weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0)
3404
	elseif v.Name=='Right Arm' then
3405
		weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0)
3406
	elseif v.Name=='Right Leg' then
3407
		weld.C0=CFrame.new(0,0,0)*CFrame.Angles(0,-1.5,0)
3408
end	
3409
	weld.Part0=v
3410
	weld.Part1=g
3411
	end-- apply costume
3412
AdvancingFortress.FTorso.BrickColor=BrickColor.new('Pastel blue-green')
3413
3414
  AdvancingFortress.HumanoidRootPart.Name = "FHumanoidRootPart"
3415
  Humanoid.Animator.Parent = nil
3416
  AdvancingFortress.Animate.Parent = nil
3417
3418
base = Instance.new("ScreenGui",plr.PlayerGui)
3419
bbg = Instance.new("BillboardGui",plr.Character.Head)
3420
bbg.Size = UDim2.new(0,200,0,50)
3421
bbg.StudsOffset = Vector3.new(0,3,0)
3422
3423
bbgTl = Instance.new("TextLabel",bbg)
3424
bbgTl.BackgroundTransparency = 1
3425
bbgTl.Size = UDim2.new(10,0,1,0)
3426
bbgTl.Position = UDim2.new(-4.5,0,0,0)
3427
bbgTl.Font = "Code"
3428
bbgTl.Text = " "
3429
bbgTl.TextSize = 25
3430
bbgTl.TextStrokeColor3 = Color3.new(1,1,1)
3431
bbgTl.TextColor3 = Color3.new(0,0,0)
3432
bbgTl.TextStrokeTransparency = 0
3433
bbgTl.TextWrapped = true
3434
3435
function Chat(msg)
3436
	if msg=='NANI' then
3437
	      CFuncs.Sound.Create(948494432, Torso, 1, 1)
3438
	end
3439
	ff=game.Chat:FilterStringAsync(msg,Player,Player)
3440
	bbgTl.Text = ff
3441
	wait(1)
3442
	if bbgTl.Text == ff then
3443
		bbgTl.Text = " "
3444
	end
3445
end
3446
lknives=false
3447
3448
 
3449
-- Fired when client sends a request to write on the sign
3450
-- Called when button is clicked
3451
3452
		
3453
plr.Chatted:connect(function(msg)--			local messageObject = getTextObject(msg, Player.UserId)
3454
	Chat(msg)
3455
end)
3456
3457
3458
  local function newMotor(part0, part1, c0, c1)
3459
    local w = Create("Weld")({
3460
      Parent = part0,
3461
      Part0 = part0,
3462
      Part1 = part1,
3463
      C0 = c0,
3464
      C1 = c1
3465
    })
3466
    return w
3467
  end
3468
  function clerp(a, b, t)
3469
    return a:lerp(b, t)
3470
  end
3471
  RootCF = CFrame.fromEulerAnglesXYZ(-1.57, 0, 3.14)
3472
  NeckCF = CFrame.new(0, 1, 0, -1, 0, 0, 0, 0, 1, 0, 1, 0)
3473
  local RW = newMotor(Torso, RightArm, CFrame.new(1.5, 0, 0), CFrame.new(0, 0, 0))
3474
  local LW = newMotor(Torso, LeftArm, CFrame.new(-1.5, 0, 0), CFrame.new(0, 0, 0))
3475
  local RH = newMotor(Torso, RightLeg, CFrame.new(0.5, -2, 0), CFrame.new(0, 0, 0))
3476
  local LH = newMotor(Torso, LeftLeg, CFrame.new(-0.5, -2, 0), CFrame.new(0, 0, 0))
3477
  RootJoint.C1 = CFrame.new(0, 0, 0)
3478
  RootJoint.C0 = CFrame.new(0, 0, 0)
3479
  Torso.Neck.C1 = CFrame.new(0, 0, 0)
3480
  Torso.Neck.C0 = CFrame.new(0, 1.5, 0)
3481
  local rarmc1 = RW.C1
3482
  local larmc1 = LW.C1
3483
  local rlegc1 = RH.C1
3484
  local llegc1 = LH.C1
3485
  local resetc1 = false
3486
  function PlayAnimationFromTable(table, speed, bool)
3487
    RootJoint.C0 = clerp(RootJoint.C0, table[1], speed)
3488
    Torso.Neck.C0 = clerp(Torso.Neck.C0, table[2], speed)
3489
    RW.C0 = clerp(RW.C0, table[3], speed)
3490
    LW.C0 = clerp(LW.C0, table[4], speed)
3491
    RH.C0 = clerp(RH.C0, table[5], speed)
3492
    LH.C0 = clerp(LH.C0, table[6], speed)
3493
    if bool == true and resetc1 == false then
3494
      resetc1 = true
3495
      RootJoint.C1 = RootJoint.C1
3496
      Torso.Neck.C1 = Torso.Neck.C1
3497
      RW.C1 = rarmc1
3498
      LW.C1 = larmc1
3499
      RH.C1 = rlegc1
3500
      LH.C1 = llegc1
3501
    end
3502
  end
3503
  ArtificialHB = Create("BindableEvent", script)({Parent = script, Name = "Heartbeat"})
3504
  script:WaitForChild("Heartbeat")
3505
  frame = 0.03333333333333333
3506
  tf = 0
3507
  allowframeloss = false
3508
  tossremainder = false
3509
  lastframe = tick()
3510
  script.Heartbeat:Fire()
3511
  game:GetService("RunService").Heartbeat:connect(function(s, p)
3512
    tf = tf + s
3513
    if tf >= frame then
3514
      if allowframeloss then
3515
        script.Heartbeat:Fire()
3516
        lastframe = tick()
3517
      else
3518
        for i = 1, math.floor(tf / frame) do
3519
          script.Heartbeat:Fire()
3520
        end
3521
        lastframe = tick()
3522
      end
3523
      if tossremainder then
3524
        tf = 0
3525
      else
3526
        tf = tf - frame * math.floor(tf / frame)
3527
      end
3528
    end
3529
  end)
3530
  function swait(num)
3531
    if num == 0 or num == nil then
3532
      ArtificialHB.Event:wait()
3533
    else
3534
      for i = 0, num do
3535
        ArtificialHB.Event:wait()
3536
      end
3537
    end
3538
  end
3539
  function RemoveOutlines(part)
3540
    part.TopSurface, part.BottomSurface, part.LeftSurface, part.RightSurface, part.FrontSurface, part.BackSurface = 10, 10, 10, 10, 10, 10
3541
  end
3542
  CFuncs = {
3543
    Part = {
3544
      Create = function(Parent, Material, Reflectance, Transparency, BColor, Name, Size)
3545
        local Part = Create("Part")({
3546
          Parent = Parent,
3547
          Reflectance = Reflectance,
3548
          Transparency = Transparency,
3549
          CanCollide = false,
3550
          Locked = true,
3551
          BrickColor = BrickColor.new(tostring(BColor)),
3552
          Name = Name,
3553
          Size = Size,
3554
          Material = Material
3555
        })
3556
        RemoveOutlines(Part)
3557
        return Part
3558
      end
3559
    },
3560
    Mesh = {
3561
      Create = function(Mesh, Part, MeshType, MeshId, OffSet, Scale)
3562
        local Msh = Create(Mesh)({
3563
          Parent = Part,
3564
          Offset = OffSet,
3565
          Scale = Scale
3566
        })
3567
        if Mesh == "SpecialMesh" then
3568
          Msh.MeshType = MeshType
3569
          Msh.MeshId = MeshId
3570
        end
3571
        return Msh
3572
      end
3573
    },
3574
    Weld = {
3575
      Create = function(Parent, Part0, Part1, C0, C1)
3576
        local Weld = Create("Weld")({
3577
          Parent = Parent,
3578
          Part0 = Part0,
3579
          Part1 = Part1,
3580
          C0 = C0,
3581
          C1 = C1
3582
        })
3583
        return Weld
3584
      end
3585
    },
3586
    Sound = {
3587
      Create = function(id, par, vol, pit)
3588
        local Sound = Create("Sound")({
3589
          Volume = vol,
3590
          Pitch = pit or 1,
3591
          SoundId = "rbxassetid://" .. id,
3592
          Parent = par or workspace
3593
        })
3594
        Sound:play()
3595
        game:GetService("Debris"):AddItem(Sound, 130)
3596
        return Sound
3597
      end
3598
    },
3599
    Decal = {
3600
      Create = function(Color, Texture, Transparency, Name, Parent)
3601
        local Decal = Create("Decal")({
3602
          Color3 = Color,
3603
          Texture = "rbxassetid://" .. Texture,
3604
          Transparency = Transparency,
3605
          Name = Name,
3606
          Parent = Parent
3607
        })
3608
        return Decal
3609
      end
3610
    },
3611
    BillboardGui = {
3612
      Create = function(Parent, Image, Position, Size)
3613
        local BillPar = CFuncs.Part.Create(Parent, "SmoothPlastic", 0, 1, BrickColor.new("Black"), "BillboardGuiPart", Vector3.new(1, 1, 1))
3614
        BillPar.CFrame = CFrame.new(Position)
3615
        local Bill = Create("BillboardGui")({
3616
          Parent = BillPar,
3617
          Adornee = BillPar,
3618
          Size = UDim2.new(1, 0, 1, 0),
3619
          SizeOffset = Vector2.new(Size, Size)
3620
        })
3621
        local d = Create("ImageLabel", Bill)({
3622
          Parent = Bill,
3623
          BackgroundTransparency = 1,
3624
          Size = UDim2.new(1, 0, 1, 0),
3625
          Image = "rbxassetid://" .. Image
3626
        })
3627
        return BillPar
3628
      end
3629
    },
3630
    ParticleEmitter = {
3631
      Create = function(Parent, Color1, Color2, LightEmission, Size, Texture, Transparency, ZOffset, Accel, Drag, LockedToPart, VelocityInheritance, EmissionDirection, Enabled, LifeTime, Rate, Rotation, RotSpeed, Speed, VelocitySpread)
3632
        local Particle = Create("ParticleEmitter")({
3633
          Parent = Parent,
3634
          Color = ColorSequence.new(Color1, Color2),
3635
          LightEmission = LightEmission,
3636
          Size = Size,
3637
          Texture = Texture,
3638
          Transparency = Transparency,
3639
          ZOffset = ZOffset,
3640
          Acceleration = Accel,
3641
          Drag = Drag,
3642
          LockedToPart = LockedToPart,
3643
          VelocityInheritance = VelocityInheritance,
3644
          EmissionDirection = EmissionDirection,
3645
          Enabled = Enabled,
3646
          Lifetime = LifeTime,
3647
          Rate = Rate,
3648
          Rotation = Rotation,
3649
          RotSpeed = RotSpeed,
3650
          Speed = Speed,
3651
          VelocitySpread = VelocitySpread
3652
        })
3653
        return Particle
3654
      end
3655
    },
3656
    CreateTemplate = {}
3657
  }
3658
  function rayCast(Position, Direction, Range, Ignore)
3659
    return game:service("Workspace"):FindPartOnRay(Ray.new(Position, Direction.unit * (Range or 999.999)), Ignore)
3660
  end
3661
  function FindNearestTorso(pos)
3662
    local list = game.Workspace:children()
3663
    local torso
3664
    local dist = 1000
3665
    local temp, human, temp2
3666
    for x = 1, #list do
3667
      temp2 = list[x]
3668
      if temp2.className == "Model" and temp2.Name ~= Character.Name then
3669
        temp = temp2:findFirstChild("Torso")
3670
        human = temp2:findFirstChild("Humanoid")
3671
        if temp ~= nil and human ~= nil and human.Health > 0 and dist > (temp.Position - pos).magnitude then
3672
          local dohit = true
3673
          if dohit == true then
3674
            torso = temp
3675
            dist = (temp.Position - pos).magnitude
3676
          end
3677
        end
3678
      end
3679
    end
3680
    return torso, dist
3681
  end
3682
  function Damage(Part, hit, minim, maxim, knockback, Type, Property, Delay, HitSound, HitPitch)
3683
    if hit.Parent == nil then
3684
      return
3685
    end
3686
    local h = hit.Parent:FindFirstChild("Humanoid")
3687
    for _, v in pairs(hit.Parent:children()) do
3688
   		  c=hit.Parent:findFirstChild('HumanoidRootPart') 
3689
		if v:IsA("Humanoid") then
3690
        h = v
3691
		if c~=nil then
3692
		end
3693
      end
3694
    end
3695
    if h ~= nil and hit.Parent.Name ~= Character.Name and hit.Parent:FindFirstChild("Torso") ~= nil then
3696
      if hit.Parent:findFirstChild("DebounceHit") ~= nil and hit.Parent.DebounceHit.Value == true then
3697
        return
3698
      end
3699
      local c = Create("ObjectValue")({
3700
        Name = "creator",
3701
        Value = game:service("Players").LocalPlayer,
3702
        Parent = h
3703
      })
3704
      game:GetService("Debris"):AddItem(c, 0.5)
3705
      CFuncs.Sound.Create(HitSound, hit, 1, HitPitch)
3706
      local Damage = math.random(minim, maxim)
3707
      local blocked = false
3708
      local block = hit.Parent:findFirstChild("Block")
3709
      if block ~= nil and block.className == "IntValue" and block.Value > 0 then
3710
        blocked = true
3711
        block.Value = block.Value - 1
3712
        print(block.Value)
3713
      end
3714
      if TimeStop == false then
3715
        h.Health = h.Health - Damage
3716
        ShowDamage(Part.CFrame * CFrame.new(0, 0, Part.Size.Z / 2).p + Vector3.new(0, 1.5, 0), -Damage, 1.5, BrickColor.new("Pastel blue-green").Color)
3717
      elseif TimeStop == true then
3718
        repeat
3719
          wait()
3720
        until TimeStop == false
3721
        h.Health = h.Health - Damage / 2
3722
        ShowDamage(Part.CFrame * CFrame.new(0, 0, Part.Size.Z / 2).p + Vector3.new(0, 1.5, 0), -Damage, 1.5, BrickColor.new("Pastel blue-green").Color)
3723
      end
3724
      if Type == "Knockdown" then
3725
        local hum = hit.Parent.Humanoid
3726
        hum.PlatformStand = true
3727
        coroutine.resume(coroutine.create(function(HHumanoid)
3728
          swait(1)
3729
          HHumanoid.PlatformStand = false
3730
        end), hum)
3731
        local angle = hit.Position - (Property.Position + Vector3.new(0, 0, 0)).unit
3732
        local bodvol = Create("BodyVelocity")({
3733
          velocity = angle * knockback,
3734
          P = 5000,
3735
          maxForce = Vector3.new(8000, 8000, 8000),
3736
          Parent = hit
3737
        })
3738
        local rl = Create("BodyAngularVelocity")({
3739
          P = 3000,
3740
          maxTorque = Vector3.new(500000, 500000, 500000) * 50000000000000,
3741
          angularvelocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10)),
3742
          Parent = hit
3743
        })
3744
        game:GetService("Debris"):AddItem(bodvol, 0.5)
3745
        game:GetService("Debris"):AddItem(rl, 0.5)
3746
      elseif Type == "Normal" then
3747
        local vp = Create("BodyVelocity")({
3748
          P = 500,
3749
          maxForce = Vector3.new(math.huge, 0, math.huge),
3750
          velocity = Property.CFrame.lookVector * knockback + Property.Velocity / 1.05
3751
        })
3752
        if knockback > 0 then
3753
          vp.Parent = hit.Parent.Torso
3754
        end
3755
        game:GetService("Debris"):AddItem(vp, 0.5)
3756
      elseif Type == "Up" then
3757
        local bodyVelocity = Create("BodyVelocity")({
3758
          velocity = Vector3.new(0, 20, 0),
3759
          P = 5000,
3760
          maxForce = Vector3.new(8000, 8000, 8000),
3761
          Parent = hit
3762
        })
3763
        game:GetService("Debris"):AddItem(bodyVelocity, 0.5)
3764
      elseif Type == "DarkUp" then
3765
        coroutine.resume(coroutine.create(function()
3766
          for i = 0, 1, 0.1 do
3767
            swait()
3768
            Effects.Block.Create(BrickColor.new("Black"), hit.Parent.Torso.CFrame, 5, 5, 5, 1, 1, 1, 0.08, 1)
3769
          end
3770
        end))
3771
        local bodyVelocity = Create("BodyVelocity")({
3772
          velocity = Vector3.new(0, 20, 0),
3773
          P = 5000,
3774
          maxForce = Vector3.new(8000, 8000, 8000),
3775
          Parent = hit
3776
        })
3777
        game:GetService("Debris"):AddItem(bodyVelocity, 1)
3778
      elseif Type == "Snare" then
3779
        local bp = Create("BodyPosition")({
3780
          P = 2000,
3781
          D = 100,
3782
          maxForce = Vector3.new(math.huge, math.huge, math.huge),
3783
          position = hit.Parent.Torso.Position,
3784
          Parent = hit.Parent.Torso
3785
        })
3786
        game:GetService("Debris"):AddItem(bp, 1)
3787
      elseif Type == "Freeze" then
3788
        local BodPos = Create("BodyPosition")({
3789
          P = 50000,
3790
          D = 1000,
3791
          maxForce = Vector3.new(math.huge, math.huge, math.huge),
3792
          position = hit.Parent.Torso.Position,
3793
          Parent = hit.Parent.Torso
3794
        })
3795
        local BodGy = Create("BodyGyro")({
3796
          maxTorque = Vector3.new(400000, 400000, 400000) * math.huge,
3797
          P = 20000,
3798
          Parent = hit.Parent.Torso,
3799
          cframe = hit.Parent.Torso.CFrame
3800
        })
3801
        hit.Parent.Torso.Anchored = true
3802
        coroutine.resume(coroutine.create(function(Part)
3803
          swait(1.5)
3804
          Part.Anchored = false
3805
        end), hit.Parent.Torso)
3806
        game:GetService("Debris"):AddItem(BodPos, 3)
3807
        game:GetService("Debris"):AddItem(BodGy, 3)
3808
      end
3809
      local debounce = Create("BoolValue")({
3810
        Name = "DebounceHit",
3811
        Parent = hit.Parent,
3812
        Value = true
3813
      })
3814
      game:GetService("Debris"):AddItem(debounce, Delay)
3815
      c = Create("ObjectValue")({
3816
        Name = "creator",
3817
        Value = Player,
3818
        Parent = h
3819
      })
3820
      game:GetService("Debris"):AddItem(c, 0.5)
3821
    end
3822
  end
3823
  function ShowDamage(Pos, Text, Time, Color)
3824
    local Rate = 0.03333333333333333
3825
    local Pos = Pos or Vector3.new(0, 0, 0)
3826
    local Text = Text or ""
3827
    local Time = Time or 2
3828
    local Color = Color or Color3.new(1, 0, 1)
3829
    local EffectPart = CFuncs.Part.Create(workspace, "SmoothPlastic", 0, 1, BrickColor.new(Color), "Effect", Vector3.new(0, 0, 0))
3830
    EffectPart.Anchored = true
3831
    local BillboardGui = Create("BillboardGui")({
3832
      Size = UDim2.new(3, 0, 3, 0),
3833
      Adornee = EffectPart,
3834
      Parent = EffectPart
3835
    })
3836
    local TextLabel = Create("TextLabel")({
3837
      BackgroundTransparency = 1,
3838
      Size = UDim2.new(1, 0, 1, 0),
3839
      Text = Text,
3840
      Font = "SciFi",
3841
      TextColor3 = Color,
3842
      TextScaled = true,
3843
      Parent = BillboardGui
3844
    })
3845
    game.Debris:AddItem(EffectPart, Time)
3846
    EffectPart.Parent = game:GetService("Workspace")
3847
    delay(0, function()
3848
      local Frames = Time / Rate
3849
      for Frame = 1, Frames do
3850
        wait(Rate)
3851
        local Percent = Frame / Frames
3852
        EffectPart.CFrame = CFrame.new(Pos) + Vector3.new(0, Percent, 0)
3853
        TextLabel.TextTransparency = Percent
3854
      end
3855
      if EffectPart and EffectPart.Parent then
3856
        EffectPart:Destroy()
3857
      end
3858
    end)
3859
  end
3860
  local STDamage = false
3861
  function MagnitudeDamage(Part, Magnitude, MinimumDamage, MaximumDamage, KnockBack, Type, HitSound, HitPitch)
3862
    for _, c in pairs(workspace:children()) do
3863
      local hum = c:findFirstChild("Humanoid")
3864
      if hum ~= nil then
3865
        local head = c:findFirstChild("Torso")
3866
        if head ~= nil then
3867
          local targ = head.Position - Part.Position
3868
          local mag = targ.magnitude
3869
          if Magnitude >= mag and c.Name ~= Player.Name then
3870
            Damage(head, head, MinimumDamage, MaximumDamage, KnockBack, Type, RootPart, 0.1, HitSound, HitPitch)
3871
            if STDamage == true then
3872
              for i = 1, 3 do
3873
                Effects.Block.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 1, 1, 1, 4, 4, 4, 0.07, 1)
3874
              end
3875
              for i = 1, 10 do
3876
                CamShake(1, 70000)
3877
                Effects.Break.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 1, 1, 1)
3878
              end
3879
            elseif STDamage == false then
3880
              CamShake(1, 90000)
3881
              Effects.Block.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.07, 1)
3882
              for i = 1, 2 do
3883
                Effects.Break.Create(BrickColor.new("Pastel blue-green"), head.CFrame, 0.4, 0.4, 0.4)
3884
              end
3885
            end
3886
          end
3887
        end
3888
      end
3889
    end
3890
  end
3891
  --[[ 
3892
HHandle = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "HHandle", Vector3.new(1.09999979, 0.299999923, 1.0999999))
3893
  HHandleWeld = CFuncs.Weld.Create(m, Head, HHandle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0646438599, -0.0500068665, -0.0646400452, -0.707107365, -3.21031663E-8, 0.707106411, -8.19564079E-8, 1.00000119, -1.41561088E-7, -0.707106352, 1.38630043E-7, -0.707107484))
3894
  Eye1 = CFuncs.Part.Create(m, Enum.Material.Neon, 0, 1, "White", "Eye1", Vector3.new(0.400000006, 0.200000003, 0.200000003))
3895
  PartWeld = CFuncs.Weld.Create(m, HHandle, Eye1, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0381011963, -0.0574798584, 0.471725464, -2.89082527E-6, 0.173647985, -0.984807968, -6.2584877E-7, 0.984808922, 0.173648104, 1.00000012, 1.02902288E-6, -2.77161598E-6))
3896
  CFuncs.Mesh.Create("SpecialMesh", Eye1, Enum.MeshType.Sphere, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3897
  Eye2 = CFuncs.Part.Create(m, Enum.Material.Neon, 0, 1, "White", "Eye2", Vector3.new(0.400000006, 0.200000003, 0.200000003))
3898
  PartWeld = CFuncs.Weld.Create(m, HHandle, Eye2, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0115432739, -0.0487277508, 0.482452393, -0.981060266, -0.173648134, -0.0858327746, -0.172987267, 0.984808922, -0.0151339322, 0.0871568322, 3.96735317E-7, -0.996194839))
3899
  CFuncs.Mesh.Create("SpecialMesh", Eye2, Enum.MeshType.Sphere, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3900
  THandle = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Medium stone grey", "THandle", Vector3.new(1, 0.799999893, 1))
3901
  THandleWeld = CFuncs.Weld.Create(m, Torso, THandle, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3902
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.80000019, 0.300000012, 1.80000007))
3903
  PartWeld = CFuncs.Weld.Create(m, THandle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-6.10351563E-5, -1.04342794, -0.404396057, 1, -8.19564079E-8, 5.96046519E-8, -1.01078633E-7, 0.939694166, -0.342019171, 1.52638329E-8, 0.34201926, 0.939693213))
3904
  CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3905
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 1.10000002, 0.300000012))
3906
  PartWeld = CFuncs.Weld.Create(m, THandle, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-5.34057617E-5, -0.943422318, -1.35441589, 1, -8.19564079E-8, 5.96046519E-8, -1.01078633E-7, 0.939694166, -0.342019171, 1.52638329E-8, 0.34201926, 0.939693213))
3907
  CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3908
--]]
3909
 AHandleR = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "AHandleR", Vector3.new(0.799999952, 0.800000012, 1.22000003))
3910
  AHandleRWeld = CFuncs.Weld.Create(m, RightArm, AHandleR, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.209915161, 0.00999641418, -3.81469727E-6, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3911
 --[[ 
3912
3913
 Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.899999976, 1.01999998))
3914
  PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0999984741, 0.550004005, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3915
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003))
3916
  PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.150001526, 0.200003624, -0.359994888, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3917
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003))
3918
  PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149993896, 0.20000267, 0.359992981, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3919
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.20000005, 0.800000012, 1.20000005))
3920
  PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.209899902, -0.809997559, 5.7220459E-6, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024))
3921
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999988, 1.01999998))
3922
  PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.300003052, 0.650004387, 1.71661377E-5, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3923
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.699999988, 1.01999998))
3924
  PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149993896, 0.650003433, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3925
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999928, 0.520000041))
3926
  PartWeld = CFuncs.Weld.Create(m, AHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.199996948, -0.049996376, -3.81469727E-6, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3927
--]] 
3928
 HitboxR = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "HitboxR", Vector3.new(0.799999952, 0.800000012, 1.22000003))
3929
3930
  HitboxRWeld = CFuncs.Weld.Create(m, AHandleR, HitboxR, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.700003624, 0, 1, -8.19564079E-8, 5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, 5.96046519E-8, -1.41561088E-7, 1.00000024))
3931
  AHandleL = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "AHandleL", Vector3.new(0.800000072, 0.800000012, 1.22000003))
3932
  AHandleLWeld = CFuncs.Weld.Create(m, LeftArm, AHandleL, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.210014343, 0.00999736786, 1.14440918E-5, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024))
3933
  HitboxL = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "HitboxL", Vector3.new(0.800000072, 0.800000012, 1.22000003))
3934
  HitboxLWeld = CFuncs.Weld.Create(m, AHandleL, HitboxL, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.700003624, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3935
3936
3937
--[[
3938
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003))
3939
  PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149986267, 0.200001717, -0.360012054, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3940
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999928, 0.520000041))
3941
  PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.199989319, -0.0499982834, -9.53674316E-6, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3942
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.200000003, 0.200000003))
3943
  PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149986267, 0.200001717, 0.359992981, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3944
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.20000005, 0.800000012, 1.20000005))
3945
  PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.21005249, -0.81000042, 2.28881836E-5, -1, -8.19564079E-8, -5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, -5.96046519E-8, -1.41561088E-7, -1.00000024))
3946
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.899999976, 1.01999998))
3947
  PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.0999984741, 0.550003052, -5.7220459E-6, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3948
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.200000003, 0.699999988, 1.01999998))
3949
  PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.299995422, 0.650003433, -3.81469727E-6, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3950
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.300000012, 0.699999988, 1.01999998))
3951
  PartWeld = CFuncs.Weld.Create(m, AHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.149993896, 0.65000248, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3952
  LHandleR = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "LHandleR", Vector3.new(1.02999997, 1.00999999, 1.19000006))
3953
  LHandleRWeld = CFuncs.Weld.Create(m, RightLeg, LHandleR, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00498962402, -0.0950021744, 0.00499534607, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024))
3954
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000012, 0.800000012, 0.200000003))
3955
  PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00498962402, -0.00499916077, -0.604999542, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3956
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 1.00999999, 1.19000006))
3957
  PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.600002289, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3958
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 0.699999928, 1.19000006))
3959
  PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, -0.454998016, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3960
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.400000006, 1.20000005, 0.200000003))
3961
  PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00499725342, -0.00499916077, -0.604999542, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3962
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000131, 1.20000005, 0.800000012))
3963
  PartWeld = CFuncs.Weld.Create(m, LHandleR, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00499725342, 0.0149993896, 0.00500297546, 2.28095047E-7, 1.00000775, 2.99581131E-7, -1.00000417, 5.63755016E-8, -4.06898749E-7, -2.98379774E-7, 2.07959161E-8, 1.0000037))
3964
  CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3965
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003))
3966
  WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.604999542, -0.504998207, 0.29499054, -2.98023224E-8, -6.70552254E-8, -1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8))
3967
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3968
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003))
3969
  WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.60499382, -0.495001793, 0.305000305, -5.96046519E-8, -1.41561088E-7, -1.00000024, -8.19564079E-8, -1.00000119, -1.41561088E-7, -1, -8.19564079E-8, -5.96046519E-8))
3970
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3971
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003))
3972
  WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.604999542, -0.495001793, 0.29499054, 2.98023224E-8, 6.70552254E-8, 1.00000012, -3.7252903E-8, -1.0000006, -7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8))
3973
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3974
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.200000003, 0.200000003, 0.200000003))
3975
  WedgeWeld = CFuncs.Weld.Create(m, LHandleR, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.604999542, -0.504998207, 0.305000305, 2.98023224E-8, 6.70552254E-8, 1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, -1, -4.47034836E-8, -2.98023224E-8))
3976
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3977
  LHandleL = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "LHandleL", Vector3.new(1.02999997, 1.00999999, 1.19000006))
3978
  LHandleLWeld = CFuncs.Weld.Create(m, LeftLeg, LHandleL, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00498199463, -0.095000267, 0.00502204895, -1, 8.19564079E-8, -5.96046519E-8, -8.19564079E-8, 1.00000119, -1.41561088E-7, -5.96046519E-8, 1.41561088E-7, -1.00000024))
3979
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 1.00999999, 1.19000006))
3980
  PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, 0.600001335, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3981
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.400000006, 1.20000005, 0.300000012))
3982
  PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00499725342, -0.00500106812, -0.554998398, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3983
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(1.02999997, 0.699999928, 1.19000006))
3984
  PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0, -0.454999924, 0, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3985
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000131, 1.20000005, 0.800000012))
3986
  PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.00499534607, 0.0149993896, 0.00500297546, 2.28095047E-7, 1.00000775, 2.99581131E-7, -1.00000417, 5.63755016E-8, -4.06898749E-7, -2.98379774E-7, 2.07959161E-8, 1.0000037))
3987
  CFuncs.Mesh.Create("CylinderMesh", Part, "", "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3988
  Part = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Part", Vector3.new(0.800000012, 0.800000012, 0.300000012))
3989
  PartWeld = CFuncs.Weld.Create(m, LHandleL, Part, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.00498962402, -0.00500106812, -0.554998398, 1, 8.19564079E-8, 5.96046519E-8, 8.19564079E-8, 1.00000119, 1.41561088E-7, 5.96046519E-8, 1.41561088E-7, 1.00000024))
3990
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003))
3991
  WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.554998398, -0.505000114, 0.305000305, 2.98023224E-8, 6.70552254E-8, 1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, -1, -4.47034836E-8, -2.98023224E-8))
3992
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3993
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003))
3994
  WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.554998398, -0.505000114, 0.29499054, -2.98023224E-8, -6.70552254E-8, -1.00000012, 3.7252903E-8, 1.0000006, 7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8))
3995
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3996
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003))
3997
  WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(-0.554998398, -0.494999886, 0.29499054, 2.98023224E-8, 6.70552254E-8, 1.00000012, -3.7252903E-8, -1.0000006, -7.4505806E-8, 1, 4.47034836E-8, 2.98023224E-8))
3998
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
3999
  Wedge = CFuncs.Part.Create(m, Enum.Material.SmoothPlastic, 0, 1, "Camo", "Wedge", Vector3.new(0.300000012, 0.200000003, 0.200000003))
4000
  WedgeWeld = CFuncs.Weld.Create(m, LHandleL, Wedge, CFrame.new(0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1), CFrame.new(0.554998398, -0.494999886, 0.305000305, -5.96046519E-8, -1.41561088E-7, -1.00000024, -8.19564079E-8, -1.00000119, -1.41561088E-7, -1, -8.19564079E-8, -5.96046519E-8))
4001
  CFuncs.Mesh.Create("SpecialMesh", Wedge, Enum.MeshType.Wedge, "", Vector3.new(0, 0, 0), Vector3.new(1, 1, 1))
4002
--]]
4003
  Shield = CFuncs.Part.Create(m, "Neon", 0, 0.5, "Pastle brown", "Part", Vector3.new(9.1, 8.5, 0.2))
4004
  CFuncs.Mesh.Create("SpecialMesh", Shield, "FileMesh", "rbxassetid://708292865", Vector3.new(0, 0, 0), Vector3.new(0.04, 0.04, 0.04))
4005
  Shield.Parent = nil
4006
4007
  EffectModel = Create("Model")({Parent = Character, Name = "Effects"})
4008
  Effects = {
4009
    Block = {
4010
      Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay, Type)
4011
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
4012
        prt.Anchored = true
4013
        prt.CFrame = cframe
4014
        local msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4015
        game:GetService("Debris"):AddItem(prt, 10)
4016
        if Type == 1 or Type == nil then
4017
          table.insert(Effects, {
4018
            prt,
4019
            "Block1",
4020
            delay,
4021
            x3,
4022
            y3,
4023
            z3,
4024
            msh
4025
          })
4026
        elseif Type == 2 then
4027
          table.insert(Effects, {
4028
            prt,
4029
            "Block2",
4030
            delay,
4031
            x3,
4032
            y3,
4033
            z3,
4034
            msh
4035
          })
4036
        end
4037
      end
4038
    },
4039
    Cylinder = {
4040
      Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
4041
        local prt = CFuncs.Part .. Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.2, 0.2, 0.2))
4042
        prt.Anchored = true
4043
        prt.CFrame = cframe
4044
        local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4045
        game:GetService("Debris"):AddItem(prt, 2)
4046
        Effects[#Effects + 1] = {
4047
          prt,
4048
          "Cylinder",
4049
          delay,
4050
          x3,
4051
          y3,
4052
          z3
4053
        }
4054
      end
4055
    },
4056
    Head = {
4057
      Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
4058
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
4059
        prt.Anchored = true
4060
        prt.CFrame = cframe
4061
        local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Head", "nil", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4062
        game:GetService("Debris"):AddItem(prt, 10)
4063
        table.insert(Effects, {
4064
          prt,
4065
          "Cylinder",
4066
          delay,
4067
          x3,
4068
          y3,
4069
          z3,
4070
          msh
4071
        })
4072
      end
4073
    },
4074
    Sphere = {
4075
      Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
4076
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
4077
        prt.Anchored = true
4078
        prt.CFrame = cframe
4079
        local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4080
        game:GetService("Debris"):AddItem(prt, 10)
4081
        table.insert(Effects, {
4082
          prt,
4083
          "Cylinder",
4084
          delay,
4085
          x3,
4086
          y3,
4087
          z3,
4088
          msh
4089
        })
4090
      end
4091
    },
4092
    Sphere2 = {
4093
      Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
4094
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
4095
        prt.Anchored = true
4096
        prt.CFrame = cframe
4097
        local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4098
        game:GetService("Debris"):AddItem(prt, 10)
4099
        table.insert(Effects, {
4100
          prt,
4101
          "Cylinder",
4102
          delay,
4103
          x3,
4104
          y3,
4105
          z3,
4106
          msh
4107
        })
4108
      end
4109
    },
4110
    Elec = {
4111
      Create = function(cff, x, y, z)
4112
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, BrickColor.new("Pastel blue-green"), "Part", Vector3.new(1, 1, 1))
4113
        prt.Anchored = true
4114
        prt.CFrame = cff * CFrame.new(math.random(-x, x), math.random(-y, y), math.random(-z, z))
4115
        prt.CFrame = CFrame.new(prt.Position)
4116
        game:GetService("Debris"):AddItem(prt, 2)
4117
        local xval = math.random() / 2
4118
        local yval = math.random() / 2
4119
        local zval = math.random() / 2
4120
        local msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(xval, yval, zval))
4121
        table.insert(Effects, {
4122
          prt,
4123
          "Elec",
4124
          0.1,
4125
          x,
4126
          y,
4127
          z,
4128
          xval,
4129
          yval,
4130
          zval
4131
        })
4132
      end
4133
    },
4134
    Ring = {
4135
      Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
4136
        local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
4137
        prt.Anchored = true
4138
        prt.CFrame = cframe
4139
        local msh = CFuncs.Mesh.Create("CylinderMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4140
        game:GetService("Debris"):AddItem(prt, 10)
4141
        table.insert(Effects, {
4142
          prt,
4143
          "Cylinder",
4144
          delay,
4145
          x3,
4146
          y3,
4147
          z3,
4148
          msh
4149
        })
4150
      end
4151
    },
4152
    Wave = {
4153
      Create = function(brickcolor, cframe, x1, y1, z1, x3, y3, z3, delay)
4154
        local prt = CFuncs.Part.Create(EffectModel, "SmoothPlastic", 0, 0, brickcolor, "Effect", Vector3.new())
4155
        prt.Anchored = true
4156
        prt.CFrame = cframe
4157
        local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "FileMesh", "rbxassetid://20329976", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4158
        game:GetService("Debris"):AddItem(prt, 10)
4159
        table.insert(Effects, {
4160
          prt,
4161
          "Cylinder",
4162
          delay,
4163
          x3,
4164
          y3,
4165
          z3,
4166
          msh
4167
        })
4168
      end
4169
    },
4170
    Break = {
4171
      Create = function(brickcolor, cframe, x1, y1, z1)
4172
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new(0.5, 0.5, 0.5))
4173
        prt.Anchored = true
4174
        prt.CFrame = cframe * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
4175
        local msh = CFuncs.Mesh.Create("SpecialMesh", prt, "Sphere", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4176
        local num = math.random(10, 50) / 1000
4177
        game:GetService("Debris"):AddItem(prt, 10)
4178
        table.insert(Effects, {
4179
          prt,
4180
          "Shatter",
4181
          num,
4182
          prt.CFrame,
4183
          math.random() - math.random(),
4184
          0,
4185
          math.random(50, 100) / 100
4186
        })
4187
      end
4188
    },
4189
    Fire = {
4190
      Create = function(brickcolor, cframe, x1, y1, z1, delay)
4191
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 0, brickcolor, "Effect", Vector3.new())
4192
        prt.Anchored = true
4193
        prt.CFrame = cframe
4194
        msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4195
        game:GetService("Debris"):AddItem(prt, 10)
4196
        table.insert(Effects, {
4197
          prt,
4198
          "Fire",
4199
          delay,
4200
          1,
4201
          1,
4202
          1,
4203
          msh
4204
        })
4205
      end
4206
    },
4207
    FireWave = {
4208
      Create = function(brickcolor, cframe, x1, y1, z1)
4209
        local prt = CFuncs.Part.Create(EffectModel, "Neon", 0, 1, brickcolor, "Effect", Vector3.new())
4210
        prt.Anchored = true
4211
        prt.CFrame = cframe
4212
        msh = CFuncs.Mesh.Create("BlockMesh", prt, "", "", Vector3.new(0, 0, 0), Vector3.new(x1, y1, z1))
4213
        local d = Create("Decal")({
4214
          Parent = prt,
4215
          Texture = "rbxassetid://26356434",
4216
          Face = "Top"
4217
        })
4218
        local d = Create("Decal")({
4219
          Parent = prt,
4220
          Texture = "rbxassetid://26356434",
4221
          Face = "Bottom"
4222
        })
4223
        game:GetService("Debris"):AddItem(prt, 10)
4224
        table.insert(Effects, {
4225
          prt,
4226
          "FireWave",
4227
          1,
4228
          30,
4229
          math.random(400, 600) / 100,
4230
          msh
4231
        })
4232
      end
4233
    },
4234
    Lightning = {
4235
      Create = function(p0, p1, tym, ofs, col, th, tra, last)
4236
        local magz = (p0 - p1).magnitude
4237
        local curpos = p0
4238
        local trz = {
4239
          -ofs,
4240
          ofs
4241
        }
4242
        for i = 1, tym do
4243
          local li = CFuncs.Part.Create(EffectModel, "Neon", 0, tra or 0.4, col, "Ref", Vector3.new(th, th, magz / tym))
4244
          local ofz = Vector3.new(trz[math.random(1, 2)], trz[math.random(1, 2)], trz[math.random(1, 2)])
4245
          local trolpos = CFrame.new(curpos, p1) * CFrame.new(0, 0, magz / tym).p + ofz
4246
          li.Material = "Neon"
4247
          if tym == i then
4248
            local magz2 = (curpos - p1).magnitude
4249
            li.Size = Vector3.new(th, th, magz2)
4250
            li.CFrame = CFrame.new(curpos, p1) * CFrame.new(0, 0, -magz2 / 2)
4251
            table.insert(Effects, {
4252
              li,
4253
              "Disappear",
4254
              last
4255
            })
4256
          else
4257
            li.CFrame = CFrame.new(curpos, trolpos) * CFrame.new(0, 0, magz / tym / 2)
4258
            curpos = li.CFrame * CFrame.new(0, 0, magz / tym / 2).p
4259
            game.Debris:AddItem(li, 10)
4260
            table.insert(Effects, {
4261
              li,
4262
              "Disappear",
4263
              last
4264
            })
4265
          end
4266
        end
4267
      end
4268
    },
4269
    EffectTemplate = {}
4270
  }
4271
  local Invisible = true
4272
  function Reappear()
4273
    for _, i in pairs(AdvancingFortress:children()) do
4274
      if i:IsA("BasePart") then
4275
        coroutine.resume(coroutine.create(function(Part)
4276
          for i = 0, 1, 0.3 do
4277
            swait()
4278
            Part.Transparency = -i
4279
          end
4280
          Part.Transparency = 0
4281
        end), i)
4282
      end
4283
    end
4284
    for _, i in pairs(m:children()) do
4285
      if i:IsA("BasePart") then
4286
        coroutine.resume(coroutine.create(function(Part)
4287
          for i = 0, 1, 0.3 do
4288
            swait()
4289
            Part.Transparency = i
4290
          end
4291
          Part.Transparency = 0
4292
        end), i)
4293
      end
4294
    end
4295
  end
4296
  function ReappearArmorOnly()
4297
    for _, i in pairs(m:children()) do
4298
      if i:IsA("BasePart") then
4299
        coroutine.resume(coroutine.create(function(Part)
4300
          for i = 0, 1, 0.3 do
4301
            swait()
4302
            Part.Transparency = i
4303
          end
4304
          Part.Transparency = 0
4305
		for _,v in pairs(KQ) do
4306
			St=v.Weld.Part1.Name
4307
			if St=='FHead' then
4308
				St='Head'
4309
			end
4310
			v.Weld.Part1=Character[St]
4311
		end
4312
        end), i)
4313
      end
4314
    end
4315
  end
4316
  function Disappear()
4317
    for _, i in pairs(AdvancingFortress:children()) do
4318
      if i:IsA("BasePart") then
4319
        coroutine.resume(coroutine.create(function(Part)
4320
          for i = 0, 1, 0.3 do
4321
            swait()
4322
            Part.Transparency = i
4323
          end
4324
          Part.Transparency = 1
4325
        end), i)
4326
      end
4327
    end
4328
    for _, i in pairs(m:children()) do
4329
      if i:IsA("BasePart") then
4330
        coroutine.resume(coroutine.create(function(Part)
4331
          for i = 0, 1, 0.3 do
4332
            swait()
4333
            Part.Transparency = i
4334
          end
4335
          Part.Transparency = 1
4336
        end), i)
4337
      end
4338
    end
4339
  end
4340
  function DisappearArmorOnly()
4341
    for _, i in pairs(m:children()) do
4342
      if i:IsA("BasePart") then
4343
        coroutine.resume(coroutine.create(function(Part)
4344
          for i = 0, 1, 0.3 do
4345
            swait()
4346
            Part.Transparency = i
4347
          end
4348
          Part.Transparency = 1
4349
		for _,v in pairs(KQ) do
4350
			St=v.Weld.Part1.Name
4351
			if St=='Head' then
4352
			St='FHead'
4353
			end
4354
			v.Weld.Part1=AdvancingFortress[St]
4355
		end
4356
	end), i)
4357
      end
4358
    end
4359
  end
4360
  function CamShake(time, freq)
4361
    coroutine.resume(coroutine.create(function()
4362
      local cam = game:GetService("Workspace").CurrentCamera
4363
      local time = 10
4364
      local seed = Vector3.new(math.random(100, 200) / freq, math.random(100, 200) / freq, 0)
4365
      if math.random(1, 2) == 1 then
4366
        seed = Vector3.new(-seed.x, seed.y, 0)
4367
      end
4368
      if math.random(1, 2) == 1 then
4369
        seed = Vector3.new(seed.x, -seed.y, 0)
4370
      end
4371
      cam.CoordinateFrame = CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(seed.x * time, seed.y * time, 0) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude)
4372
      for i = 1, time do
4373
        cam.CoordinateFrame = CFrame.new(cam.Focus.p) * (cam.CoordinateFrame - cam.CoordinateFrame.p) * CFrame.fromEulerAnglesXYZ(-seed.x, -seed.y, 0) * CFrame.new(0, 0, (cam.CoordinateFrame.p - cam.Focus.p).magnitude)
4374
        wait()
4375
      end
4376
    end))
4377
  end
4378
  local ora = false
4379
  function ORA()
4380
    attack = true
4381
    local S = CFuncs.Sound.Create("", Torso, 3, 1)
4382
    S.Looped = true
4383
    if ora == true then
4384
      while ora == true do
4385
        CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
4386
        MagnitudeDamage(HitboxL, 5, 4, 10, 0, "Normal", "260430117", 1)
4387
        for i = 0, 1, 0.8 do
4388
          swait()
4389
          RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5)
4390
          PlayAnimationFromTable({
4391
            CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4392
            CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4393
            CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4394
            CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4395
            CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4396
            CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4397
          }, 0.8, false)
4398
        end
4399
        CFuncs.Sound.Create("200632136", HitboxR, 0.3, math.random(1, 1.2))
4400
        MagnitudeDamage(HitboxR, 5, 4, 10, 0, "Normal", "260430117", 1)
4401
        for i = 0, 1, 0.8 do
4402
          swait()
4403
          RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5)
4404
          PlayAnimationFromTable({
4405
            CFrame.new(1.1920929E-6, -0.0170394331, -0.52941519, 0.70710516, -2.21270369E-7, -0.707108498, 0.18301405, 0.965925574, 0.183012888, 0.683014154, -0.258820117, 0.683010995) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4406
            CFrame.new(-1.22189522E-6, 1.49999356, 1.04308128E-6, 0.707110465, 0.122788236, 0.696360528, -1.4748274E-6, 0.98480773, -0.173648238, -0.707103193, 0.122787461, 0.696368098) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4407
            CFrame.new(1.44562268, 0.333473027, -0.475224167, 0.907739162, 0.217196256, 0.358959734, 0.40125221, -0.199453548, -0.893991232, -0.122576535, 0.955528319, -0.268199235) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4408
            CFrame.new(-1.884794, 0.881342709, -0.770847201, 0.0912726, 0.688403964, -0.719562054, -0.91795665, -0.221949756, -0.328776807, -0.386037856, 0.690535009, 0.611666858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4409
            CFrame.new(0.789779902, -1.8586235, 0.161380947, 0.965926766, -0.258817255, -8.10623169E-6, 0.243211254, 0.907672405, 0.342022836, -0.0885141194, -0.330371499, 0.939691722) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4410
            CFrame.new(-0.73783946, -1.45406294, -0.215006173, 0.882573366, -0.0180292428, 0.469829261, -0.163172901, 0.925412893, 0.342031717, -0.440952569, -0.378531486, 0.813802838) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4411
          }, 0.8, false)
4412
        end
4413
        CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
4414
        MagnitudeDamage(HitboxL, 5, 4, 10, 0, "Normal", "260430117", 1)
4415
        for i = 0, 1, 0.8 do
4416
          swait()
4417
          RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5)
4418
          PlayAnimationFromTable({
4419
            CFrame.new(0.215482175, -0.0393944569, -0.126133978, 0.259671897, -0.351393819, 0.8994959, -0.075478971, 0.921212733, 0.381667405, -0.962742627, -0.167001322, 0.212690249) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4420
            CFrame.new(-1.26510859E-5, 1.49999118, -2.16066837E-7, 0.420251548, -0.0215960592, -0.90715003, -0.100918382, 0.992402375, -0.0703775883, 0.901778162, 0.12112467, 0.414879382) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4421
            CFrame.new(1.81840861, 0.705381036, -0.347923756, -0.236346364, -0.883376777, 0.404705286, 0.945798516, -0.113677993, 0.304209948, -0.222726092, 0.454668403, 0.862362981) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4422
            CFrame.new(-1.21960759, 0.420275182, -0.728423595, -0.57802856, -0.255150676, 0.775100708, 0.665436089, -0.697164714, 0.266751111, 0.472311139, 0.669969678, 0.572767615) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4423
            CFrame.new(0.620917439, -1.53014767, -0.12091887, 0.707106113, 0.241845652, -0.66446346, -1.2293458E-6, 0.939692676, 0.342019886, 0.707107484, -0.241843566, 0.664462805) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4424
            CFrame.new(-0.873213649, -1.89646459, -0.100004375, 0.933012128, 0.353242815, -0.0686147735, -0.258823931, 0.791241407, 0.554028153, 0.249997303, -0.499155849, 0.829665601) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4425
          }, 0.8, false)
4426
        end
4427
        CFuncs.Sound.Create("200632136", HitboxR, 0.3, math.random(1, 1.2))
4428
        MagnitudeDamage(HitboxR, 5, 4, 10, 0, "Normal", "260430117", 1)
4429
        for i = 0, 1, 0.8 do
4430
          swait()
4431
          RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -4), 0.5)
4432
          PlayAnimationFromTable({
4433
            CFrame.new(0.299998224, -0.0468490347, -0.211314023, 0.642786682, -2.87348001E-7, -0.766045272, 0.323744863, 0.906307757, 0.271653205, 0.694272637, -0.42261824, 0.582562685) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4434
            CFrame.new(2.71201134E-6, 1.4999969, 8.94069672E-7, 0.642777503, 0.133020476, 0.754416466, 4.31999706E-6, 0.984809279, -0.173647597, -0.766052961, 0.111620098, 0.633012772) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4435
            CFrame.new(1.27057993, 0.327670783, -0.599993467, 0.638493001, 0.280156553, -0.716825664, -0.769049883, 0.196164608, -0.608343422, -0.0298155248, 0.939697862, 0.340704083) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4436
            CFrame.new(-1.86040878, 1.02262986, -0.452570885, 0.386218816, 0.717701018, -0.579433978, -0.403004408, -0.433759809, -0.805879354, -0.829712272, 0.544763446, 0.121709965) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4437
            CFrame.new(0.779964924, -1.75316048, -0.0263362825, 0.826099217, -0.36394459, 0.43023771, 0.181541473, 0.894650102, 0.40822047, -0.533481896, -0.259124577, 0.805140793) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4438
            CFrame.new(-0.724003315, -1.47219872, -0.266945302, 0.766038954, -0.166370958, 0.620890498, 4.09781933E-6, 0.965925932, 0.258819997, -0.642794192, -0.198263675, 0.739937425) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4439
          }, 0.8, false)
4440
        end
4441
        CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
4442
        MagnitudeDamage(HitboxL, 5, 4, 10, 0, "Normal", "260430117", 1)
4443
      end
4444
    end
4445
    S:Stop()
4446
    local S2 = CFuncs.Sound.Create("", Torso, 1.5, 1)
4447
    for i = 0, 1, 0.13 do
4448
      swait()
4449
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -3), 0.5)
4450
      PlayAnimationFromTable({
4451
        CFrame.new(2.68220901E-6, -0.0739577487, 0.0232374109, 0.707105994, -3.47710994E-7, -0.707107604, -0.122787997, 0.98480767, -0.122788213, 0.696364999, 0.173648596, 0.696363389) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4452
        CFrame.new(-5.36441803E-7, 1.49999356, -1.28149986E-6, 0.707105994, -0.122788511, 0.696365297, -3.47710994E-7, 0.984808028, 0.173649326, -0.707107604, -0.122788727, 0.696363688) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4453
        CFrame.new(1.13747835, 0.382733107, -0.729447305, 0.579597414, 0.772029877, -0.260839432, -0.351051509, -0.0523141921, -0.934893906, -0.735411942, 0.633429527, 0.240701318) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4454
        CFrame.new(-1.53455412, 0.605712295, -0.542039633, 0.786121905, 0.427828372, -0.446066588, -0.606968522, 0.398195386, -0.687771559, -0.116626531, 0.811420619, 0.572708428) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4455
        CFrame.new(0.903839946, -1.70734286, 0.373858094, 0.863655448, -0.430708885, 0.261895239, 0.187955216, 0.757234871, 0.625514567, -0.46773085, -0.491004646, 0.734943748) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4456
        CFrame.new(-0.596739769, -1.62411702, -0.0967329144, 0.725493789, -0.291957259, 0.623233199, -0.081900157, 0.86250174, 0.499382436, -0.683338165, -0.41334182, 0.601828396) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4457
      }, 0.2, false)
4458
    end
4459
    CFuncs.Sound.Create("471881954", HitboxR, 1, 1)
4460
    MagnitudeDamage(HitboxR, 7, 10, 15, 50, "Normal", "610359590", 1)
4461
    for i = 0, 1, 0.1 do
4462
      swait()
4463
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -5), 0.3)
4464
      PlayAnimationFromTable({
4465
        CFrame.new(-0.338160992, -0.0772590488, -0.484170675, 0.307024002, -0.153706044, 0.939207554, -0.403236002, 0.872901201, 0.274671286, -0.86205399, -0.463052958, 0.206021816) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4466
        CFrame.new(-0.0502282679, 1.50051379, -0.0864891857, 0.502356887, -0.246090144, -0.828901231, -0.00520065427, 0.957766473, -0.287500501, 0.864644766, 0.148738697, 0.479860842) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4467
        CFrame.new(1.81698525, 1.20575511, -0.168038458, 0.0800605565, -0.859217465, 0.505307972, 0.457053572, -0.418860257, -0.784640014, 0.885828495, 0.293771386, 0.359173566) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4468
        CFrame.new(-1.66351938, 0.691055655, 0.203685582, 0.309526145, 0.793331623, -0.524231553, -0.937197804, 0.347743452, -0.0271089375, 0.160791725, 0.499699503, 0.851144433) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4469
        CFrame.new(0.971616864, -1.6145575, 0.096719563, 0.544056833, -0.203144252, -0.814085484, 0.51142931, 0.849463344, 0.129818588, 0.665161908, -0.486975014, 0.566052973) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4470
        CFrame.new(-0.676943898, -1.44413579, 0.206094518, 0.884253025, 0.0570309162, -0.463512957, 0.209485695, 0.838620007, 0.502824426, 0.417387724, -0.541723251, 0.729605079) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4471
      }, 0.6, false)
4472
    end
4473
    attack = false
4474
  end
4475
  function CastleCrusherFist()
4476
    attack = true
4477
    STDamage = true
4478
    local S2 = CFuncs.Sound.Create("", Torso, 1, 1)
4479
    for i = 0, 1, 0.1 do
4480
      swait()
4481
      Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
4482
      Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
4483
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -2), 0.2)
4484
      PlayAnimationFromTable({
4485
        CFrame.new(-5.99771738E-7, -0.00717129931, 0.169464022, 0.422617912, -2.2671E-7, -0.906308055, -0.309975952, 0.939692557, -0.144544229, 0.851650834, 0.342020661, 0.397130787) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4486
        CFrame.new(-0.0102166235, 1.52751005, -0.239579424, 0.456926107, -0.171424359, 0.872835577, -0.167732254, 0.94705075, 0.273807496, -0.87355268, -0.271512181, 0.403976858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4487
        CFrame.new(0.944673777, 0.474064022, -0.539126158, 0.229199454, 0.762564063, 0.604949772, 0.809601307, 0.195682317, -0.553402781, -0.540382624, 0.616607308, -0.572522938) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4488
        CFrame.new(-1.61232829, 0.309644789, -0.24482432, 0.455398798, 0.536860108, -0.710207343, -0.887026072, 0.205374956, -0.413530886, -0.076149486, 0.818293095, 0.569735885) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4489
        CFrame.new(1.08113468, -1.48232126, 0.656104684, 0.81421864, -0.517612338, 0.262917578, 0.175395042, 0.651024699, 0.738514543, -0.553430021, -0.555197835, 0.620862961) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4490
        CFrame.new(-0.427128136, -1.50760674, -0.0473105907, 0.804508269, -0.373179317, 0.462065101, -0.173640698, 0.596196175, 0.783836842, -0.567992628, -0.71083647, 0.414845526) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4491
      }, 0.2, false)
4492
    end
4493
    MagnitudeDamage(HitboxR, 10, 50, 80, 100, "Normal", "610359515", 1)
4494
    Effects.Wave.Create(BrickColor.new("Pastel blue-green"), RootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.06)
4495
    CFuncs.Sound.Create("471881980", HitboxR, 1, 0.9)
4496
    CFuncs.Sound.Create("471881954", HitboxR, 1, 0.8)
4497
    for i = 0, 1, 0.08 do
4498
      swait()
4499
      Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
4500
      Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
4501
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -5), 0.3)
4502
      PlayAnimationFromTable({
4503
        CFrame.new(-3.57627869E-7, -0.116980031, -2.22140098, 0.342020035, -6.11579551E-8, 0.939692736, -0.604023039, 0.766044259, 0.219846413, -0.71984607, -0.642787933, 0.262002468) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4504
        CFrame.new(-1.13248825E-6, 1.49999046, 8.94069672E-7, 0.422608167, -0.383014679, -0.82140249, -1.36196613E-5, 0.906310022, -0.422613323, 0.906312764, 0.17861104, 0.383008778) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4505
        CFrame.new(1.72490048, 1.25688744, -0.021425128, -0.678134382, -0.731868863, 0.0670941696, 0.667953849, -0.575675249, 0.47163111, -0.306547582, 0.364645123, 0.879239857) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4506
        CFrame.new(-1.70565486, 0.469353855, 0.162862837, 0.82686162, 0.55728358, 0.0757693052, -0.414878726, 0.513436973, 0.751176, 0.379712611, -0.652546048, 0.655748963) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4507
        CFrame.new(0.757160306, -1.48393714, -0.193787217, 0.601814985, 0.305624545, -0.737842917, -2.98023224E-8, 0.923879623, 0.382683486, 0.798635662, -0.230304718, 0.556004763) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4508
        CFrame.new(-0.908789515, -1.60188651, -0.0663503706, 0.696367741, 0.548584938, -0.462741733, -0.173660636, 0.7544052, 0.633021533, 0.696362019, -0.360454619, 0.620610356) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4509
      }, 0.6, false)
4510
    end
4511
    STDamage = false
4512
    attack = false
4513
  end
4514
  function CastleCrusherFist()
4515
    attack = true
4516
    STDamage = true
4517
    local S2 = CFuncs.Sound.Create("", Torso, 1, 1)
4518
    for i = 0, 1, 0.1 do
4519
      swait()
4520
      Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
4521
      Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
4522
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -2), 0.5)
4523
      PlayAnimationFromTable({
4524
        CFrame.new(-5.99771738E-7, -0.00717129931, 0.169464022, 0.422617912, -2.2671E-7, -0.906308055, -0.309975952, 0.939692557, -0.144544229, 0.851650834, 0.342020661, 0.397130787) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4525
        CFrame.new(-0.0102166235, 1.52751005, -0.239579424, 0.456926107, -0.171424359, 0.872835577, -0.167732254, 0.94705075, 0.273807496, -0.87355268, -0.271512181, 0.403976858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4526
        CFrame.new(0.944673777, 0.474064022, -0.539126158, 0.229199454, 0.762564063, 0.604949772, 0.809601307, 0.195682317, -0.553402781, -0.540382624, 0.616607308, -0.572522938) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4527
        CFrame.new(-1.61232829, 0.309644789, -0.24482432, 0.455398798, 0.536860108, -0.710207343, -0.887026072, 0.205374956, -0.413530886, -0.076149486, 0.818293095, 0.569735885) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4528
        CFrame.new(1.08113468, -1.48232126, 0.656104684, 0.81421864, -0.517612338, 0.262917578, 0.175395042, 0.651024699, 0.738514543, -0.553430021, -0.555197835, 0.620862961) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4529
        CFrame.new(-0.427128136, -1.50760674, -0.0473105907, 0.804508269, -0.373179317, 0.462065101, -0.173640698, 0.596196175, 0.783836842, -0.567992628, -0.71083647, 0.414845526) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4530
      }, 0.2, false)
4531
    end
4532
    Effects.Wave.Create(BrickColor.new("Pastel blue-green"), RootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.06)
4533
    Character.HumanoidRootPart.Velocity = Character.HumanoidRootPart.CFrame.lookVector * 140
4534
    CFuncs.Sound.Create("471881980", HitboxR, 1, 0.9)
4535
    CFuncs.Sound.Create("471881954", HitboxR, 1, 0.8)
4536
    for i = 0, 1, 0.08 do
4537
      swait()
4538
      MagnitudeDamage(HitboxR, 5, 50, 80, 100, "Normal", "610359515", 1)
4539
      Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 4, 4, 4, 0.3, 1)
4540
      Effects.Break.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 0.5, 0.5, 0.5)
4541
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -5), 1)
4542
      PlayAnimationFromTable({
4543
        CFrame.new(-3.57627869E-7, -0.116980031, -2.22140098, 0.342020035, -6.11579551E-8, 0.939692736, -0.604023039, 0.766044259, 0.219846413, -0.71984607, -0.642787933, 0.262002468) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4544
        CFrame.new(-1.13248825E-6, 1.49999046, 8.94069672E-7, 0.422608167, -0.383014679, -0.82140249, -1.36196613E-5, 0.906310022, -0.422613323, 0.906312764, 0.17861104, 0.383008778) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4545
        CFrame.new(1.72490048, 1.25688744, -0.021425128, -0.678134382, -0.731868863, 0.0670941696, 0.667953849, -0.575675249, 0.47163111, -0.306547582, 0.364645123, 0.879239857) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4546
        CFrame.new(-1.70565486, 0.469353855, 0.162862837, 0.82686162, 0.55728358, 0.0757693052, -0.414878726, 0.513436973, 0.751176, 0.379712611, -0.652546048, 0.655748963) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4547
        CFrame.new(0.757160306, -1.48393714, -0.193787217, 0.601814985, 0.305624545, -0.737842917, -2.98023224E-8, 0.923879623, 0.382683486, 0.798635662, -0.230304718, 0.556004763) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4548
        CFrame.new(-0.908789515, -1.60188651, -0.0663503706, 0.696367741, 0.548584938, -0.462741733, -0.173660636, 0.7544052, 0.633021533, 0.696362019, -0.360454619, 0.620610356) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4549
      }, 0.6, false)
4550
    end
4551
    STDamage = false
4552
    attack = false
4553
  end
4554
4555
4556
distance2__=0
4557
AdvancingFortress.FHead.face:remove()
4558
4559
function Lattack()
4560
    attack = true
4561
    local S = CFuncs.Sound.Create("", Torso, 3, 1)
4562
    S.Looped = true
4563
    if Long then
4564
      while Long and distance2__>-15 do-- max range
4565
	distance2__=distance2__-1
4566
4567
        for i = 0, 1, 0.8 do
4568
          swait()
4569
          RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, distance2__), 0.5)
4570
          PlayAnimationFromTable({
4571
            CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4572
            CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4573
            CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4574
            CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4575
            CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4576
            CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4577
          }, 0.8, false)
4578
        end
4579
4580
end
4581
        for i = 0, 1, 0.8 do
4582
          swait()
4583
          PlayAnimationFromTable({
4584
            CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, -1, 0),
4585
            CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4586
            CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4587
            CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4588
            CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4589
            CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4590
          }, 0.8, false)
4591
        end
4592
        CFuncs.Sound.Create("200632136", HitboxL, 0.3, math.random(1, 1.2))
4593
        MagnitudeDamage(HitboxL, 5, 4, 50, 0, "Normal", "260430117", 1)
4594
 PlayAnimationFromTable({
4595
            CFrame.new(-0.561874092, -0.346845925, -0.435822666, 0.64278698, -0.323744029, 0.694272816, 0, 0.906308115, 0.422617555, -0.766044974, -0.271653026, 0.582563102) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 1, 0),
4596
            CFrame.new(8.9481473E-6, 1.49999249, 5.2684918E-6, 0.704669476, 0.0560214818, -0.707321048, -0.0868221819, 0.996195257, -0.0075956285, 0.704204142, 0.0667634308, 0.706852198) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4597
            CFrame.new(1.97048378, 0.808467984, -0.254994273, -0.457079947, -0.7819345, 0.423859, 0.842444837, -0.227779076, 0.488266319, -0.285246044, 0.580254436, 0.762849629) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4598
            CFrame.new(-1.18535733, 0.530705392, -0.713678956, 0.778861284, -0.400152355, 0.482962847, 0.492400557, -0.0868335962, -0.866026342, 0.388479888, 0.912325621, 0.129403993) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4599
            CFrame.new(0.708622813, -1.45549953, -0.199998885, 0.984808087, -0.167729571, -0.0449446738, 0.173646823, 0.951251328, 0.254887581, 1.4603138E-6, -0.258819878, 0.965925694) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4600
            CFrame.new(-0.604502141, -1.943735, 5.15520573E-4, 0.982544005, 0.00845471025, 0.185841322, -0.0717865527, 0.938827574, 0.336824685, -0.17162481, -0.34428525, 0.923045695) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4601
          }, 0.8, false)
4602
        end
4603
wait(1)
4604
distance2__=0
4605
    STDamage = false
4606
    attack = false
4607
  end
4608
4609
4610
4611
4612
  function weld5(part0, part1, c0, c1)
4613
    local weeld = Instance.new("Weld", part0)
4614
    weeld.Part0 = part0
4615
    weeld.Part1 = part1
4616
    weeld.C0 = c0
4617
    weeld.C1 = c1
4618
    return weeld
4619
  end
4620
  local Grab = false
4621
  function GRABEMBOIGRABEM()
4622
    attack = true
4623
    gp = nil
4624
    con1 = HitboxR.Touched:connect(function(hit)
4625
      local ht = hit.Parent
4626
      local hum1 = ht:FindFirstChild("Humanoid")
4627
      if Grab == false then
4628
        if hum1 ~= nil and hit.Parent ~= Character then
4629
          hum1.PlatformStand = true
4630
          gp = ht
4631
          Grab = true
4632
          local asd = weld5(RightArm, ht:FindFirstChild("Torso"), CFrame.new(0, -1.5, 0), CFrame.new(0, 0, 0))
4633
          asd.Parent = RightArm
4634
          asd.Name = "asd"
4635
          asd.C0 = asd.C0 * CFrame.Angles(math.rad(-90), 0, 0)
4636
          CFuncs.Sound.Create("200632821", Torso, 1, 1)
4637
        elseif hum1 == nil then
4638
          con1:disconnect()
4639
          wait()
4640
          return
4641
        end
4642
      end
4643
    end)
4644
    for i = 0, 1, 0.2 do
4645
      swait()
4646
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -2), 0.3)
4647
      PlayAnimationFromTable({
4648
        CFrame.new(-1.08022243E-4, -0.233785003, -0.0873367637, 0.499999821, -1.78813863E-7, -0.866025507, 0.150383934, 0.984807789, 0.0868239477, 0.852868676, -0.173648283, 0.492403716) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4649
        CFrame.new(-1.2665987E-7, 1.49999368, -1.02072954E-6, 0.573575675, 0.0713936985, 0.816035628, -5.01982868E-7, 0.996194899, -0.0871551931, -0.819152594, 0.049989678, 0.571393132) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4650
        CFrame.new(1.47017705, 0.884583473, 0.0280318335, 0.886720777, -0.205462068, 0.414139926, 0.236241817, -0.568640172, -0.787933052, 0.397386849, 0.796513736, -0.455686152) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4651
        CFrame.new(-1.76647317, 0.409804255, -0.03838256, 0.444113791, 0.836516619, -0.320940912, -0.836516619, 0.258818626, -0.482962757, -0.320940822, 0.482962757, 0.814704895) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4652
        CFrame.new(0.838749349, -1.98392951, 0.15807499, 0.830397308, -0.277826965, 0.48296237, 0.167731524, 0.951251447, 0.258818328, -0.53132534, -0.133914024, 0.836516857) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4653
        CFrame.new(-0.811016142, -1.63281643, -0.179561377, 0.642214835, 0.00870995224, 0.76647532, -0.0151349902, 0.999884725, 0.00131897628, -0.766375303, -0.0124476701, 0.642272472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4654
      }, 0.3, false)
4655
    end
4656
    for i = 0, 1, 0.1 do
4657
      swait()
4658
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -6), 0.3)
4659
      PlayAnimationFromTable({
4660
        CFrame.new(0.159273595, -0.292363107, -0.115490548, 0.0844330043, -0.144068986, 0.985959053, -0.357129037, 0.919379771, 0.164923266, -0.930231094, -0.366039604, 0.0261747837) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4661
        CFrame.new(4.81307507E-6, 1.49999106, -3.65450978E-6, 0.171444774, -0.100317284, -0.980072975, -0.0616287738, 0.991762042, -0.11229457, 0.983264267, 0.0796530023, 0.163850009) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4662
        CFrame.new(1.73932612, 1.06159639, 0.141945362, -0.153680667, -0.913934886, 0.375639945, 0.659919798, -0.377877831, -0.649395287, 0.735450923, 0.148092732, 0.661196351) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4663
        CFrame.new(-1.68730593, 0.429691374, -0.418232322, 0.633863091, 0.519853055, -0.57268703, -0.772902489, 0.453472316, -0.443829596, 0.028971523, 0.723958433, 0.689235032) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4664
        CFrame.new(0.51381135, -1.74729896, 0.0663300753, 0.422899842, 0.615153313, -0.665388703, -0.0435856879, 0.747240186, 0.66312325, 0.905127704, -0.251433372, 0.342819571) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4665
        CFrame.new(-0.991570175, -1.5009346, -0.1830419, 0.415304065, 0.586875141, -0.695054054, -0.166150108, 0.800146103, 0.576333642, 0.894380629, -0.123870395, 0.429813296) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4666
      }, 0.3, false)
4667
    end
4668
    if Grab == true then
4669
      for i = 1, 5 do
4670
        for i = 0, 1, 0.35 do
4671
          swait()
4672
          RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 13, -6), 0.3)
4673
          PlayAnimationFromTable({
4674
            CFrame.new(-0.0701122433, -0.336599797, -0.467321932, 0.694850504, -0.140219957, -0.70535183, 0.704946458, 0.326802045, 0.629484713, 0.142244101, -0.934633017, 0.325926095) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4675
            CFrame.new(-3.05473804E-6, 1.49998987, 8.94069672E-7, 0.707109332, 0.122785509, 0.696362555, 1.49011612E-6, 0.984807491, -0.173649877, -0.707104206, 0.122789055, 0.696367502) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4676
            CFrame.new(1.23286271, 0.549701929, -0.640782475, 0.740093768, 0.612683415, 0.277277708, 0.0735714883, 0.336068332, -0.938959956, -0.668469429, 0.715318501, 0.203645304) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4677
            CFrame.new(-1.63418663, 0.202915072, -0.0286649466, 0.865367413, 0.490698665, 0.101754986, -0.445756227, 0.846484005, -0.291146517, -0.228999093, 0.206590697, 0.951251805) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4678
            CFrame.new(0.702593744, -1.71321297, 0.369734973, 0.965928972, -0.148447216, 0.212003857, 1.10641122E-6, 0.819153726, 0.573574424, -0.258809477, -0.554031372, 0.791244447) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4679
            CFrame.new(-0.577289343, -1.34221494, -0.247686923, 0.766049445, -0.219846189, 0.604016602, 1.58697367E-6, 0.939692199, 0.342021465, -0.642781496, -0.262004316, 0.719851196) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4680
          }, 0.4, false)
4681
        end
4682
        for i = 0, 1, 0.3 do
4683
          swait()
4684
          RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1, -6), 0.3)
4685
          PlayAnimationFromTable({
4686
            CFrame.new(-0.170705646, -0.774955988, -0.472947001, 0.827218175, 0.130671635, 0.546475112, -0.561879098, 0.194839522, 0.803946257, -0.00142200035, -0.972091854, 0.234596446) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4687
            CFrame.new(-1.76951289E-7, 1.49999058, 2.2649765E-6, 0.80180192, -0.161171481, -0.575445414, 0.176131338, 0.983905077, -0.0301590711, 0.571044207, -0.0771723837, 0.817283988) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4688
            CFrame.new(1.59014189, 0.537312388, -0.263691217, 0.798337102, -0.524361372, 0.296147287, 0.455999702, 0.205153137, -0.866011977, 0.393347621, 0.826412499, 0.402889967) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4689
            CFrame.new(-1.41546631, 0.414666086, 0.337005794, 0.716736436, 0.581529975, 0.384852976, -0.56681174, 0.807305396, -0.164264664, -0.406218559, -0.100404784, 0.908243656) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4690
            CFrame.new(0.793360233, -1.59947133, 0.0620805621, 0.876221955, -0.148448378, -0.458477885, 0.368687749, 0.81915307, 0.439383447, 0.310339272, -0.55403173, 0.772486985) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4691
            CFrame.new(-0.535338402, -1.81867206, 0.817932665, 0.829598367, 0.11430642, -0.546535134, 0.32139504, 0.702652454, 0.634810925, 0.456587166, -0.702291727, 0.546181798) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4692
          }, 0.7, false)
4693
        end
4694
        local hit, pos = rayCast(HitboxR.Position, CFrame.new(RootPart.Position, RootPart.Position - Vector3.new(0, 1, 0)).lookVector, 100, Character)
4695
        if hit ~= nil then
4696
          MagnitudeDamage(HitboxR, 5, 10, 30, 0, "Normal", "610359515", 1.3)
4697
          Effects.Block.Create(BrickColor.new("Pastel blue-green"), CFrame.new(pos), 1, 1, 1, 0.7, 0.7, 0.7, 0.09, 1)
4698
          Effects.Wave.Create(BrickColor.new("Pastel blue-green"), CFrame.new(pos), 1, 1, 1, 0.7, 0.7, 0.7, 0.09)
4699
          Effects.Sphere.Create(BrickColor.new("Pastel blue-green"), CFrame.new(pos), 3, 3, 3, 5, 5, 5, 0.09)
4700
        end
4701
      end
4702
    end
4703
    for i, v in pairs(RightArm:GetChildren()) do
4704
      if v.Name == "asd" and v:IsA("Weld") then
4705
        v:Remove()
4706
      end
4707
    end
4708
    Grab = false
4709
    con1:disconnect()
4710
    attack = false
4711
  end
4712
  local IsWearingArmor = false
4713
  function Armor(Mode)
4714
    attack = true
4715
    if IsWearingArmor == false and Mode == "On" then
4716
      IsWearingArmor = true
4717
      Disappear()
4718
      swait(10)
4719
      ReappearArmorOnly()
4720
      Character.Humanoid.MaxHealth = 500
4721
      Character.Humanoid.Health = 500
4722
      AHandleRWeld.Part0 = Character["Right Arm"]
4723
      AHandleLWeld.Part0 = Character["Left Arm"]
4724
      for i, v in pairs(AdvancingFortress:GetChildren()) do
4725
        if v:IsA("BasePart") then
4726
          v.Transparency = 1
4727
        end
4728
      end
4729
      for i, v in pairs(Character:GetChildren()) do
4730
        if v:IsA("Accessory") then
4731
          v.Handle.Transparency = 1
4732
        end
4733
      end
4734
    elseif IsWearingArmor == true and Mode == "Off" then
4735
      IsWearingArmor = false
4736
      DisappearArmorOnly()
4737
      for i, v in pairs(Character:GetChildren()) do
4738
        if v:IsA("Accessory") then
4739
          v.Handle.Transparency = 0
4740
        end
4741
      end
4742
      swait(10)
4743
      Reappear()
4744
      Character.Humanoid.MaxHealth = 100
4745
      Character.Humanoid.Health = 100
4746
4747
      AHandleRWeld.Part0 = RightArm
4748
      AHandleLWeld.Part0 = LeftArm
4749
4750
      for i, v in pairs(AdvancingFortress:GetChildren()) do
4751
        if v:IsA("BasePart") then
4752
          v.Transparency = 0
4753
        end
4754
      end
4755
    end
4756
    attack = false
4757
  end
4758
  local ShieldMode = false
4759
  local ShieldCharge = false
4760
  function HoloHexShield()
4761
    attack = true
4762
    Shield.Parent = m
4763
    Shield.CanCollide = true
4764
    if ShieldMode == true then
4765
      while ShieldMode == true do
4766
        swait()
4767
        Effects.Elec.Create(Shield.CFrame, 6, 6, 6)
4768
        RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3)
4769
        PlayAnimationFromTable({
4770
          CFrame.new(-1.35600567E-6, -0.00759640103, -0.0868249983, 0.499999046, -1.78813579E-7, -0.866026044, 0.150384009, 0.984807789, 0.0868238211, 0.852869093, -0.173648283, 0.492402941) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4771
          CFrame.new(1.49011612E-7, 1.4999963, -2.08616257E-7, 0.499999046, 0.0754797831, 0.862731695, -1.78813579E-7, 0.996196151, -0.0871563852, -0.866026044, 0.0435779616, 0.498097092) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4772
          CFrame.new(1.50238657, 0.320674658, 0.252193451, 0.855209947, -0.376432747, -0.356249839, 0.469514668, 0.853786647, 0.224954769, 0.219480619, -0.35964793, 0.906907678) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4773
          CFrame.new(-0.944740474, 0.689363539, -0.718644142, 0.836517215, -0.545084715, 0.0558781698, -0.258834839, -0.482974619, -0.836504936, 0.482953727, 0.685287297, -0.545103252) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4774
          CFrame.new(0.61525929, -1.85127568, 0.120779425, 0.928754449, -0.162676111, 0.333104134, 0.0394990072, 0.93689239, 0.347407103, -0.368597984, -0.309496939, 0.876555264) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4775
          CFrame.new(-0.849455297, -1.60697818, -0.270956695, 0.696359396, -0.136922374, 0.704511464, -0.122786656, 0.944430828, 0.30491665, -0.707112312, -0.298836082, 0.640850842) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4776
        }, 0.3, false)
4777
      end
4778
    end
4779
    Shield.CanCollide = false
4780
    CFuncs.Sound.Create("200632211", HitboxR, 1, 0.8)
4781
    CFuncs.Sound.Create("200632875", HitboxR, 1, 0.9)
4782
    Character.HumanoidRootPart.Velocity = Character.HumanoidRootPart.CFrame.lookVector * 160
4783
    Effects.Wave.Create(BrickColor.new("Pastel blue-green"), RootPart.CFrame * CFrame.Angles(math.rad(90), math.rad(0), math.rad(0)), 0.5, 0.5, 0.5, 0.6, 0.6, 0.6, 0.06)
4784
    for i = 0, 1, 0.05 do
4785
      swait()
4786
      MagnitudeDamage(Shield, 5, 10, 15, 20, "Normal", "610359515", 1.3)
4787
      Effects.Elec.Create(Shield.CFrame, 6, 6, 6)
4788
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -3), 1)
4789
      PlayAnimationFromTable({
4790
        CFrame.new(8.64267349E-7, -0.183445007, -0.748600185, 0.499999046, -1.19209105E-7, -0.866026044, 0.496732056, 0.819152176, 0.28678751, 0.709407032, -0.573576331, 0.409575343) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4791
        CFrame.new(-7.15255737E-7, 1.50001967, -6.2584877E-7, 0.499999046, 0.36600244, 0.784893453, -1.19209105E-7, 0.90631634, -0.42262283, -0.866026044, 0.211310923, 0.453157306) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4792
        CFrame.new(1.76569033, 0.610707581, 0.171269983, 0.658267856, -0.680293143, -0.322312057, 0.725086272, 0.457917482, 0.514355659, -0.202320263, -0.572288036, 0.794703186) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4793
        CFrame.new(-1.07552779, 1.01543474, -0.975205183, 0.645357251, -0.653341353, -0.39580214, -0.64124006, -0.181770697, -0.745500326, 0.4151209, 0.734918237, -0.536255598) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4794
        CFrame.new(0.630614281, -1.76328135, 0.440194428, 0.866077662, -0.24334389, 0.436684549, -0.0614839792, 0.815044224, 0.57612747, -0.496114343, -0.525820255, 0.69092983) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4795
        CFrame.new(-0.857700765, -1.25810766, -0.239681423, 0.499215126, -0.257185757, 0.827429712, -0.238765404, 0.877132356, 0.416689515, -0.832931936, -0.405579239, 0.376470625) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4796
      }, 0.5, false)
4797
    end
4798
    Shield.Parent = nil
4799
    attack = false
4800
  end
4801
  Mouse.Button1Down:connect(function()
4802
    if attack == false and attacktype == 1 then
4803
      attacktype = 2
4804
      attackone()
4805
    elseif attack == false and attacktype == 2 then
4806
      attacktype = 1
4807
      attacktwo()
4808
    end
4809
  end)
4810
  game.Lighting.Outlines = false
4811
  function attackone()
4812
    attack = true
4813
    for i = 0, 1, 0.12 do
4814
      swait()
4815
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3)
4816
      PlayAnimationFromTable({
4817
        CFrame.new(1.51857734E-4, -0.310488015, -0.087417841, 0.707106054, 5.26835073E-8, -0.707107484, 0.122787014, 0.984807968, 0.122786865, 0.696365058, -0.173646957, 0.696363688) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4818
        CFrame.new(0.101928703, 1.50244772, -0.0383823365, 0.76589334, 0.0762532279, 0.638430059, -0.0196644422, 0.995256186, -0.095281601, -0.642666996, 0.0604211651, 0.763759375) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4819
        CFrame.new(1.01774633, 0.557527065, -0.776187301, 0.541353703, 0.741649806, 0.396095604, 0.711713314, -0.153383806, -0.685520053, -0.447661191, 0.653015316, -0.610876858) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4820
        CFrame.new(-1.07208586, 0.264054269, -0.716768324, 0.529938459, -0.260122895, -0.807156265, -0.752277017, 0.295165181, -0.589030504, 0.39146477, 0.919355154, -0.039265126) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4821
        CFrame.new(0.81415844, -1.89738977, 0.144144416, 0.866025925, -0.171008825, 0.469845951, -1.40815973E-6, 0.939692497, 0.342020512, -0.499999285, -0.296199232, 0.813797772) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4822
        CFrame.new(-0.818738878, -1.59999573, -0.397991776, 0.642786622, 0.0667650178, 0.763130188, 4.3399632E-7, 0.99619472, -0.0871558338, -0.766045213, 0.0560229495, 0.640340626) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4823
      }, 0.3, false)
4824
    end
4825
    MagnitudeDamage(HitboxR, 7, 10, 15, math.random(1, 3), "Normal", "260430079", 1)
4826
    CFuncs.Sound.Create("200632136", HitboxR, 1, 1)
4827
    RootPart.Velocity = RootPart.CFrame.lookVector * 40
4828
    for i = 0, 1, 0.11 do
4829
      swait()
4830
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3)
4831
      PlayAnimationFromTable({
4832
        CFrame.new(0.31380862, -0.320521832, 0.0252371654, 0.249517962, -0.150383011, 0.956622124, -0.0458769947, 0.984923244, 0.166798219, -0.967282891, -0.0855060965, 0.238856897) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4833
        CFrame.new(0.101926193, 1.50244832, -0.0383800864, 0.337979913, 0.0762555003, -0.938059092, -0.0828148723, 0.995255768, 0.051067099, 0.937502801, 0.0604255944, 0.342691481) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4834
        CFrame.new(1.96121001, 0.774859428, -0.462411612, 0.340120375, -0.92077136, 0.191045195, 0.466549307, -0.0111669078, -0.884424806, 0.816486418, 0.389942825, 0.42578721) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4835
        CFrame.new(-1.36170578, 0.526111126, -0.597925961, 0.81348151, -0.212761745, -0.541276693, -0.539894938, 0.0697831511, -0.838834763, 0.216243982, 0.974609077, -0.0581016839) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4836
        CFrame.new(0.970680714, -1.68610644, -0.0975568295, 0.579166114, -0.127570763, -0.805166125, 0.110368893, 0.990856647, -0.0776019096, 0.807703912, -0.0439208932, 0.587950349) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4837
        CFrame.new(-0.827146292, -1.8113209, -0.0556658059, 0.816036701, 0.217413262, -0.535551846, -0.0871567726, 0.962250471, 0.257832885, 0.571391284, -0.163724124, 0.804180741) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4838
      }, 0.45, false)
4839
    end
4840
    attack = false
4841
  end
4842
  function attacktwo()
4843
    attack = true
4844
    for i = 0, 1, 0.12 do
4845
      swait()
4846
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3)
4847
      PlayAnimationFromTable({
4848
        CFrame.new(-0.0382043272, -0.447743475, -0.209081307, 0.653245032, -0.0733856931, 0.753581822, -0.271655023, 0.906307638, 0.323743671, -0.706735075, -0.416198224, 0.572105408) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4849
        CFrame.new(-2.74181366E-6, 1.49999321, -3.4570694E-6, 0.707105815, -0.183012873, -0.683013678, -8.7171793E-7, 0.965925694, -0.258819759, 0.707107782, 0.183013588, 0.683011472) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4850
        CFrame.new(1.65075588, 0.743636727, -0.356577665, 0.542998552, -0.115416825, 0.831764221, 0.839699984, 0.0834951103, -0.536593378, -0.00751632452, 0.989801884, 0.142253295) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4851
        CFrame.new(-1.08620656, -0.00580590963, -0.864283919, 0.656464815, -0.698875248, 0.283949524, 0.478162557, 0.0943745971, -0.873186052, 0.583450615, 0.708990037, 0.396129608) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4852
        CFrame.new(0.856426239, -1.40340364, -0.356423855, 0.707105279, -0.122788861, -0.696365654, 9.42498446E-7, 0.98480767, -0.173648372, 0.707108438, 0.122787014, 0.696362913) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4853
        CFrame.new(-0.695387185, -1.90375674, -0.304245114, 0.92541647, 0.246137589, -0.288133472, -0.173648298, 0.951251149, 0.254887551, 0.336824656, -0.185843274, 0.923044682) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4854
      }, 0.34, false)
4855
    end
4856
    MagnitudeDamage(HitboxL, 7, 10, 15, math.random(1, 3), "Normal", "260430079", 1.1)
4857
    CFuncs.Sound.Create("200632136", HitboxL, 1, 1)
4858
    RootPart.Velocity = RootPart.CFrame.lookVector * 40
4859
    for i = 0, 1, 0.12 do
4860
      swait()
4861
      RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(0, 1.3, -4), 0.3)
4862
      PlayAnimationFromTable({
4863
        CFrame.new(-0.479634404, -0.393727064, -0.220339894, 0.248309121, 0.219825819, -0.94340837, 0.019257009, 0.972597659, 0.231695861, 0.968489468, -0.0756994039, 0.237271711) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4864
        CFrame.new(-4.01586294E-6, 1.4999907, -1.59628689E-6, 0.237956509, -0.0991817266, 0.966198623, 0.22414881, 0.973527908, 0.0447304621, -0.945057809, 0.205928385, 0.253888786) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4865
        CFrame.new(1.08192515, 0.657660127, -1.1749661, 0.228772208, 0.493058115, 0.839379132, 0.874719322, 0.27430138, -0.399530977, -0.427234828, 0.825622678, -0.368534833) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4866
        CFrame.new(-1.23054802, 1.29996836, -0.754827142, 0.94838953, -0.316170156, 0.0243683457, -0.269034386, -0.84291333, -0.465958893, 0.167862713, 0.43535465, -0.88447094) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4867
        CFrame.new(0.839919031, -1.81287205, 0.0102108568, 0.808574855, -0.267538428, 0.524051666, 0.171010748, 0.95905602, 0.22575888, -0.562994003, -0.0929245204, 0.821220458) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4868
        CFrame.new(-0.846072078, -1.7213496, -0.247524291, 0.693717241, 0.0689389557, 0.716940701, -0.0478171073, 0.997620881, -0.0496601462, -0.718658566, 1.68083934E-4, 0.695363283) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4869
      }, 0.45, false)
4870
    end
4871
    attack = false
4872
  end
4873
  function findNearestTorso(pos)
4874
    local list = game.Workspace:children()
4875
    local torso
4876
    local dist = 1000
4877
    local temp, human, temp2
4878
    for x = 1, #list do
4879
      temp2 = list[x]
4880
      if temp2.className == "Model" and temp2.Name ~= Character.Name then
4881
        temp = temp2:findFirstChild("Torso")
4882
        human = temp2:findFirstChild("Humanoid")
4883
        if temp ~= nil and human ~= nil and human.Health > 0 and dist > (temp.Position - pos).magnitude then
4884
          local dohit = true
4885
          if dohit == true then
4886
            torso = temp
4887
            dist = (temp.Position - pos).magnitude
4888
          end
4889
        end
4890
      end
4891
    end
4892
    return torso, dist
4893
  end
4894
  function TrueAim(aim)
4895
    local target, distance = findNearestTorso(Mouse.Hit.p)
4896
    local tehcf = HitboxR.CFrame * CFrame.fromEulerAnglesXYZ(1.57, 0, 0).lookVector
4897
    if aim ~= nil then
4898
      tehcf = aim
4899
    end
4900
    table.insert(Effects, {
4901
      tehcf,
4902
      "Shoot",
4903
      30,
4904
      HitboxR.Position,
4905
      10,
4906
      15,
4907
      0,
4908
      3,
4909
      HitboxR,
4910
      target
4911
    })
4912
  end
4913
  function FireProjectiles()
4914
    attack = true
4915
    Humanoid.WalkSpeed = 20
4916
    CFuncs.Sound.Create("300915902", HitboxR, 1, 0.8)
4917
    for i = 0, 1, 0.1 do
4918
      swait()
4919
      Effects.Elec.Create(HitboxR.CFrame, 2, 2, 2)
4920
      PlayAnimationFromTable({
4921
        CFrame.new(0, -0.100000001, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4922
        CFrame.new(0, 1.49999201, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4923
        CFrame.new(0.874554753, 1.14087927, -1.06730831, -0.166365892, 0.198266983, 0.965925813, 0.797995508, -0.548363924, 0.250000268, 0.579245627, 0.812396049, -0.0669871047) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4924
        CFrame.new(-0.257126778, 1.24225974, -0.962940335, 0.692363203, -0.593008757, -0.411064416, -0.708803177, -0.665577948, -0.233675212, -0.135024026, 0.453151852, -0.88114804) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4925
        CFrame.new(0.604643881, -1.9909004, 0.0280392915, 0.962250233, -0.0841861367, -0.258818984, 0.0871560201, 0.996194661, 4.23252061E-7, 0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4926
        CFrame.new(-0.604644895, -1.99090064, 0.0280393362, 0.962250233, 0.0841861367, 0.258818984, -0.0871560201, 0.996194661, 4.23252061E-7, -0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4927
      }, 0.3, false)
4928
    end
4929
    for i = 0, 1, 0.1 do
4930
      swait()
4931
      Effects.Elec.Create(HitboxR.CFrame, 3, 3, 3)
4932
      Effects.Block.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
4933
      Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
4934
      PlayAnimationFromTable({
4935
        CFrame.new(0, -0.100000001, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4936
        CFrame.new(0, 1.49999201, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4937
        CFrame.new(0.661153734, 0.568759024, -0.827975571, -0.166752055, 0.025078943, 0.985679924, 0.98324734, -0.0704026297, 0.168131784, 0.0736110285, 0.99720335, -0.012919019) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4938
        CFrame.new(-0.390097797, 0.861622274, -0.554995477, 0.351840883, -0.837056041, -0.418981194, -0.935129642, -0.294365793, -0.197183579, 0.0417199843, 0.461178988, -0.886325777) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4939
        CFrame.new(0.604644954, -1.9909004, 0.0280390829, 0.962250233, -0.0841861367, -0.258818984, 0.0871560201, 0.996194661, 4.23252061E-7, 0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4940
        CFrame.new(-0.604644775, -1.99090064, 0.0280380547, 0.962250233, 0.0841861367, 0.258818984, -0.0871560201, 0.996194661, 4.23252061E-7, -0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4941
      }, 0.2, false)
4942
    end
4943
    for i = 1, 10 do
4944
      for i = 0, 1, 0.3 do
4945
        swait()
4946
        Effects.Elec.Create(HitboxR.CFrame, 3, 3, 3)
4947
        Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
4948
        PlayAnimationFromTable({
4949
          CFrame.new(0, -0.100000001, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4950
          CFrame.new(0, 1.49999201, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4951
          CFrame.new(0.661153734, 0.568759024, -0.827975571, -0.166752055, 0.025078943, 0.985679924, 0.98324734, -0.0704026297, 0.168131784, 0.0736110285, 0.99720335, -0.012919019) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4952
          CFrame.new(-0.390097797, 0.861622274, -0.554995477, 0.351840883, -0.837056041, -0.418981194, -0.935129642, -0.294365793, -0.197183579, 0.0417199843, 0.461178988, -0.886325777) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4953
          CFrame.new(0.604644954, -1.9909004, 0.0280390829, 0.962250233, -0.0841861367, -0.258818984, 0.0871560201, 0.996194661, 4.23252061E-7, 0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4954
          CFrame.new(-0.604644775, -1.99090064, 0.0280380547, 0.962250233, 0.0841861367, 0.258818984, -0.0871560201, 0.996194661, 4.23252061E-7, -0.257834047, -0.0225580372, 0.965925872) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4955
        }, 0.3, false)
4956
      end
4957
      CFuncs.Sound.Create("300916105", HitboxR, 1, 1.2)
4958
      CFuncs.Sound.Create("300916014", HitboxR, 1, 1)
4959
      Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 2, 2, 2, 0.07)
4960
      local MouseLook = CFrame.new((HitboxR.Position + Mouse.Hit.p) / 2, Mouse.Hit.p)
4961
      TrueAim(MouseLook.lookVector)
4962
      for i = 0, 1, 0.3 do
4963
        swait()
4964
        Effects.Elec.Create(HitboxR.CFrame, 3, 3, 3)
4965
        Effects.Sphere2.Create(BrickColor.new("Pastel blue-green"), HitboxR.CFrame, 1, 1, 1, 1, 1, 1, 0.1)
4966
        PlayAnimationFromTable({
4967
          CFrame.new(1.90734863E-6, -0.25291419, 0.238341585, 1, 0, 0, 0, 0.996194661, -0.087155968, 0, 0.087155968, 0.996194661) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4968
          CFrame.new(0, 1.49999189, -1.1920929E-6, 1, 0, 0, 0, 0.98480767, 0.173648626, 0, -0.173648626, 0.98480767) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4969
          CFrame.new(0.689965963, 0.767623663, -0.856841147, -0.544456005, 0.160545677, 0.823281765, 0.798456132, -0.201499581, 0.567332089, 0.256973624, 0.966241658, -0.0184810348) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4970
          CFrame.new(-0.392649293, 0.920519292, -0.977094412, 0.403439909, -0.887421727, -0.222977459, -0.91384387, -0.378501445, -0.147058249, 0.0461054072, 0.263095737, -0.963667512) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4971
          CFrame.new(0.598512471, -1.89166105, 0.0173719227, 0.962250233, -0.061308533, -0.265171409, 0.0871564373, 0.992403805, 0.0868248865, 0.257834017, -0.106658652, 0.960284173) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
4972
          CFrame.new(-0.598512232, -1.89166129, 0.0173728764, 0.962250233, 0.061308533, 0.265171409, -0.0871564373, 0.992403805, 0.0868248865, -0.257834017, -0.106658652, 0.960284173) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0)
4973
        }, 0.3, false)
4974
      end
4975
    end
4976
    Humanoid.WalkSpeed = 20
4977
    attack = false
4978
  end
4979
SHRA=false
4980
4981
Check=false
4982
dimension=workspace
4983
Mouse.KeyUp:connect(function(k)
4984
	if k=='e' then
4985
		Long=false
4986
	end
4987
end)
4988
reload2=false
4989
hand=true -- collect hands
4990
  Mouse.KeyDown:connect(function(k)
4991
    k = k:lower()
4992
	if k=='r' and dimension==workspace then
4993
	Meg=Instance.new('Part')
4994
	Meg.Parent=Character
4995
	Meg.CFrame=Mouse.Hit
4996
	Meg.Transparency=1
4997
	Meg.CanCollide=false
4998
	Meg.Touched:connect(function(h)
4999
		if h.Parent~=Character or h.Parent~=workspace or h.Parent~=AdvancingFortress then
5000
		if h.Parent:findFirstChild('Torso')~=nil and h.Parent:findFirstChild('Humanoid')~=nil then
5001
			enem=h.Parent
5002
		
5003
			end
5004
		end
5005
	end)
5006
	wait(.1)
5007
	if enem~=nil then
5008
		eclone(enem.Torso)
5009
		
5010
	end
5011
	elseif k=='t' then
5012
	if dimension==workspace then
5013
		dimension=workspace.CurrentCamera
5014
		workspace.CurrentCamera.FieldOfView=180
5015
	elseif dimension==workspace.CurrentCamera then
5016
		dimension=workspace
5017
		workspace.CurrentCamera.FieldOfView=70
5018
	end
5019
	Character.Parent=dimension
5020
	elseif k=='y' then
5021
		if YOURCLONE~=nil then
5022
			Sav=YOURCLONE.Torso.CFrame
5023
			Sav2=YOURCLONE.Humanoid.Health
5024
			YOURCLONE.Torso.CFrame=Character.Torso.CFrame
5025
			Character.Torso.CFrame=Sav
5026
			YOURCLONE.Humanoid.Health=Character.Humanoid.Health
5027
			Character.Humanoid.Health=Sav2
5028
		end
5029
		if YOURCLONE== nil then
5030
		yclone()
5031
		end
5032
	end
5033
	if dimension==workspace then	
5034
	if k=='f' and IsWearingArmor == false and Invisible == false and reload2==false then
5035
		reload2=true
5036
		M=Instance.new('Part',Character)
5037
		M.Shape='Ball'
5038
		M.Material='Glass'
5039
		M.BrickColor=BrickColor.new('Gold')
5040
		M.Transparency=.5
5041
		M.Position=Character.Torso.Position
5042
		M.Size=Vector3.new(10,10,10)
5043
		M.CanCollide=false
5044
		M.Touched:connect(function(h)
5045
		if h.Parent~=Character or h.Parent~=workspace or h.Parent~=AdvancingFortress or h.Parent~=MEF then
5046
			if h:IsA('Part') and h.Anchored==false then
5047
				h.Velocity=Vector3.new(math.random(-70,70),math.random(40,50),math.random(-70,70))
5048
			end	
5049
			end
5050
		end)
5051
		W=Instance.new('Weld',Character)
5052
		W.Part0=M
5053
		W.Part1=Character.Torso
5054
		wait(10)
5055
		M:remove()
5056
		wait(10)
5057
		reload2=false
5058
	end
5059
if k=='e' and IsWearingArmor == false and Invisible == false  then
5060
	Long=true
5061
Lattack()
5062
end
5063
    if attack == false and ora == false and k == "z" and IsWearingArmor == false and Invisible == false  then
5064
      ora = true
5065
      ORA()
5066
    elseif attack == false and k == "x" and IsWearingArmor == false and Invisible == false then
5067
      GRABEMBOIGRABEM()
5068
    elseif attack == false and k=='g' then
5069
--      FireProjectiles()--thats lame
5070
if changeidle==1 then
5071
	changeidle=2 
5072
	else changeidle=1
5073
end
5074
5075
end
5076
	end
5077
5078
    if attack == false and k == "q" and Invisible == false and IsWearingArmor == false then
5079
      Invisible = true
5080
      Effects.Sphere.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.1)
5081
      Effects.Block.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.1, 1)
5082
      Disappear()
5083
    elseif attack == false and k == "q" and Invisible == true and IsWearingArmor == false then
5084
      Invisible = false
5085
      Effects.Sphere.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.08)
5086
5087
      for i = 1, 2 do
5088
        Effects.Block.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1, 4, 4, 4, 0.1, 1)
5089
      end
5090
      for i = 1, 20 do
5091
        Effects.Break.Create(BrickColor.new("Pastel blue-green"), Torso.CFrame, 1, 1, 1)
5092
      end
5093
      Reappear()
5094
      G=Instance.new('Sound',AdvancingFortress.FTorso)
5095
	  G.Name='FLEF'
5096
	  G.SoundId='rbxassetid://1275713993'
5097
	  G.Volume=3
5098
	  G:Play()
5099
    elseif attack == false and ShieldMode == false and k == "c" and IsWearingArmor == false and Invisible == false and dimension==workspace then
5100
      ShieldMode = true
5101
      HoloHexShield()
5102
    elseif attack == false and k == "v" and IsWearingArmor == false and Invisible == false and dimension==workspace then
5103
      CastleCrusherFist()
5104
5105
end
5106
    --[[if k == "[" and IsWearingArmor == false and Invisible == false then
5107
      Armor("On")
5108
    end
5109
    if k == "]" and IsWearingArmor == true and Invisible == false then
5110
      Armor("Off")
5111
    end--]]
5112
  end)
5113
5114
 Mouse.KeyUp:connect(function(k)
5115
    k = k:lower()
5116
    if attack == true and ora == true and k == "z" and IsWearingArmor == false then
5117
      ora = false
5118
    elseif attack == true and ShieldMode == true and k == "c" and IsWearingArmor == false then
5119
      ShieldMode = false
5120
 	end
5121
  end)
5122
--  coroutine.resume(coroutine.create(function(Part, Part2)
5123
--    while Part.Parent ~= nil do
5124
--      swait(math.random(100, 150))
5125
--      for i = 0, 1, 0.2 do
5126
--        wait()
5127
--        Eye1.Mesh.Scale = Vector3.new(1, 0.7 - 1 * i, 1)
5128
--        Eye2.Mesh.Scale = Vector3.new(1, 0.7 - 1 * i, 1)
5129
--      end
5130
--      for i = 0, 1, 0.2 do
5131
--        swait()
5132
--        Eye1.Mesh.Scale = Vector3.new(1, 0.7 + 0.3 * i, 1)
5133
--        Eye2.Mesh.Scale = Vector3.new(1, 0.7 + 0.3 * i, 1)
5134
--      end
5135
--    end
5136
--  end), Eye1, Eye2)
5137
	tfk=CFuncs.Sound.Create(1325068271, Character.Torso, 1.5, 1)
5138
  tfk.Name='THEME'
5139
	tfk.Looped=true
5140
	changeidle=1
5141
	YOURCLONE=nil
5142
	candecide=true
5143
	Humanoid=Character.Humanoid
5144
while true do
5145
5146
5147
for _,v in pairs(AdvancingFortress.FTorso:GetChildren()) do	
5148
	end
5149
    swait()
5150
    for i, v in pairs(Character:children()) do
5151
      if v:IsA("Part") and IsWearingArmor == true then
5152
        v.Anchored = false
5153
      end
5154
    end
5155
    for i, v in pairs(AdvancingFortress:GetChildren()) do
5156
      if v:IsA("Part") then
5157
        v.Material = "SmoothPlastic"
5158
        v.CanCollide = false
5159
      elseif v:IsA("Humanoid") then
5160
        v:remove()
5161
      elseif v:IsA("Accessory") then
5162
        v:remove()
5163
      elseif v:IsA("Shirt") then
5164
        v:remove()
5165
      elseif v:IsA("Pants") then
5166
        v:remove()
5167
      elseif v:IsA("Script") or v:IsA("LocalScript") then
5168
        v:remove()
5169
      elseif v:IsA("BodyColors") then
5170
        v:remove()
5171
      end
5172
    end
5173
    AHandleR.Transparency = 1
5174
    AHandleL.Transparency = 1
5175
    RootPart.Transparency = 1
5176
    HitboxR.Transparency = 1
5177
    HitboxL.Transparency = 1
5178
    Head.BrickColor = BrickColor.new("Pastel blue-green")
5179
    Torso.BrickColor = BrickColor.new("Pastel blue-green")
5180
    RightArm.BrickColor = BrickColor.new("Pastel blue-green")
5181
    LeftArm.BrickColor = BrickColor.new("Pastel blue-green")
5182
    RightLeg.BrickColor = BrickColor.new("Pastel blue-green")
5183
    LeftLeg.BrickColor = BrickColor.new("Pastel blue-green")
5184
    RootPart.Anchored = true
5185
    Torsovelocity = (Character.HumanoidRootPart.Velocity * Vector3.new(1, 0, 1)).magnitude
5186
    velocity = Character.HumanoidRootPart.Velocity.y
5187
    sine = sine + change
5188
    Shield.Anchored = true
5189
    Shield.CFrame = Shield.CFrame:lerp(RootPart.CFrame * CFrame.new(0, 0, -3.2), 1)
5190
    local hit, pos = rayCast(Character.HumanoidRootPart.Position, CFrame.new(Character.HumanoidRootPart.Position, Character.HumanoidRootPart.Position - Vector3.new(0, 1, 0)).lookVector, 4, Character)
5191
    if Character.HumanoidRootPart.Velocity.y > 1 and hit == nil then
5192
      Anim = "Jump"
5193
      if attack == false then
5194
        RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5)
5195
        PlayAnimationFromTable({
5196
          CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(.5, -1, 0),
5197
          CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, 1, 0),
5198
          CFrame.new(1.5,0,0) * CFrame.new(-1, 0, -.3) * CFrame.Angles(1.5, 0, -1.5),
5199
          CFrame.new(-1.5,0,0) * CFrame.new(1, 0, -.5) * CFrame.Angles(3, 0, 1),
5200
          CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
5201
          CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0)
5202
		  		}, 0.3, false)
5203
      end
5204
    elseif Character.HumanoidRootPart.Velocity.y < -1 and hit == nil then
5205
      Anim = "Fall"
5206
      if attack == false then
5207
        RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5)
5208
        PlayAnimationFromTable({
5209
          CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, -1, 1),
5210
          CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(-1, 1, 0.5),
5211
          CFrame.new(1.5,0,0) * CFrame.new(-1, 0, -.3) * CFrame.Angles(1.5, 0, -1.5),
5212
          CFrame.new(-1.5,0,0) * CFrame.new(1, 0, -.5) * CFrame.Angles(3, 0, 1),
5213
          CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
5214
          CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0)
5215
		  		}, 0.3, false)
5216
      end
5217
    elseif Torsovelocity < 1 and hit ~= nil then
5218
      Anim = "Idle"
5219
	if changeidle==1 then
5220
      if attack == false then
5221
        change = 1
5222
        RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5)
5223
        PlayAnimationFromTable({
5224
          CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, -1, 1),
5225
          CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(-1, 1, 0.5),
5226
          CFrame.new(1.5,0,0) * CFrame.new(-1.2, 0, -.3) * CFrame.Angles(1.5, 0, -1.5),
5227
          CFrame.new(-1.5,0,0) * CFrame.new(1.5, 0.3, -.5) * CFrame.Angles(3, 0, 1),
5228
          CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
5229
          CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0)
5230
        }, 0.3, false)
5231
      end
5232
	elseif changeidle==2 then
5233
		        change = 1
5234
		if not attack then
5235
        RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5)
5236
        PlayAnimationFromTable({
5237
          CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
5238
          CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
5239
          CFrame.new(1.5,0,0) * CFrame.new(-1.5, 0.4, -.5) * CFrame.Angles(3, 0, -1),
5240
          CFrame.new(-1.5,0,0) * CFrame.new(1.5, 0.4, -.5) * CFrame.Angles(3, 0, 1),
5241
          CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
5242
          CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0)
5243
        }, 0.3, false)
5244
end
5245
end
5246
    elseif Torsovelocity > 2 and hit ~= nil then
5247
      Anim = "Walk"
5248
      if attack == false then
5249
        RootPart.CFrame = RootPart.CFrame:lerp(Character.HumanoidRootPart.CFrame * CFrame.new(-2, 1 + 0.5 * math.cos(sine / 20), 3), 0.5)
5250
        PlayAnimationFromTable({
5251
          CFrame.new(0,0,0) * CFrame.new(0, 0, 0) * CFrame.Angles(-1, -1, 0),
5252
          CFrame.new(0,1.5,0) * CFrame.new(0, 0, 0) * CFrame.Angles(1, 0, 0),
5253
          CFrame.new(1.5,0,0) * CFrame.new(-1, 0, -.3) * CFrame.Angles(1.5, 0, -1.5),
5254
          CFrame.new(-1.5,0,0) * CFrame.new(1, 0, -.5) * CFrame.Angles(3, 0, 1),
5255
          CFrame.new(.5,-2,0) * CFrame.new(0, 0, 0) * CFrame.Angles(0, 0, 0),
5256
          CFrame.new(-.5,-2,0) * CFrame.new(0, 0.5, -0.3) * CFrame.Angles(-.5, 0, 0)
5257
		  		}, 0.3, false)
5258
      end
5259
    end
5260
    if 0 < #Effects then
5261
      for e = 1, #Effects do
5262
        if Effects[e] ~= nil then
5263
          local Thing = Effects[e]
5264
          if Thing ~= nil then
5265
            local Part = Thing[1]
5266
            local Mode = Thing[2]
5267
            local Delay = Thing[3]
5268
            local IncX = Thing[4]
5269
            local IncY = Thing[5]
5270
            local IncZ = Thing[6]
5271
            if Thing[2] == "Shoot" then
5272
              local Look = Thing[1]
5273
              local move = 30
5274
              if Thing[8] == 3 then
5275
                move = 10
5276
              end
5277
              local hit, pos = rayCast(Thing[4], Thing[1], move, m)
5278
              if Thing[10] ~= nil then
5279
                da = pos
5280
                cf2 = CFrame.new(Thing[4], Thing[10].Position)
5281
                cfa = CFrame.new(Thing[4], pos)
5282
                tehCF = cfa:lerp(cf2, 0.2)
5283
                Thing[1] = tehCF.lookVector
5284
              end
5285
              local mag = (Thing[4] - pos).magnitude
5286
              Effects.Head.Create(Torso.BrickColor, CFrame.new((Thing[4] + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0), 1, mag * 5, 1, 0.5, 0, 0.5, 0.2)
5287
              if Thing[8] == 2 then
5288
                Effects.Ring.Create(Torso.BrickColor, CFrame.new((Thing[4] + pos) / 2, pos) * CFrame.Angles(1.57, 0, 0) * CFrame.fromEulerAnglesXYZ(1.57, 0, 0), 1, 1, 0.1, 0.5, 0.5, 0.1, 0.1, 1)
5289
              end
5290
              Thing[4] = Thing[4] + Look * move
5291
              Thing[3] = Thing[3] - 1
5292
              if 2 < Thing[5] then
5293
                Thing[5] = Thing[5] - 0.3
5294
                Thing[6] = Thing[6] - 0.3
5295
              end
5296
              if hit ~= nil then
5297
                Thing[3] = 0
5298
                if Thing[8] == 1 or Thing[8] == 3 then
5299
                  Damage(hit, hit, Thing[5], Thing[6], Thing[7], "Normal", RootPart, 0, "", 1)
5300
                elseif Thing[8] == 2 then
5301
                  Damage(hit, hit, Thing[5], Thing[6], Thing[7], "Normal", RootPart, 0, "", 1)
5302
                  if hit.Parent:findFirstChild("Humanoid") ~= nil or hit.Parent.Parent:findFirstChild("Humanoid") ~= nil then
5303
                    ref = CFuncs.Part.Create(workspace, "Neon", 0, 1, BrickColor.new("Pastel blue-green"), "Reference", Vector3.new())
5304
                    ref.Anchored = true
5305
                    ref.CFrame = CFrame.new(pos)
5306
                    CFuncs.Sound.Create("161006093", ref, 1, 1.2)
5307
                    game:GetService("Debris"):AddItem(ref, 0.2)
5308
                    Effects.Block.Create(Torso.BrickColor, CFrame.new(ref.Position) * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)), 1, 1, 1, 10, 10, 10, 0.1, 2)
5309
                    Effects.Ring.Create(BrickColor.new("Bright yellow"), CFrame.new(ref.Position) * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50)), 1, 1, 0.1, 4, 4, 0.1, 0.1)
5310
                    MagnitudeDamage(ref, 15, Thing[5] / 1.5, Thing[6] / 1.5, 0, "Normal", "", 1)
5311
                  end
5312
                end
5313
                ref = CFuncs.Part.Create(workspace, "Neon", 0, 1, BrickColor.new("Pastel blue-green"), "Reference", Vector3.new())
5314
                ref.Anchored = true
5315
                ref.CFrame = CFrame.new(pos)
5316
                Effects.Sphere.Create(Torso.BrickColor, CFrame.new(pos), 5, 5, 5, 1, 1, 1, 0.07)
5317
                game:GetService("Debris"):AddItem(ref, 1)
5318
              end
5319
              if Thing[3] <= 0 then
5320
                table.remove(Effects, e)
5321
              end
5322
            end
5323
            if Thing[2] == "FireWave" then
5324
              if Thing[3] <= Thing[4] then
5325
                Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(0, 1, 0)
5326
                Thing[3] = Thing[3] + 1
5327
                Thing[6].Scale = Thing[6].Scale + Vector3.new(Thing[5], 0, Thing[5])
5328
              else
5329
                Part.Parent = nil
5330
                table.remove(Effects, e)
5331
              end
5332
            end
5333
            if Thing[2] ~= "Shoot" and Thing[2] ~= "Wave" and Thing[2] ~= "FireWave" then
5334
              if Thing[1].Transparency <= 1 then
5335
                if Thing[2] == "Block1" then
5336
                  Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
5337
                  Mesh = Thing[7]
5338
                  Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
5339
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5340
                elseif Thing[2] == "Block2" then
5341
                  Thing[1].CFrame = Thing[1].CFrame
5342
                  Mesh = Thing[7]
5343
                  Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
5344
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5345
                elseif Thing[2] == "Fire" then
5346
                  Thing[1].CFrame = CFrame.new(Thing[1].Position) + Vector3.new(0, 0.2, 0)
5347
                  Thing[1].CFrame = Thing[1].CFrame * CFrame.fromEulerAnglesXYZ(math.random(-50, 50), math.random(-50, 50), math.random(-50, 50))
5348
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5349
                elseif Thing[2] == "Cylinder" then
5350
                  Mesh = Thing[7]
5351
                  Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
5352
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5353
                elseif Thing[2] == "Blood" then
5354
                  Mesh = Thing[7]
5355
                  Thing[1].CFrame = Thing[1].CFrame * CFrame.new(0, 0.5, 0)
5356
                  Mesh.Scale = Mesh.Scale + Vector3.new(Thing[4], Thing[5], Thing[6])
5357
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5358
                elseif Thing[2] == "Elec" then
5359
                  Thing[1].Size = Thing[1].Size + Vector3.new(Thing[7], Thing[8], Thing[9])
5360
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5361
                elseif Thing[2] == "Disappear" then
5362
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5363
                elseif Thing[2] == "Shatter" then
5364
                  Thing[1].Transparency = Thing[1].Transparency + Thing[3]
5365
                  Thing[4] = Thing[4] * CFrame.new(0, Thing[7], 0)
5366
                  Thing[1].CFrame = Thing[4] * CFrame.fromEulerAnglesXYZ(Thing[6], 0, 0)
5367
                  Thing[6] = Thing[6] + Thing[5]
5368
                end
5369
              else
5370
                Part.Parent = nil
5371
                table.remove(Effects, e)
5372
              end
5373
            end
5374
          end
5375
        end
5376
      end
5377
    end
5378
  end