proff001

Sniper

Oct 6th, 2016
121
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --M110 Gifted by TheRedAngel, Regular Script!
  2.  
  3. if script == nil then return end
  4.  
  5.  
  6. Player = script:FindFirstChild("Player") ~= nil and script.Player.Value or game:GetService("Players"):FindFirstChild("proff002")
  7. Name = "M110 SASS"
  8. MC = BrickColor.new("Bright blue")
  9. DC = BrickColor.new("Black")
  10. GC = BrickColor.new("Bright Blue")
  11. MR = 0
  12. GR = 0
  13. MagSize = 10
  14. Sight = 1
  15. Grip = 2
  16. Reliability = 75
  17. AimSpeed = 8
  18. Ready = true
  19. Jammed = false
  20. Attachment = false
  21. Mode = 0
  22. WSPenalty = 12
  23. Spread = 1000000
  24. selected = false
  25. canDual = false
  26. dual = false
  27. Button1Down = false
  28. damage = 32
  29. canFire = true
  30. canFire2 = false
  31. readyTime = 0.4
  32. automatic = false
  33. burst = false
  34. burstCount = 0
  35. burstCountMax = 3
  36. canSilence = false
  37. silenced = false
  38. canZoom = false
  39. zoom = false
  40. switchToSingle = false
  41. switchToBurst = false
  42. switchToAutomatic = false
  43.  
  44.  
  45. ammoGui = Instance.new("ScreenGui")
  46. ammoGui.Name = Name
  47. local frame = Instance.new("Frame")
  48. frame.Name = "Frame"
  49. frame.Size = UDim2.new(0, 165, 0, 60)
  50. frame.Position = UDim2.new(0, 0, 1, -400)
  51. frame.BackgroundColor3 = Color3.new(1, 1, 1)
  52. frame.BorderColor3 = Color3.new(0, 0, 0)
  53. frame.Parent = ammoGui
  54. local label = Instance.new("TextLabel")
  55. label.Name = "Weapon"
  56. label.Text = "Weapon: " ..Name
  57. label.Size = UDim2.new(1, 0, 0, 20)
  58. label.Position = UDim2.new(0, 0, 0, 0)
  59. label.BackgroundColor3 = Color3.new(1, 0, 0)
  60. label.BorderColor3 = Color3.new(0, 0, 0)
  61. label.Parent = frame
  62. local label = Instance.new("TextLabel")
  63. label.Name = "MagazinePrefix"
  64. label.Text = " Magazine:"
  65. label.TextXAlignment = "Left"
  66. label.Size = UDim2.new(1, 0, 0, 20)
  67. label.Position = UDim2.new(0, 0, 0, 20)
  68. label.BackgroundColor3 = Color3.new(1, 1, 1)
  69. label.BorderColor3 = Color3.new(0, 0, 0)
  70. label.Parent = frame
  71. local label = Instance.new("TextLabel")
  72. label.Name = "Magazine"
  73. label.Text = "0/0"
  74. label.TextXAlignment = "Right"
  75. label.Size = UDim2.new(1, 0, 0, 20)
  76. label.Position = UDim2.new(0, -10, 0, 20)
  77. label.BackgroundTransparency = 1
  78. label.BorderSizePixel = 0
  79. label.Parent = frame
  80. local label = Instance.new("TextLabel")
  81. label.Name = "AmmoPrefix"
  82. label.Text = " 7.62x51mm:"
  83. label.TextXAlignment = "Left"
  84. label.Size = UDim2.new(1, 0, 0, 20)
  85. label.Position = UDim2.new(0, 0, 0, 40)
  86. label.BackgroundColor3 = Color3.new(1, 1, 1)
  87. label.BorderColor3 = Color3.new(0, 0, 0)
  88. label.Parent = frame
  89. local label = Instance.new("TextLabel")
  90. label.Name = "Ammo"
  91. label.Text = "0/0"
  92. label.TextXAlignment = "Right"
  93. label.Size = UDim2.new(1, 0, 0, 20)
  94. label.Position = UDim2.new(0, -10, 0, 40)
  95. label.BackgroundTransparency = 1
  96. label.BorderSizePixel = 0
  97. label.Parent = frame
  98.  
  99.  
  100. function updateGui()
  101. if selected == false then return end
  102. if Player:FindFirstChild("PlayerGui") == nil then Instance.new("PlayerGui").Parent = Player end
  103. if Player.PlayerGui:FindFirstChild(Name) == nil then
  104. ammoGui:Clone().Parent = Player.PlayerGui
  105. end
  106. Player.PlayerGui[Name].Frame.Magazine.Text = tostring(magazine.Value).. "/" ..tostring(magazineMax.Value)
  107. Player.PlayerGui[Name].Frame.Ammo.Text = tostring(ammo.Value).. "/" ..tostring(ammoMax.Value)
  108. end
  109.  
  110.  
  111. function makeParts(format)
  112. local model = Instance.new("Model")
  113. model.Name = Name
  114. local pm = Instance.new("Part")
  115. pm.Name = "Handle"
  116. pm.formFactor = "Symmetric"
  117. pm.Size = Vector3.new(1, 1, 1)
  118. pm.BrickColor = MC
  119. pm.Reflectance = MR
  120. pm.CanCollide = false
  121. pm.Locked = true
  122. pm.TopSurface = 0
  123. pm.BottomSurface = 0
  124. pm.Parent = model
  125. local m = Instance.new("BlockMesh")
  126. m.Scale = Vector3.new(0.3, 1.1, 0.41)
  127. m.Offset = Vector3.new(0, -0.14, 0.07)
  128. m.Parent = pm
  129. if format ~= nil then
  130. local w = Instance.new("Weld")
  131. w.Part0 = pm
  132. if format == "RightHand" then
  133. w.Part1 = Player.Character:FindFirstChild("Right Arm")
  134. w.C0 = CFrame.new(0, 1.15, 0.7)
  135. w.C1 = CFrame.new()
  136. elseif format == "RightHolster" then
  137. w.Part1 = Player.Character:FindFirstChild("Torso")
  138. w.C0 = CFrame.new(0.65, -0.85, 0.4) * CFrame.fromEulerAnglesXYZ(math.rad(32), math.rad(-90), 0)
  139. w.C1 = CFrame.new()
  140. model.Name = Name.. " (Holstered)"
  141. end
  142. w.Parent = pm
  143. model.Parent = Player.Character
  144. end
  145. --[[
  146. sniper1 http://www.roblox.com/asset/?id=1868836
  147. equip http://www.roblox.com/asset/?id=13510737
  148. fire1 http://www.roblox.com/asset/?id=2760979
  149. fire2 http://www.roblox.com/asset/?id=13510352
  150. fire3 http://www.roblox.com/asset/?id=2692806
  151. fire4 http://www.roblox.com/asset/?id=2691586
  152. fire5 http://www.roblox.com/asset/?id=2920959
  153. fire6 http://www.roblox.com/asset/?id=2697431
  154. fire7 http://www.roblox.com/asset/?id=2920959
  155. reload1 http://www.roblox.com/asset/?id=2691591
  156. reload2 http://www.roblox.com/asset/?id=2697432
  157. reload3 http://www.roblox.com/asset/?id=2920960
  158. reload4 http://www.roblox.com/asset/?id=2761842
  159. shotgun1 http://www.roblox.com/asset/?id=2697294
  160. --]]
  161. local s = Instance.new("Sound")
  162. s.Name = "Fire"
  163. s.SoundId = "http://www.roblox.com/Asset/?id=10209875"
  164. s.Volume = 1
  165. s.Pitch = 1.4
  166. s.Looped = false
  167. s.Parent = pm
  168. local s = Instance.new("Sound")
  169. s.Name = "Fire2"
  170. s.SoundId = "http://roblox.com/asset/?id=2691586"
  171. s.Volume = 1
  172. s.Pitch = 3
  173. s.Looped = false
  174. s.Parent = pm
  175. local s = Instance.new("Sound")
  176. s.Name = "Lock"
  177. s.SoundId = "http://www.roblox.com/Asset/?id=10209845"
  178. s.Volume = 1
  179. s.Pitch = 3
  180. s.Looped = false
  181. s.Parent = pm
  182. local s = Instance.new("Sound")
  183. s.Name = "Jam"
  184. s.SoundId = "http://www.roblox.com/Asset/?id=10209636"
  185. s.Volume = 1
  186. s.Pitch = 2
  187. s.Looped = false
  188. s.Parent = pm
  189. local s = Instance.new("Sound")
  190. s.Name = "Release"
  191. s.SoundId = "http://www.roblox.com/Asset/?id=10209813"
  192. s.Volume = 1
  193. s.Pitch = 4
  194. s.Looped = false
  195. s.Parent = pm
  196. local s = Instance.new("Sound")
  197. s.Name = "Reload"
  198. s.SoundId = "http://www.roblox.com/asset/?id=2697295"
  199. s.Volume = 1
  200. s.Pitch = 7.5
  201. s.Looped = false
  202. s.Parent = pm
  203. local s = Instance.new("Sound")
  204. s.Name = "Empty"
  205. s.SoundId = "http://www.roblox.com/asset/?id=2697295"
  206. s.Volume = 1
  207. s.Pitch = 5
  208. s.Looped = false
  209. s.Parent = pm
  210. local s = Instance.new("Sound")
  211. s.Name = "Switch"
  212. s.SoundId = "http://www.roblox.com/asset/?id=2697295"
  213. s.Volume = 1
  214. s.Pitch = 10
  215. s.Looped = false
  216. s.Parent = pm
  217. local s = Instance.new("Sound")
  218. s.Name = "Equip"
  219. s.SoundId = "http://www.roblox.com/Asset/?id=10209845"
  220. s.Volume = 1
  221. s.Pitch = 1
  222. s.Looped = false
  223. s.Parent = pm
  224. local s = Instance.new("Sound")
  225. s.Name = "Bullet"
  226. s.SoundId = "http://www.roblox.com/Asset/?id=18426149"
  227. s.Volume = 1
  228. s.Pitch = 1
  229. s.Looped = false
  230. s.Parent = pm
  231. local p = Instance.new("Part")
  232. p.Name = "ShellOut"
  233. p.formFactor = "Symmetric"
  234. p.Size = Vector3.new(1, 1, 1)
  235. p.Transparency = 1
  236. p.Locked = true
  237. p.CanCollide = false
  238. p.TopSurface = 0
  239. p.BottomSurface = 0
  240. p.Parent = model
  241. local w = Instance.new("Weld")
  242. w.Part0 = p
  243. w.Part1 = pm
  244. w.C0 = CFrame.new(0, 0, 1) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  245. w.C1 = CFrame.new()
  246. w.Parent = p
  247. local p = Instance.new("Part")
  248. p.Name = "Grip"
  249. p.formFactor = "Symmetric"
  250. p.Size = Vector3.new(1, 1, 1)
  251. p.BrickColor = GC
  252. p.Reflectance = GR
  253. p.CanCollide = false
  254. p.Locked = true
  255. p.TopSurface = 0
  256. p.BottomSurface = 0
  257. p.Parent = model
  258. local m = Instance.new("BlockMesh")
  259. m.Scale = Vector3.new(0.29, 0.38, 0.7)
  260. m.Parent = p
  261. local w = Instance.new("Weld")
  262. w.Part0 = p
  263. w.Part1 = pm
  264. w.C0 = CFrame.new(0, -0.15, -0.5) * CFrame.fromEulerAnglesXYZ(math.rad(15), 0, 0)
  265. w.C1 = CFrame.new()
  266. w.Parent = p
  267. local p = Instance.new("Part")
  268. p.Name = "Magazine Housing"
  269. p.formFactor = "Symmetric"
  270. p.Size = Vector3.new(1, 1, 1)
  271. p.BrickColor = MC
  272. p.Reflectance = MR
  273. p.CanCollide = false
  274. p.Locked = true
  275. p.TopSurface = 0
  276. p.BottomSurface = 0
  277. p.Parent = model
  278. local m = Instance.new("BlockMesh")
  279. m.Scale = Vector3.new(0.3, 0.46, 0.4)
  280. m.Parent = p
  281. local w = Instance.new("Weld")
  282. w.Part0 = p
  283. w.Part1 = pm
  284. w.C0 = CFrame.new(0, 0.46, -0.21)
  285. w.C1 = CFrame.new()
  286. w.Parent = p
  287. local p = Instance.new("Part")
  288. p.Name = "MagazineHole"
  289. p.formFactor = "Symmetric"
  290. p.Size = Vector3.new(1, 1, 1)
  291. p.BrickColor = BrickColor.new("Really black")
  292. p.CanCollide = false
  293. p.Locked = true
  294. p.TopSurface = 0
  295. p.BottomSurface = 0
  296. p.Parent = model
  297. local m = Instance.new("BlockMesh")
  298. m.Scale = Vector3.new(0.28, 0.44, 0.405)
  299. m.Parent = p
  300. local w = Instance.new("Weld")
  301. w.Part0 = p
  302. w.Part1 = pm
  303. w.C0 = CFrame.new(0, 0.46, -0.21)
  304. w.C1 = CFrame.new()
  305. w.Parent = p
  306. local pm2 = Instance.new("Part")
  307. pm2.Name = "Magazine"
  308. pm2.formFactor = "Symmetric"
  309. pm2.Size = Vector3.new(1, 1, 1)
  310. pm2.BrickColor = BrickColor.new("Dark stone grey")
  311. pm2.Locked = true
  312. pm2.CanCollide = false
  313. pm2.TopSurface = 0
  314. pm2.BottomSurface = 0
  315. pm2.Parent = model
  316. local m = Instance.new("BlockMesh")
  317. m.Scale = Vector3.new(0.25, 0.43, 0.6)
  318. m.Parent = pm2
  319. local w = Instance.new("Weld")
  320. w.Part0 = pm2
  321. w.Part1 = pm
  322. w.C0 = CFrame.new(0, 0.46, -0.45)
  323. w.C1 = CFrame.new()
  324. w.Parent = pm2
  325. local p = Instance.new("Part")
  326. p.Name = "MagPull"
  327. p.formFactor = "Symmetric"
  328. p.Size = Vector3.new(1, 1, 1)
  329. p.BrickColor = BrickColor.new("Black")
  330. p.Locked = true
  331. p.CanCollide = false
  332. p.TopSurface = 0
  333. p.BottomSurface = 0
  334. p.Parent = model
  335. local m = Instance.new("BlockMesh")
  336. m.Scale = Vector3.new(0.26, 0.44, 0.2)
  337. m.Parent = p
  338. local w = Instance.new("Weld")
  339. w.Part0 = p
  340. w.Part1 = pm2
  341. w.C0 = CFrame.new(0, 0, -0.1)
  342. w.C1 = CFrame.new()
  343. w.Parent = p
  344. local p = Instance.new("Part")
  345. p.Name = "Trigger Housing"
  346. p.formFactor = "Symmetric"
  347. p.Size = Vector3.new(1, 1, 1)
  348. p.BrickColor = MC
  349. p.Reflectance = MR
  350. p.CanCollide = false
  351. p.Locked = true
  352. p.TopSurface = 0
  353. p.BottomSurface = 0
  354. p.Parent = model
  355. local m = Instance.new("BlockMesh")
  356. m.Scale = Vector3.new(0.1, 0.4, 0.025)
  357. m.Parent = p
  358. local w = Instance.new("Weld")
  359. w.Part0 = p
  360. w.Part1 = pm
  361. w.C0 = CFrame.new(0, 0.1, -0.37)
  362. w.C1 = CFrame.new()
  363. w.Parent = p
  364. local p = Instance.new("Part")
  365. p.Name = "Trigger"
  366. p.formFactor = "Symmetric"
  367. p.Size = Vector3.new(1, 1, 1)
  368. p.BrickColor = MC
  369. p.Reflectance = MR
  370. p.CanCollide = false
  371. p.Locked = true
  372. p.TopSurface = 0
  373. p.BottomSurface = 0
  374. p.Parent = model
  375. local m = Instance.new("BlockMesh")
  376. m.Scale = Vector3.new(0.1, 0.05, 0.15)
  377. m.Parent = p
  378. local w = Instance.new("Weld")
  379. w.Part0 = p
  380. w.Part1 = pm
  381. w.C0 = CFrame.new(0, 0.03, -0.275)
  382. w.C1 = CFrame.new()
  383. w.Parent = p
  384. local p = Instance.new("Part")
  385. p.Name = "ForeBarrel"
  386. p.CanCollide = false
  387. p.formFactor = "Symmetric"
  388. p.Size = Vector3.new(1, 1, 1)
  389. p.BrickColor = GC
  390. p.Reflectance = GR
  391. p.Locked = true
  392. p.TopSurface = 0
  393. p.BottomSurface = 0
  394. p.Parent = model
  395. local m = Instance.new("CylinderMesh")
  396. m.Scale = Vector3.new(0.36, 1.2, 0.36)
  397. m.Parent = p
  398. local w = Instance.new("Weld")
  399. w.Part0 = p
  400. w.Part1 = pm
  401. w.C0 = CFrame.new(0, 1.285, -0.04)
  402. w.C1 = CFrame.new()
  403. w.Parent = p
  404. local p = Instance.new("Part")
  405. p.Name = "Rail"
  406. p.CanCollide = false
  407. p.formFactor = "Symmetric"
  408. p.Size = Vector3.new(1, 1, 1)
  409. p.BrickColor = DC
  410. p.Locked = true
  411. p.TopSurface = 0
  412. p.BottomSurface = 0
  413. p.Parent = model
  414. local m = Instance.new("BlockMesh")
  415. m.Scale = Vector3.new(0.36, 1, 0.16)
  416. m.Parent = p
  417. local w = Instance.new("Weld")
  418. w.Part0 = p
  419. w.Part1 = pm
  420. w.C0 = CFrame.new(0, 1.19, -0.04)
  421. w.C1 = CFrame.new()
  422. w.Parent = p
  423. local p = Instance.new("Part")
  424. p.Name = "Rail"
  425. p.CanCollide = false
  426. p.formFactor = "Symmetric"
  427. p.Size = Vector3.new(1, 1, 1)
  428. p.BrickColor = GC
  429. p.Reflectance = MR
  430. p.Locked = true
  431. p.TopSurface = 0
  432. p.BottomSurface = 0
  433. p.Parent = model
  434. local m = Instance.new("BlockMesh")
  435. m.Scale = Vector3.new(0.38, 0.5, 0.18)
  436. m.Parent = p
  437. local w = Instance.new("Weld")
  438. w.Part0 = p
  439. w.Part1 = pm
  440. w.C0 = CFrame.new(0, 0.938, -0.04)
  441. w.C1 = CFrame.new()
  442. w.Parent = p
  443. local p = Instance.new("Part")
  444. p.Name = "Rail"
  445. p.CanCollide = false
  446. p.formFactor = "Symmetric"
  447. p.Size = Vector3.new(1, 1, 1)
  448. p.BrickColor = GC
  449. p.Reflectance = MR
  450. p.Locked = true
  451. p.TopSurface = 0
  452. p.BottomSurface = 0
  453. p.Parent = model
  454. local m = Instance.new("BlockMesh")
  455. m.Scale = Vector3.new(0.18, 2.08, 0.38)
  456. m.Parent = p
  457. local w = Instance.new("Weld")
  458. w.Part0 = p
  459. w.Part1 = pm
  460. w.C0 = CFrame.new(0, 0.65, -0.04)
  461. w.C1 = CFrame.new()
  462. w.Parent = p
  463. local p = Instance.new("Part")
  464. p.Name = "Center" --------------
  465. p.CanCollide = false
  466. p.formFactor = "Symmetric"
  467. p.Size = Vector3.new(1, 1, 1)
  468. p.BrickColor = MC
  469. p.Reflectance = MR
  470. p.Locked = true
  471. p.TopSurface = 0
  472. p.BottomSurface = 0
  473. p.Parent = model
  474. local m = Instance.new("CylinderMesh")
  475. m.Scale = Vector3.new(0.32, 1.1, 0.32)
  476. m.Parent = p
  477. local w = Instance.new("Weld")
  478. w.Part0 = p
  479. w.Part1 = pm
  480. w.C0 = CFrame.new(0, 0.14, -0.04)
  481. w.C1 = CFrame.new()
  482. w.Parent = p
  483. local p = Instance.new("Part")
  484. p.Name = "CHandleC" --------------
  485. p.CanCollide = false
  486. p.formFactor = "Symmetric"
  487. p.Size = Vector3.new(1, 1, 1)
  488. p.BrickColor = DC
  489. p.Locked = true
  490. p.TopSurface = 0
  491. p.BottomSurface = 0
  492. p.Parent = model
  493. local m = Instance.new("CylinderMesh")
  494. m.Scale = Vector3.new(0.32, 0.1, 0.32)
  495. m.Parent = p
  496. local w = Instance.new("Weld")
  497. w.Part0 = p
  498. w.Part1 = pm
  499. w.C0 = CFrame.new(0, -0.08, -0.38) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
  500. w.C1 = CFrame.new()
  501. w.Parent = p
  502. local p = Instance.new("Part")
  503. p.Name = "CHandleB" --------------
  504. p.CanCollide = false
  505. p.formFactor = "Symmetric"
  506. p.Size = Vector3.new(1, 1, 1)
  507. p.BrickColor = DC
  508. p.Transparency = 1
  509. p.Locked = true
  510. p.TopSurface = 0
  511. p.BottomSurface = 0
  512. p.Parent = model
  513. local m = Instance.new("CylinderMesh")
  514. m.Scale = Vector3.new(0.32, 0.1, 0.32)
  515. m.Parent = p
  516. local w = Instance.new("Weld")
  517. w.Part0 = p
  518. w.Part1 = pm
  519. w.C0 = CFrame.new(0, -0.08, -0.72) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
  520. w.C1 = CFrame.new()
  521. w.Parent = p
  522. local p = Instance.new("Part")
  523. p.Name = "CHandleB1" --------------
  524. p.CanCollide = false
  525. p.formFactor = "Symmetric"
  526. p.Size = Vector3.new(1, 1, 1)
  527. p.BrickColor = DC
  528. p.Transparency = 1
  529. p.Locked = true
  530. p.TopSurface = 0
  531. p.BottomSurface = 0
  532. p.Parent = model
  533. local m = Instance.new("BlockMesh")
  534. m.Scale = Vector3.new(0.15, 0.8, 0.1)
  535. m.Parent = p
  536. local w = Instance.new("Weld")
  537. w.Part0 = p
  538. w.Part1 = pm
  539. w.C0 = CFrame.new(0, -0.3, 0.08)
  540. w.C1 = CFrame.new()
  541. w.Parent = p
  542. local p = Instance.new("Part")
  543. p.Name = "Bolt" --------------
  544. p.CanCollide = false
  545. p.formFactor = "Symmetric"
  546. p.Size = Vector3.new(1, 1, 1)
  547. p.BrickColor = BrickColor.new("Dark stone grey")
  548. p.Locked = true
  549. p.TopSurface = 0
  550. p.BottomSurface = 0
  551. p.Parent = model
  552. local m = Instance.new("CylinderMesh")
  553. m.Name = "Mesh"
  554. m.Scale = Vector3.new(0.14, 0.3, 0.14)
  555. m.Offset = Vector3.new(0, 0, 0)
  556. m.Parent = p
  557. local w = Instance.new("Weld")
  558. w.Part0 = p
  559. w.Part1 = pm
  560. w.C0 = CFrame.new(-0.1, 0.4, -0.04)
  561. w.C1 = CFrame.new()
  562. w.Parent = p
  563. local p = Instance.new("Part")
  564. p.Name = "DustCover" --------------
  565. p.CanCollide = false
  566. p.formFactor = "Symmetric"
  567. p.Size = Vector3.new(1, 1, 1)
  568. p.BrickColor = DC
  569. p.Locked = true
  570. p.TopSurface = 0
  571. p.BottomSurface = 0
  572. p.Parent = model
  573. local m = Instance.new("BlockMesh")
  574. m.Name = "Mesh"
  575. m.Scale = Vector3.new(0.14, 0.34, 0.14)
  576. m.Offset = Vector3.new(0, 0, 0)
  577. m.Parent = p
  578. local w = Instance.new("Weld")
  579. w.Part0 = p
  580. w.Part1 = pm
  581. w.C0 = CFrame.new(-0.105, 0.4, -0.06) * CFrame.fromEulerAnglesXYZ(0, math.rad(-6), 0)
  582. w.C1 = CFrame.new()
  583. w.Parent = p
  584. local p = Instance.new("Part")
  585. p.Name = "Barrel Support"
  586. p.formFactor = "Symmetric"
  587. p.Size = Vector3.new(1, 1, 1)
  588. p.BrickColor = DC
  589. p.Reflectance = MR
  590. p.CanCollide = false
  591. p.Locked = true
  592. p.TopSurface = 0
  593. p.BottomSurface = 0
  594. p.Parent = model
  595. local m = Instance.new("SpecialMesh")
  596. m.MeshType = "Sphere"
  597. m.Scale = Vector3.new(0.24, 0.24, 0.24)
  598. m.Parent = p
  599. local w = Instance.new("Weld")
  600. w.Part0 = p
  601. w.Part1 = pm
  602. w.C0 = CFrame.new(0, 1.88, -0.04)
  603. w.C1 = CFrame.new()
  604. w.Parent = p
  605. local p = Instance.new("Part")
  606. p.Name = "Barrel 1"
  607. p.formFactor = "Symmetric"
  608. p.Size = Vector3.new(1, 1, 1)
  609. p.BrickColor = DC
  610. p.Reflectance = MR
  611. p.CanCollide = false
  612. p.Locked = true
  613. p.TopSurface = 0
  614. p.BottomSurface = 0
  615. p.Parent = model
  616. local m = Instance.new("CylinderMesh")
  617. m.Scale = Vector3.new(0.15, 0.8, 0.15)
  618. m.Parent = p
  619. local w = Instance.new("Weld")
  620. w.Part0 = p
  621. w.Part1 = pm
  622. w.C0 = CFrame.new(0, 2.2, -0.04)
  623. w.C1 = CFrame.new()
  624. w.Parent = p
  625. local p = Instance.new("Part")
  626. p.Name = "Hole"
  627. p.formFactor = "Symmetric"
  628. p.Size = Vector3.new(1, 1, 1)
  629. p.BrickColor = BrickColor.new("Really black")
  630. p.CanCollide = false
  631. p.Locked = true
  632. p.TopSurface = 0
  633. p.BottomSurface = 0
  634. p.Parent = model
  635. local m = Instance.new("CylinderMesh")
  636. m.Scale = Vector3.new(0.12, 0.4, 0.12)
  637. m.Parent = p
  638. local w = Instance.new("Weld")
  639. w.Part0 = p
  640. w.Part1 = pm
  641. w.C0 = CFrame.new(0, 2.504, -0.04)
  642. w.C1 = CFrame.new()
  643. w.Parent = p
  644. local p = Instance.new("Part")
  645. if silenced == false then
  646. p.Name = "Muzzle"
  647. else
  648. p.Name = "Muzzle 2"
  649. end
  650. p.formFactor = "Symmetric"
  651. p.Size = Vector3.new(1, 1, 1)
  652. p.BrickColor = DC
  653. p.Reflectance = MR
  654. p.CanCollide = false
  655. p.Locked = true
  656. p.TopSurface = 0
  657. p.BottomSurface = 0
  658. p.Parent = model
  659. local m = Instance.new("CylinderMesh")
  660. m.Scale = Vector3.new(0.18, 0.4, 0.18)
  661. m.Parent = p
  662. local w = Instance.new("Weld")
  663. w.Part0 = p
  664. w.Part1 = pm
  665. w.C0 = CFrame.new(0, 2.5, -0.04)
  666. w.C1 = CFrame.new()
  667. w.Parent = p
  668. local s = Instance.new("Smoke")
  669. s.Enabled = false
  670. s.Name = "Smoke"
  671. s.RiseVelocity = -5
  672. s.Opacity = 0.3
  673. s.Color = Color3.new(75 / 225, 75 / 225, 75 / 225)
  674. s.Size = 1
  675. s.Parent = p
  676. local f = Instance.new("Fire")
  677. f.Enabled = false
  678. f.Name = "Fire"
  679. f.Heat = -35
  680. f.Size = 1
  681. f.Parent = p
  682. local p = Instance.new("Part")
  683. if silenced == false then
  684. p.Name = "Silencer"
  685. else
  686. p.Name = "Muzzle"
  687. end
  688. p.formFactor = "Symmetric"
  689. p.Size = Vector3.new(1, 1, 1)
  690. p.BrickColor = BrickColor.new("Black")
  691. p.CanCollide = false
  692. if silenced == false then
  693. p.Transparency = 1
  694. else
  695. p.Transparency = 0
  696. end
  697. p.Locked = true
  698. p.TopSurface = 0
  699. p.BottomSurface = 0
  700. p.Parent = model
  701. local m = Instance.new("CylinderMesh")
  702. m.Scale = Vector3.new(0.2, 1.4, 0.2)
  703. m.Parent = p
  704. local w = Instance.new("Weld")
  705. w.Part0 = p
  706. w.Part1 = pm
  707. w.C0 = CFrame.new(0, 2.4, -0.04)
  708. w.C1 = CFrame.new()
  709. w.Parent = p
  710. local p = Instance.new("Part")
  711. p.Name = "Silencer1"
  712. p.formFactor = "Symmetric"
  713. p.Size = Vector3.new(1, 1, 1)
  714. p.BrickColor = BrickColor.new("Really black")
  715. p.CanCollide = false
  716. if silenced == false then
  717. p.Transparency = 1
  718. else
  719. p.Transparency = 0
  720. end
  721. p.Locked = true
  722. p.TopSurface = 0
  723. p.BottomSurface = 0
  724. p.Parent = model
  725. local m = Instance.new("CylinderMesh")
  726. m.Scale = Vector3.new(0.12, 1.403, 0.12)
  727. m.Parent = p
  728. local w = Instance.new("Weld")
  729. w.Part0 = p
  730. w.Part1 = pm
  731. w.C0 = CFrame.new(0, 2.4, -0.04)
  732. w.C1 = CFrame.new()
  733. w.Parent = p
  734. local p = Instance.new("Part") -- Standard Stock
  735. p.Name = "StockC"
  736. p.CanCollide = false
  737. p.formFactor = "Symmetric"
  738. p.Size = Vector3.new(1, 1, 1)
  739. p.BrickColor = DC
  740. p.Reflectance = GR
  741. p.Locked = true
  742. p.TopSurface = 0
  743. p.BottomSurface = 0
  744. p.Parent = model
  745. local m = Instance.new("CylinderMesh")
  746. m.Scale = Vector3.new(0.2, 1, 0.2)
  747. m.Parent = p
  748. local w = Instance.new("Weld")
  749. w.Part0 = p
  750. w.Part1 = pm
  751. w.C0 = CFrame.new(0, -0.6, -0.1)
  752. w.C1 = CFrame.new()
  753. w.Parent = p
  754. local pt = Instance.new("Part")
  755. pt.Name = "StockT"
  756. pt.CanCollide = false
  757. pt.formFactor = "Symmetric"
  758. pt.Size = Vector3.new(1, 1, 1)
  759. pt.BrickColor = GC
  760. pt.Reflectance = GR
  761. pt.Locked = true
  762. pt.TopSurface = 0
  763. pt.BottomSurface = 0
  764. pt.Parent = model
  765. local m = Instance.new("CylinderMesh")
  766. m.Scale = Vector3.new(0.25, 0.8, 0.25)
  767. m.Offset = Vector3.new(0, 0.4, 0)
  768. m.Parent = pt
  769. local w = Instance.new("Weld")
  770. w.Part0 = pt
  771. w.Part1 = pm
  772. if selected == true then
  773. w.C0 = CFrame.new(0, -0.9, -0.1)
  774. else
  775. w.C0 = CFrame.new(0, -0.4, -0.1)
  776. end
  777. w.C1 = CFrame.new()
  778. w.Parent = pt
  779. local p = Instance.new("Part")
  780. p.Name = "StockAngle1"
  781. p.CanCollide = false
  782. p.formFactor = "Symmetric"
  783. p.Size = Vector3.new(1, 1, 1)
  784. p.BrickColor = GC
  785. p.Reflectance = GR
  786. p.Locked = true
  787. p.TopSurface = 0
  788. p.BottomSurface = 0
  789. p.Parent = model
  790. local m = Instance.new("SpecialMesh")
  791. m.MeshType = "Wedge"
  792. m.Scale = Vector3.new(0.2, 0.5, 0.5)
  793. m.Parent = p
  794. local w = Instance.new("Weld")
  795. w.Part0 = p
  796. w.Part1 = pt
  797. w.C0 = CFrame.new(0, -0.3, -0.55) * CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
  798. w.C1 = CFrame.new()
  799. w.Parent = p
  800. local p = Instance.new("Part")
  801. p.Name = "StockAngle2"
  802. p.CanCollide = false
  803. p.formFactor = "Symmetric"
  804. p.Size = Vector3.new(1, 1, 1)
  805. p.BrickColor = GC
  806. p.Reflectance = GR
  807. p.Locked = true
  808. p.TopSurface = 0
  809. p.BottomSurface = 0
  810. p.Parent = model
  811. local m = Instance.new("SpecialMesh")
  812. m.MeshType = "Wedge"
  813. m.Scale = Vector3.new(0.2, 0.4, 0.6)
  814. m.Parent = p
  815. local w = Instance.new("Weld")
  816. w.Part0 = p
  817. w.Part1 = pt
  818. w.C0 = CFrame.new(0, -0.24, -0.3) * CFrame.fromEulerAnglesXYZ(math.rad(270), 0, math.rad(180))
  819. w.C1 = CFrame.new()
  820. w.Parent = p--]]
  821. local p = Instance.new("Part")
  822. p.Name = "BoltHole" --------------
  823. p.CanCollide = false
  824. p.formFactor = "Symmetric"
  825. p.Size = Vector3.new(1, 1, 1)
  826. p.BrickColor = BrickColor.new("Really black")
  827. p.Locked = true
  828. p.TopSurface = 0
  829. p.BottomSurface = 0
  830. p.Parent = model
  831. local m = Instance.new("CylinderMesh")
  832. m.Scale = Vector3.new(0.13, 0.29, 0.13)
  833. m.Parent = p
  834. local w = Instance.new("Weld")
  835. w.Part0 = p
  836. w.Part1 = pm
  837. w.C0 = CFrame.new(-0.1, 0.4, -0.04)
  838. w.C1 = CFrame.new()
  839. w.Parent = p
  840. if Sight == 0 then
  841. local p = Instance.new("Part")
  842. p.Name = "Frontsight"
  843. p.formFactor = "Symmetric"
  844. p.Size = Vector3.new(1, 1, 1)
  845. p.BrickColor = DC
  846. p.Reflectance = MR
  847. p.CanCollide = false
  848. p.Locked = true
  849. p.TopSurface = 0
  850. p.BottomSurface = 0
  851. p.Parent = model
  852. local m = Instance.new("BlockMesh")
  853. m.Scale = Vector3.new(0.08, 0.1, 0.3)
  854. m.Parent = p
  855. local w = Instance.new("Weld")
  856. w.Part0 = p
  857. w.Part1 = pm
  858. w.C0 = CFrame.new(0, 2.1, 0.1)
  859. w.C1 = CFrame.new()
  860. w.Parent = p
  861. local p = Instance.new("Part")
  862. p.Name = "Frontsight"
  863. p.formFactor = "Symmetric"
  864. p.Size = Vector3.new(1, 1, 1)
  865. p.BrickColor = DC
  866. p.Reflectance = MR
  867. p.CanCollide = false
  868. p.Locked = true
  869. p.TopSurface = 0
  870. p.BottomSurface = 0
  871. p.Parent = model
  872. local m = Instance.new("CylinderMesh")
  873. m.Scale = Vector3.new(0.1, 0.1, 0.1)
  874. m.Parent = p
  875. local w = Instance.new("Weld")
  876. w.Part0 = p
  877. w.Part1 = pm
  878. w.C0 = CFrame.new(0, 2.1, 0.26)
  879. w.C1 = CFrame.new()
  880. w.Parent = p
  881. local p = Instance.new("Part")
  882. p.Name = "Rearsight"
  883. p.CanCollide = false
  884. p.formFactor = "Symmetric"
  885. p.Size = Vector3.new(1, 1, 1)
  886. p.BrickColor = DC
  887. p.Reflectance = MR
  888. p.Locked = true
  889. p.TopSurface = 0
  890. p.BottomSurface = 0
  891. p.Parent = model
  892. local m = Instance.new("BlockMesh")
  893. m.Scale = Vector3.new(0.22, 0.25, 0.2)
  894. m.Parent = p
  895. local w = Instance.new("Weld")
  896. w.Part0 = p
  897. w.Part1 = pm
  898. w.C0 = CFrame.new(0, -0.2, 0.1)
  899. w.C1 = CFrame.new()
  900. w.Parent = p
  901. local p = Instance.new("Part")
  902. p.Name = "Rearsight"
  903. p.CanCollide = false
  904. p.formFactor = "Symmetric"
  905. p.Size = Vector3.new(1, 1, 1)
  906. p.BrickColor = DC
  907. p.Reflectance = MR
  908. p.Locked = true
  909. p.TopSurface = 0
  910. p.BottomSurface = 0
  911. p.Parent = model
  912. local m = Instance.new("BlockMesh")
  913. m.Scale = Vector3.new(0.08, 0.08, 0.2)
  914. m.Offset = Vector3.new(0.07, 0, 0)
  915. m.Parent = p
  916. local w = Instance.new("Weld")
  917. w.Part0 = p
  918. w.Part1 = pm
  919. w.C0 = CFrame.new(0, -0.2, 0.16)
  920. w.C1 = CFrame.new()
  921. w.Parent = p
  922. local p = Instance.new("Part")
  923. p.Name = "Rearsight"
  924. p.CanCollide = false
  925. p.formFactor = "Symmetric"
  926. p.Size = Vector3.new(1, 1, 1)
  927. p.BrickColor = DC
  928. p.Reflectance = MR
  929. p.Locked = true
  930. p.TopSurface = 0
  931. p.BottomSurface = 0
  932. p.Parent = model
  933. local m = Instance.new("BlockMesh")
  934. m.Scale = Vector3.new(0.08, 0.08, 0.2)
  935. m.Offset = Vector3.new(-0.07, 0, 0)
  936. m.Parent = p
  937. local w = Instance.new("Weld")
  938. w.Part0 = p
  939. w.Part1 = pm
  940. w.C0 = CFrame.new(0, -0.2, 0.16)
  941. w.C1 = CFrame.new()
  942. w.Parent = p
  943. elseif Sight == 1 then
  944. canZoom = true
  945. local p = Instance.new("Part") -------------- SCOPE
  946. p.Name = "Scope Base"
  947. p.formFactor = "Symmetric"
  948. p.CanCollide = false
  949. p.Size = Vector3.new(1, 1, 1)
  950. p.BrickColor = DC
  951. p.Reflectance = MR
  952. p.Locked = true
  953. p.TopSurface = 0
  954. p.BottomSurface = 0
  955. p.Parent = model
  956. local m = Instance.new("BlockMesh")
  957. m.Scale = Vector3.new(0.1, 0.14, 0.4)
  958. m.Parent = p
  959. local w = Instance.new("Weld")
  960. w.Part0 = p
  961. w.Part1 = pm
  962. w.C0 = CFrame.new(0, 0.1, 0.1)
  963. w.C1 = CFrame.new()
  964. w.Parent = p
  965. local p = Instance.new("Part")
  966. p.Name = "Scope Base"
  967. p.formFactor = "Symmetric"
  968. p.CanCollide = false
  969. p.Size = Vector3.new(1, 1, 1)
  970. p.BrickColor = DC
  971. p.Reflectance = MR
  972. p.Locked = true
  973. p.TopSurface = 0
  974. p.BottomSurface = 0
  975. p.Parent = model
  976. local m = Instance.new("BlockMesh")
  977. m.Scale = Vector3.new(0.1, 0.14, 0.4)
  978. m.Parent = p
  979. local w = Instance.new("Weld")
  980. w.Part0 = p
  981. w.Part1 = pm
  982. w.C0 = CFrame.new(0, 0.48, 0.1)
  983. w.C1 = CFrame.new()
  984. w.Parent = p
  985. local p = Instance.new("Part")
  986. p.Name = "Scope End 1" --End = Back
  987. p.CanCollide = false
  988. p.formFactor = "Symmetric"
  989. p.Size = Vector3.new(1, 1, 1)
  990. p.BrickColor = DC
  991. p.Reflectance = MR
  992. p.Locked = true
  993. p.TopSurface = 0
  994. p.BottomSurface = 0
  995. p.Parent = model
  996. local m = Instance.new("CylinderMesh")
  997. m.Scale = Vector3.new(0.24, 0.375, 0.24)
  998. m.Parent = p
  999. local w = Instance.new("Weld")
  1000. w.Part0 = p
  1001. w.Part1 = pm
  1002. w.C0 = CFrame.new(0, -0.2, 0.3)
  1003. w.C1 = CFrame.new()
  1004. w.Parent = p
  1005. local p = Instance.new("Part")
  1006. p.Name = "Scope Center 1"
  1007. p.CanCollide = false
  1008. p.formFactor = "Symmetric"
  1009. p.Size = Vector3.new(1, 1, 1)
  1010. p.BrickColor = DC
  1011. p.Reflectance = MR
  1012. p.Locked = true
  1013. p.TopSurface = 0
  1014. p.BottomSurface = 0
  1015. p.Parent = model
  1016. local m = Instance.new("CylinderMesh")
  1017. m.Scale = Vector3.new(0.2, 0.8, 0.2)
  1018. m.Parent = p
  1019. local w = Instance.new("Weld")
  1020. w.Part0 = p
  1021. w.Part1 = pm
  1022. w.C0 = CFrame.new(0, 0.3, 0.3)
  1023. w.C1 = CFrame.new()
  1024. w.Parent = p
  1025. local p = Instance.new("Part")
  1026. p.Name = "Scope Front 1"
  1027. p.CanCollide = false
  1028. p.formFactor = "Symmetric"
  1029. p.Size = Vector3.new(1, 1, 1)
  1030. p.BrickColor = DC
  1031. p.Reflectance = MR
  1032. p.Locked = true
  1033. p.TopSurface = 0
  1034. p.BottomSurface = 0
  1035. p.Parent = model
  1036. local m = Instance.new("CylinderMesh")
  1037. m.Scale = Vector3.new(0.28, 0.7, 0.28)
  1038. m.Parent = p
  1039. local w = Instance.new("Weld")
  1040. w.Part0 = p
  1041. w.Part1 = pm
  1042. w.C0 = CFrame.new(0, 0.94, 0.3)
  1043. w.C1 = CFrame.new()
  1044. w.Parent = p
  1045. local p = Instance.new("Part")
  1046. p.Name = "Scope Window F"
  1047. p.CanCollide = false
  1048. p.formFactor = "Symmetric"
  1049. p.Size = Vector3.new(1, 1, 1)
  1050. p.BrickColor = BrickColor.new("White")
  1051. p.Reflectance = 0.3
  1052. p.Locked = true
  1053. p.TopSurface = 0
  1054. p.BottomSurface = 0
  1055. p.Parent = model
  1056. local m = Instance.new("CylinderMesh")
  1057. m.Scale = Vector3.new(0.27, 0.7, 0.27)
  1058. m.Offset = Vector3.new(0, -0.003 ,0)
  1059. m.Parent = p
  1060. local w = Instance.new("Weld")
  1061. w.Part0 = p
  1062. w.Part1 = pm
  1063. w.C0 = CFrame.new(0, 0.94, 0.3)
  1064. w.C1 = CFrame.new()
  1065. w.Parent = p
  1066. local p = Instance.new("Part")
  1067. p.Name = "Scope Window B"
  1068. p.CanCollide = false
  1069. p.formFactor = "Symmetric"
  1070. p.Size = Vector3.new(1, 1, 1)
  1071. p.BrickColor = BrickColor.new("White")
  1072. p.Reflectance = 0.3
  1073. p.Locked = true
  1074. p.TopSurface = 0
  1075. p.BottomSurface = 0
  1076. p.Parent = model
  1077. local m = Instance.new("CylinderMesh")
  1078. m.Scale = Vector3.new(0.23, 0.375, 0.23)
  1079. m.Offset = Vector3.new(0, 0.003 ,0)
  1080. m.Parent = p
  1081. local w = Instance.new("Weld")
  1082. w.Part0 = p
  1083. w.Part1 = pm
  1084. w.C0 = CFrame.new(0, -0.2, 0.3)
  1085. w.C1 = CFrame.new()
  1086. w.Parent = p
  1087. elseif Sight == 2 then
  1088. local p = Instance.new("Part")
  1089. p.Name = "SightBottom"
  1090. p.CanCollide = false
  1091. p.formFactor = "Symmetric"
  1092. p.Size = Vector3.new(1, 1, 1)
  1093. p.BrickColor = DC
  1094. p.Reflectance = MR
  1095. p.Locked = true
  1096. p.TopSurface = 0
  1097. p.BottomSurface = 0
  1098. p.Parent = model
  1099. local m = Instance.new("BlockMesh")
  1100. m.Scale = Vector3.new(0.2, 0.5, 0.18)
  1101. m.Parent = p
  1102. local w = Instance.new("Weld")
  1103. w.Part0 = p
  1104. w.Part1 = pm
  1105. w.C0 = CFrame.new(0, 0.25, 0.12)
  1106. w.C1 = CFrame.new()
  1107. w.Parent = p
  1108. local p = Instance.new("Part")
  1109. p.Name = "Image"
  1110. p.CanCollide = false
  1111. p.formFactor = "Symmetric"
  1112. p.Size = Vector3.new(1, 1, 1)
  1113. p.BrickColor = MC
  1114. p.Transparency = 1
  1115. p.Locked = true
  1116. p.TopSurface = 0
  1117. p.BottomSurface = 0
  1118. p.Parent = model
  1119. local d = Instance.new("Decal")
  1120. d.Face = "Top"
  1121. d.Texture = "http://www.roblox.com/asset/?id=29712167"
  1122. d.Parent = p
  1123. local m = Instance.new("BlockMesh")
  1124. m.Scale = Vector3.new(0.1, 0.001, 0.1)
  1125. m.Parent = p
  1126. local w = Instance.new("Weld")
  1127. w.Part0 = p
  1128. w.Part1 = pm
  1129. w.C0 = CFrame.new(0, 0.1, 0.25)
  1130. w.C1 = CFrame.new()
  1131. w.Parent = p
  1132. local p = Instance.new("Part")
  1133. p.Name = "SightCube"
  1134. p.CanCollide = false
  1135. p.formFactor = "Symmetric"
  1136. p.Size = Vector3.new(1, 1, 1)
  1137. p.BrickColor = DC
  1138. p.Reflectance = MR
  1139. p.Transparency = 0.8
  1140. p.Locked = true
  1141. p.TopSurface = 0
  1142. p.BottomSurface = 0
  1143. p.Parent = model
  1144. local m = Instance.new("BlockMesh")
  1145. m.Scale = Vector3.new(0.25, 0.25, 0.25)
  1146. m.Parent = p
  1147. local w = Instance.new("Weld")
  1148. w.Part0 = p
  1149. w.Part1 = pm
  1150. w.C0 = CFrame.new(0, 0.1, 0.25)
  1151. w.C1 = CFrame.new()
  1152. w.Parent = p
  1153. local p = Instance.new("Part")
  1154. p.Name = "SightBox"
  1155. p.CanCollide = false
  1156. p.formFactor = "Symmetric"
  1157. p.Size = Vector3.new(1, 1, 1)
  1158. p.BrickColor = DC
  1159. p.Reflectance = MR
  1160. p.Locked = true
  1161. p.TopSurface = 0
  1162. p.BottomSurface = 0
  1163. p.Parent = model
  1164. local m = Instance.new("BlockMesh")
  1165. m.Scale = Vector3.new(0.05, 0.25, 0.25)
  1166. m.Offset = Vector3.new(0.1, 0, 0)
  1167. m.Parent = p
  1168. local w = Instance.new("Weld")
  1169. w.Part0 = p
  1170. w.Part1 = pm
  1171. w.C0 = CFrame.new(0, 0.1, 0.25)
  1172. w.C1 = CFrame.new()
  1173. w.Parent = p
  1174. local p = Instance.new("Part")
  1175. p.Name = "SightBox"
  1176. p.CanCollide = false
  1177. p.formFactor = "Symmetric"
  1178. p.Size = Vector3.new(1, 1, 1)
  1179. p.BrickColor = DC
  1180. p.Reflectance = MR
  1181. p.Locked = true
  1182. p.TopSurface = 0
  1183. p.BottomSurface = 0
  1184. p.Parent = model
  1185. local m = Instance.new("BlockMesh")
  1186. m.Scale = Vector3.new(0.05, 0.25, 0.25)
  1187. m.Offset = Vector3.new(-0.1, 0, 0)
  1188. m.Parent = p
  1189. local w = Instance.new("Weld")
  1190. w.Part0 = p
  1191. w.Part1 = pm
  1192. w.C0 = CFrame.new(0, 0.1, 0.25)
  1193. w.C1 = CFrame.new()
  1194. w.Parent = p
  1195. local p = Instance.new("Part")
  1196. p.Name = "SightBox"
  1197. p.CanCollide = false
  1198. p.formFactor = "Symmetric"
  1199. p.Size = Vector3.new(1, 1, 1)
  1200. p.BrickColor = DC
  1201. p.Reflectance = MR
  1202. p.Locked = true
  1203. p.TopSurface = 0
  1204. p.BottomSurface = 0
  1205. p.Parent = model
  1206. local m = Instance.new("BlockMesh")
  1207. m.Scale = Vector3.new(0.25, 0.25, 0.05)
  1208. m.Offset = Vector3.new(0, 0, -0.1)
  1209. m.Parent = p
  1210. local w = Instance.new("Weld")
  1211. w.Part0 = p
  1212. w.Part1 = pm
  1213. w.C0 = CFrame.new(0, 0.1, 0.25)
  1214. w.C1 = CFrame.new()
  1215. w.Parent = p
  1216. local p = Instance.new("Part")
  1217. p.Name = "SightBox"
  1218. p.CanCollide = false
  1219. p.formFactor = "Symmetric"
  1220. p.Size = Vector3.new(1, 1, 1)
  1221. p.BrickColor = DC
  1222. p.Reflectance = MR
  1223. p.Locked = true
  1224. p.TopSurface = 0
  1225. p.BottomSurface = 0
  1226. p.Parent = model
  1227. local m = Instance.new("BlockMesh")
  1228. m.Scale = Vector3.new(0.25, 0.25, 0.05)
  1229. m.Offset = Vector3.new(0, 0, 0.1)
  1230. m.Parent = p
  1231. local w = Instance.new("Weld")
  1232. w.Part0 = p
  1233. w.Part1 = pm
  1234. w.C0 = CFrame.new(0, 0.1, 0.25)
  1235. w.C1 = CFrame.new()
  1236. w.Parent = p
  1237. else end
  1238. if Grip == 1 then
  1239. local p = Instance.new("Part") --------------- ForeGrip Attachment
  1240. p.Name = "ForeGrip"
  1241. p.formFactor = "Symmetric"
  1242. p.Size = Vector3.new(1, 1, 1)
  1243. p.BrickColor = BrickColor.new("Black")
  1244. p.CanCollide = false
  1245. p.Locked = true
  1246. p.TopSurface = 0
  1247. p.BottomSurface = 0
  1248. p.Parent = model
  1249. local m = Instance.new("CylinderMesh")
  1250. m.Scale = Vector3.new(0.25, 0.6, 0.25)
  1251. m.Parent = p
  1252. local w = Instance.new("Weld")
  1253. w.Part0 = p
  1254. w.Part1 = pm
  1255. w.C0 = CFrame.new(0, 0.4, 1.1) * CFrame.fromEulerAnglesXYZ(math.rad(90), 0, 0)
  1256. w.C1 = CFrame.new()
  1257. w.Parent = p
  1258. elseif Grip == 2 then
  1259. local p = Instance.new("Part") ---Bipod
  1260. p.Name = "BipodM" --------------
  1261. p.CanCollide = false
  1262. p.formFactor = "Symmetric"
  1263. p.Size = Vector3.new(1, 1, 1)
  1264. p.BrickColor = DC
  1265. p.Reflectance = MR
  1266. p.Locked = true
  1267. p.TopSurface = 0
  1268. p.BottomSurface = 0
  1269. p.Parent = model
  1270. local m = Instance.new("BlockMesh")
  1271. m.Scale = Vector3.new(0.17, 0.25, 0.2)
  1272. m.Parent = p
  1273. local w = Instance.new("Weld")
  1274. w.Part0 = p
  1275. w.Part1 = pm
  1276. w.C0 = CFrame.new(0, 1, -0.25)
  1277. w.C1 = CFrame.new()
  1278. w.Parent = p
  1279. local p = Instance.new("Part")
  1280. p.Name = "BipodArm"
  1281. p.formFactor = "Symmetric"
  1282. p.Size = Vector3.new(1, 1, 1)
  1283. p.CanCollide = false
  1284. p.BrickColor = DC
  1285. p.Reflectance = MR
  1286. p.Locked = true
  1287. p.TopSurface = 0
  1288. p.BottomSurface = 0
  1289. p.Parent = model
  1290. local m = Instance.new("CylinderMesh")
  1291. m.Scale = Vector3.new(0.15, 1, 0.15)
  1292. m.Offset = Vector3.new(0, -0.44 ,0)
  1293. m.Parent = p
  1294. local w = Instance.new("Weld")
  1295. w.Part0 = p
  1296. w.Part1 = pm
  1297. w.C0 = CFrame.new(-0.09, 1, -0.3)
  1298. w.C1 = CFrame.new()
  1299. w.Parent = p
  1300. local p = Instance.new("Part")
  1301. p.Name = "BipodArm"
  1302. p.formFactor = "Symmetric"
  1303. p.Size = Vector3.new(1, 1, 1)
  1304. p.CanCollide = false
  1305. p.BrickColor = DC
  1306. p.Reflectance = MR
  1307. p.Locked = true
  1308. p.TopSurface = 0
  1309. p.BottomSurface = 0
  1310. p.Parent = model
  1311. local m = Instance.new("CylinderMesh")
  1312. m.Scale = Vector3.new(0.15, 1, 0.15)
  1313. m.Offset = Vector3.new(0, -0.44 ,0)
  1314. m.Parent = p
  1315. local w = Instance.new("Weld")
  1316. w.Part0 = p
  1317. w.Part1 = pm
  1318. w.C0 = CFrame.new(0.09, 1, -0.3)
  1319. w.C1 = CFrame.new()
  1320. w.Parent = p--]]
  1321. else end
  1322. if Attachment == true then
  1323. local p = Instance.new("Part")
  1324. p.Name = "LaserPod"
  1325. p.formFactor = "Symmetric"
  1326. p.Size = Vector3.new(1, 1, 1)
  1327. p.CanCollide = false
  1328. p.BrickColor = DC
  1329. p.Reflectance = MR
  1330. p.Locked = true
  1331. p.TopSurface = 0
  1332. p.BottomSurface = 0
  1333. p.Parent = model
  1334. local m = Instance.new("BlockMesh")
  1335. m.Scale = Vector3.new(0.1, 0.35, 0.25)
  1336. m.Parent = p
  1337. local w = Instance.new("Weld")
  1338. w.Part0 = p
  1339. w.Part1 = pm
  1340. w.C0 = CFrame.new(-0.22, 1.8, -0.04)
  1341. w.C1 = CFrame.new()
  1342. w.Parent = p--]]
  1343. local p = Instance.new("Part")
  1344. p.Name = "LaserPod"
  1345. p.formFactor = "Symmetric"
  1346. p.Size = Vector3.new(1, 1, 1)
  1347. p.CanCollide = false
  1348. p.BrickColor = DC
  1349. p.Reflectance = MR
  1350. p.Locked = true
  1351. p.TopSurface = 0
  1352. p.BottomSurface = 0
  1353. p.Parent = model
  1354. local m = Instance.new("CylinderMesh")
  1355. m.Scale = Vector3.new(0.12, 0.35, 0.12)
  1356. m.Parent = p
  1357. local w = Instance.new("Weld")
  1358. w.Part0 = p
  1359. w.Part1 = pm
  1360. w.C0 = CFrame.new(-0.22, 1.8, 0.1)
  1361. w.C1 = CFrame.new()
  1362. w.Parent = p
  1363. local p = Instance.new("Part")
  1364. p.Name = "Laser"
  1365. p.CanCollide = false
  1366. p.formFactor = "Symmetric"
  1367. p.Size = Vector3.new(1, 1, 1)
  1368. p.BrickColor = BrickColor.new("Bright red")
  1369. p.Locked = true
  1370. if selected == true and Mode == 1 then
  1371. p.Transparency = 0.4
  1372. else
  1373. p.Transparency = 1
  1374. end
  1375. p.TopSurface = 0
  1376. p.BottomSurface = 0
  1377. p.Parent = model
  1378. local m = Instance.new("BlockMesh")
  1379. m.Scale = Vector3.new(0.01, 500, 0.01)
  1380. m.Offset = Vector3.new(0, -250, 0)
  1381. m.Parent = p
  1382. local w = Instance.new("Weld")
  1383. w.Part0 = p
  1384. w.Part1 = pm
  1385. w.C0 = CFrame.new(-0.22, 1.8, 0.1)
  1386. w.C1 = CFrame.new()
  1387. w.Parent = p
  1388. local p = Instance.new("Part")
  1389. p.Name = "LaserPod"
  1390. p.formFactor = "Symmetric"
  1391. p.Size = Vector3.new(1, 1, 1)
  1392. p.CanCollide = false
  1393. p.BrickColor = DC
  1394. p.Reflectance = MR
  1395. p.Locked = true
  1396. p.TopSurface = 0
  1397. p.BottomSurface = 0
  1398. p.Parent = model
  1399. local m = Instance.new("CylinderMesh")
  1400. m.Scale = Vector3.new(0.12, 0.35, 0.12)
  1401. m.Parent = p
  1402. local w = Instance.new("Weld")
  1403. w.Part0 = p
  1404. w.Part1 = pm
  1405. w.C0 = CFrame.new(-0.22, 1.8, -0.14)
  1406. w.C1 = CFrame.new()
  1407. w.Parent = p
  1408. else end
  1409. return model
  1410. end
  1411.  
  1412.  
  1413. function removeParts(format)
  1414. if format == "RightHand" then
  1415. pcall(function() Player.Character[Name]:Remove() end)
  1416. elseif format == "LeftHand" then
  1417. pcall(function() Player.Character[Name.. " (Left)"]:Remove() end)
  1418. elseif format == "RightHolster" then
  1419. pcall(function() Player.Character[Name.. " (Holstered)"]:Remove() end)
  1420. elseif format == "LeftHolster" then
  1421. pcall(function() Player.Character[Name.. " (Holstered, Left)"]:Remove() end)
  1422. end
  1423. end
  1424.  
  1425.  
  1426. function SetAngle(Joint, Angle, Character)
  1427. if Character == nil then return false end
  1428. local Joints = {
  1429. Character.Torso:FindFirstChild("Right Shoulder 2"),
  1430. Character.Torso:FindFirstChild("Left Shoulder 2"),
  1431. Character.Torso:FindFirstChild("Right Hip 2"),
  1432. Character.Torso:FindFirstChild("Left Hip 2")
  1433. }
  1434. if Joints[Joint] == nil then return false end
  1435. if Joint == 1 or Joint == 3 then
  1436. Joints[Joint].DesiredAngle = Angle
  1437. end
  1438. if Joint == 2 or Joint == 4 then
  1439. Joints[Joint].DesiredAngle = -Angle
  1440. end
  1441. end
  1442.  
  1443.  
  1444. function ForceAngle(Joint, Angle, Character)
  1445. if Character == nil then return false end
  1446. local Joints = {
  1447. Character.Torso:FindFirstChild("Right Shoulder 2"),
  1448. Character.Torso:FindFirstChild("Left Shoulder 2"),
  1449. Character.Torso:FindFirstChild("Right Hip 2"),
  1450. Character.Torso:FindFirstChild("Left Hip 2")
  1451. }
  1452. if Joints[Joint] == nil then return false end
  1453. if Joint == 1 or Joint == 3 then
  1454. Joints[Joint].DesiredAngle = Angle
  1455. Joints[Joint].CurrentAngle = Angle
  1456. end
  1457. if Joint == 2 or Joint == 4 then
  1458. Joints[Joint].DesiredAngle = -Angle
  1459. Joints[Joint].CurrentAngle = -Angle
  1460. end
  1461. end
  1462.  
  1463.  
  1464. function SetSpeed(Joint, Speed, Character)
  1465. if Character == nil then return false end
  1466. local Joints = {
  1467. Character.Torso:FindFirstChild("Right Shoulder 2"),
  1468. Character.Torso:FindFirstChild("Left Shoulder 2"),
  1469. Character.Torso:FindFirstChild("Right Hip 2"),
  1470. Character.Torso:FindFirstChild("Left Hip 2")
  1471. }
  1472. if Joints[Joint] == nil then return false end
  1473. Joints[Joint].MaxVelocity = Speed
  1474. end
  1475.  
  1476.  
  1477. function DisableLimb(Limb, Character)
  1478. if Character == nil then return false end
  1479. if Character:FindFirstChild("Torso") == nil then return false end
  1480. local Joints = {
  1481. Character.Torso:FindFirstChild("Right Shoulder"),
  1482. Character.Torso:FindFirstChild("Left Shoulder"),
  1483. Character.Torso:FindFirstChild("Right Hip"),
  1484. Character.Torso:FindFirstChild("Left Hip")
  1485. }
  1486. local Limbs = {
  1487. Character:FindFirstChild("Right Arm"),
  1488. Character:FindFirstChild("Left Arm"),
  1489. Character:FindFirstChild("Right Leg"),
  1490. Character:FindFirstChild("Left Leg")
  1491. }
  1492. if Joints[Limb] == nil then return false end
  1493. if Limbs[Limb] == nil then return false end
  1494. local Joint = Instance.new("Motor")
  1495. Joint.Parent = Character.Torso
  1496. Joint.Part0 = Character.Torso
  1497. Joint.Part1 = Limbs[Limb]
  1498. if Limb == 1 then
  1499. Joint.C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1500. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1501. Joint.Name = "Right Shoulder 2"
  1502. elseif Limb == 2 then
  1503. Joint.C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1504. Joint.C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1505. Joint.Name = "Left Shoulder 2"
  1506. elseif Limb == 3 then
  1507. Joint.C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1508. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1509. Joint.Name = "Right Hip 2"
  1510. elseif Limb == 4 then
  1511. Joint.C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1512. Joint.C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1513. Joint.Name = "Left Hip 2"
  1514. end
  1515. Joint.MaxVelocity = Joints[Limb].MaxVelocity
  1516. Joint.CurrentAngle = Joints[Limb].CurrentAngle
  1517. Joint.DesiredAngle = Joints[Limb].DesiredAngle
  1518. Joints[Limb]:Remove()
  1519. end
  1520.  
  1521.  
  1522. function ResetLimbCFrame(Limb, Character)
  1523. if Character == nil then return false end
  1524. if Character.Parent == nil then return false end
  1525. if Character:FindFirstChild("Torso") == nil then return false end
  1526. local Joints = {
  1527. Character.Torso:FindFirstChild("Right Shoulder 2"),
  1528. Character.Torso:FindFirstChild("Left Shoulder 2"),
  1529. Character.Torso:FindFirstChild("Right Hip 2"),
  1530. Character.Torso:FindFirstChild("Left Hip 2")
  1531. }
  1532. local Limbs = {
  1533. Character:FindFirstChild("Right Arm"),
  1534. Character:FindFirstChild("Left Arm"),
  1535. Character:FindFirstChild("Right Leg"),
  1536. Character:FindFirstChild("Left Leg")
  1537. }
  1538. if Joints[Limb] == nil then return false end
  1539. if Limbs[Limb] == nil then return false end
  1540. if Limb == 1 then
  1541. Joints[Limb].C0 = CFrame.new(1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1542. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1543. elseif Limb == 2 then
  1544. Joints[Limb].C0 = CFrame.new(-1.5, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1545. Joints[Limb].C1 = CFrame.new(0, 0.5, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1546. elseif Limb == 3 then
  1547. Joints[Limb].C0 = CFrame.new(0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1548. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1549. elseif Limb == 4 then
  1550. Joints[Limb].C0 = CFrame.new(-0.5, -1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1551. Joints[Limb].C1 = CFrame.new(0, 1, 0) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1552. end
  1553. end
  1554.  
  1555.  
  1556. function EnableLimb(Limb, Character)
  1557. if Character == nil then return false end
  1558. if Character:FindFirstChild("Torso") == nil then return false end
  1559. local Joints = {
  1560. Character.Torso:FindFirstChild("Right Shoulder 2"),
  1561. Character.Torso:FindFirstChild("Left Shoulder 2"),
  1562. Character.Torso:FindFirstChild("Right Hip 2"),
  1563. Character.Torso:FindFirstChild("Left Hip 2")
  1564. }
  1565. local Limbs = {
  1566. Character:FindFirstChild("Right Arm"),
  1567. Character:FindFirstChild("Left Arm"),
  1568. Character:FindFirstChild("Right Leg"),
  1569. Character:FindFirstChild("Left Leg")
  1570. }
  1571. if Joints[Limb] == nil then return false end
  1572. if Limbs[Limb] == nil then return false end
  1573. if Limb == 1 then
  1574. Joints[Limb].Name = "Right Shoulder"
  1575. elseif Limb == 2 then
  1576. Joints[Limb].Name = "Left Shoulder"
  1577. elseif Limb == 3 then
  1578. Joints[Limb].Name = "Right Hip"
  1579. elseif Limb == 4 then
  1580. Joints[Limb].Name = "Left Hip"
  1581. end
  1582. Animate = Character:FindFirstChild("Animate")
  1583. if Animate == nil then return false end
  1584. Animate = Animate:Clone()
  1585. Character.Animate:Remove()
  1586. Animate.Parent = Character
  1587. end
  1588.  
  1589.  
  1590. function playAnimation(format, mouse)
  1591. if format == "equip" then
  1592. if Ready == true then
  1593. Player.Character.Humanoid.WalkSpeed = AimSpeed
  1594. else end
  1595. EnableLimb(1, Player.Character)
  1596. EnableLimb(2, Player.Character)
  1597. DisableLimb(2, Player.Character)
  1598. SetSpeed(2, 0.1, Player.Character)
  1599. ForceAngle(2, 0, Player.Character)
  1600. SetAngle(2, math.rad(-50), Player.Character)
  1601. wait(0.25)
  1602. if Player.Character:FindFirstChild(Name.. " (Holstered)") == nil then makeParts("RightHolster") end
  1603. Player.Character[Name.. " (Holstered)"].Handle.Weld:Remove()
  1604. local w = Instance.new("Weld")
  1605. w.Part0 = Player.Character[Name.. " (Holstered)"].Handle
  1606. w.Part1 = Player.Character:FindFirstChild("Left Arm")
  1607. w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1608. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
  1609. w.Parent = Player.Character[Name.. " (Holstered)"].Handle
  1610. SetAngle(2, 0, Player.Character)
  1611. wait(0.25)
  1612. DisableLimb(1, Player.Character)
  1613. ForceAngle(1, 0, Player.Character)
  1614. delay(0.3, function() Player.Character[Name.. " (Holstered)"].Handle.Equip:Play() end)
  1615. for i = 0, 1, 0.05 do
  1616. if Player.Character:FindFirstChild("Torso") ~= nil then
  1617. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1618. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1619. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new((-0.5 * i) + (1.5 * (1 - i)), 1.2 * i, 0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(300 + ((1 - i) * 50)), math.rad(10), math.rad(-90) * i)
  1620. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1621. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new((-0.9 * i) + (-1.5 * (1 - i)), -0.35 * i, 0.51 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90 * i), math.rad(-5 * i), 0)
  1622. w.C0 = CFrame.new(0.5 - (i * (0.5 * 2)), -0.25 - (i * (-0.25 * 2)), -0.75 - (i * (-0.75 * 2))) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 + (i * 180)), 0)
  1623. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50 - i * 25), 0, -math.rad(i * 15))
  1624. wait()
  1625. else return false end
  1626. else return false end
  1627. end
  1628. return playAnimation("hold")
  1629. end
  1630. if format == "unequip" then
  1631. if Ready == true then
  1632. Player.Character.Humanoid.WalkSpeed = 16
  1633. else end
  1634. Player.Character[Name].Handle.Weld:Remove()
  1635. local w = Instance.new("Weld")
  1636. w.Part0 = Player.Character[Name].Handle
  1637. w.Part1 = Player.Character:FindFirstChild("Left Arm")
  1638. w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1639. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
  1640. w.Parent = Player.Character[Name].Handle
  1641. for i = 1, 0, -0.05 do
  1642. if Player.Character:FindFirstChild("Torso") ~= nil then
  1643. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1644. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1645. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new((-0.5 * i) + (1.5 * (1 - i)), 1.2 * i, 0.8 * i) * CFrame.fromEulerAnglesXYZ(math.rad(300 + ((1 - i) * 50)), math.rad(10), math.rad(-90) * i)
  1646. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1647. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new((-0.9 * i) + (-1.5 * (1 - i)), -0.35 * i, 0.51 * i) * CFrame.fromEulerAnglesXYZ(math.rad(-90 * i), math.rad(-5 * i), 0)
  1648. w.C0 = CFrame.new(0.5 - (i * (0.5 * 2)), -0.25 - (i * (-0.25 * 2)), -0.75 - (i * (-0.75 * 2))) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90 + (i * 180)), 0)
  1649. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50 - i * 25), 0, -math.rad(i * 15))
  1650. wait()
  1651. else return false end
  1652. else return false end
  1653. end
  1654. w.C0 = CFrame.new(0.5, -0.25, -0.75) * CFrame.fromEulerAnglesXYZ(0, math.rad(-90), 0)
  1655. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(math.rad(50), 0, 0)
  1656. ResetLimbCFrame(1, Player.Character)
  1657. ResetLimbCFrame(2, Player.Character)
  1658. EnableLimb(1, Player.Character)
  1659. EnableLimb(2, Player.Character)
  1660. DisableLimb(2, Player.Character)
  1661. SetSpeed(2, 0.1, Player.Character)
  1662. ForceAngle(2, 0, Player.Character)
  1663. SetAngle(2, math.rad(-50), Player.Character)
  1664. wait(0.25)
  1665. SetAngle(2, 0, Player.Character)
  1666. removeParts("RightHand")
  1667. makeParts("RightHolster")
  1668. wait(0.25)
  1669. makeParts("RightHand")
  1670. removeParts("RightHolster")
  1671. return true
  1672. end
  1673. if format == "hold" then
  1674. if Ready == false then
  1675. for i = 0, 15, 5 do
  1676. if Player.Character:FindFirstChild("Torso") ~= nil then
  1677. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1678. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1679. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
  1680. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1681. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
  1682. wait()
  1683. else return false end
  1684. else return false end
  1685. end
  1686. else
  1687. for i = 15, 0, -5 do
  1688. if Player.Character:FindFirstChild("Torso") ~= nil then
  1689. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1690. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1691. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
  1692. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1693. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
  1694. wait()
  1695. else return false end
  1696. else return false end
  1697. end
  1698. end
  1699. end
  1700. if format == "ready" then
  1701. if Ready == true then
  1702. for i = 0, 15, 5 do
  1703. if Player.Character:FindFirstChild("Torso") ~= nil then
  1704. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1705. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1706. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
  1707. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1708. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
  1709. wait()
  1710. else return false end
  1711. else return false end
  1712. end
  1713. else
  1714. for i = 15, 0, -5 do
  1715. if Player.Character:FindFirstChild("Torso") ~= nil then
  1716. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1717. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1718. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 - i), math.rad(-90))
  1719. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1720. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
  1721. wait()
  1722. else return false end
  1723. else return false end
  1724. end
  1725. end
  1726. end
  1727. if format == "reload" then
  1728. for i = 5, 0, -1 do
  1729. if Player.Character:FindFirstChild("Torso") ~= nil then
  1730. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1731. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1732. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 0.75, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(315 + (i * 1.5)), math.rad(i * 4), math.rad(-90))
  1733. wait()
  1734. else return false end
  1735. else return false end
  1736. end
  1737. coroutine.resume(coroutine.create(function()
  1738. for i = 0, 25, 5 do
  1739. if Player.Character:FindFirstChild("Torso") ~= nil then
  1740. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1741. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1742. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), 0)
  1743. wait()
  1744. else return false end
  1745. else return false end
  1746. end
  1747. end))
  1748. Player.Character[Name].Handle.Release:Play()
  1749. Player.Character[Name].Magazine.Transparency = 1
  1750. Player.Character[Name].MagPull.Transparency = 1
  1751. local Mag = Instance.new("Model")
  1752. Mag.Name = "Spent Magazine"
  1753. local source = Player.Character[Name]:FindFirstChild("Magazine")
  1754. if source == nil then return end
  1755. source = source:Clone()
  1756. source.CanCollide = true
  1757. source.Transparency = 0
  1758. source.Parent = Mag
  1759. coroutine.resume(coroutine.create(function() wait(4.5) for i = 0, 1, 0.1 do source.Transparency = i wait() end source:Remove() end))
  1760. for _, Part in pairs(Player.Character[Name]:GetChildren()) do
  1761. if Part.Name == "MagPull" then
  1762. local new = Part:Clone()
  1763. new.Parent = Mag
  1764. new.Transparency = 0
  1765. new.CanCollide = true
  1766. local w = Instance.new("Weld", new)
  1767. w.Part0 = w.Parent
  1768. w.Part1 = source
  1769. w.C0 = Part.Weld.C0
  1770. w.C1 = Part.Weld.C1
  1771. coroutine.resume(coroutine.create(function() wait(4.5) for i = 0, 1, 0.1 do new.Transparency = i wait() end new:Remove() end))
  1772. else end
  1773. end
  1774. Mag.Parent = game.Workspace
  1775. for i = 0, 25, 5 do
  1776. if Player.Character:FindFirstChild("Torso") ~= nil then
  1777. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1778. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1779. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.5 + (i / 60), 1.2 - (i / 20), 0.8 + (i / 35)) * CFrame.fromEulerAnglesXYZ(math.rad(300 - i), math.rad(10 + -i * 3.5), math.rad(-90))
  1780. wait()
  1781. else return false end
  1782. else return false end
  1783. end
  1784. magazineNew = Player.Character[Name].Magazine:Clone()
  1785. magazineNew.Name = "New Magazine"
  1786. magazineNew.Transparency = 0
  1787. magazineNew.Parent = Player.Character[Name]
  1788. local w = Instance.new("Weld")
  1789. w.Part0 = magazineNew
  1790. w.Part1 = Player.Character:FindFirstChild("Left Arm")
  1791. w.C0 = CFrame.new(0, 1.1, 0)
  1792. w.C1 = CFrame.new() * CFrame.fromEulerAnglesXYZ(0, math.rad(90), 0)
  1793. w.Parent = magazineNew
  1794. wait(0.2)
  1795. for i = 25, 0, -5 do
  1796. if Player.Character:FindFirstChild("Torso") ~= nil then
  1797. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1798. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1799. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3 + ((i + 10) / 60), 1.2 - ((i + 10) / 20), 0.8 + (i / 35)) * CFrame.fromEulerAnglesXYZ(math.rad(300 - (i - 10)), math.rad(10 + -i * 3.5), math.rad(-90))
  1800. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1801. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9 + ((25 - i) / 30), -0.35, 0.51 + ((25 - i) / 25)) * CFrame.fromEulerAnglesXYZ(math.rad(-90 + i), math.rad(-5), math.rad((25 * 2) - (i * 2)))
  1802. wait()
  1803. else return false end
  1804. else return false end
  1805. end
  1806. Player.Character[Name].Magazine.Transparency = 0
  1807. Player.Character[Name].MagPull.Transparency = 0
  1808. CamShake(1, 30000)
  1809. CamShake(1, -30000)
  1810. Player.Character[Name]["New Magazine"]:Remove()
  1811. wait(0.1)
  1812. if Player.Character:FindFirstChild("Torso") ~= nil then
  1813. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1814. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1815. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10), math.rad(-90))
  1816. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1817. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-5), 0)
  1818. else return false end
  1819. else return false end
  1820. Player.Character[Name].Handle.Reload:Play()
  1821. Player.Character[Name].Handle.Jam:Play()
  1822. wait(0.2)
  1823. if magazine.Value == 0 or Jammed == true then
  1824. playAnimation("charge")
  1825. else
  1826. playAnimation("hold")
  1827. end
  1828. end
  1829. if format == "charge" then
  1830. Player.Character[Name].Handle.Weld:Remove()
  1831. local w = Instance.new("Weld")
  1832. w.Part0 = Player.Character[Name].Handle
  1833. w.Part1 = Player.Character:FindFirstChild("Left Arm")
  1834. w.C0 = CFrame.new(-0.85, -0.3, 0.5) * CFrame.fromEulerAnglesXYZ(math.rad(15), math.rad(90), 0)
  1835. w.C1 = CFrame.new(0, 0.4, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(40), 0, 0)
  1836. w.Parent = Player.Character[Name].Handle
  1837. if Player.Character:FindFirstChild("Torso") ~= nil then
  1838. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1839. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1840. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.4, 0.9, 0.6) * CFrame.fromEulerAnglesXYZ(math.rad(280), math.rad(-10), math.rad(-90))
  1841. else return false end
  1842. else return false end
  1843. wait(0.2)
  1844. Player.Character[Name].Handle.Equip:Play()
  1845. Player.Character[Name].CHandleC.Transparency = 1
  1846. Player.Character[Name].CHandleB.Transparency = 0
  1847. Player.Character[Name].CHandleB1.Transparency = 0
  1848. Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0.115, 0)
  1849. Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.1, 0.14)
  1850. Player.Character[Name].DustCover.Mesh.Offset = Vector3.new(0, 0, 0.115)
  1851. Jammed = false
  1852. if magazine.Value ~= 0 then
  1853. makeShell(Player.Character[Name]:FindFirstChild("ShellOut"))
  1854. else end
  1855. for i = 0, 1, 0.25 do
  1856. if Player.Character:FindFirstChild("Torso") ~= nil then
  1857. if Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1858. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1859. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-1.2, 0 - (i / 1.5), 0.9) * CFrame.fromEulerAnglesXYZ(math.rad(-90), math.rad(-5), 0)
  1860. wait()
  1861. else return false end
  1862. else return false end
  1863. end
  1864. wait(0.08)
  1865. Player.Character[Name].CHandleC.Transparency = 0
  1866. Player.Character[Name].CHandleB.Transparency = 1
  1867. Player.Character[Name].CHandleB1.Transparency = 1
  1868. Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0, 0)
  1869. Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.3, 0.14)
  1870. wait(0.02)
  1871. removeParts("RightHand")
  1872. makeParts("RightHand")
  1873. Player.Character[Name].DustCover.Mesh.Offset = Vector3.new(0, 0, 0.115)
  1874. playAnimation("hold")
  1875. return true
  1876. end
  1877. if format == "fire" then
  1878. Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0.115, 0)
  1879. Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.1, 0.14)
  1880. Player.Character[Name].DustCover.Mesh.Offset = Vector3.new(0, 0, 0.115)
  1881. makeShell(Player.Character[Name]:FindFirstChild("ShellOut"))
  1882. if Player.Character[Name]:FindFirstChild("Handle") ~= nil then
  1883. if silenced then
  1884. Player.Character[Name].Handle.Fire2.Volume = math.random(3, 8) / 10
  1885. Player.Character[Name].Handle.Fire2.Pitch = math.random(1.8, 2)
  1886. Player.Character[Name].Handle.Fire2:Play()
  1887. CamShake(10, 3000)
  1888. else
  1889. Player.Character[Name].Handle.Fire.Volume = math.random(9, 10) / 10
  1890. Player.Character[Name].Handle.Fire:Play()
  1891. CamShake(10, 3000)
  1892. end
  1893. else return false end
  1894. if Player.Character[Name]:FindFirstChild("Muzzle") ~= nil then
  1895. if silenced == false then
  1896. coroutine.resume(coroutine.create(function() Player.Character[Name].Muzzle.Smoke.Enabled = true Player.Character[Name].Muzzle.Fire.Enabled = true wait(0.1) Player.Character[Name].Muzzle.Smoke.Enabled = false Player.Character[Name].Muzzle.Fire.Enabled = false end))
  1897. else end
  1898. else return false end
  1899. for i = 0, 6, 3 do
  1900. if Player.Character:FindFirstChild("Torso") ~= nil then
  1901. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1902. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1903. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
  1904. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1905. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
  1906. wait()
  1907. else return false end
  1908. else return false end
  1909. end
  1910. if magazine.Value ~= 0 then
  1911. Player.Character[Name].Bolt.Mesh.Offset = Vector3.new(0, 0, 0)
  1912. Player.Character[Name].Bolt.Mesh.Scale = Vector3.new(0.14, 0.3, 0.14)
  1913. elseif magazine.Value == 0 then
  1914. Player.Character[Name].Handle.Lock:Play()
  1915. end
  1916. if math.random(1, Reliability) == 1 then
  1917. Jammed = true
  1918. Player.Character[Name].Handle.Jam:Play()
  1919. end
  1920. for i = 6, 0, -3 do
  1921. if Player.Character:FindFirstChild("Torso") ~= nil then
  1922. if Player.Character.Torso:FindFirstChild("Left Shoulder 2") ~= nil and Player.Character.Torso:FindFirstChild("Right Shoulder 2") ~= nil then
  1923. Player.Character.Torso["Left Shoulder 2"].C0 = CFrame.new()
  1924. Player.Character.Torso["Left Shoulder 2"].C1 = CFrame.new(-0.3, 1.2, 0.8) * CFrame.fromEulerAnglesXYZ(math.rad(300), math.rad(10 + i), math.rad(-90))
  1925. Player.Character.Torso["Right Shoulder 2"].C0 = CFrame.new()
  1926. Player.Character.Torso["Right Shoulder 2"].C1 = CFrame.new(-0.9, -0.35, 0.51) * CFrame.fromEulerAnglesXYZ(math.rad(-90 - i), math.rad(-5), 0)
  1927. wait()
  1928. else return false end
  1929. else return false end
  1930. end
  1931. end
  1932. return true
  1933. end
  1934.  
  1935.  
  1936. function CamShake(time, freq)
  1937. coroutine.resume(coroutine.create(function()
  1938. local cam = game:GetService("Workspace").CurrentCamera
  1939. local time = 10
  1940. local seed = Vector3.new(math.random(100, 200) / freq, math.random(100, 200) / freq, 0)
  1941. if math.random(1, 2) == 1 then seed = Vector3.new(-seed.x, seed.y, 0) end
  1942. if math.random(1, 2) == 1 then seed = Vector3.new(seed.x, -seed.y, 0) end
  1943. 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)
  1944. for i = 1, time do
  1945. 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)
  1946. wait()
  1947. end
  1948. end))
  1949. end
  1950.  
  1951.  
  1952. function makeShell(part)
  1953. if part == nil then return false end
  1954. local casing = Instance.new("Part")
  1955. casing.Name = "Shell"
  1956. casing.formFactor = "Custom"
  1957. casing.Size = Vector3.new(0.2, 0.25, 0.2)
  1958. casing.CFrame = CFrame.new(part.Position) * CFrame.fromEulerAnglesXYZ(math.rad(math.random(0, 360)), math.rad(math.random(0, 360)), math.rad(math.random(0, 360)))
  1959. casing.BrickColor = BrickColor.new("New Yeller")
  1960. local mesh = Instance.new("CylinderMesh")
  1961. mesh.Scale = Vector3.new(0.4, 1, 0.4)
  1962. mesh.Parent = casing
  1963. casing.Parent = game:GetService("Workspace")
  1964. casing:BreakJoints()
  1965. casing.Velocity = (part.CFrame.lookVector * 50) + Vector3.new(0, 10, 0)
  1966. coroutine.resume(coroutine.create(function() wait(4.5) for i = 0, 1, 0.1 do casing.Transparency = i wait() end casing:Remove() end))
  1967. end
  1968.  
  1969.  
  1970. function Weld(x, y)
  1971. local weld = Instance.new("Weld")
  1972. weld.Part0 = x
  1973. weld.Part1 = y
  1974. CJ = CFrame.new(x.Position)
  1975. C0 = x.CFrame:inverse() * CJ
  1976. C1 = y.CFrame:inverse() * CJ
  1977. weld.C0 = C0
  1978. weld.C1 = C1
  1979. weld.Parent = x
  1980. end
  1981.  
  1982.  
  1983. function tagHumanoid(humanoid)
  1984. local tag = Instance.new("ObjectValue")
  1985. tag.Name = "creator"
  1986. tag.Value = Player
  1987. tag.Parent = humanoid
  1988. local tag = Instance.new("StringValue")
  1989. tag.Name = "creatorType1"
  1990. tag.Value = Name
  1991. tag.Parent = humanoid
  1992. local tag = Instance.new("StringValue")
  1993. tag.Name = "creatorType2"
  1994. tag.Value = "shot"
  1995. tag.Parent = humanoid
  1996. end
  1997.  
  1998.  
  1999. function untagHumanoid(humanoid)
  2000. if humanoid ~= nil then
  2001. local tag = humanoid:FindFirstChild("creator")
  2002. if tag ~= nil then
  2003. tag:Remove()
  2004. end
  2005. local tag = humanoid:FindFirstChild("creatorType1")
  2006. if tag ~= nil then
  2007. tag:Remove()
  2008. end
  2009. local tag = humanoid:FindFirstChild("creatorType2")
  2010. if tag ~= nil then
  2011. tag:Remove()
  2012. end
  2013. end
  2014. end
  2015.  
  2016.  
  2017. function fire(startPoint, endPoint, hit)
  2018. local trail = Instance.new("Part")
  2019. trail.Name = "Bullet Trail"
  2020. trail.BrickColor = BrickColor.new("Dark stone grey")
  2021. trail.TopSurface = 0
  2022. trail.BottomSurface = 0
  2023. trail.formFactor = 0
  2024. trail.Size = Vector3.new(1, 1, 1)
  2025. trail.Transparency = 0.5
  2026. trail.Anchored = true
  2027. trail.CanCollide = false
  2028. trail.CFrame = CFrame.new((startPoint + endPoint) / 2, endPoint)
  2029. trail.Parent = game:GetService("Workspace")
  2030. local mesh = Instance.new("SpecialMesh")
  2031. mesh.MeshType = "Brick"
  2032. mesh.Scale = Vector3.new(0.1, 0.1, (startPoint - endPoint).magnitude)
  2033. mesh.Parent = trail
  2034. coroutine.resume(coroutine.create(function(part) for i = 1, 10 do part.Mesh.Scale = Vector3.new(part.Mesh.Scale.x - 0.01, part.Mesh.Scale.y - 0.01, part.Mesh.Scale.z) wait() end part:Remove() end), trail)
  2035. if hit ~= nil then
  2036. if hit.Parent == nil then return end
  2037. if hit.Parent.ClassName == "Hat" then
  2038. if hit.Parent.Parent.Humanoid ~= nil then
  2039. hit.Parent.Parent.Humanoid:TakeDamage(damage * 5)
  2040. end
  2041. end
  2042. if hit.Parent:FindFirstChild("Humanoid") ~= nil then
  2043. tagHumanoid(hit.Parent.Humanoid)
  2044. if hit.Name == "Head" then
  2045. hit.Parent.Humanoid:TakeDamage(damage * 10)
  2046. elseif hit.Name == "Torso" then
  2047. hit.Parent.Humanoid:TakeDamage(damage * 2)
  2048. elseif hit.Name == "Left Leg" then
  2049. hit.Parent.Humanoid:TakeDamage(damage)
  2050. hit.Parent.Humanoid.Sit = true
  2051. elseif hit.Name == "Right Leg" then
  2052. hit.Parent.Humanoid:TakeDamage(damage)
  2053. hit.Parent.Humanoid.Sit = true
  2054. else
  2055. hit.Parent.Humanoid:TakeDamage(damage)
  2056. end
  2057. if math.random(1, 10) == 1 then
  2058. hit.Parent.Humanoid.Sit = true
  2059. end
  2060. delay(0.1, function() untagHumanoid(hit.Parent.Humanoid) end)
  2061. end
  2062. if hit.Anchored == false then
  2063. hit.Velocity = hit.Velocity + ((endPoint - startPoint).unit * (damage * 2))
  2064. end
  2065. end
  2066. end
  2067.  
  2068.  
  2069. function onButton1Down(mouse)
  2070. if selected == false then return end
  2071. if Player.Character:FindFirstChild(Name) ~= nil and Button1Down == false and canFire == true and (function() if dual == true then if Player.Character:FindFirstChild(Name.. " (Left)") ~= nil then return true else return false end else return true end end)() == true then
  2072. if Player.Character[Name]:FindFirstChild("Handle") == nil then return end
  2073. if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
  2074. if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end end
  2075. if dual == true then if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end end
  2076. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2077. Button1Down = true
  2078. canFire = false
  2079. canFire2 = true
  2080. while canFire2 == true do
  2081. local humanoid = Player.Character:FindFirstChild("Humanoid")
  2082. if humanoid == nil then
  2083. canFire2 = false
  2084. break
  2085. end
  2086. if humanoid.Health <= 0 then
  2087. canFire2 = false
  2088. break
  2089. end
  2090. local fireLeft = false
  2091. if automatic == false and burst == false then
  2092. canFire2 = false
  2093. elseif automatic == false and burst == true then
  2094. if burstCount >= burstCountMax then
  2095. canFire2 = false
  2096. burstCount = 0
  2097. break
  2098. end
  2099. burstCount = burstCount + 1
  2100. elseif automatic == true and burst == false then
  2101. fireLeft = true
  2102. end
  2103. if Jammed ~= true and Ready == true then
  2104. if magazine.Value > 0 then
  2105. magazine.Value = magazine.Value - 1
  2106. updateGui()
  2107. if silenced == true then
  2108. CamShake(1, Spread)
  2109. else end
  2110. fire(Player.Character[Name].Muzzle.Position, mouse.Hit.p, mouse.Target)
  2111. coroutine.resume(coroutine.create(function()
  2112. if dual == true then
  2113. playAnimation("rightFire")
  2114. elseif dual == false then
  2115. playAnimation("fire")
  2116. end
  2117. end))
  2118. else
  2119. Player.Character[Name].Handle.Empty:Play()
  2120. end
  2121. else
  2122. Player.Character[Name].Handle.Jam:Play()
  2123. end
  2124. if fireLeft == true and dual == true and automatic == true then
  2125. if magazine.Value > 0 then
  2126. coroutine.resume(coroutine.create(function()
  2127. wait(readyTime / 2)
  2128. magazine.Value = magazine.Value - 1
  2129. updateGui()
  2130. fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
  2131. playAnimation("leftFire")
  2132. end))
  2133. else
  2134. coroutine.resume(coroutine.create(function()
  2135. wait(readyTime / 2)
  2136. Player.Character[Name].Handle.Empty:Play()
  2137. end))
  2138. end
  2139. end
  2140. wait(readyTime)
  2141. end
  2142. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2143. canFire = true
  2144. end
  2145. end
  2146.  
  2147.  
  2148. function onButton1Up(mouse)
  2149. if selected == false then return end
  2150. Button1Down = false
  2151. canFire2 = false
  2152. burstCount = 0
  2153. while canFire == false do wait() end
  2154. if dual == true and automatic == false then
  2155. if Player.Character[Name.. " (Left)"]:FindFirstChild("Handle") == nil then return end
  2156. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
  2157. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2158. canFire = false
  2159. canFire2 = true
  2160. while canFire2 == true do
  2161. local humanoid = Player.Character:FindFirstChild("Humanoid")
  2162. if humanoid == nil then
  2163. canFire2 = false
  2164. break
  2165. end
  2166. if humanoid.Health <= 0 then
  2167. canFire2 = false
  2168. break
  2169. end
  2170. if burst == false then
  2171. canFire2 = false
  2172. elseif burst == true then
  2173. if burstCount >= burstCountMax then
  2174. canFire2 = false
  2175. burstCount = 0
  2176. break
  2177. end
  2178. burstCount = burstCount + 1
  2179. end
  2180. if magazine.Value <= 0 then
  2181. Player.Character[Name].Handle.Empty:Play()
  2182. else
  2183. coroutine.resume(coroutine.create(function()
  2184. playAnimation("leftFire")
  2185. end))
  2186. magazine.Value = magazine.Value - 1
  2187. updateGui()
  2188. fire(Player.Character[Name.. " (Left)"].Muzzle.Position, mouse.Hit.p, mouse.Target)
  2189. end
  2190. wait(readyTime)
  2191. end
  2192. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2193. canFire = true
  2194. end
  2195. end
  2196.  
  2197.  
  2198. function onKeyDown(key, mouse)
  2199. if selected == false then return end
  2200. key = key:lower()
  2201. if key == "q" and Button1Down == false and canFire == true then
  2202. if mouse.Target == nil then return end
  2203. if game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent) ~= nil then
  2204. if dual == true then onKeyDown("t", mouse) end
  2205. onDeselected(mouse)
  2206. removeParts("RightHolster")
  2207. script.Parent.Parent = game:GetService("Players"):GetPlayerFromCharacter(mouse.Target.Parent).Backpack
  2208. end
  2209. end
  2210. if key == "e" and Button1Down == false and canFire == true and canSilence == true then
  2211. if silenced then
  2212. silenced = false
  2213. if Player.Character:FindFirstChild(Name) == nil then return end
  2214. if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
  2215. if Player.Character[Name]:FindFirstChild("Muzzle 2") == nil then return end
  2216. Player.Character[Name].Muzzle.Transparency = 1
  2217. Player.Character[Name].Silencer1.Transparency = 1
  2218. Player.Character[Name].Muzzle.Name = "Silencer"
  2219. Player.Character[Name]["Muzzle 2"].Name = "Muzzle"
  2220. if dual == true then
  2221. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
  2222. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle 2") == nil then return end
  2223. Player.Character[Name.. " (Left)"].Muzzle.Transparency = 1
  2224. Player.Character[Name.. " (Left)"].Muzzle.Name = "Silencer"
  2225. Player.Character[Name.. " (Left)"]["Muzzle 2"].Name = "Muzzle"
  2226. end
  2227. else
  2228. silenced = true
  2229. if Player.Character:FindFirstChild(Name) == nil then return end
  2230. if Player.Character[Name]:FindFirstChild("Silencer") == nil then return end
  2231. if Player.Character[Name]:FindFirstChild("Muzzle") == nil then return end
  2232. Player.Character[Name].Silencer.Transparency = 0
  2233. Player.Character[Name].Silencer1.Transparency = 0
  2234. Player.Character[Name].Muzzle.Name = "Muzzle 2"
  2235. Player.Character[Name].Silencer.Name = "Muzzle"
  2236. if dual == true then
  2237. if Player.Character[Name.. " (Left)"]:FindFirstChild("Silencer") == nil then return end
  2238. if Player.Character[Name.. " (Left)"]:FindFirstChild("Muzzle") == nil then return end
  2239. Player.Character[Name.. " (Left)"].Silencer.Transparency = 0
  2240. Player.Character[Name.. " (Left)"].Muzzle.Name = "Muzzle 2"
  2241. Player.Character[Name.. " (Left)"].Silencer.Name = "Muzzle"
  2242. end
  2243. end
  2244. end
  2245. if key == "r" and Button1Down == false and canFire == true then
  2246. if ammo.Value > 0 and magazine.Value ~= magazineMax.Value + 1 then
  2247. canFire = false
  2248. burstCount = 0
  2249. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2250. if magazine.Value > 0 then magazine.Value = 1 end
  2251. updateGui()
  2252. if dual == true then
  2253. playAnimation("reloadDual")
  2254. elseif dual == false then
  2255. playAnimation("reload")
  2256. end
  2257. if ammo.Value - magazineMax.Value < 0 then
  2258. magazine.Value = ammo.Value
  2259. ammo.Value = 0
  2260. elseif ammo.Value - magazineMax.Value >= 0 then
  2261. ammo.Value = ammo.Value - magazineMax.Value
  2262. magazine.Value = magazine.Value + MagSize
  2263. end
  2264. updateGui()
  2265. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2266. canFire = true
  2267. end
  2268. end
  2269. if key == "t" and Button1Down == false and canFire == true and canDual == true then
  2270. canFire = false
  2271. if dual == false then
  2272. local weapon = nil
  2273. for _, p in pairs(Player.Backpack:GetChildren()) do
  2274. if p.Name == Name and p ~= script.Parent then weapon = p break end
  2275. end
  2276. if weapon ~= nil then
  2277. dual = true
  2278. weapon.Name = "Dual"
  2279. weapon.Parent = script
  2280. silenced = false
  2281. removeParts("RightHand")
  2282. makeParts("RightHand")
  2283. removeParts("RightHolster")
  2284. makeParts("LeftHolster")
  2285. playAnimation("leftEquip")
  2286. removeParts("LeftHolster")
  2287. makeParts("LeftHand")
  2288. magazineMax.Value = math.ceil(magazineMax.Value * 2)
  2289. ammoMax.Value = math.ceil(ammoMax.Value * 2)
  2290. magazine.Value = magazine.Value + weapon.Magazine.Value
  2291. ammo.Value = ammo.Value + weapon.Ammo.Value
  2292. updateGui()
  2293. end
  2294. elseif dual == true then
  2295. local weapon = script:FindFirstChild("Dual")
  2296. if weapon ~= nil then
  2297. dual = false
  2298. weapon.Name = Name
  2299. weapon.Parent = Player.Backpack
  2300. silenced = false
  2301. removeParts("RightHand")
  2302. makeParts("RightHand")
  2303. playAnimation("leftUnequip")
  2304. removeParts("LeftHand")
  2305. makeParts("RightHolster")
  2306. playAnimation("hold")
  2307. weapon.Magazine.Value = math.floor(magazine.Value / 2)
  2308. weapon.Ammo.Value = math.floor(ammo.Value / 2)
  2309. magazineMax.Value = math.ceil(magazineMax.Value / 2)
  2310. ammoMax.Value = math.ceil(ammoMax.Value / 2)
  2311. magazine.Value = math.ceil(magazine.Value / 2)
  2312. ammo.Value = math.ceil(ammo.Value / 2)
  2313. updateGui()
  2314. end
  2315. end
  2316. canFire = true
  2317. end
  2318. if key == "y" and canZoom == true then
  2319. if zoom == false then
  2320. zoom = true
  2321. local pos = mouse.Hit.p
  2322. local target = mouse.Target
  2323. local cam = game:GetService("Workspace").CurrentCamera
  2324. focus = Instance.new("Part", workspace)
  2325. focus.Anchored = true
  2326. focus.CanCollide = false
  2327. focus.Transparency = 1
  2328. focus.TopSurface = 0
  2329. focus.BottomSurface = 0
  2330. focus.formFactor = "Plate"
  2331. focus.Size = Vector3.new(0, 0, 0)
  2332. focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.CFrame.p, pos) - CFrame.new(Player.Character.Torso.CFrame.p, pos).p)
  2333. cam.CameraSubject = focus
  2334. cam.CameraType = "Attach"
  2335. while zoom == true and selected == true do
  2336. local set = false
  2337. if target ~= nil then
  2338. if target.Parent ~= nil then
  2339. if target.Anchored == false then
  2340. focus.CFrame = CFrame.new(target.CFrame.p) * (CFrame.new(Player.Character.Torso.CFrame.p, target.CFrame.p) - CFrame.new(Player.Character.Torso.CFrame.p, target.CFrame.p).p)
  2341. set = true
  2342. end
  2343. end
  2344. end
  2345. if set == false then
  2346. focus.CFrame = CFrame.new(pos) * (CFrame.new(Player.Character.Torso.CFrame.p, pos) - CFrame.new(Player.Character.Torso.CFrame.p, pos).p)
  2347. end
  2348. wait()
  2349. end
  2350. if focus ~= nil then focus:Remove() focus = nil end
  2351. local cam = game:GetService("Workspace").CurrentCamera
  2352. cam.CameraSubject = Player.Character:FindFirstChild("Humanoid")
  2353. cam.CameraType = "Custom"
  2354. else
  2355. zoom = false
  2356. end
  2357. end
  2358. if key == "u" and Button1Down == false and canFire == true then
  2359. if automatic == false and burst == false then
  2360. if switchToBurst == true then
  2361. burst = true
  2362. local m = Instance.new("Message", Player)
  2363. m.Text = "Burst"
  2364. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  2365. delay(2.5, function() m:Remove() end)
  2366. elseif switchToAutomatic == true then
  2367. automatic = true
  2368. local m = Instance.new("Message", Player)
  2369. m.Text = "Automatic"
  2370. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  2371. delay(2.5, function() m:Remove() end)
  2372. end
  2373. elseif automatic == false and burst == true then
  2374. if switchToAutomatic == true then
  2375. automatic = true
  2376. burst = false
  2377. local m = Instance.new("Message", Player)
  2378. m.Text = "Automatic"
  2379. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  2380. delay(2.5, function() m:Remove() end)
  2381. elseif switchToSingle == true then
  2382. burst = false
  2383. local m = Instance.new("Message", Player)
  2384. m.Text = "Single"
  2385. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  2386. delay(2.5, function() m:Remove() end)
  2387. end
  2388. elseif automatic == true and burst == false then
  2389. if switchToSingle == true then
  2390. automatic = false
  2391. local m = Instance.new("Message", Player)
  2392. m.Text = "Single"
  2393. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  2394. delay(2.5, function() m:Remove() end)
  2395. elseif switchToBurst == true then
  2396. automatic = false
  2397. burst = true
  2398. local m = Instance.new("Message", Player)
  2399. m.Text = "Burst"
  2400. pcall(function() Player.Character[Name].Handle.Switch:Play() end)
  2401. delay(2.5, function() m:Remove() end)
  2402. end
  2403. end
  2404. end
  2405. if key == "f" and Button1Down == false and canFire == true and Attachment == true then
  2406. if Mode == 1 and Mode ~= 0 then
  2407. Player.Character[Name].Handle.Switch:Play()
  2408. Player.Character[Name].Laser.Transparency = 1
  2409. Mode = 0
  2410. elseif Mode == 0 and Mode ~= 1 then
  2411. Player.Character[Name].Handle.Switch:Play()
  2412. Player.Character[Name].Laser.Transparency = 0.4
  2413. Mode = 1
  2414. end
  2415. end
  2416. if key == "c" and Button1Down == false and canFire == true then
  2417. if magazine.Value ~= 0 then
  2418. canFire = false
  2419. burstCount = 0
  2420. if magazine.Value ~= 0 then magazine.Value = magazine.Value - 1 end
  2421. updateGui()
  2422. playAnimation("charge")
  2423. canFire = true
  2424. end
  2425. end
  2426. if key == "x" and canFire == true then
  2427. canFire = false
  2428. playAnimation("ready")
  2429. if Ready == false then
  2430. Player.Character.Humanoid.WalkSpeed = AimSpeed
  2431. Ready = true
  2432. else
  2433. Player.Character.Humanoid.WalkSpeed = 16
  2434. Ready = false
  2435. end
  2436. canFire = true
  2437. end
  2438. end
  2439.  
  2440.  
  2441. function onSelected(mouse)
  2442. if selected == true then return end
  2443. selected = true
  2444. canFire = false
  2445. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2446. while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
  2447. if Player.Character.WeaponActivated.Value == nil then break end
  2448. if Player.Character.WeaponActivated.Value.Parent == nil then break end
  2449. wait()
  2450. end
  2451. updateGui()
  2452. local weapon = Instance.new("ObjectValue")
  2453. weapon.Name = "WeaponActivated"
  2454. weapon.Value = script.Parent
  2455. weapon.Parent = Player.Character
  2456. DisableLimb(1, Player.Character)
  2457. DisableLimb(2, Player.Character)
  2458. ForceAngle(1, 0, Player.Character)
  2459. ForceAngle(2, 0, Player.Character)
  2460. if dual == true then
  2461. coroutine.resume(coroutine.create(function() playAnimation("leftEquip") end))
  2462. playAnimation("rightEquip")
  2463. removeParts("LeftHolster")
  2464. makeParts("LeftHand")
  2465. else
  2466. playAnimation("equip")
  2467. end
  2468. removeParts("RightHolster")
  2469. makeParts("RightHand")
  2470. mouse.Button1Down:connect(function() onButton1Down(mouse) end)
  2471. mouse.Button1Up:connect(function() onButton1Up(mouse) end)
  2472. mouse.KeyDown:connect(function(key) onKeyDown(key, mouse) end)
  2473. mouse.Icon = "http://www.roblox.com/asset/?id=66839997"
  2474. canFire = true
  2475. end
  2476.  
  2477.  
  2478. function onDeselected(mouse)
  2479. if selected == false then return end
  2480. Button1Down = false
  2481. while canFire == false do
  2482. wait()
  2483. end
  2484. selected = false
  2485. if dual == true then
  2486. if math.random(1, 2) == 1 then
  2487. coroutine.resume(coroutine.create(function() playAnimation("leftUnequip") end))
  2488. wait(math.random(1, 10) / 10)
  2489. playAnimation("rightUnequip")
  2490. else
  2491. coroutine.resume(coroutine.create(function() playAnimation("rightUnequip") end))
  2492. wait(math.random(1, 10) / 10)
  2493. playAnimation("leftUnequip")
  2494. end
  2495. removeParts("LeftHand")
  2496. makeParts("LeftHolster")
  2497. else
  2498. playAnimation("unequip")
  2499. end
  2500. removeParts("RightHand")
  2501. makeParts("RightHolster")
  2502. ForceAngle(1, 0, Player.Character)
  2503. ForceAngle(2, 0, Player.Character)
  2504. ResetLimbCFrame(1, Player.Character)
  2505. ResetLimbCFrame(2, Player.Character)
  2506. EnableLimb(1, Player.Character)
  2507. EnableLimb(2, Player.Character)
  2508. if Player.PlayerGui:FindFirstChild(Name) ~= nil then Player.PlayerGui[Name]:Remove() end
  2509. if Player.Character:FindFirstChild("WeaponActivated") ~= nil then
  2510. if Player.Character.WeaponActivated.Value == script.Parent then
  2511. Player.Character.WeaponActivated:Remove()
  2512. end
  2513. end
  2514. while Player.Character:FindFirstChild("WeaponActivated") ~= nil do
  2515. if Player.Character.WeaponActivated.Value == nil then break end
  2516. if Player.Character.WeaponActivated.Value.Parent == nil then break end
  2517. wait()
  2518. end
  2519. end
  2520.  
  2521.  
  2522. if script.Parent.className ~= "HopperBin" then
  2523. if Player == nil then print("Error: Player not found!") return end
  2524. Tool = Instance.new("HopperBin")
  2525. Tool.Name = Name
  2526. Tool.Parent = Player.Backpack
  2527. script.Name = "Main"
  2528. script.Parent = Tool
  2529. elseif script.Parent.className == "HopperBin" then
  2530. while script.Parent.Parent.className ~= "Backpack" do
  2531. wait()
  2532. end
  2533. if script.Parent:FindFirstChild("MagazineMax") == nil then
  2534. magazineMax = Instance.new("NumberValue")
  2535. magazineMax.Name = "MagazineMax"
  2536. magazineMax.Value = 10
  2537. magazineMax.Parent = script.Parent
  2538. else
  2539. magazineMax = script.Parent.MagazineMax
  2540. end
  2541. if script.Parent:FindFirstChild("Magazine") == nil then
  2542. magazine = Instance.new("NumberValue")
  2543. magazine.Name = "Magazine"
  2544. magazine.Value = 0
  2545. magazine.Parent = script.Parent
  2546. else
  2547. magazine = script.Parent.Magazine
  2548. end
  2549. if script.Parent:FindFirstChild("AmmoMax") == nil then
  2550. ammoMax = Instance.new("NumberValue")
  2551. ammoMax.Name = "AmmoMax"
  2552. ammoMax.Value = 110
  2553. ammoMax.Parent = script.Parent
  2554. else
  2555. ammoMax = script.Parent.AmmoMax
  2556. end
  2557. if script.Parent:FindFirstChild("Ammo") == nil then
  2558. ammo = Instance.new("NumberValue")
  2559. ammo.Name = "Ammo"
  2560. ammo.Value = script.Parent.AmmoMax.Value
  2561. ammo.Parent = script.Parent
  2562. else
  2563. ammo = script.Parent.Ammo
  2564. end
  2565. Player = script.Parent.Parent.Parent
  2566. makeParts("RightHolster")
  2567. script.Parent.Selected:connect(onSelected)
  2568. script.Parent.Deselected:connect(onDeselected)
  2569. end
RAW Paste Data