· 6 years ago · Nov 30, 2019, 02:34 PM
1if game:GetService("RunService"):IsClient() then error("This aint it chief") end
2
3local Player,game,owner = owner,game
4
5local RealPlayer = Player
6
7do print("Made by lookingBloxed")local RealPlayer=RealPlayer;script.Parent=RealPlayer.Character;local a=function(b)b[1].f[b[2]]=nil end;local c={__index={disconnect=a,Disconnect=a}}local d={__index={Connect=function(b,e)local f=tostring(math.random(0,10000))while b.f[f]do f=tostring(math.random(0,10000))end;b.f[f]=e;return setmetatable({b,f},c)end}}d.__index.connect=d.__index.Connect;local function g()return setmetatable({f={}},d)end;local h={Hit=CFrame.new(),KeyUp=g(),KeyDown=g(),Button1Up=g(),Button1Down=g(),Button2Up=g(),Button2Down=g()}h.keyUp=h.KeyUp;h.keyDown=h.KeyDown;local i={InputBegan=g(),InputEnded=g()}local CAS={Actions={},BindAction=function(self,j,k,l,...)CAS.Actions[j]=k and{Name=j,Function=k,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function m(self,n,...)for o,e in pairs(self[n].f)do e(...)end end;h.T=m;i.T=m;local p=Instance.new("RemoteEvent")p.Name="UserInput_Event"p.OnServerEvent:Connect(function(q,r)if q~=RealPlayer then return end;h.Target=r.e;h.Hit=r.d;if not r.f then local s=r.c==Enum.UserInputState.Begin;if r.b==Enum.UserInputType.MouseButton1 then return h:T(s and"Button1Down"or"Button1Up")end;if r.b==Enum.UserInputType.MouseButton2 then return h:T(s and"Button2Down"or"Button2Up")end;for o,t in pairs(CAS.Actions)do for o,u in pairs(t.Keys)do if u==r.a then t.Function(t.Name,r.c,r)end end end;h:T(s and"KeyDown"or"KeyUp",r.a.Name:lower())i:T(s and"InputBegan"or"InputEnded",r,false)end end)p.Parent=NLS([==[local a=script:WaitForChild("UserInput_Event")local b=owner:GetMouse()local c=game:GetService("UserInputService")local d=function(e,f)if f then return end;a:FireServer({a=e.KeyCode,b=e.UserInputType,c=e.UserInputState,d=b.Hit,e=b.Target})end;c.InputBegan:Connect(d)c.InputEnded:Connect(d)local g,h;local i=game:GetService("RunService").Heartbeat;while true do if g~=b.Hit or h~=b.Target then g,h=b.Hit,b.Target;a:FireServer({f=1,Target=h,d=g})end;for j=1,2 do i:Wait()end end]==],script)local v=game;local w={__index=function(self,u)local x=rawget(self,"_RealService")if x then return typeof(x[u])=="function"and function(o,...)return x[u](x,...)end or x[u]end end,__newindex=function(self,u,y)local x=rawget(self,"_RealService")if x then x[u]=y end end}local function z(t,A)t._RealService=typeof(A)=="string"and v:GetService(A)or A;return setmetatable(t,w)end;local B={GetService=function(self,x)return rawget(self,x)or v:GetService(x)end,Players=z({LocalPlayer=z({GetMouse=function(self)return h end},Player)},"Players"),UserInputService=z(i,"UserInputService"),ContextActionService=z(CAS,"ContextActionService"),RunService=z({_btrs={},RenderStepped=v:GetService("RunService").Heartbeat,BindToRenderStep=function(self,j,o,k)self._btrs[j]=self.Heartbeat:Connect(k)end,UnbindFromRenderStep=function(self,j)self._btrs[j]:Disconnect()end},"RunService")}rawset(B.Players,"localPlayer",B.Players.LocalPlayer)B.service=B.GetService;z(B,game)game,owner=B,B.Players.LocalPlayer end
8
9function sandbox(var,func)
10 local env = getfenv(func)
11 local newenv = setmetatable({},{
12 __index = function(self,k)
13 if k=="script" then
14 return var
15 else
16 return env[k]
17 end
18 end,
19 })
20 setfenv(func,newenv)
21 return func
22end
23cors = {}
24mas = Instance.new("Model",game:GetService("Lighting"))
25Tool0 = Instance.new("Tool")
26Part1 = Instance.new("Part")
27Sound2 = Instance.new("Sound")
28ParticleEmitter3 = Instance.new("ParticleEmitter")
29ParticleEmitter4 = Instance.new("ParticleEmitter")
30ParticleEmitter5 = Instance.new("ParticleEmitter")
31ParticleEmitter6 = Instance.new("ParticleEmitter")
32Sound7 = Instance.new("Sound")
33Weld8 = Instance.new("Weld")
34LocalScript9 = Instance.new("LocalScript")
35LocalScript10 = Instance.new("LocalScript")
36Script11 = Instance.new("Script")
37Part12 = Instance.new("Part")
38Part13 = Instance.new("Part")
39Tool0.Name = "Knife"
40Tool0.Parent = mas
41Tool0.CanBeDropped = true
42Tool0.Grip = CFrame.new(0, -0.800000012, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
43Tool0.GripPos = Vector3.new(0, -0.800000012, 0)
44Part1.Name = "Handle"
45Part1.Parent = Tool0
46Part1.CFrame = CFrame.new(-15.1107178, 0.685002327, -18.0387878, -1, 0, 0, 0, 1, 0, 0, 0, -1)
47Part1.Orientation = Vector3.new(0, 180, 0)
48Part1.Position = Vector3.new(-15.1107178, 0.685002327, -18.0387878)
49Part1.Rotation = Vector3.new(-180, 0, -180)
50Part1.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
51Part1.Size = Vector3.new(0.400000006, 1.3700006, 0.450000137)
52Part1.BrickColor = BrickColor.new("Really black")
53Part1.brickColor = BrickColor.new("Really black")
54Part1.FormFactor = Enum.FormFactor.Custom
55Part1.formFactor = Enum.FormFactor.Custom
56Sound2.Parent = Part1
57Sound2.EmitterSize = 0
58Sound2.MinDistance = 0
59Sound2.SoundId = "rbxassetid://153647514"
60Sound2.Volume = 1
61ParticleEmitter3.Parent = Part1
62ParticleEmitter3.Texture = "rbxgameasset://Images/f94bc32398151444678f59982808bc40"
63ParticleEmitter4.Parent = Part1
64ParticleEmitter4.Texture = "rbxgameasset://Images/293e8492b85204768accaaa332b9fed8"
65ParticleEmitter5.Parent = Part1
66ParticleEmitter5.Texture = "rbxgameasset://Images/293e8492b85204768accaaa332b9fed8 (1)"
67ParticleEmitter6.Parent = Part1
68ParticleEmitter6.Texture = "rbxgameasset://Images/91b056cb0d5025d0a11348d19ed53067"
69Sound7.Parent = Part1
70Sound7.EmitterSize = 0
71Sound7.MinDistance = 0
72Sound7.SoundId = "http://www/Illuminati-Theme-item?id=191907895"
73Sound7.Volume = 1
74Weld8.Parent = Part1
75Weld8.C0 = CFrame.new(-256, 10, 256, -1, 0, 0, 0, 0, 1, 0, 1, 0)
76Weld8.C1 = CFrame.new(257.38205, -0.685002327, -274.038788, 1, 0, 0, 0, 0, 1, 0, -1, 0)
77Weld8.Part0 = nil
78Weld8.Part1 = Part1
79Weld8.part1 = Part1
80LocalScript9.Name = "FirstPersonArms"
81LocalScript9.Parent = Tool0
82table.insert(cors,sandbox(LocalScript9,function()
83wait(0.2)
84local player=game.Players.LocalPlayer
85local camera=workspace.CurrentCamera
86local Tool0=script.Parent
87local char=player.Character
88local humanoid=char:WaitForChild("Humanoid")
89SETTINGS={
90
91 FIRST_PERSON={
92 left_arm=true, --if left arm is Enabled
93 right_arm=true, --If right arm is Enabled
94 arm_transparency=0, --The transparency of the Arms
95 arm_color=BrickColor.new("Really black"), --The colo(u)r of the arms, If below is set to true, This will be the BrickColor of the Arms.
96 change_color=false, --Changes the colo(u)r of the arms, If false, Will set them as the Players arm colo(u)r
97 add_shirt=true, --If true, add's the Character's shirt to the Arms--
98 },
99
100}
101
102function FirstPerson()
103 if (camera.focus.p - camera.CoordinateFrame.p).magnitude > 1 then
104 return false
105 else
106 return true
107 end
108end
109function Start()
110 anim_arms=Instance.new("Model")
111 anim_arms.Name="Arms_Model"
112 local Shirt=player.Character:FindFirstChild("Shirt")
113 if Shirt then
114 Shirt:clone().Parent=anim_arms
115 Instance.new("Humanoid",anim_arms)
116 end
117 local r,l = char:FindFirstChild("Right Arm"):clone(), char:FindFirstChild("Left Arm"):clone()
118 if r and SETTINGS.FIRST_PERSON.right_arm then
119 r.Transparency=SETTINGS.FIRST_PERSON.arm_transparency
120 r.Material=Enum.Material.SmoothPlastic
121 if SETTINGS.FIRST_PERSON.change_color then
122 r.BrickColor=SETTINGS.FIRST_PERSON.arm_color
123 end
124 end
125 if l and SETTINGS.FIRST_PERSON.left_arm then
126 l.Transparency=SETTINGS.FIRST_PERSON.arm_transparency
127 l.Material=Enum.Material.SmoothPlastic
128 if SETTINGS.FIRST_PERSON.change_color then
129 l.BrickColor=SETTINGS.FIRST_PERSON.arm_color
130 end
131 end
132 local rw,lw = Instance.new("Weld"),Instance.new("Weld")
133 if rw and SETTINGS.FIRST_PERSON.right_arm then
134 rw.Part0=r
135 rw.Part1=char:FindFirstChild("Right Arm")
136 rw.Parent=r
137 r.Parent=anim_arms
138 end
139 if lw and SETTINGS.FIRST_PERSON.left_arm then
140 lw.Part0=l
141 lw.Part1=char:FindFirstChild("Left Arm")
142 lw.Parent=l
143 l.Parent=anim_arms
144 end
145 l.CanCollide=false
146 r.CanCollide=false
147 if SETTINGS.FIRST_PERSON.right_arm then
148 if r:FindFirstChild("RightGrip")~=nil then r:FindFirstChild("RightGrip"):Destroy() end
149 end
150 if Tool0.Handle:FindFirstChild("Mesh") ~= nil then Tool0.Handle.Mesh:Destroy() end
151 while equipped do
152 if FirstPerson() then
153 if anim_arms ~= nil then
154 anim_arms.Parent=camera
155 humanoid.CameraOffset = Vector3.new(0, -0.2, -0.5)
156 end
157 else
158 if anim_arms ~= nil then
159 anim_arms.Parent=nil
160 humanoid.CameraOffset = Vector3.new(0,0,0)
161 end
162 end
163 wait()
164 end
165end
166function End()
167 anim_arms:Destroy()
168 anim_arms=nil
169 humanoid.CameraOffset = Vector3.new(0,0,0)
170end
171
172Tool0.Equipped:connect(function ()
173 equipped=true
174 Start()
175end)
176Tool0.Unequipped:connect(function ()
177 equipped=false
178 End()
179end)
180end))
181LocalScript10.Name = "Module"
182LocalScript10.Parent = Tool0
183table.insert(cors,sandbox(LocalScript10,function()
184--Knife Module Script
185--MatrixComplexity
186wait(.2)
187
188
189local Tool0=script.Parent
190local player=game.Players.LocalPlayer
191local char=player.Character
192local humanoid=char:FindFirstChild("Humanoid")
193local camera=workspace.CurrentCamera
194local rightC1 = CFrame.new(-0.5, 0.7, 0) * CFrame.Angles(0, (math.pi / 2), 0)
195local leftC1 = CFrame.new(0, 0.7, 0) * CFrame.Angles(0, (math.pi / 2), 0)
196local mouse=player:GetMouse()
197local equipping=false
198local gettingknife=false
199local laserCharge=false
200local playcharge=false
201local justthrown=false
202local canLaser=false
203local justattacked=false
204local thrownkniferotation=0
205local Damage=110
206local Attacking=false
207local handle=nil
208local WalkSpeeds={16,20}
209
210SOUNDS={
211 throwing={"153647554","153647549"},
212 laserthrowing={"138499093"},
213 shouts={"241084057","168209314","131076695"},
214 striking={"153647529","153647534","153647539","153647540"},
215 equip="153647514",
216 wallhit={"153647563","153647564"},
217 hitplayer={"153647516","153647519","153647522","153647526"},
218 deaths={"146594640","146457047","146594648"},
219}
220
221SETTINGS={
222
223 tool={
224 mesh_id="http://www.roblox.com/asset/?id=121944778",
225 mesh_type=Enum.MeshType.FileMesh,
226 texture_id="http://www.roblox.com/asset/?id=121944805 ",
227 mesh_offset=Vector3.new(0,0,0),
228 mesh_scale=.9,
229 tool_size=Vector3.new(1,1,1),
230 tool_transparency=0,
231 tool_color=BrickColor.Black(),
232 default_tool_size=1,
233 },
234
235}
236
237function DamageObject(hit)
238 local char=hit.Parent
239 if char and char~=player.Character and char.Name~="Arms_Model" and hit.Name~="Handle" then
240 local h=char:FindFirstChild("Humanoid")
241 if h and h.Health > 0 then
242 h:TakeDamage(Damage)
243 PlaySound("Hit1",char.Torso)
244 if h.Health == 0 then
245 PlaySound("Hit2",char.Torso)
246 end
247 end
248 end
249end
250
251function PlaySound(name,ctorso)
252 if name=="Throw" then
253 Tool0.Handle.Sound.SoundId = "rbxassetid://" .. SOUNDS.throwing[math.random(1,#SOUNDS.throwing)]
254 Tool0.Handle.Sound:Play()
255 elseif name=="ThrowLaser" then
256 Tool0.Handle.Sound.SoundId = "rbxassetid://" .. SOUNDS.laserthrowing[math.random(1,#SOUNDS.laserthrowing)]
257 Tool0.Handle.Sound:Play()
258 elseif name=="Equip" then
259 Tool0.Handle.Sound.SoundId = "rbxassetid://" .. SOUNDS.equip
260 Tool0.Handle.Sound:Play()
261 elseif name=="Swing" then
262 Tool0.Handle.Sound.SoundId = "rbxassetid://" .. SOUNDS.striking[math.random(1,#SOUNDS.striking)]
263 Tool0.Handle.Sound:Play()
264 elseif name=="Hit1" then
265 local NewSound=Tool0.Handle.Sound:clone()
266 NewSound.Parent=ctorso
267 NewSound.SoundId = "rbxassetid://" .. SOUNDS.hitplayer[math.random(1,#SOUNDS.hitplayer)]
268 NewSound:Play()
269 NewSound:Destroy()
270 elseif name=="Hit2" then
271 local NewSound=Tool0.Handle.Sound:clone()
272 NewSound.Parent=ctorso
273 NewSound.SoundId = "rbxassetid://" .. SOUNDS.deaths[math.random(1,#SOUNDS.deaths)]
274 NewSound:Play()
275 NewSound:Destroy()
276 elseif name=="Laser" then
277 local NewSound=Tool0.Handle.Sound
278 NewSound.SoundId = "rbxassetid://" .. SOUNDS.shouts[math.random(1,#SOUNDS.shouts)]
279 NewSound:Play()
280 end
281end
282
283function Throwtool(dPos)
284 if not Tool0.Handle then return end
285 local throwingHandle = Tool0.Handle:Clone()
286 game:GetService("Debris"):AddItem(throwingHandle, 5)
287 throwingHandle.Transparency=0
288 throwingHandle.Parent = workspace
289 if player.Character and player.Character.Humanoid then
290 throwingHandle.Velocity = (player.Character.Humanoid.TargetPoint - throwingHandle.CFrame.p).unit * 150
291 if canLaser then
292 throwingHandle.Velocity = (player.Character.Humanoid.TargetPoint - throwingHandle.CFrame.p).unit * 9999
293 end
294 if mouse.Target ~= nil then
295 if mouse.Target.Parent.Name~="Arms_Model" and mouse.Target.Name~="ThrownKnife" and mouse.Target.Name~="Handle" then
296 targetpos=player.Character.Humanoid.TargetPoint
297 else
298 targetpos=Vector3.new(0,-10 ,0)
299 end
300 end
301 -- set the orientation to the direction it is being thrown in
302 throwingHandle.CFrame = CFrame.new(throwingHandle.CFrame.p, throwingHandle.CFrame.p + throwingHandle.Velocity) * CFrame.Angles(0, 0, math.rad(-90))
303 local floatingForce = Instance.new('BodyForce', throwingHandle)
304 floatingForce.force = Vector3.new(0, 196.2 * throwingHandle:GetMass() * 0.98, 0)
305 local spin = Instance.new('BodyAngularVelocity', throwingHandle)
306 spin.angularvelocity = throwingHandle.CFrame:vectorToWorldSpace(Vector3.new(0, -400, 0))
307 spawnPos=player.Character.PrimaryPart.Position
308 spawnPos = spawnPos + dPos*5
309 if canLaser then
310 local Ray = Ray.new(Tool0.Handle.CFrame.p,(mouse.Hit.p - Tool0.Handle.CFrame.p).unit * 999)
311 local Hit,Position = game.Workspace:FindPartOnRay(Ray,char)
312 if Hit then
313 if Hit.Parent:FindFirstChild("Humanoid") then
314 Hit.Parent.Humanoid:TakeDamage(110)
315 laserCharge=true
316 end end
317 local RayPart = Instance.new("Part",workspace)
318 RayPart.Name = "RayPart"
319 RayPart.BrickColor = BrickColor.new("Bright red")
320 RayPart.Transparency = 0
321 RayPart.Anchored = true
322 RayPart.CanCollide = false
323 RayPart.TopSurface = Enum.SurfaceType.Smooth
324 RayPart.BottomSurface = Enum.SurfaceType.Smooth
325 RayPart.formFactor = Enum.FormFactor.Custom
326 local Distance = (Position-Tool0.Handle.CFrame.p).magnitude
327 RayPart.Size = Vector3.new(0.2,0.2,Distance)
328 RayPart.CFrame = CFrame.new(Position,Tool0.Handle.CFrame.p) * CFrame.new(0,0,-Distance/2)
329 game.Debris:addItem(RayPart,.5)
330 PlaySound("Laser")
331 end
332 end
333 if throwingHandle then
334 local touchedConn = throwingHandle.Touched:connect(function(hit)
335 local char=hit.Parent
336 camera.CameraSubject=humanoid
337 camera.CameraType=Enum.CameraType.Custom
338 if char and char~=player.Character and char.Name~="Arms_Model" and hit.Name~="Handle" and hit.Name~="RayPart" then
339 local h=char:FindFirstChild("Humanoid")
340 if h and h.Health > 0 then
341 throwingHandle:Destroy()
342 laserCharge=true
343 if hit.Name~="Head" or hit.className=="Hat" then
344 h:TakeDamage(Damage)
345 PlaySound("Hit1",char.Torso)
346 if h.Health == 0 then
347 PlaySound("Hit2",char.Torso)
348 end
349 else
350 h:TakeDamage(Damage * 2)
351 print("Headshot!")
352 char.Head.Transparency=1
353 char.Head.CanCollide=false
354 if char.Head:FindFirstChild("face") then char.Head:FindFirstChild("face").Transparency=1 end
355 for _,v in pairs(char:GetChildren()) do
356 if v.className=="Hat" then
357 v:Destroy()
358 end
359 end
360 for i = 1, 7 do
361 local blood=Instance.new("Part")
362 blood.FormFactor="Custom"
363 blood.Size=Vector3.new(1,.2,1)
364 blood.BrickColor=BrickColor.Red()
365 blood.TopSurface=0
366 blood.BottomSurface=0
367 game:GetService("Debris"):AddItem(blood,5)
368 blood.Parent=workspace
369 blood.Position=char.Head.Position + Vector3.new(math.random(0.2,0.8),0,math.random(0.2,0.8))
370 end
371 local sound = Instance.new("Sound")
372 sound.SoundId = "rbxassetid://142347633"
373 sound.Parent=char.Head
374 sound.Pitch=1.1
375 sound:Play()
376 end
377 PlaySound("Hit1")
378 if h.Health == 0 then
379 PlaySound("Hit2")
380 end
381 elseif hit.Name~="Handle" or hit.Name~="IgnoreThrowingKnives" and hit.Parent.Name~="Arms_Model" and hit.Name~="RayPart" and hit.CanCollide==true then
382 local sound=Instance.new("Sound")
383 sound.Parent=hit
384 sound.SoundId = "rbxassetid://" .. SOUNDS.wallhit[math.random(1,#SOUNDS.wallhit)]
385 sound:Play()
386 sound:Destroy()
387 print("Hit Object: " .. hit.Name)
388 local newknife=Tool0.Handle:clone()
389 newknife.Name="ThrownKnife"
390 newknife.CFrame = CFrame.new(spawnPos, spawnPos + dPos) * CFrame.Angles(math.pi/-2, 0, 0)
391 newknife.Position = targetpos
392 throwingHandle:Destroy()
393 newknife.Anchored=true
394 newknife.CanCollide=true
395 newknife.Transparency=0
396 newknife.Parent=workspace
397 wait(7)
398 for i=1,10 do
399 newknife.Transparency=i*.1
400 wait()
401 end
402 newknife:Destroy()
403 end
404 end
405 end)
406 end
407 end
408 -- must check if it still exists since we waited
409 if throwingHandle then
410 throwingHandle.CanCollide = true
411 end
412
413FUNCTIONS={
414
415 CHECKFORFIRSTPERSON=function()
416 if (camera.focus.p - camera.CoordinateFrame.p).magnitude > 1 then
417 return false
418 else
419 return true
420 end
421 end,
422
423 ANIMS=function(state)
424 if state then
425 mouse.Icon="http://www.roblox.com/asset/?id=54019936"
426 --Start Animation
427 local mesh=Instance.new("FileMesh")
428 mesh.MeshId=SETTINGS.Tool0.mesh_id
429 mesh.TextureId=SETTINGS.Tool0.texture_id
430 mesh.Scale=Vector3.new(SETTINGS.Tool0.mesh_scale,SETTINGS.Tool0.mesh_scale,SETTINGS.Tool0.mesh_scale)
431 mesh.Parent=Tool0.Handle
432 if SETTINGS.Tool0.mesh_scale==.1 then
433 Tool0.GripPos = Vector3.new(0, -0.55, 0)
434 elseif SETTINGS.Tool0.mesh_scale==.2 then
435 Tool0.GripPos = Vector3.new(0, -0.6, 0)
436 elseif SETTINGS.Tool0.mesh_scale==.3 then
437 Tool0.GripPos = Vector3.new(0, -0.65, 0)
438 elseif SETTINGS.Tool0.mesh_scale==.4 then
439 Tool0.GripPos = Vector3.new(0, -0.7, 0)
440 elseif SETTINGS.Tool0.mesh_scale==.5 then
441 Tool0.GripPos = Vector3.new(0, -0.75, 0)
442 elseif SETTINGS.Tool0.mesh_scale==.6 then
443 Tool0.GripPos = Vector3.new(0, -0.8, 0)
444 elseif SETTINGS.Tool0.mesh_scale==.7 then
445 Tool0.GripPos = Vector3.new(0, -0.85, 0)
446 elseif SETTINGS.Tool0.mesh_scale==.8 then
447 Tool0.GripPos = Vector3.new(0, -0.9, 0)
448 elseif SETTINGS.Tool0.mesh_scale==.9 then
449 Tool0.GripPos = Vector3.new(0, -0.95, 0)
450 elseif SETTINGS.Tool0.mesh_scale==1 then
451 Tool0.GripPos = Vector3.new(0, -1, 0)
452 else
453 print("Invalid tool size! Set to default: " .. SETTINGS.Tool0.default_tool_size )
454 mesh.Scale=Vector3.new(SETTINGS.Tool0.default_tool_size,SETTINGS.Tool0.default_tool_size,SETTINGS.Tool0.default_tool_size)
455 if SETTINGS.Tool0.default_tool_size==.1 then
456 Tool0.GripPos = Vector3.new(0, -0.55, 0)
457 elseif SETTINGS.Tool0.default_tool_size==.2 then
458 Tool0.GripPos = Vector3.new(0, -0.6, 0)
459 elseif SETTINGS.Tool0.default_tool_size==.3 then
460 Tool0.GripPos = Vector3.new(0, -0.65, 0)
461 elseif SETTINGS.Tool0.default_tool_size==.4 then
462 Tool0.GripPos = Vector3.new(0, -0.7, 0)
463 elseif SETTINGS.Tool0.default_tool_size==.5 then
464 Tool0.GripPos = Vector3.new(0, -0.75, 0)
465 elseif SETTINGS.Tool0.default_tool_size==.6 then
466 Tool0.GripPos = Vector3.new(0, -0.8, 0)
467 elseif SETTINGS.Tool0.default_tool_size==.7 then
468 Tool0.GripPos = Vector3.new(0, -0.85, 0)
469 elseif SETTINGS.Tool0.default_tool_size==.8 then
470 Tool0.GripPos = Vector3.new(0, -0.9, 0)
471 elseif SETTINGS.Tool0.default_tool_size==.9 then
472 Tool0.GripPos = Vector3.new(0, -0.95, 0)
473 elseif SETTINGS.Tool0.default_tool_size==1 then
474 Tool0.GripPos = Vector3.new(0, -1, 0)
475 else
476 print("Invalid default size! Un-equipping and removing Knife...")
477 if humanoid then
478 humanoid:Unequiptools()
479 tool:Destroy()
480 end
481 end
482 end
483 torso=char:FindFirstChild("Torso")
484 leftarm=torso:FindFirstChild("Left Shoulder")
485 if leftarm then
486 leftarm.Parent=nil
487 newarmweld=Instance.new("Weld")
488 newarmweld.Name="LeftWeld"
489 newarmweld.Part0=torso
490 newarmweld.C0 = CFrame.new(-1.5, 0.7, 0)
491 newarmweld.C1 = CFrame.new(0, 0.7, 0)
492 newarmweld.Part1=char:FindFirstChild("Left Arm")
493 newarmweld.Parent=torso
494 end
495 humanoid.WalkSpeed=WalkSpeeds[2]
496 for i = 1, 15, 3 do
497 if equipped then
498 torso:FindFirstChild("Right Shoulder").C1 = rightC1 * CFrame.Angles((-i * (math.pi / 90)),(-i * (math.pi / 90)),(i * (math.pi / 210)))
499 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, .7, 0) * CFrame.Angles((-i * (math.pi / 60)),(i * (math.pi / 90)),(-i * (math.pi / 240)))
500 end
501 wait()
502 end
503 else
504 humanoid.WalkSpeed=WalkSpeeds[1]
505 torso:FindFirstChild("Right Shoulder").C1 = rightC1 * CFrame.new(0,-0.2,0)
506 Tool0.GripForward = Vector3.new(0,0,-1)
507 newarmweld:Destroy()
508 leftarm.Parent=torso
509 mouse.Icon=""
510 torso:FindFirstChild("Neck").C0 = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
511 torso:FindFirstChild("Right Shoulder").C0 = CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0)
512 end
513 end
514}
515
516Tool0.Equipped:connect(function ()
517 equipped=true
518 PlaySound("Equip")
519 FUNCTIONS.ANIMS(true)
520end)
521Tool0.Unequipped:connect(function ()
522 equipped=false
523 FUNCTIONS.ANIMS(false)
524end)
525Tool0.Handle.Touched:connect(function (hit)
526 if Attacking then
527 DamageObject(hit)
528 end
529end)
530Tool0.Activated:connect(function ()
531 if Attacking then return end
532 if not Tool0.Enabled then return end
533 justthrown=false
534 justattacked=false
535 if not gettingknife and not justthrown and not Attacking then
536 HeldTime=time()
537 end
538 playcharge=true
539 wait(.15)
540 while gettingknife do
541 wait()
542 end
543 local speed=1
544 for i = 1, 15, speed do
545 if playcharge and equipped and not gettingknife and not justthrown and not Attacking then
546 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.5, 0.5, 0, 0.195277825, -0.747909963, 0.634426773, 0.482016951, 0.636551082, 0.602048457, -0.854123056, 0.188237742, 0.484809577) * CFrame.Angles((i * (math.pi / 50)), 0, (-i * (math.pi / 25)))
547 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, .7, 0, 0.858912528, 0.165011853, 0.484809607, -0.464581847, 0.649385393, 0.602048457, -0.215483144, -0.742340684, 0.634426773) * CFrame.Angles((-i * (math.pi / 75)),(i * (math.pi / 180)),0)
548 player.Character["Right Arm"].RightGrip.C1 = CFrame.new(0, -0.800000012, 0.05, 1, 0, 0, 0, 1, 0, 0, 0, 1) * CFrame.Angles((-i * (math.pi / 150)),0,0)
549 wait()
550 end
551 end
552 if playcharge then
553 canLaser=true
554 end
555end)
556Tool0.Deactivated:connect(function ()
557 if not Tool0.Enabled then return end
558 currTime=time()
559 playcharge=false
560 if HeldTime and currTime - HeldTime > 0.2 and
561 currTime - HeldTime > 0.01 and not justthrown and not gettingknife then
562 if not Attacking and not justattacked then
563 print("Throw")
564 if canLaser then
565 PlaySound("ThrowLaser")
566 else
567 PlaySound("Throw")
568 end
569 Tool0.Handle.Transparency=1
570 local targetPos = player.Character.Humanoid.TargetPoint
571 local lookAt = (targetPos - player.Character.PrimaryPart.Position).unit
572 local switchEvenOddParity = 1
573 local angle = math.ceil((1-1)/2)*math.pi/12*switchEvenOddParity
574 Throwtool(CFrame.Angles(0, angle, 0) * lookAt)
575 wait()
576 canLaser=false
577 HeldTime=0
578 gettingknife=true
579 mouse.Icon="http://www.roblox.com/asset/?id=54020165"
580 player.Character["Right Arm"].RightGrip.C1 = CFrame.new(0, -0.800000012, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1)
581 for i = 1, 15, .8 do
582 if equipped then
583 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.5, 0.5, 0, 0.0719629526, 0.22870943, 0.970831275, -0.981789052, 0.187819958, 0.0285283029, -0.175816804, -0.955204487, 0.238060504) * CFrame.Angles(0, 0, (i * (math.pi / 15)))
584 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, 0.7, 0, 0.703028679, -0.151466534, 0.694844246, -0.673604906, 0.171488613, 0.718921423, -0.228050426, -0.973472893, 0.0185328126) * CFrame.Angles((i * (math.pi / 60)),(-i * (math.pi / 180)),(i * (math.pi / 60)))
585 wait()
586 end
587 end
588 justthrown=true
589 Tool0.Handle.Transparency=0
590 PlaySound("Equip")
591 mouse.Icon="http://www.roblox.com/asset/?id=54019936"
592 Tool0.GripForward = Vector3.new(0,0,-1)
593 for i = 1, 15, 1 do
594 if equipped then
595 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.5, 0.5, 0, -0.071962975, -0.22870943, 0.970831275, 0.981789052, -0.187820047, 0.0285283029, 0.175816894, 0.955204487, 0.238060504) * CFrame.Angles(0, 0, (-i * (math.pi / 30)))
596 wait()
597 end
598 end
599 gettingknife=false
600 for i = 1, 15, 3 do
601 if equipped then
602 torso:FindFirstChild("Right Shoulder").C1 = rightC1 * CFrame.Angles((-i * (math.pi / 90)),(-i * (math.pi / 90)),(i * (math.pi / 210)))
603 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, .7, 0) * CFrame.Angles((-i * (math.pi / 60)),(i * (math.pi / 90)),(-i * (math.pi / 240)))
604 end
605 wait()
606 end
607 end
608 else
609 if not justthrown and not gettingknife then
610 if Attacking then return end
611 print("Attack")
612 HeldTime=0
613 Attacking=true
614 justattacked=true
615 if math.random(1,2)==1 then
616 for i = 1, 15, 3 do
617 if equipped and not gettingknife and not justthrown then
618 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.5, 0.5, 0, 0.195277825, -0.747909963, 0.634426773, 0.482016951, 0.636551082, 0.602048457, -0.854123056, 0.188237742, 0.484809577) * CFrame.Angles((i * (math.pi / 65)), 0, (-i * (math.pi / 30)))
619 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, .7, 0, 0.858912528, 0.165011853, 0.484809607, -0.464581847, 0.649385393, 0.602048457, -0.215483144, -0.742340684, 0.634426773) * CFrame.Angles((-i * (math.pi / 75)),(i * (math.pi / 180)),0)
620 wait()
621 end
622 end
623 PlaySound("Swing")
624 for i = 1, 15, 3 do
625 if equipped and not gettingknife and not justthrown then
626 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.5, 0.5, 0, 0.0719629526, 0.22870943, 0.970831275, -0.981789052, 0.187819958, 0.0285283029, -0.175816804, -0.955204487, 0.238060504) * CFrame.Angles(0, 0, (i * (math.pi / 15)))
627 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, 0.7, 0, 0.703028679, -0.151466534, 0.694844246, -0.673604906, 0.171488613, 0.718921423, -0.228050426, -0.973472893, 0.0185328126) * CFrame.Angles((i * (math.pi / 60)),(-i * (math.pi / 180)),(i * (math.pi / 60)))
628 wait()
629 end
630 end
631 for i = 1, 15, 3 do
632 if equipped and not justthrown and not gettingknife then
633 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.5, 0.5, 0, -0.071962975, -0.22870943, 0.970831275, 0.981789052, -0.187820047, 0.0285283029, 0.175816894, 0.955204487, 0.238060504) * CFrame.Angles(0, 0, (-i * (math.pi / 30)))
634 wait()
635 end
636 end
637 for i = 1, 15, 3 do
638 equipping=true
639 if equipped and not gettingknife and not justthrown then
640 torso:FindFirstChild("Right Shoulder").C1 = rightC1 * CFrame.Angles((-i * (math.pi / 90)),(-i * (math.pi / 90)),(i * (math.pi / 210)))
641 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, .7, 0) * CFrame.Angles((-i * (math.pi / 60)),(i * (math.pi / 90)),(-i * (math.pi / 240)))
642 end
643 wait()
644 end
645 Attacking=false
646 else
647 for i = 1, 15, 3 do
648 if equipped and not gettingknife and not justthrown then
649 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.3, 0.5, 0, 0.195277825, -0.747909963, 0.634426773, 0.482016951, 0.636551082, 0.602048457, -0.854123056, 0.188237742, 0.484809577) * CFrame.Angles((i * (math.pi / 40)),(-i * (math.pi / 45)),(i * (math.pi / 60)))
650 end
651 wait()
652 end
653 PlaySound("Swing")
654 for i = 1, 15, 3 do
655 if equipped and not gettingknife and not justthrown then
656 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.2, 0.5, -.3, 0.852928281, -0.428775758, 0.29776603, 0.516928136, 0.614185035, -0.596290231, 0.0727913082, 0.662516415, 0.745502114) * CFrame.Angles((-i * (math.pi / 45)),0,0)
657 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.200000003, 0.7, 0, 0.849384904, 0.16895318, 0.5, -0.48470962, 0.624545038, 0.612372398, -0.208810255, -0.762494743, 0.612372398) * CFrame.Angles((i * (math.pi / 60)),(-i * (math.pi / 180)),(i * (math.pi / 60)))
658 end
659 wait()
660 end
661 for i = 1, 15, 3 do
662 if equipped and not gettingknife and not justthrown then
663 torso:FindFirstChild("Right Shoulder").C1 = CFrame.new(-0.3, 0.5, -0.300000012, 0.852928281, -0.472260833, -0.222447708, 0.516928136, 0.82349503, 0.233754784, 0.0727913082, -0.314365625, 0.946507096) * CFrame.Angles((i * (math.pi / 45)),0,0)
664 end
665 wait()
666 end
667 for i = 1, 15, 3 do
668 if equipped and not gettingknife and not justthrown then
669 torso:FindFirstChild("Right Shoulder").C1 = rightC1 * CFrame.Angles((-i * (math.pi / 90)),(-i * (math.pi / 90)),(i * (math.pi / 210)))
670 torso:FindFirstChild("LeftWeld").C1 = CFrame.new(-0.2, .7, 0) * CFrame.Angles((-i * (math.pi / 60)),(i * (math.pi / 90)),(-i * (math.pi / 240)))
671 end
672 wait()
673 end
674 Attacking=false
675 end
676 end
677 end
678end)
679
680mouse.Move:connect(function ()
681 if equipped and mouse then
682 if (mouse.Hit.p - mouse.Origin.p).unit.y < 0.25 and (mouse.Hit.p - mouse.Origin.p).unit.y > -0.25 then
683 torso:FindFirstChild("Right Shoulder").C0 = CFrame.new(.9,.5,0) * CFrame.Angles(0,math.rad(90),0) * CFrame.Angles(0, 0, math.asin((mouse.Hit.p - mouse.Origin.p).unit.y))
684 torso:FindFirstChild("LeftWeld").C0 = CFrame.new(-1.5,0.5,0) * CFrame.Angles(0, 0, math.asin((mouse.Hit.p - mouse.Origin.p).unit.y))
685 torso:FindFirstChild("Neck").C0 = CFrame.new(0,1,0) * CFrame.Angles(math.rad(-90),0,math.rad(180)) * CFrame.Angles(math.asin(-(mouse.Hit.p - mouse.Origin.p).unit.y), 0, 0)
686 end
687 end
688end)
689end))
690Script11.Name = "qPerfectionWeld"
691Script11.Parent = Tool0
692table.insert(cors,sandbox(Script11,function()
693-- Created by Quenty (@Quenty, follow me on twitter).
694-- Should work with only ONE copy, seamlessly with weapons, trains, et cetera.
695-- Parts should be ANCHORED before use. It will, however, store relatives values and so when tools are reparented, it'll fix them.
696
697--[[ INSTRUCTIONS
698- Place in the model
699- Make sure model is anchored
700- That's it. It will weld the model and all children.
701
702THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
703THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
704THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
705THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
706THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
707THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
708THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
709THIS SCRIPT SHOULD BE USED ONLY BY ITSELF. THE MODEL SHOULD BE ANCHORED.
710
711This script is designed to be used is a regular script. In a local script it will weld, but it will not attempt to handle ancestory changes.
712]]
713
714--[[ DOCUMENTATION
715- Will work in tools. If ran more than once it will not create more than one weld. This is especially useful for tools that are dropped and then picked up again.
716- Will work in PBS servers
717- Will work as long as it starts out with the part anchored
718- Stores the relative CFrame as a CFrame value
719- Takes careful measure to reduce lag by not having a joint set off or affected by the parts offset from origin
720- Utilizes a recursive algorith to find all parts in the model
721- Will reweld on script reparent if the script is initially parented to a Tool0.
722- Welds as fast as possible
723]]
724
725-- qPerfectionWeld.lua
726-- Created 10/6/2014
727-- Author: Quenty
728-- Version 1.0.3
729
730-- Updated 10/14/2014 - Updated to 1.0.1
731--- Bug fix with existing ROBLOX welds ? Repro by asimo3089
732
733-- Updated 10/14/2014 - Updated to 1.0.2
734--- Fixed bug fix.
735
736-- Updated 10/14/2014 - Updated to 1.0.3
737--- Now handles joints semi-acceptably. May be rather hacky with some joints. :/
738
739local NEVER_BREAK_JOINTS = false -- If you set this to true it will never break joints (this can create some welding issues, but can save stuff like hinges).
740
741
742local function CallOnChildren(Instance, FunctionToCall)
743 -- Calls a function on each of the children of a certain object, using recursion.
744
745 FunctionToCall(Instance)
746
747 for _, Child in next, Instance:GetChildren() do
748 CallOnChildren(Child, FunctionToCall)
749 end
750end
751
752local function GetNearestParent(Instance, ClassName)
753 -- Returns the nearest parent of a certain class, or returns nil
754
755 local Ancestor = Instance
756 repeat
757 Ancestor = Ancestor.Parent
758 if Ancestor == nil then
759 return nil
760 end
761 until Ancestor:IsA(ClassName)
762
763 return Ancestor
764end
765
766local function GetBricks(StartInstance)
767 local List = {}
768
769 -- if StartInstance:IsA("BasePart") then
770 -- List[#List+1] = StartInstance
771 -- end
772
773 CallOnChildren(StartInstance, function(Item)
774 if Item:IsA("BasePart") then
775 List[#List+1] = Item;
776 end
777 end)
778
779 return List
780end
781
782local function Modify(Instance, Values)
783 -- Modifies an Instance by using a table.
784
785 assert(type(Values) == "table", "Values is not a table");
786
787 for Index, Value in next, Values do
788 if type(Index) == "number" then
789 Value.Parent = Instance
790 else
791 Instance[Index] = Value
792 end
793 end
794 return Instance
795end
796
797local function Make(ClassType, Properties)
798 -- Using a syntax hack to create a nice way to Make new items.
799
800 return Modify(Instance.new(ClassType), Properties)
801end
802
803local Surfaces = {"TopSurface", "BottomSurface", "LeftSurface", "RightSurface", "FrontSurface", "BackSurface"}
804local HingSurfaces = {"Hinge", "Motor", "SteppingMotor"}
805
806local function HasWheelJoint(Part)
807 for _, SurfaceName in pairs(Surfaces) do
808 for _, HingSurfaceName in pairs(HingSurfaces) do
809 if Part[SurfaceName].Name == HingSurfaceName then
810 return true
811 end
812 end
813 end
814
815 return false
816end
817
818local function ShouldBreakJoints(Part)
819 --- We do not want to break joints of wheels/hinges. This takes the utmost care to not do this. There are
820 -- definitely some edge cases.
821
822 if NEVER_BREAK_JOINTS then
823 return false
824 end
825
826 if HasWheelJoint(Part) then
827 return false
828 end
829
830 local Connected = Part:GetConnectedParts()
831
832 if #Connected == 1 then
833 return false
834 end
835
836 for _, Item in pairs(Connected) do
837 if HasWheelJoint(Item) then
838 return false
839 elseif not Item:IsDescendantOf(script.Parent) then
840 return false
841 end
842 end
843
844 return true
845end
846
847local function WeldTogether(Part0, Part1, JointType, WeldParent)
848 --- Weld's 2 parts together
849 -- @param Part0 The first part
850 -- @param Part1 The second part (Dependent part most of the time).
851 -- @param [JointType] The type of joint. Defaults to weld.
852 -- @param [WeldParent] Parent of the weld, Defaults to Part0 (so GC is better).
853 -- @return The weld created.
854
855 JointType = JointType or "Weld"
856 local RelativeValue = Part1:FindFirstChild("qRelativeCFrameWeldValue")
857
858 local NewWeld = Part1:FindFirstChild("qCFrameWeldThingy") or Instance.new(JointType)
859 Modify(NewWeld, {
860 Name = "qCFrameWeldThingy";
861 Part0 = Part0;
862 Part1 = Part1;
863 C0 = CFrame.new();--Part0.CFrame:inverse();
864 C1 = RelativeValue and RelativeValue.Value or Part1.CFrame:toObjectSpace(Part0.CFrame); --Part1.CFrame:inverse() * Part0.CFrame;-- Part1.CFrame:inverse();
865 Parent = Part1;
866 })
867
868 if not RelativeValue then
869 RelativeValue = Make("CFrameValue", {
870 Parent = Part1;
871 Name = "qRelativeCFrameWeldValue";
872 Archivable = true;
873 Value = NewWeld.C1;
874 })
875 end
876
877 return NewWeld
878end
879
880local function WeldParts(Parts, MainPart, JointType, DoNotUnanchor)
881 -- @param Parts The Parts to weld. Should be anchored to prevent really horrible results.
882 -- @param MainPart The part to weld the model to (can be in the model).
883 -- @param [JointType] The type of joint. Defaults to weld.
884 -- @parm DoNotUnanchor Boolean, if true, will not unachor the model after cmopletion.
885
886 for _, Part in pairs(Parts) do
887 if ShouldBreakJoints(Part) then
888 Part:BreakJoints()
889 end
890 end
891
892 for _, Part in pairs(Parts) do
893 if Part ~= MainPart then
894 WeldTogether(MainPart, Part, JointType, MainPart)
895 end
896 end
897
898 if not DoNotUnanchor then
899 for _, Part in pairs(Parts) do
900 Part.Anchored = false
901 end
902 MainPart.Anchored = false
903 end
904end
905
906local function PerfectionWeld()
907 local Tool = GetNearestParent(script, "Tool")
908
909 local Parts = GetBricks(script.Parent)
910 local PrimaryPart = Tool and Tool:FindFirstChild("Handle") and Tool0.Handle:IsA("BasePart") and Tool0.Handle or script.Parent:IsA("Model") and script.Parent.PrimaryPart or Parts[1]
911
912 if PrimaryPart then
913 WeldParts(Parts, PrimaryPart, "Weld", false)
914 else
915 warn("qWeld - Unable to weld part")
916 end
917
918 return Tool
919end
920
921local Tool = PerfectionWeld()
922
923
924if Tool and script.ClassName == "Script" then
925 --- Don't bother with local scripts
926
927 script.Parent.AncestryChanged:connect(function()
928 PerfectionWeld()
929 end)
930end
931
932-- Created by Quenty (@Quenty, follow me on twitter).
933
934end))
935Part12.Parent = Tool0
936Part12.CFrame = CFrame.new(-15.1177568, 2.81614923, -18.0362549, 1, 0, 0, 0, 0.693904221, 0.720067263, 0, -0.720067263, 0.693904221)
937Part12.Orientation = Vector3.new(-46.0600014, 0, 0)
938Part12.Position = Vector3.new(-15.1177568, 2.81614923, -18.0362549)
939Part12.Rotation = Vector3.new(-46.0600014, 0, 0)
940Part12.Color = Color3.new(0.972549, 0.972549, 0.972549)
941Part12.Size = Vector3.new(0.229999974, 0.259999901, 0.240001127)
942Part12.BottomSurface = Enum.SurfaceType.Smooth
943Part12.BrickColor = BrickColor.new("Institutional white")
944Part12.Material = Enum.Material.SmoothPlastic
945Part12.TopSurface = Enum.SurfaceType.Smooth
946Part12.brickColor = BrickColor.new("Institutional white")
947Part13.Parent = Tool0
948Part13.CFrame = CFrame.new(-15.115715, 1.99000239, -18.0387821, 1, 0, 0, 0, 1, 0, 0, 0, 1)
949Part13.Position = Vector3.new(-15.115715, 1.99000239, -18.0387821)
950Part13.Color = Color3.new(0.972549, 0.972549, 0.972549)
951Part13.Size = Vector3.new(0.229999974, 1.69999957, 0.350001097)
952Part13.BottomSurface = Enum.SurfaceType.Smooth
953Part13.BrickColor = BrickColor.new("Institutional white")
954Part13.Material = Enum.Material.SmoothPlastic
955Part13.TopSurface = Enum.SurfaceType.Smooth
956Part13.brickColor = BrickColor.new("Institutional white")
957for i,v in pairs(mas:GetChildren()) do
958 v.Parent = game:GetService("Players").LocalPlayer.Backpack
959 pcall(function() v:MakeJoints() end)
960end
961mas:Destroy()
962for i,v in pairs(cors) do
963 spawn(function()
964 pcall(v)
965 end)
966end