Advertisement
Guest User

steamed hams (clean)

a guest
Apr 23rd, 2018
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --Made by 1ndrew "Steamed Hams"
  2. function sandbox(var,func)
  3. local env = getfenv(func)
  4. local newenv = setmetatable({},{
  5. __index = function(self,k)
  6. if k=="script" then
  7. return var
  8. else
  9. return env[k]
  10. end
  11. end,
  12. })
  13. setfenv(func,newenv)
  14. return func
  15. end
  16. cors = {}
  17. mas = Instance.new("Model",game:GetService("Lighting"))
  18. Tool0 = Instance.new("Tool")
  19. Part1 = Instance.new("Part")
  20. CylinderMesh2 = Instance.new("CylinderMesh")
  21. Part3 = Instance.new("Part")
  22. CylinderMesh4 = Instance.new("CylinderMesh")
  23. Part5 = Instance.new("Part")
  24. CylinderMesh6 = Instance.new("CylinderMesh")
  25. Part7 = Instance.new("Part")
  26. CylinderMesh8 = Instance.new("CylinderMesh")
  27. Part9 = Instance.new("Part")
  28. CylinderMesh10 = Instance.new("CylinderMesh")
  29. Part11 = Instance.new("Part")
  30. CylinderMesh12 = Instance.new("CylinderMesh")
  31. Part13 = Instance.new("Part")
  32. SpecialMesh14 = Instance.new("SpecialMesh")
  33. Part15 = Instance.new("Part")
  34. CylinderMesh16 = Instance.new("CylinderMesh")
  35. Part17 = Instance.new("Part")
  36. Part18 = Instance.new("Part")
  37. PointLight19 = Instance.new("PointLight")
  38. BillboardGui20 = Instance.new("BillboardGui")
  39. ImageLabel21 = Instance.new("ImageLabel")
  40. CylinderMesh22 = Instance.new("CylinderMesh")
  41. Part23 = Instance.new("Part")
  42. Sound24 = Instance.new("Sound")
  43. Sound25 = Instance.new("Sound")
  44. Part26 = Instance.new("Part")
  45. CylinderMesh27 = Instance.new("CylinderMesh")
  46. Part28 = Instance.new("Part")
  47. SpecialMesh29 = Instance.new("SpecialMesh")
  48. Part30 = Instance.new("Part")
  49. SpecialMesh31 = Instance.new("SpecialMesh")
  50. Decal32 = Instance.new("Decal")
  51. Decal33 = Instance.new("Decal")
  52. Part34 = Instance.new("Part")
  53. SpecialMesh35 = Instance.new("SpecialMesh")
  54. Part36 = Instance.new("Part")
  55. SpecialMesh37 = Instance.new("SpecialMesh")
  56. Part38 = Instance.new("Part")
  57. CylinderMesh39 = Instance.new("CylinderMesh")
  58. Part40 = Instance.new("Part")
  59. CylinderMesh41 = Instance.new("CylinderMesh")
  60. Part42 = Instance.new("Part")
  61. CylinderMesh43 = Instance.new("CylinderMesh")
  62. Part44 = Instance.new("Part")
  63. SpecialMesh45 = Instance.new("SpecialMesh")
  64. Part46 = Instance.new("Part")
  65. CylinderMesh47 = Instance.new("CylinderMesh")
  66. Part48 = Instance.new("Part")
  67. SpecialMesh49 = Instance.new("SpecialMesh")
  68. Decal50 = Instance.new("Decal")
  69. Decal51 = Instance.new("Decal")
  70. Part52 = Instance.new("Part")
  71. SpecialMesh53 = Instance.new("SpecialMesh")
  72. Part54 = Instance.new("Part")
  73. SpecialMesh55 = Instance.new("SpecialMesh")
  74. Part56 = Instance.new("Part")
  75. CylinderMesh57 = Instance.new("CylinderMesh")
  76. Part58 = Instance.new("Part")
  77. CylinderMesh59 = Instance.new("CylinderMesh")
  78. Part60 = Instance.new("Part")
  79. SpecialMesh61 = Instance.new("SpecialMesh")
  80. Part62 = Instance.new("Part")
  81. CylinderMesh63 = Instance.new("CylinderMesh")
  82. Part64 = Instance.new("Part")
  83. CylinderMesh65 = Instance.new("CylinderMesh")
  84. Part66 = Instance.new("Part")
  85. SpecialMesh67 = Instance.new("SpecialMesh")
  86. Part68 = Instance.new("Part")
  87. SpecialMesh69 = Instance.new("SpecialMesh")
  88. Part70 = Instance.new("Part")
  89. CylinderMesh71 = Instance.new("CylinderMesh")
  90. Part72 = Instance.new("Part")
  91. SpecialMesh73 = Instance.new("SpecialMesh")
  92. Part74 = Instance.new("Part")
  93. CylinderMesh75 = Instance.new("CylinderMesh")
  94. Part76 = Instance.new("Part")
  95. CylinderMesh77 = Instance.new("CylinderMesh")
  96. Part78 = Instance.new("Part")
  97. CylinderMesh79 = Instance.new("CylinderMesh")
  98. Part80 = Instance.new("Part")
  99. CylinderMesh81 = Instance.new("CylinderMesh")
  100. Part82 = Instance.new("Part")
  101. CylinderMesh83 = Instance.new("CylinderMesh")
  102. Part84 = Instance.new("Part")
  103. CylinderMesh85 = Instance.new("CylinderMesh")
  104. Part86 = Instance.new("Part")
  105. CylinderMesh87 = Instance.new("CylinderMesh")
  106. Decal88 = Instance.new("Decal")
  107. Decal89 = Instance.new("Decal")
  108. Part90 = Instance.new("Part")
  109. SpecialMesh91 = Instance.new("SpecialMesh")
  110. Part92 = Instance.new("Part")
  111. SpecialMesh93 = Instance.new("SpecialMesh")
  112. Part94 = Instance.new("Part")
  113. CylinderMesh95 = Instance.new("CylinderMesh")
  114. Part96 = Instance.new("Part")
  115. SpecialMesh97 = Instance.new("SpecialMesh")
  116. Part98 = Instance.new("Part")
  117. SpecialMesh99 = Instance.new("SpecialMesh")
  118. Part100 = Instance.new("Part")
  119. CylinderMesh101 = Instance.new("CylinderMesh")
  120. Part102 = Instance.new("Part")
  121. CylinderMesh103 = Instance.new("CylinderMesh")
  122. Decal104 = Instance.new("Decal")
  123. Part105 = Instance.new("Part")
  124. CylinderMesh106 = Instance.new("CylinderMesh")
  125. Part107 = Instance.new("Part")
  126. CylinderMesh108 = Instance.new("CylinderMesh")
  127. Part109 = Instance.new("Part")
  128. CylinderMesh110 = Instance.new("CylinderMesh")
  129. Part111 = Instance.new("Part")
  130. CylinderMesh112 = Instance.new("CylinderMesh")
  131. Part113 = Instance.new("Part")
  132. CylinderMesh114 = Instance.new("CylinderMesh")
  133. Part115 = Instance.new("Part")
  134. CylinderMesh116 = Instance.new("CylinderMesh")
  135. Decal117 = Instance.new("Decal")
  136. Part118 = Instance.new("Part")
  137. CylinderMesh119 = Instance.new("CylinderMesh")
  138. Decal120 = Instance.new("Decal")
  139. Part121 = Instance.new("Part")
  140. CylinderMesh122 = Instance.new("CylinderMesh")
  141. Part123 = Instance.new("Part")
  142. CylinderMesh124 = Instance.new("CylinderMesh")
  143. Decal125 = Instance.new("Decal")
  144. Decal126 = Instance.new("Decal")
  145. Part127 = Instance.new("Part")
  146. SpecialMesh128 = Instance.new("SpecialMesh")
  147. Part129 = Instance.new("Part")
  148. CylinderMesh130 = Instance.new("CylinderMesh")
  149. Part131 = Instance.new("Part")
  150. CylinderMesh132 = Instance.new("CylinderMesh")
  151. Decal133 = Instance.new("Decal")
  152. Part134 = Instance.new("Part")
  153. CylinderMesh135 = Instance.new("CylinderMesh")
  154. Part136 = Instance.new("Part")
  155. CylinderMesh137 = Instance.new("CylinderMesh")
  156. Part138 = Instance.new("Part")
  157. SpecialMesh139 = Instance.new("SpecialMesh")
  158. Part140 = Instance.new("Part")
  159. SpecialMesh141 = Instance.new("SpecialMesh")
  160. Part142 = Instance.new("Part")
  161. CylinderMesh143 = Instance.new("CylinderMesh")
  162. Part144 = Instance.new("Part")
  163. CylinderMesh145 = Instance.new("CylinderMesh")
  164. Part146 = Instance.new("Part")
  165. SpecialMesh147 = Instance.new("SpecialMesh")
  166. Part148 = Instance.new("Part")
  167. CylinderMesh149 = Instance.new("CylinderMesh")
  168. Part150 = Instance.new("Part")
  169. CylinderMesh151 = Instance.new("CylinderMesh")
  170. Part152 = Instance.new("Part")
  171. CylinderMesh153 = Instance.new("CylinderMesh")
  172. Part154 = Instance.new("Part")
  173. CylinderMesh155 = Instance.new("CylinderMesh")
  174. Part156 = Instance.new("Part")
  175. SpecialMesh157 = Instance.new("SpecialMesh")
  176. Part158 = Instance.new("Part")
  177. SpecialMesh159 = Instance.new("SpecialMesh")
  178. Part160 = Instance.new("Part")
  179. CylinderMesh161 = Instance.new("CylinderMesh")
  180. Part162 = Instance.new("Part")
  181. SpecialMesh163 = Instance.new("SpecialMesh")
  182. Part164 = Instance.new("Part")
  183. CylinderMesh165 = Instance.new("CylinderMesh")
  184. Part166 = Instance.new("Part")
  185. CylinderMesh167 = Instance.new("CylinderMesh")
  186. Part168 = Instance.new("Part")
  187. SpecialMesh169 = Instance.new("SpecialMesh")
  188. Part170 = Instance.new("Part")
  189. SpecialMesh171 = Instance.new("SpecialMesh")
  190. Part172 = Instance.new("Part")
  191. SpecialMesh173 = Instance.new("SpecialMesh")
  192. Part174 = Instance.new("Part")
  193. SpecialMesh175 = Instance.new("SpecialMesh")
  194. Part176 = Instance.new("Part")
  195. CylinderMesh177 = Instance.new("CylinderMesh")
  196. Part178 = Instance.new("Part")
  197. SpecialMesh179 = Instance.new("SpecialMesh")
  198. Part180 = Instance.new("Part")
  199. CylinderMesh181 = Instance.new("CylinderMesh")
  200. Part182 = Instance.new("Part")
  201. CylinderMesh183 = Instance.new("CylinderMesh")
  202. Part184 = Instance.new("Part")
  203. SpecialMesh185 = Instance.new("SpecialMesh")
  204. Part186 = Instance.new("Part")
  205. SpecialMesh187 = Instance.new("SpecialMesh")
  206. IntValue188 = Instance.new("IntValue")
  207. IntValue189 = Instance.new("IntValue")
  208. IntValue190 = Instance.new("IntValue")
  209. IntValue191 = Instance.new("IntValue")
  210. IntValue192 = Instance.new("IntValue")
  211. Script193 = Instance.new("Script")
  212. ObjectValue194 = Instance.new("ObjectValue")
  213. RemoteFunction195 = Instance.new("RemoteFunction")
  214. RemoteFunction196 = Instance.new("RemoteFunction")
  215. RemoteFunction197 = Instance.new("RemoteFunction")
  216. RemoteEvent198 = Instance.new("RemoteEvent")
  217. RemoteFunction199 = Instance.new("RemoteFunction")
  218. RemoteFunction200 = Instance.new("RemoteFunction")
  219. RemoteFunction201 = Instance.new("RemoteFunction")
  220. LocalScript202 = Instance.new("LocalScript")
  221. IntValue203 = Instance.new("IntValue")
  222. RemoteEvent204 = Instance.new("RemoteEvent")
  223. RemoteEvent205 = Instance.new("RemoteEvent")
  224. RemoteEvent206 = Instance.new("RemoteEvent")
  225. RemoteEvent207 = Instance.new("RemoteEvent")
  226. LocalScript208 = Instance.new("LocalScript")
  227. IntValue209 = Instance.new("IntValue")
  228. Folder210 = Instance.new("Folder")
  229. ScreenGui211 = Instance.new("ScreenGui")
  230. ImageLabel212 = Instance.new("ImageLabel")
  231. NumberValue213 = Instance.new("NumberValue")
  232. Frame214 = Instance.new("Frame")
  233. ImageLabel215 = Instance.new("ImageLabel")
  234. TextLabel216 = Instance.new("TextLabel")
  235. Frame217 = Instance.new("Frame")
  236. TextLabel218 = Instance.new("TextLabel")
  237. Frame219 = Instance.new("Frame")
  238. TextLabel220 = Instance.new("TextLabel")
  239. Frame221 = Instance.new("Frame")
  240. TextLabel222 = Instance.new("TextLabel")
  241. Frame223 = Instance.new("Frame")
  242. TextLabel224 = Instance.new("TextLabel")
  243. Frame225 = Instance.new("Frame")
  244. Frame226 = Instance.new("Frame")
  245. TextLabel227 = Instance.new("TextLabel")
  246. TextLabel228 = Instance.new("TextLabel")
  247. TextLabel229 = Instance.new("TextLabel")
  248. TextLabel230 = Instance.new("TextLabel")
  249. TextLabel231 = Instance.new("TextLabel")
  250. Frame232 = Instance.new("Frame")
  251. TextLabel233 = Instance.new("TextLabel")
  252. TextLabel234 = Instance.new("TextLabel")
  253. TextLabel235 = Instance.new("TextLabel")
  254. Frame236 = Instance.new("Frame")
  255. TextLabel237 = Instance.new("TextLabel")
  256. Frame238 = Instance.new("Frame")
  257. Frame239 = Instance.new("Frame")
  258. Frame240 = Instance.new("Frame")
  259. Frame241 = Instance.new("Frame")
  260. Frame242 = Instance.new("Frame")
  261. Frame243 = Instance.new("Frame")
  262. Frame244 = Instance.new("Frame")
  263. Frame245 = Instance.new("Frame")
  264. Frame246 = Instance.new("Frame")
  265. Frame247 = Instance.new("Frame")
  266. Frame248 = Instance.new("Frame")
  267. Frame249 = Instance.new("Frame")
  268. Frame250 = Instance.new("Frame")
  269. Frame251 = Instance.new("Frame")
  270. Frame252 = Instance.new("Frame")
  271. Frame253 = Instance.new("Frame")
  272. Frame254 = Instance.new("Frame")
  273. Frame255 = Instance.new("Frame")
  274. Frame256 = Instance.new("Frame")
  275. Frame257 = Instance.new("Frame")
  276. Frame258 = Instance.new("Frame")
  277. Frame259 = Instance.new("Frame")
  278. Frame260 = Instance.new("Frame")
  279. Frame261 = Instance.new("Frame")
  280. Frame262 = Instance.new("Frame")
  281. Frame263 = Instance.new("Frame")
  282. TextLabel264 = Instance.new("TextLabel")
  283. TextLabel265 = Instance.new("TextLabel")
  284. Frame266 = Instance.new("Frame")
  285. Frame267 = Instance.new("Frame")
  286. ImageLabel268 = Instance.new("ImageLabel")
  287. TextLabel269 = Instance.new("TextLabel")
  288. TextLabel270 = Instance.new("TextLabel")
  289. Frame271 = Instance.new("Frame")
  290. ImageLabel272 = Instance.new("ImageLabel")
  291. TextLabel273 = Instance.new("TextLabel")
  292. TextLabel274 = Instance.new("TextLabel")
  293. Frame275 = Instance.new("Frame")
  294. TextLabel276 = Instance.new("TextLabel")
  295. TextLabel277 = Instance.new("TextLabel")
  296. TextLabel278 = Instance.new("TextLabel")
  297. Frame279 = Instance.new("Frame")
  298. Frame280 = Instance.new("Frame")
  299. ImageLabel281 = Instance.new("ImageLabel")
  300. ImageLabel282 = Instance.new("ImageLabel")
  301. Frame283 = Instance.new("Frame")
  302. TextLabel284 = Instance.new("TextLabel")
  303. Frame285 = Instance.new("Frame")
  304. ImageLabel286 = Instance.new("ImageLabel")
  305. ImageLabel287 = Instance.new("ImageLabel")
  306. Frame288 = Instance.new("Frame")
  307. Frame289 = Instance.new("Frame")
  308. LocalScript290 = Instance.new("LocalScript")
  309. TextLabel291 = Instance.new("TextLabel")
  310. Part292 = Instance.new("Part")
  311. SpecialMesh293 = Instance.new("SpecialMesh")
  312. Weld294 = Instance.new("Weld")
  313. Weld295 = Instance.new("Weld")
  314. Weld296 = Instance.new("Weld")
  315. Weld297 = Instance.new("Weld")
  316. Weld298 = Instance.new("Weld")
  317. Weld299 = Instance.new("Weld")
  318. Weld300 = Instance.new("Weld")
  319. Weld301 = Instance.new("Weld")
  320. Weld302 = Instance.new("Weld")
  321. Weld303 = Instance.new("Weld")
  322. Weld304 = Instance.new("Weld")
  323. Weld305 = Instance.new("Weld")
  324. Weld306 = Instance.new("Weld")
  325. Weld307 = Instance.new("Weld")
  326. Weld308 = Instance.new("Weld")
  327. Weld309 = Instance.new("Weld")
  328. Weld310 = Instance.new("Weld")
  329. Weld311 = Instance.new("Weld")
  330. Weld312 = Instance.new("Weld")
  331. Weld313 = Instance.new("Weld")
  332. Weld314 = Instance.new("Weld")
  333. Weld315 = Instance.new("Weld")
  334. Weld316 = Instance.new("Weld")
  335. Weld317 = Instance.new("Weld")
  336. Weld318 = Instance.new("Weld")
  337. Weld319 = Instance.new("Weld")
  338. Weld320 = Instance.new("Weld")
  339. Weld321 = Instance.new("Weld")
  340. Weld322 = Instance.new("Weld")
  341. Weld323 = Instance.new("Weld")
  342. Weld324 = Instance.new("Weld")
  343. Weld325 = Instance.new("Weld")
  344. Weld326 = Instance.new("Weld")
  345. Weld327 = Instance.new("Weld")
  346. Weld328 = Instance.new("Weld")
  347. Weld329 = Instance.new("Weld")
  348. Weld330 = Instance.new("Weld")
  349. Weld331 = Instance.new("Weld")
  350. Weld332 = Instance.new("Weld")
  351. Weld333 = Instance.new("Weld")
  352. Weld334 = Instance.new("Weld")
  353. Weld335 = Instance.new("Weld")
  354. Weld336 = Instance.new("Weld")
  355. Weld337 = Instance.new("Weld")
  356. Weld338 = Instance.new("Weld")
  357. Weld339 = Instance.new("Weld")
  358. Weld340 = Instance.new("Weld")
  359. Weld341 = Instance.new("Weld")
  360. Weld342 = Instance.new("Weld")
  361. Weld343 = Instance.new("Weld")
  362. Weld344 = Instance.new("Weld")
  363. Weld345 = Instance.new("Weld")
  364. Weld346 = Instance.new("Weld")
  365. Weld347 = Instance.new("Weld")
  366. Weld348 = Instance.new("Weld")
  367. Weld349 = Instance.new("Weld")
  368. Weld350 = Instance.new("Weld")
  369. Weld351 = Instance.new("Weld")
  370. Weld352 = Instance.new("Weld")
  371. Weld353 = Instance.new("Weld")
  372. Weld354 = Instance.new("Weld")
  373. Weld355 = Instance.new("Weld")
  374. Weld356 = Instance.new("Weld")
  375. Weld357 = Instance.new("Weld")
  376. Weld358 = Instance.new("Weld")
  377. Weld359 = Instance.new("Weld")
  378. Weld360 = Instance.new("Weld")
  379. Weld361 = Instance.new("Weld")
  380. Weld362 = Instance.new("Weld")
  381. Weld363 = Instance.new("Weld")
  382. Weld364 = Instance.new("Weld")
  383. Weld365 = Instance.new("Weld")
  384. Weld366 = Instance.new("Weld")
  385. Part367 = Instance.new("Part")
  386. Sound368 = Instance.new("Sound")
  387. Sound369 = Instance.new("Sound")
  388. Part370 = Instance.new("Part")
  389. Sound371 = Instance.new("Sound")
  390. Sound372 = Instance.new("Sound")
  391. Model373 = Instance.new("Model")
  392. Part374 = Instance.new("Part")
  393. Decal375 = Instance.new("Decal")
  394. Part376 = Instance.new("Part")
  395. Decal377 = Instance.new("Decal")
  396. Motor378 = Instance.new("Motor")
  397. Motor379 = Instance.new("Motor")
  398. Motor380 = Instance.new("Motor")
  399. Motor381 = Instance.new("Motor")
  400. Motor382 = Instance.new("Motor")
  401. Part383 = Instance.new("Part")
  402. Part384 = Instance.new("Part")
  403. Part385 = Instance.new("Part")
  404. Part386 = Instance.new("Part")
  405. SpecialMesh387 = Instance.new("SpecialMesh")
  406. Decal388 = Instance.new("Decal")
  407. Decal389 = Instance.new("Decal")
  408. Humanoid390 = Instance.new("Humanoid")
  409. Script391 = Instance.new("Script")
  410. Shirt392 = Instance.new("Shirt")
  411. Pants393 = Instance.new("Pants")
  412. Part394 = Instance.new("Part")
  413. Tool0.Name = "Steamer"
  414. Tool0.Parent = mas
  415. Part1.Parent = Tool0
  416. Part1.Material = Enum.Material.SmoothPlastic
  417. Part1.Transparency = 1
  418. Part1.Rotation = Vector3.new(-60, 0, 165)
  419. Part1.Anchored = true
  420. Part1.CanCollide = false
  421. Part1.FormFactor = Enum.FormFactor.Custom
  422. Part1.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  423. Part1.CFrame = CFrame.new(1435.38062, 48.6328773, -1311.01868, -0.965924263, -0.258825004, -6.07067022e-07, 0.12940903, -0.482951164, 0.866032064, -0.22415106, 0.836521268, 0.499988496)
  424. Part1.BottomSurface = Enum.SurfaceType.Smooth
  425. Part1.TopSurface = Enum.SurfaceType.Smooth
  426. Part1.Position = Vector3.new(1435.38062, 48.6328773, -1311.01868)
  427. Part1.Orientation = Vector3.new(-60, 0, 165)
  428. CylinderMesh2.Parent = Part1
  429. CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  430. CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  431. Part3.Parent = Tool0
  432. Part3.Material = Enum.Material.SmoothPlastic
  433. Part3.BrickColor = BrickColor.new("Nougat")
  434. Part3.Transparency = 1
  435. Part3.Rotation = Vector3.new(180, 0, 90)
  436. Part3.Anchored = true
  437. Part3.CanCollide = false
  438. Part3.FormFactor = Enum.FormFactor.Custom
  439. Part3.Size = Vector3.new(0.39847663, 0.339129031, 0.423911244)
  440. Part3.CFrame = CFrame.new(1434.30396, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  441. Part3.BottomSurface = Enum.SurfaceType.Smooth
  442. Part3.TopSurface = Enum.SurfaceType.Smooth
  443. Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
  444. Part3.Position = Vector3.new(1434.30396, 48.923233, -1310.87183)
  445. Part3.Orientation = Vector3.new(0, -180, -90)
  446. Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
  447. CylinderMesh4.Parent = Part3
  448. Part5.Parent = Tool0
  449. Part5.Material = Enum.Material.SmoothPlastic
  450. Part5.BrickColor = BrickColor.new("Dark stone grey")
  451. Part5.Transparency = 1
  452. Part5.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
  453. Part5.Anchored = true
  454. Part5.CanCollide = false
  455. Part5.FormFactor = Enum.FormFactor.Custom
  456. Part5.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  457. Part5.CFrame = CFrame.new(1435.09131, 49.0662308, -1311.1488, -0.779332995, 0.114002213, 0.616152287, -0.342794985, 0.745554209, -0.571524739, -0.524529994, -0.656622052, -0.54195559)
  458. Part5.BottomSurface = Enum.SurfaceType.Smooth
  459. Part5.TopSurface = Enum.SurfaceType.Smooth
  460. Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
  461. Part5.Position = Vector3.new(1435.09131, 49.0662308, -1311.1488)
  462. Part5.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
  463. Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
  464. CylinderMesh6.Parent = Part5
  465. CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  466. CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  467. Part7.Parent = Tool0
  468. Part7.Material = Enum.Material.SmoothPlastic
  469. Part7.BrickColor = BrickColor.new("Black")
  470. Part7.Transparency = 1
  471. Part7.Rotation = Vector3.new(-105, 75, 90)
  472. Part7.Anchored = true
  473. Part7.CanCollide = false
  474. Part7.FormFactor = Enum.FormFactor.Custom
  475. Part7.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  476. Part7.CFrame = CFrame.new(1434.85657, 49.1090851, -1311.08801, 0, -0.258817911, 0.965926111, -0.258811951, 0.93301481, 0.249999404, -0.96592778, -0.24999322, -0.0669851676)
  477. Part7.BottomSurface = Enum.SurfaceType.Smooth
  478. Part7.TopSurface = Enum.SurfaceType.Smooth
  479. Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
  480. Part7.Position = Vector3.new(1434.85657, 49.1090851, -1311.08801)
  481. Part7.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
  482. Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
  483. CylinderMesh8.Parent = Part7
  484. CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  485. CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  486. Part9.Parent = Tool0
  487. Part9.Material = Enum.Material.SmoothPlastic
  488. Part9.BrickColor = BrickColor.new("Dark stone grey")
  489. Part9.Transparency = 1
  490. Part9.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
  491. Part9.Anchored = true
  492. Part9.CanCollide = false
  493. Part9.FormFactor = Enum.FormFactor.Custom
  494. Part9.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  495. Part9.CFrame = CFrame.new(1435.07556, 49.067543, -1310.66211, 0.462388188, -0.0240549594, 0.886351287, 0.2793791, 0.95266664, -0.119890675, -0.841513276, 0.303064078, 0.447222203)
  496. Part9.BottomSurface = Enum.SurfaceType.Smooth
  497. Part9.TopSurface = Enum.SurfaceType.Smooth
  498. Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
  499. Part9.Position = Vector3.new(1435.07556, 49.067543, -1310.66211)
  500. Part9.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
  501. Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
  502. CylinderMesh10.Parent = Part9
  503. CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  504. CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  505. Part11.Parent = Tool0
  506. Part11.Material = Enum.Material.SmoothPlastic
  507. Part11.BrickColor = BrickColor.new("Dark stone grey")
  508. Part11.Transparency = 1
  509. Part11.Rotation = Vector3.new(180, 0, 90)
  510. Part11.Anchored = true
  511. Part11.CanCollide = false
  512. Part11.FormFactor = Enum.FormFactor.Custom
  513. Part11.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  514. Part11.CFrame = CFrame.new(1433.61292, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  515. Part11.BottomSurface = Enum.SurfaceType.Smooth
  516. Part11.TopSurface = Enum.SurfaceType.Smooth
  517. Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
  518. Part11.Position = Vector3.new(1433.61292, 48.9232292, -1310.87183)
  519. Part11.Orientation = Vector3.new(0, -180, -90)
  520. Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
  521. CylinderMesh12.Parent = Part11
  522. CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
  523. CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
  524. Part13.Parent = Tool0
  525. Part13.Material = Enum.Material.SmoothPlastic
  526. Part13.BrickColor = BrickColor.new("Really black")
  527. Part13.Transparency = 1
  528. Part13.Rotation = Vector3.new(0, 90, 0)
  529. Part13.Anchored = true
  530. Part13.CanCollide = false
  531. Part13.FormFactor = Enum.FormFactor.Custom
  532. Part13.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  533. Part13.CFrame = CFrame.new(1436.875, 48.5038071, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  534. Part13.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  535. Part13.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  536. Part13.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  537. Part13.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  538. Part13.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  539. Part13.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  540. Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  541. Part13.Position = Vector3.new(1436.875, 48.5038071, -1310.87622)
  542. Part13.Orientation = Vector3.new(0, 90, 0)
  543. Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  544. SpecialMesh14.Parent = Part13
  545. SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
  546. SpecialMesh14.MeshType = Enum.MeshType.Brick
  547. SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
  548. Part15.Parent = Tool0
  549. Part15.Material = Enum.Material.SmoothPlastic
  550. Part15.BrickColor = BrickColor.new("Brick yellow")
  551. Part15.Transparency = 1
  552. Part15.Rotation = Vector3.new(-60, 0, 135)
  553. Part15.Anchored = true
  554. Part15.CanCollide = false
  555. Part15.FormFactor = Enum.FormFactor.Custom
  556. Part15.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  557. Part15.CFrame = CFrame.new(1435.32275, 48.6293831, -1311.01672, -0.707099199, -0.707114458, 1.28547924e-06, 0.353550076, -0.353540927, 0.866031885, -0.612383127, 0.612370908, 0.499988824)
  558. Part15.BottomSurface = Enum.SurfaceType.Smooth
  559. Part15.TopSurface = Enum.SurfaceType.Smooth
  560. Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
  561. Part15.Position = Vector3.new(1435.32275, 48.6293831, -1311.01672)
  562. Part15.Orientation = Vector3.new(-60, 0, 135)
  563. Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
  564. CylinderMesh16.Parent = Part15
  565. CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
  566. CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
  567. Part17.Name = "AimPart"
  568. Part17.Parent = Tool0
  569. Part17.Material = Enum.Material.SmoothPlastic
  570. Part17.Transparency = 1
  571. Part17.Rotation = Vector3.new(90, 87.8300018, -90)
  572. Part17.Anchored = true
  573. Part17.CanCollide = false
  574. Part17.FormFactor = Enum.FormFactor.Custom
  575. Part17.Size = Vector3.new(0.300000012, 0.200000003, 0.200000003)
  576. Part17.CFrame = CFrame.new(1436.29102, 49.267807, -1310.8728, 0, 0.0378389955, 0.99928385, 0, 0.99928385, -0.0378389955, -1, 0, 0)
  577. Part17.BottomSurface = Enum.SurfaceType.Smooth
  578. Part17.TopSurface = Enum.SurfaceType.Smooth
  579. Part17.Position = Vector3.new(1436.29102, 49.267807, -1310.8728)
  580. Part17.Orientation = Vector3.new(2.16999984, 90, 0)
  581. Part18.Name = "Main"
  582. Part18.Parent = Tool0
  583. Part18.Material = Enum.Material.SmoothPlastic
  584. Part18.BrickColor = BrickColor.new("Really black")
  585. Part18.Transparency = 1
  586. Part18.Rotation = Vector3.new(0, 0, 90)
  587. Part18.Anchored = true
  588. Part18.CanCollide = false
  589. Part18.FormFactor = Enum.FormFactor.Custom
  590. Part18.Size = Vector3.new(0.25, 0.25, 0.25)
  591. Part18.CFrame = CFrame.new(1433.32568, 48.9478035, -1310.8728, 0, -1, 0, 1, 0, -0, 0, 0, 1)
  592. Part18.BottomSurface = Enum.SurfaceType.Smooth
  593. Part18.TopSurface = Enum.SurfaceType.Smooth
  594. Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  595. Part18.Position = Vector3.new(1433.32568, 48.9478035, -1310.8728)
  596. Part18.Orientation = Vector3.new(0, 0, 90)
  597. Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  598. PointLight19.Name = "FlashFX"
  599. PointLight19.Parent = Part18
  600. PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
  601. PointLight19.Enabled = false
  602. PointLight19.Brightness = 10
  603. PointLight19.Range = 6
  604. PointLight19.Shadows = true
  605. PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
  606. BillboardGui20.Name = "FlashGui"
  607. BillboardGui20.Parent = Part18
  608. BillboardGui20.Size = UDim2.new(1.10000002, 0, 1.10000002, 0)
  609. BillboardGui20.Enabled = false
  610. ImageLabel21.Name = "Label"
  611. ImageLabel21.Parent = BillboardGui20
  612. ImageLabel21.Transparency = 1
  613. ImageLabel21.Size = UDim2.new(1, 0, 1, 0)
  614. ImageLabel21.BackgroundTransparency = 1
  615. ImageLabel21.Image = "http://www.roblox.com/asset/?id=192664810"
  616. ImageLabel21.ImageColor3 = Color3.new(0, 1, 0.00392157)
  617. CylinderMesh22.Parent = Part18
  618. CylinderMesh22.Offset = Vector3.new(0, -0.248999998, 0)
  619. CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
  620. CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
  621. Part23.Name = "Handle"
  622. Part23.Parent = Tool0
  623. Part23.Material = Enum.Material.SmoothPlastic
  624. Part23.Transparency = 1
  625. Part23.Rotation = Vector3.new(0, 90, 0)
  626. Part23.Anchored = true
  627. Part23.CanCollide = false
  628. Part23.FormFactor = Enum.FormFactor.Custom
  629. Part23.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  630. Part23.CFrame = CFrame.new(1435.87061, 48.4373131, -1310.86279, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  631. Part23.BottomSurface = Enum.SurfaceType.Smooth
  632. Part23.TopSurface = Enum.SurfaceType.Smooth
  633. Part23.Position = Vector3.new(1435.87061, 48.4373131, -1310.86279)
  634. Part23.Orientation = Vector3.new(0, 90, 0)
  635. Sound24.Name = "FireSound"
  636. Sound24.Parent = Part23
  637. Sound24.Pitch = 1
  638. Sound24.SoundId = "rbxassetid://1594361325"
  639. Sound24.Volume = 10
  640. Sound25.Name = "ReloadSound"
  641. Sound25.Parent = Part23
  642. Sound25.Pitch = 1
  643. Sound25.SoundId = "rbxassetid://1143491765"
  644. Sound25.Volume = 10
  645. Part26.Parent = Tool0
  646. Part26.Material = Enum.Material.SmoothPlastic
  647. Part26.BrickColor = BrickColor.new("Nougat")
  648. Part26.Transparency = 1
  649. Part26.Rotation = Vector3.new(180, 0, 90)
  650. Part26.Anchored = true
  651. Part26.CanCollide = false
  652. Part26.FormFactor = Enum.FormFactor.Custom
  653. Part26.Size = Vector3.new(0.27978155, 0.822387338, 0.423911244)
  654. Part26.CFrame = CFrame.new(1435.18982, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  655. Part26.BottomSurface = Enum.SurfaceType.Smooth
  656. Part26.TopSurface = Enum.SurfaceType.Smooth
  657. Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
  658. Part26.Position = Vector3.new(1435.18982, 48.9232292, -1310.87183)
  659. Part26.Orientation = Vector3.new(0, -180, -90)
  660. Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
  661. CylinderMesh27.Parent = Part26
  662. Part28.Name = "Smooth Block Model"
  663. Part28.Parent = Tool0
  664. Part28.Material = Enum.Material.SmoothPlastic
  665. Part28.BrickColor = BrickColor.new("Dark stone grey")
  666. Part28.Transparency = 1
  667. Part28.Rotation = Vector3.new(-90, -15, -90)
  668. Part28.Anchored = true
  669. Part28.CanCollide = false
  670. Part28.FormFactor = Enum.FormFactor.Custom
  671. Part28.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  672. Part28.CFrame = CFrame.new(1435.97473, 48.6492271, -1310.87183, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872, 1, 0, 0)
  673. Part28.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  674. Part28.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  675. Part28.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  676. Part28.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  677. Part28.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  678. Part28.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  679. Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
  680. Part28.Position = Vector3.new(1435.97473, 48.6492271, -1310.87183)
  681. Part28.Orientation = Vector3.new(-75, -90, 0)
  682. Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
  683. SpecialMesh29.Parent = Part28
  684. SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
  685. SpecialMesh29.MeshType = Enum.MeshType.Wedge
  686. SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
  687. Part30.Name = "Mag"
  688. Part30.Parent = Tool0
  689. Part30.Material = Enum.Material.SmoothPlastic
  690. Part30.BrickColor = BrickColor.new("Dark stone grey")
  691. Part30.Transparency = 1
  692. Part30.Rotation = Vector3.new(0, 90, 0)
  693. Part30.Anchored = true
  694. Part30.CanCollide = false
  695. Part30.FormFactor = Enum.FormFactor.Custom
  696. Part30.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  697. Part30.CFrame = CFrame.new(1435.36523, 48.273735, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  698. Part30.BottomSurface = Enum.SurfaceType.Smooth
  699. Part30.TopSurface = Enum.SurfaceType.Smooth
  700. Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
  701. Part30.Position = Vector3.new(1435.36523, 48.273735, -1310.88025)
  702. Part30.Orientation = Vector3.new(0, 90, 0)
  703. Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
  704. SpecialMesh31.Parent = Part30
  705. SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
  706. SpecialMesh31.MeshType = Enum.MeshType.Brick
  707. SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
  708. Decal32.Parent = Part30
  709. Decal32.Texture = "http://www.roblox.com/asset/?id=2276240"
  710. Decal32.Face = Enum.NormalId.Right
  711. Decal33.Parent = Part30
  712. Decal33.Texture = "http://www.roblox.com/asset/?id=2276240"
  713. Decal33.Face = Enum.NormalId.Left
  714. Part34.Name = "Mag"
  715. Part34.Parent = Tool0
  716. Part34.Material = Enum.Material.SmoothPlastic
  717. Part34.BrickColor = BrickColor.new("Dark stone grey")
  718. Part34.Transparency = 1
  719. Part34.Rotation = Vector3.new(0, 90, 0)
  720. Part34.Anchored = true
  721. Part34.CanCollide = false
  722. Part34.FormFactor = Enum.FormFactor.Custom
  723. Part34.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  724. Part34.CFrame = CFrame.new(1435.31006, 48.3118896, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  725. Part34.BottomSurface = Enum.SurfaceType.Smooth
  726. Part34.TopSurface = Enum.SurfaceType.Smooth
  727. Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
  728. Part34.Position = Vector3.new(1435.31006, 48.3118896, -1310.88025)
  729. Part34.Orientation = Vector3.new(0, 90, 0)
  730. Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
  731. SpecialMesh35.Parent = Part34
  732. SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  733. SpecialMesh35.MeshType = Enum.MeshType.Brick
  734. SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  735. Part36.Name = "Mag"
  736. Part36.Parent = Tool0
  737. Part36.Material = Enum.Material.SmoothPlastic
  738. Part36.BrickColor = BrickColor.new("Dark stone grey")
  739. Part36.Transparency = 1
  740. Part36.Rotation = Vector3.new(0, 90, 0)
  741. Part36.Anchored = true
  742. Part36.CanCollide = false
  743. Part36.FormFactor = Enum.FormFactor.Custom
  744. Part36.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  745. Part36.CFrame = CFrame.new(1435.42041, 48.3114662, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  746. Part36.BottomSurface = Enum.SurfaceType.Smooth
  747. Part36.TopSurface = Enum.SurfaceType.Smooth
  748. Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
  749. Part36.Position = Vector3.new(1435.42041, 48.3114662, -1310.88025)
  750. Part36.Orientation = Vector3.new(0, 90, 0)
  751. Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
  752. SpecialMesh37.Parent = Part36
  753. SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  754. SpecialMesh37.MeshType = Enum.MeshType.Brick
  755. SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  756. Part38.Name = "Mag"
  757. Part38.Parent = Tool0
  758. Part38.Material = Enum.Material.SmoothPlastic
  759. Part38.BrickColor = BrickColor.new("Cool yellow")
  760. Part38.Transparency = 1
  761. Part38.Rotation = Vector3.new(0, 90, 0)
  762. Part38.Anchored = true
  763. Part38.CanCollide = false
  764. Part38.FormFactor = Enum.FormFactor.Custom
  765. Part38.Size = Vector3.new(1, 1, 1)
  766. Part38.CFrame = CFrame.new(1435.36523, 48.3523445, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  767. Part38.BottomSurface = Enum.SurfaceType.Smooth
  768. Part38.TopSurface = Enum.SurfaceType.Smooth
  769. Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
  770. Part38.Position = Vector3.new(1435.36523, 48.3523445, -1310.88025)
  771. Part38.Orientation = Vector3.new(0, 90, 0)
  772. Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
  773. CylinderMesh39.Parent = Part38
  774. CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
  775. CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
  776. Part40.Name = "Mag"
  777. Part40.Parent = Tool0
  778. Part40.Material = Enum.Material.SmoothPlastic
  779. Part40.BrickColor = BrickColor.new("Dark stone grey")
  780. Part40.Transparency = 1
  781. Part40.Rotation = Vector3.new(0, 90, 0)
  782. Part40.Anchored = true
  783. Part40.CanCollide = false
  784. Part40.FormFactor = Enum.FormFactor.Custom
  785. Part40.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  786. Part40.CFrame = CFrame.new(1435.36523, 48.373539, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  787. Part40.BottomSurface = Enum.SurfaceType.Smooth
  788. Part40.TopSurface = Enum.SurfaceType.Smooth
  789. Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
  790. Part40.Position = Vector3.new(1435.36523, 48.373539, -1310.88025)
  791. Part40.Orientation = Vector3.new(0, 90, 0)
  792. Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
  793. CylinderMesh41.Parent = Part40
  794. CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
  795. CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
  796. Part42.Name = "Mag"
  797. Part42.Parent = Tool0
  798. Part42.Material = Enum.Material.SmoothPlastic
  799. Part42.BrickColor = BrickColor.new("Bright red")
  800. Part42.Transparency = 1
  801. Part42.Rotation = Vector3.new(0, 90, 0)
  802. Part42.Anchored = true
  803. Part42.CanCollide = false
  804. Part42.FormFactor = Enum.FormFactor.Custom
  805. Part42.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  806. Part42.CFrame = CFrame.new(1435.36523, 48.3438797, -1310.88013, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  807. Part42.BottomSurface = Enum.SurfaceType.Smooth
  808. Part42.TopSurface = Enum.SurfaceType.Smooth
  809. Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
  810. Part42.Position = Vector3.new(1435.36523, 48.3438797, -1310.88013)
  811. Part42.Orientation = Vector3.new(0, 90, 0)
  812. Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
  813. CylinderMesh43.Parent = Part42
  814. CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
  815. CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
  816. Part44.Name = "Mag"
  817. Part44.Parent = Tool0
  818. Part44.Material = Enum.Material.SmoothPlastic
  819. Part44.BrickColor = BrickColor.new("Dark stone grey")
  820. Part44.Transparency = 1
  821. Part44.Rotation = Vector3.new(90, 0, -90)
  822. Part44.Anchored = true
  823. Part44.CanCollide = false
  824. Part44.FormFactor = Enum.FormFactor.Custom
  825. Part44.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  826. Part44.CFrame = CFrame.new(1435.36548, 48.474556, -1310.88025, 0, 1, 0, 0, 0, -1, -1, 0, 0)
  827. Part44.BottomSurface = Enum.SurfaceType.Smooth
  828. Part44.TopSurface = Enum.SurfaceType.Smooth
  829. Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
  830. Part44.Position = Vector3.new(1435.36548, 48.474556, -1310.88025)
  831. Part44.Orientation = Vector3.new(90, 90, 0)
  832. Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
  833. SpecialMesh45.Parent = Part44
  834. SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
  835. SpecialMesh45.MeshType = Enum.MeshType.Sphere
  836. SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
  837. Part46.Name = "Mag"
  838. Part46.Parent = Tool0
  839. Part46.Material = Enum.Material.SmoothPlastic
  840. Part46.BrickColor = BrickColor.new("Dark stone grey")
  841. Part46.Transparency = 1
  842. Part46.Rotation = Vector3.new(0, 90, 0)
  843. Part46.Anchored = true
  844. Part46.CanCollide = false
  845. Part46.FormFactor = Enum.FormFactor.Custom
  846. Part46.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  847. Part46.CFrame = CFrame.new(1435.36523, 48.4667969, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  848. Part46.BottomSurface = Enum.SurfaceType.Smooth
  849. Part46.TopSurface = Enum.SurfaceType.Smooth
  850. Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
  851. Part46.Position = Vector3.new(1435.36523, 48.4667969, -1310.88025)
  852. Part46.Orientation = Vector3.new(0, 90, 0)
  853. Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
  854. CylinderMesh47.Parent = Part46
  855. CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
  856. CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
  857. Part48.Name = "Mag"
  858. Part48.Parent = Tool0
  859. Part48.Material = Enum.Material.SmoothPlastic
  860. Part48.BrickColor = BrickColor.new("Dark stone grey")
  861. Part48.Transparency = 1
  862. Part48.Rotation = Vector3.new(0, 90, 0)
  863. Part48.Anchored = true
  864. Part48.CanCollide = false
  865. Part48.FormFactor = Enum.FormFactor.Custom
  866. Part48.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  867. Part48.CFrame = CFrame.new(1435.36108, 48.4771957, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  868. Part48.BottomSurface = Enum.SurfaceType.Smooth
  869. Part48.TopSurface = Enum.SurfaceType.Smooth
  870. Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
  871. Part48.Position = Vector3.new(1435.36108, 48.4771957, -1310.87622)
  872. Part48.Orientation = Vector3.new(0, 90, 0)
  873. Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
  874. SpecialMesh49.Parent = Part48
  875. SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
  876. SpecialMesh49.MeshType = Enum.MeshType.Brick
  877. SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
  878. Decal50.Parent = Part48
  879. Decal50.Texture = "http://www.roblox.com/asset/?id=2276263"
  880. Decal50.Face = Enum.NormalId.Right
  881. Decal51.Parent = Part48
  882. Decal51.Texture = "http://www.roblox.com/asset/?id=2276263"
  883. Decal51.Face = Enum.NormalId.Left
  884. Part52.Parent = Tool0
  885. Part52.Material = Enum.Material.SmoothPlastic
  886. Part52.BrickColor = BrickColor.new("Dark stone grey")
  887. Part52.Transparency = 1
  888. Part52.Rotation = Vector3.new(-90, 0, 90)
  889. Part52.Anchored = true
  890. Part52.CanCollide = false
  891. Part52.FormFactor = Enum.FormFactor.Custom
  892. Part52.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  893. Part52.CFrame = CFrame.new(1435.20679, 48.6519432, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  894. Part52.BottomSurface = Enum.SurfaceType.Smooth
  895. Part52.TopSurface = Enum.SurfaceType.Smooth
  896. Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
  897. Part52.Position = Vector3.new(1435.20679, 48.6519432, -1310.87183)
  898. Part52.Orientation = Vector3.new(-90, 90, 0)
  899. Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
  900. SpecialMesh53.Parent = Part52
  901. SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
  902. SpecialMesh53.MeshType = Enum.MeshType.Brick
  903. SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
  904. Part54.Parent = Tool0
  905. Part54.Material = Enum.Material.SmoothPlastic
  906. Part54.BrickColor = BrickColor.new("Dark stone grey")
  907. Part54.Transparency = 1
  908. Part54.Rotation = Vector3.new(0, 90, 0)
  909. Part54.Anchored = true
  910. Part54.CanCollide = false
  911. Part54.FormFactor = Enum.FormFactor.Custom
  912. Part54.Size = Vector3.new(1, 1, 1)
  913. Part54.CFrame = CFrame.new(1436.06531, 48.6182861, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  914. Part54.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  915. Part54.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  916. Part54.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  917. Part54.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  918. Part54.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  919. Part54.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  920. Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
  921. Part54.Position = Vector3.new(1436.06531, 48.6182861, -1310.87183)
  922. Part54.Orientation = Vector3.new(0, 90, 0)
  923. Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
  924. SpecialMesh55.Parent = Part54
  925. SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
  926. SpecialMesh55.MeshType = Enum.MeshType.Brick
  927. SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
  928. Part56.Parent = Tool0
  929. Part56.Material = Enum.Material.SmoothPlastic
  930. Part56.BrickColor = BrickColor.new("Dark stone grey")
  931. Part56.Transparency = 1
  932. Part56.Rotation = Vector3.new(180, 0, 90)
  933. Part56.Anchored = true
  934. Part56.CanCollide = false
  935. Part56.FormFactor = Enum.FormFactor.Custom
  936. Part56.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  937. Part56.CFrame = CFrame.new(1433.85034, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  938. Part56.BottomSurface = Enum.SurfaceType.Smooth
  939. Part56.TopSurface = Enum.SurfaceType.Smooth
  940. Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
  941. Part56.Position = Vector3.new(1433.85034, 48.923233, -1310.87183)
  942. Part56.Orientation = Vector3.new(0, -180, -90)
  943. Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
  944. CylinderMesh57.Parent = Part56
  945. CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  946. CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  947. Part58.Parent = Tool0
  948. Part58.Material = Enum.Material.SmoothPlastic
  949. Part58.BrickColor = BrickColor.new("Dark stone grey")
  950. Part58.Transparency = 1
  951. Part58.Rotation = Vector3.new(180, 0, 90)
  952. Part58.Anchored = true
  953. Part58.CanCollide = false
  954. Part58.FormFactor = Enum.FormFactor.Custom
  955. Part58.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  956. Part58.CFrame = CFrame.new(1435.21533, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  957. Part58.BottomSurface = Enum.SurfaceType.Smooth
  958. Part58.TopSurface = Enum.SurfaceType.Smooth
  959. Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
  960. Part58.Position = Vector3.new(1435.21533, 48.9020348, -1310.87183)
  961. Part58.Orientation = Vector3.new(0, -180, -90)
  962. Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
  963. CylinderMesh59.Parent = Part58
  964. CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  965. CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  966. Part60.Parent = Tool0
  967. Part60.Material = Enum.Material.SmoothPlastic
  968. Part60.BrickColor = BrickColor.new("Dark stone grey")
  969. Part60.Transparency = 1
  970. Part60.Rotation = Vector3.new(90, 75, -90)
  971. Part60.Anchored = true
  972. Part60.CanCollide = false
  973. Part60.FormFactor = Enum.FormFactor.Custom
  974. Part60.Size = Vector3.new(1, 1, 1)
  975. Part60.CFrame = CFrame.new(1436.37439, 48.852356, -1310.87183, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
  976. Part60.BottomSurface = Enum.SurfaceType.Smooth
  977. Part60.TopSurface = Enum.SurfaceType.Smooth
  978. Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
  979. Part60.Position = Vector3.new(1436.37439, 48.852356, -1310.87183)
  980. Part60.Orientation = Vector3.new(15, 90, 0)
  981. Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
  982. SpecialMesh61.Parent = Part60
  983. SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
  984. SpecialMesh61.MeshType = Enum.MeshType.Brick
  985. SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
  986. Part62.Parent = Tool0
  987. Part62.Material = Enum.Material.SmoothPlastic
  988. Part62.BrickColor = BrickColor.new("Medium green")
  989. Part62.Reflectance = 0.40000000596046
  990. Part62.Transparency = 1
  991. Part62.Rotation = Vector3.new(-90, 0, -90)
  992. Part62.Anchored = true
  993. Part62.CanCollide = false
  994. Part62.FormFactor = Enum.FormFactor.Custom
  995. Part62.Size = Vector3.new(1, 1, 1)
  996. Part62.CFrame = CFrame.new(1436.0885, 48.923233, -1310.96509, 0, 1, 0, 0, 0, 1, 1, 0, 0)
  997. Part62.BottomSurface = Enum.SurfaceType.Smooth
  998. Part62.TopSurface = Enum.SurfaceType.Smooth
  999. Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1000. Part62.Position = Vector3.new(1436.0885, 48.923233, -1310.96509)
  1001. Part62.Orientation = Vector3.new(-90, -90, 0)
  1002. Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1003. CylinderMesh63.Parent = Part62
  1004. CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
  1005. CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
  1006. Part64.Parent = Tool0
  1007. Part64.Material = Enum.Material.SmoothPlastic
  1008. Part64.BrickColor = BrickColor.new("Dark stone grey")
  1009. Part64.Transparency = 1
  1010. Part64.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
  1011. Part64.Anchored = true
  1012. Part64.CanCollide = false
  1013. Part64.FormFactor = Enum.FormFactor.Custom
  1014. Part64.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1015. Part64.CFrame = CFrame.new(1434.84216, 49.1045074, -1310.66235, 0.777458727, 0.333219469, 0.533406675, 0.102508962, -0.903908193, 0.415261477, 0.620523751, -0.268169731, -0.73690933)
  1016. Part64.BottomSurface = Enum.SurfaceType.Smooth
  1017. Part64.TopSurface = Enum.SurfaceType.Smooth
  1018. Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1019. Part64.Position = Vector3.new(1434.84216, 49.1045074, -1310.66235)
  1020. Part64.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
  1021. Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1022. CylinderMesh65.Parent = Part64
  1023. CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1024. CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1025. Part66.Parent = Tool0
  1026. Part66.Material = Enum.Material.SmoothPlastic
  1027. Part66.BrickColor = BrickColor.new("Dark stone grey")
  1028. Part66.Transparency = 1
  1029. Part66.Rotation = Vector3.new(-90, 0, 90)
  1030. Part66.Anchored = true
  1031. Part66.CanCollide = false
  1032. Part66.FormFactor = Enum.FormFactor.Custom
  1033. Part66.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1034. Part66.CFrame = CFrame.new(1435.35938, 48.60532, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1035. Part66.BottomSurface = Enum.SurfaceType.Smooth
  1036. Part66.TopSurface = Enum.SurfaceType.Smooth
  1037. Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1038. Part66.Position = Vector3.new(1435.35938, 48.60532, -1310.87183)
  1039. Part66.Orientation = Vector3.new(-90, 90, 0)
  1040. Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1041. SpecialMesh67.Parent = Part66
  1042. SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
  1043. SpecialMesh67.MeshType = Enum.MeshType.Brick
  1044. SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
  1045. Part68.Parent = Tool0
  1046. Part68.Material = Enum.Material.SmoothPlastic
  1047. Part68.BrickColor = BrickColor.new("Dark stone grey")
  1048. Part68.Transparency = 1
  1049. Part68.Rotation = Vector3.new(0, 90, 0)
  1050. Part68.Anchored = true
  1051. Part68.CanCollide = false
  1052. Part68.FormFactor = Enum.FormFactor.Custom
  1053. Part68.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1054. Part68.CFrame = CFrame.new(1436.875, 48.6733971, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1055. Part68.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1056. Part68.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1057. Part68.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1058. Part68.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1059. Part68.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1060. Part68.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1061. Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1062. Part68.Position = Vector3.new(1436.875, 48.6733971, -1310.87622)
  1063. Part68.Orientation = Vector3.new(0, 90, 0)
  1064. Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1065. SpecialMesh69.Parent = Part68
  1066. SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1067. SpecialMesh69.MeshType = Enum.MeshType.Brick
  1068. SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1069. Part70.Parent = Tool0
  1070. Part70.Material = Enum.Material.SmoothPlastic
  1071. Part70.BrickColor = BrickColor.new("Black")
  1072. Part70.Transparency = 1
  1073. Part70.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
  1074. Part70.Anchored = true
  1075. Part70.CanCollide = false
  1076. Part70.FormFactor = Enum.FormFactor.Custom
  1077. Part70.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1078. Part70.CFrame = CFrame.new(1435.48877, 48.9965515, -1310.62427, 0.540129244, 0.455500901, 0.707657695, 0.0107550053, 0.837061286, -0.547003508, -0.841513395, 0.303063482, 0.447222352)
  1079. Part70.BottomSurface = Enum.SurfaceType.Smooth
  1080. Part70.TopSurface = Enum.SurfaceType.Smooth
  1081. Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1082. Part70.Position = Vector3.new(1435.48877, 48.9965515, -1310.62427)
  1083. Part70.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
  1084. Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1085. CylinderMesh71.Parent = Part70
  1086. CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  1087. CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  1088. Part72.Parent = Tool0
  1089. Part72.Material = Enum.Material.SmoothPlastic
  1090. Part72.BrickColor = BrickColor.new("Black")
  1091. Part72.Transparency = 1
  1092. Part72.Rotation = Vector3.new(90, 0, 90)
  1093. Part72.Anchored = true
  1094. Part72.CanCollide = false
  1095. Part72.FormFactor = Enum.FormFactor.Custom
  1096. Part72.Size = Vector3.new(1, 1, 1)
  1097. Part72.CFrame = CFrame.new(1435.60107, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, -1, 1, 0, 0)
  1098. Part72.BottomSurface = Enum.SurfaceType.Smooth
  1099. Part72.TopSurface = Enum.SurfaceType.Smooth
  1100. Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1101. Part72.Position = Vector3.new(1435.60107, 48.9062729, -1310.87183)
  1102. Part72.Orientation = Vector3.new(90, -90, 0)
  1103. Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1104. SpecialMesh73.Parent = Part72
  1105. SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
  1106. SpecialMesh73.MeshType = Enum.MeshType.Sphere
  1107. SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
  1108. Part74.Parent = Tool0
  1109. Part74.Material = Enum.Material.SmoothPlastic
  1110. Part74.Transparency = 1
  1111. Part74.Rotation = Vector3.new(-90, -30, -90)
  1112. Part74.Anchored = true
  1113. Part74.CanCollide = false
  1114. Part74.FormFactor = Enum.FormFactor.Custom
  1115. Part74.Size = Vector3.new(1, 1, 1)
  1116. Part74.CFrame = CFrame.new(1436.73303, 48.074337, -1310.87183, 0, 0.866025388, -0.500000238, 0, 0.500000238, 0.866025388, 1, 0, 0)
  1117. Part74.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1118. Part74.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1119. Part74.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1120. Part74.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1121. Part74.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1122. Part74.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1123. Part74.Position = Vector3.new(1436.73303, 48.074337, -1310.87183)
  1124. Part74.Orientation = Vector3.new(-60, -90, 0)
  1125. CylinderMesh75.Parent = Part74
  1126. CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
  1127. CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
  1128. Part76.Parent = Tool0
  1129. Part76.Material = Enum.Material.SmoothPlastic
  1130. Part76.BrickColor = BrickColor.new("Brick yellow")
  1131. Part76.Transparency = 1
  1132. Part76.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
  1133. Part76.Anchored = true
  1134. Part76.CanCollide = false
  1135. Part76.FormFactor = Enum.FormFactor.Custom
  1136. Part76.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1137. Part76.CFrame = CFrame.new(1435.48877, 48.7422256, -1311.07788, -0.901220024, 0.370889217, -0.224151224, -0.383668005, -0.923353195, 0.0147557557, -0.201498002, 0.0992978215, 0.97444272)
  1138. Part76.BottomSurface = Enum.SurfaceType.Smooth
  1139. Part76.TopSurface = Enum.SurfaceType.Smooth
  1140. Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1141. Part76.Position = Vector3.new(1435.48877, 48.7422256, -1311.07788)
  1142. Part76.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
  1143. Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1144. CylinderMesh77.Parent = Part76
  1145. CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
  1146. CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
  1147. Part78.Parent = Tool0
  1148. Part78.Material = Enum.Material.SmoothPlastic
  1149. Part78.BrickColor = BrickColor.new("Dark stone grey")
  1150. Part78.Transparency = 1
  1151. Part78.Rotation = Vector3.new(180, 0, 90)
  1152. Part78.Anchored = true
  1153. Part78.CanCollide = false
  1154. Part78.FormFactor = Enum.FormFactor.Custom
  1155. Part78.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  1156. Part78.CFrame = CFrame.new(1434.98645, 48.9189987, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1157. Part78.BottomSurface = Enum.SurfaceType.Smooth
  1158. Part78.TopSurface = Enum.SurfaceType.Smooth
  1159. Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1160. Part78.Position = Vector3.new(1434.98645, 48.9189987, -1310.87183)
  1161. Part78.Orientation = Vector3.new(0, -180, -90)
  1162. Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1163. CylinderMesh79.Parent = Part78
  1164. CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
  1165. CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
  1166. Part80.Parent = Tool0
  1167. Part80.Material = Enum.Material.SmoothPlastic
  1168. Part80.BrickColor = BrickColor.new("Brick yellow")
  1169. Part80.Transparency = 1
  1170. Part80.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
  1171. Part80.Anchored = true
  1172. Part80.CanCollide = false
  1173. Part80.FormFactor = Enum.FormFactor.Custom
  1174. Part80.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1175. Part80.CFrame = CFrame.new(1435.44849, 48.841629, -1311.05676, -0.958352566, 0.25458324, 0.129413933, -0.272977144, -0.683412135, -0.677075565, -0.0839290544, -0.684204161, 0.724445105)
  1176. Part80.BottomSurface = Enum.SurfaceType.Smooth
  1177. Part80.TopSurface = Enum.SurfaceType.Smooth
  1178. Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1179. Part80.Position = Vector3.new(1435.44849, 48.841629, -1311.05676)
  1180. Part80.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
  1181. Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1182. CylinderMesh81.Parent = Part80
  1183. CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
  1184. CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
  1185. Part82.Parent = Tool0
  1186. Part82.Material = Enum.Material.SmoothPlastic
  1187. Part82.BrickColor = BrickColor.new("Dark stone grey")
  1188. Part82.Transparency = 1
  1189. Part82.Rotation = Vector3.new(-90, 75, 90)
  1190. Part82.Anchored = true
  1191. Part82.CanCollide = false
  1192. Part82.FormFactor = Enum.FormFactor.Custom
  1193. Part82.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1194. Part82.CFrame = CFrame.new(1435.99597, 48.211853, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  1195. Part82.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1196. Part82.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1197. Part82.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1198. Part82.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1199. Part82.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1200. Part82.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1201. Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1202. Part82.Position = Vector3.new(1435.99597, 48.211853, -1310.87183)
  1203. Part82.Orientation = Vector3.new(-15, 90, 0)
  1204. Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1205. CylinderMesh83.Parent = Part82
  1206. CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
  1207. CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
  1208. Part84.Parent = Tool0
  1209. Part84.Material = Enum.Material.SmoothPlastic
  1210. Part84.BrickColor = BrickColor.new("Dark stone grey")
  1211. Part84.Transparency = 1
  1212. Part84.Rotation = Vector3.new(180, 0, 90)
  1213. Part84.Anchored = true
  1214. Part84.CanCollide = false
  1215. Part84.FormFactor = Enum.FormFactor.Custom
  1216. Part84.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1217. Part84.CFrame = CFrame.new(1433.5498, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1218. Part84.BottomSurface = Enum.SurfaceType.Smooth
  1219. Part84.TopSurface = Enum.SurfaceType.Smooth
  1220. Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1221. Part84.Position = Vector3.new(1433.5498, 48.9232292, -1310.87183)
  1222. Part84.Orientation = Vector3.new(0, -180, -90)
  1223. Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1224. CylinderMesh85.Parent = Part84
  1225. CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
  1226. CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
  1227. Part86.Parent = Tool0
  1228. Part86.Material = Enum.Material.SmoothPlastic
  1229. Part86.BrickColor = BrickColor.new("Dark stone grey")
  1230. Part86.Transparency = 1
  1231. Part86.Rotation = Vector3.new(90, 90, 0)
  1232. Part86.Anchored = true
  1233. Part86.CanCollide = false
  1234. Part86.FormFactor = Enum.FormFactor.Custom
  1235. Part86.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1236. Part86.CFrame = CFrame.new(1434.89648, 48.9697227, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1237. Part86.BottomSurface = Enum.SurfaceType.Smooth
  1238. Part86.TopSurface = Enum.SurfaceType.Smooth
  1239. Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1240. Part86.Position = Vector3.new(1434.89648, 48.9697227, -1310.87622)
  1241. Part86.Orientation = Vector3.new(0, 90, 90)
  1242. Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1243. CylinderMesh87.Parent = Part86
  1244. CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1245. CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1246. Decal88.Parent = Part86
  1247. Decal88.Texture = "http://www.roblox.com/asset/?id=78474663"
  1248. Decal88.Face = Enum.NormalId.Bottom
  1249. Decal89.Parent = Part86
  1250. Decal89.Texture = "http://www.roblox.com/asset/?id=78474663"
  1251. Decal89.Face = Enum.NormalId.Top
  1252. Part90.Parent = Tool0
  1253. Part90.Material = Enum.Material.SmoothPlastic
  1254. Part90.BrickColor = BrickColor.new("Dark stone grey")
  1255. Part90.Transparency = 1
  1256. Part90.Rotation = Vector3.new(-90, 60, 90)
  1257. Part90.Anchored = true
  1258. Part90.CanCollide = false
  1259. Part90.FormFactor = Enum.FormFactor.Custom
  1260. Part90.Size = Vector3.new(1, 1, 1)
  1261. Part90.CFrame = CFrame.new(1436.48157, 48.7061806, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
  1262. Part90.BottomSurface = Enum.SurfaceType.Smooth
  1263. Part90.TopSurface = Enum.SurfaceType.Smooth
  1264. Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1265. Part90.Position = Vector3.new(1436.48157, 48.7061806, -1310.87183)
  1266. Part90.Orientation = Vector3.new(-30, 90, 0)
  1267. Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1268. SpecialMesh91.Parent = Part90
  1269. SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
  1270. SpecialMesh91.MeshType = Enum.MeshType.Brick
  1271. SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
  1272. Part92.Parent = Tool0
  1273. Part92.Material = Enum.Material.SmoothPlastic
  1274. Part92.BrickColor = BrickColor.new("Black")
  1275. Part92.Transparency = 1
  1276. Part92.Rotation = Vector3.new(-90, 0, 90)
  1277. Part92.Anchored = true
  1278. Part92.CanCollide = false
  1279. Part92.FormFactor = Enum.FormFactor.Custom
  1280. Part92.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1281. Part92.CFrame = CFrame.new(1434.32935, 48.9232292, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1282. Part92.BottomSurface = Enum.SurfaceType.Smooth
  1283. Part92.TopSurface = Enum.SurfaceType.Smooth
  1284. Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1285. Part92.Position = Vector3.new(1434.32935, 48.9232292, -1310.87183)
  1286. Part92.Orientation = Vector3.new(-90, 90, 0)
  1287. Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1288. SpecialMesh93.Parent = Part92
  1289. SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
  1290. SpecialMesh93.MeshType = Enum.MeshType.Brick
  1291. SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
  1292. Part94.Parent = Tool0
  1293. Part94.Material = Enum.Material.SmoothPlastic
  1294. Part94.BrickColor = BrickColor.new("Black")
  1295. Part94.Transparency = 1
  1296. Part94.Rotation = Vector3.new(180, 0, 90)
  1297. Part94.Anchored = true
  1298. Part94.CanCollide = false
  1299. Part94.FormFactor = Enum.FormFactor.Custom
  1300. Part94.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1301. Part94.CFrame = CFrame.new(1434.4989, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1302. Part94.BottomSurface = Enum.SurfaceType.Smooth
  1303. Part94.TopSurface = Enum.SurfaceType.Smooth
  1304. Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1305. Part94.Position = Vector3.new(1434.4989, 48.9062729, -1310.87183)
  1306. Part94.Orientation = Vector3.new(0, -180, -90)
  1307. Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1308. CylinderMesh95.Parent = Part94
  1309. CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
  1310. CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
  1311. Part96.Parent = Tool0
  1312. Part96.Material = Enum.Material.SmoothPlastic
  1313. Part96.BrickColor = BrickColor.new("Dark stone grey")
  1314. Part96.Transparency = 1
  1315. Part96.Rotation = Vector3.new(0, 90, 0)
  1316. Part96.Anchored = true
  1317. Part96.CanCollide = false
  1318. Part96.FormFactor = Enum.FormFactor.Custom
  1319. Part96.Size = Vector3.new(1, 1, 1)
  1320. Part96.CFrame = CFrame.new(1436.85803, 48.7793694, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1321. Part96.BottomSurface = Enum.SurfaceType.Smooth
  1322. Part96.TopSurface = Enum.SurfaceType.Smooth
  1323. Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1324. Part96.Position = Vector3.new(1436.85803, 48.7793694, -1310.87183)
  1325. Part96.Orientation = Vector3.new(0, 90, 0)
  1326. Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1327. SpecialMesh97.Parent = Part96
  1328. SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
  1329. SpecialMesh97.MeshType = Enum.MeshType.Brick
  1330. SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
  1331. Part98.Parent = Tool0
  1332. Part98.Material = Enum.Material.SmoothPlastic
  1333. Part98.BrickColor = BrickColor.new("Dark stone grey")
  1334. Part98.Transparency = 1
  1335. Part98.Rotation = Vector3.new(-90, 75, 90)
  1336. Part98.Anchored = true
  1337. Part98.CanCollide = false
  1338. Part98.FormFactor = Enum.FormFactor.Custom
  1339. Part98.Size = Vector3.new(1, 1, 1)
  1340. Part98.CFrame = CFrame.new(1437.1134, 48.5151291, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  1341. Part98.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1342. Part98.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1343. Part98.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1344. Part98.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1345. Part98.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1346. Part98.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1347. Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1348. Part98.Position = Vector3.new(1437.1134, 48.5151291, -1310.87183)
  1349. Part98.Orientation = Vector3.new(-15, 90, 0)
  1350. Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1351. SpecialMesh99.Parent = Part98
  1352. SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
  1353. SpecialMesh99.MeshType = Enum.MeshType.Brick
  1354. SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
  1355. Part100.Parent = Tool0
  1356. Part100.Material = Enum.Material.SmoothPlastic
  1357. Part100.BrickColor = BrickColor.new("Medium green")
  1358. Part100.Reflectance = 0.40000000596046
  1359. Part100.Transparency = 1
  1360. Part100.Rotation = Vector3.new(-90, 30, -90)
  1361. Part100.Anchored = true
  1362. Part100.CanCollide = false
  1363. Part100.FormFactor = Enum.FormFactor.Custom
  1364. Part100.Size = Vector3.new(1, 1, 1)
  1365. Part100.CFrame = CFrame.new(1436.54248, 48.8766403, -1310.96448, 0, 0.866027117, 0.499997079, 0, -0.49999705, 0.866027176, 1, 0, 0)
  1366. Part100.BottomSurface = Enum.SurfaceType.Smooth
  1367. Part100.TopSurface = Enum.SurfaceType.Smooth
  1368. Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1369. Part100.Position = Vector3.new(1436.54248, 48.8766403, -1310.96448)
  1370. Part100.Orientation = Vector3.new(-60, 90, 180)
  1371. Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1372. CylinderMesh101.Parent = Part100
  1373. CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
  1374. CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
  1375. Part102.Parent = Tool0
  1376. Part102.Material = Enum.Material.SmoothPlastic
  1377. Part102.BrickColor = BrickColor.new("Dark stone grey")
  1378. Part102.Transparency = 1
  1379. Part102.Rotation = Vector3.new(-90, -90, 0)
  1380. Part102.Anchored = true
  1381. Part102.CanCollide = false
  1382. Part102.FormFactor = Enum.FormFactor.Custom
  1383. Part102.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1384. Part102.CFrame = CFrame.new(1435.24072, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1385. Part102.BottomSurface = Enum.SurfaceType.Smooth
  1386. Part102.TopSurface = Enum.SurfaceType.Smooth
  1387. Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1388. Part102.Position = Vector3.new(1435.24072, 48.6010742, -1310.87183)
  1389. Part102.Orientation = Vector3.new(0, -90, 90)
  1390. Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1391. CylinderMesh103.Parent = Part102
  1392. CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1393. CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1394. Decal104.Parent = Part102
  1395. Decal104.Texture = "http://www.roblox.com/asset/?id=78474663"
  1396. Decal104.Face = Enum.NormalId.Bottom
  1397. Part105.Parent = Tool0
  1398. Part105.Material = Enum.Material.SmoothPlastic
  1399. Part105.BrickColor = BrickColor.new("Black")
  1400. Part105.Transparency = 1
  1401. Part105.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
  1402. Part105.Anchored = true
  1403. Part105.CanCollide = false
  1404. Part105.FormFactor = Enum.FormFactor.Custom
  1405. Part105.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1406. Part105.CFrame = CFrame.new(1434.84009, 49.1090317, -1310.6604, 0.777458727, 0.333219469, 0.533406675, 0.102508962, -0.903908193, 0.415261477, 0.620523751, -0.268169731, -0.73690933)
  1407. Part105.BottomSurface = Enum.SurfaceType.Smooth
  1408. Part105.TopSurface = Enum.SurfaceType.Smooth
  1409. Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1410. Part105.Position = Vector3.new(1434.84009, 49.1090317, -1310.6604)
  1411. Part105.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
  1412. Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1413. CylinderMesh106.Parent = Part105
  1414. CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  1415. CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  1416. Part107.Parent = Tool0
  1417. Part107.Material = Enum.Material.SmoothPlastic
  1418. Part107.BrickColor = BrickColor.new("Dark stone grey")
  1419. Part107.Transparency = 1
  1420. Part107.Rotation = Vector3.new(180, 0, 90)
  1421. Part107.Anchored = true
  1422. Part107.CanCollide = false
  1423. Part107.FormFactor = Enum.FormFactor.Custom
  1424. Part107.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  1425. Part107.CFrame = CFrame.new(1435.56287, 48.897789, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1426. Part107.BottomSurface = Enum.SurfaceType.Smooth
  1427. Part107.TopSurface = Enum.SurfaceType.Smooth
  1428. Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1429. Part107.Position = Vector3.new(1435.56287, 48.897789, -1310.87183)
  1430. Part107.Orientation = Vector3.new(0, -180, -90)
  1431. Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1432. CylinderMesh108.Parent = Part107
  1433. CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1434. CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1435. Part109.Parent = Tool0
  1436. Part109.Material = Enum.Material.SmoothPlastic
  1437. Part109.BrickColor = BrickColor.new("Black")
  1438. Part109.Transparency = 1
  1439. Part109.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
  1440. Part109.Anchored = true
  1441. Part109.CanCollide = false
  1442. Part109.FormFactor = Enum.FormFactor.Custom
  1443. Part109.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1444. Part109.CFrame = CFrame.new(1435.08655, 49.0373726, -1311.1228, -0.779332995, 0.114002213, 0.616152287, -0.342794985, 0.745554209, -0.571524739, -0.524529994, -0.656622052, -0.54195559)
  1445. Part109.BottomSurface = Enum.SurfaceType.Smooth
  1446. Part109.TopSurface = Enum.SurfaceType.Smooth
  1447. Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1448. Part109.Position = Vector3.new(1435.08655, 49.0373726, -1311.1228)
  1449. Part109.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
  1450. Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1451. CylinderMesh110.Parent = Part109
  1452. CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
  1453. CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
  1454. Part111.Parent = Tool0
  1455. Part111.Material = Enum.Material.SmoothPlastic
  1456. Part111.BrickColor = BrickColor.new("Nougat")
  1457. Part111.Transparency = 1
  1458. Part111.Rotation = Vector3.new(180, 0, 90)
  1459. Part111.Anchored = true
  1460. Part111.CanCollide = false
  1461. Part111.FormFactor = Enum.FormFactor.Custom
  1462. Part111.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1463. Part111.CFrame = CFrame.new(1435.56287, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1464. Part111.BottomSurface = Enum.SurfaceType.Smooth
  1465. Part111.TopSurface = Enum.SurfaceType.Smooth
  1466. Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
  1467. Part111.Position = Vector3.new(1435.56287, 48.9020348, -1310.87183)
  1468. Part111.Orientation = Vector3.new(0, -180, -90)
  1469. Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
  1470. CylinderMesh112.Parent = Part111
  1471. CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
  1472. CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
  1473. Part113.Parent = Tool0
  1474. Part113.Material = Enum.Material.SmoothPlastic
  1475. Part113.BrickColor = BrickColor.new("Brick yellow")
  1476. Part113.Transparency = 1
  1477. Part113.Rotation = Vector3.new(-60, 0, 165)
  1478. Part113.Anchored = true
  1479. Part113.CanCollide = false
  1480. Part113.FormFactor = Enum.FormFactor.Custom
  1481. Part113.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1482. Part113.CFrame = CFrame.new(1435.49927, 48.6328773, -1311.01025, -0.965924263, -0.258825004, -6.07067022e-07, 0.12940903, -0.482951164, 0.866032064, -0.22415106, 0.836521268, 0.499988496)
  1483. Part113.BottomSurface = Enum.SurfaceType.Smooth
  1484. Part113.TopSurface = Enum.SurfaceType.Smooth
  1485. Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1486. Part113.Position = Vector3.new(1435.49927, 48.6328773, -1311.01025)
  1487. Part113.Orientation = Vector3.new(-60, 0, 165)
  1488. Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1489. CylinderMesh114.Parent = Part113
  1490. CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  1491. CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  1492. Part115.Parent = Tool0
  1493. Part115.Material = Enum.Material.SmoothPlastic
  1494. Part115.BrickColor = BrickColor.new("Dark stone grey")
  1495. Part115.Transparency = 1
  1496. Part115.Rotation = Vector3.new(90, 90, 0)
  1497. Part115.Anchored = true
  1498. Part115.CanCollide = false
  1499. Part115.FormFactor = Enum.FormFactor.Custom
  1500. Part115.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1501. Part115.CFrame = CFrame.new(1435.43909, 48.8383217, -1310.84216, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1502. Part115.BottomSurface = Enum.SurfaceType.Smooth
  1503. Part115.TopSurface = Enum.SurfaceType.Smooth
  1504. Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1505. Part115.Position = Vector3.new(1435.43909, 48.8383217, -1310.84216)
  1506. Part115.Orientation = Vector3.new(0, 90, 90)
  1507. Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1508. CylinderMesh116.Parent = Part115
  1509. CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
  1510. CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
  1511. Decal117.Parent = Part115
  1512. Decal117.Texture = "http://www.roblox.com/asset/?id=78474663"
  1513. Decal117.Face = Enum.NormalId.Top
  1514. Part118.Parent = Tool0
  1515. Part118.Material = Enum.Material.SmoothPlastic
  1516. Part118.BrickColor = BrickColor.new("Dark stone grey")
  1517. Part118.Transparency = 1
  1518. Part118.Rotation = Vector3.new(-90, -90, 0)
  1519. Part118.Anchored = true
  1520. Part118.CanCollide = false
  1521. Part118.FormFactor = Enum.FormFactor.Custom
  1522. Part118.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1523. Part118.CFrame = CFrame.new(1435.35938, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1524. Part118.BottomSurface = Enum.SurfaceType.Smooth
  1525. Part118.TopSurface = Enum.SurfaceType.Smooth
  1526. Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1527. Part118.Position = Vector3.new(1435.35938, 48.6010742, -1310.87183)
  1528. Part118.Orientation = Vector3.new(0, -90, 90)
  1529. Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1530. CylinderMesh119.Parent = Part118
  1531. CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1532. CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1533. Decal120.Parent = Part118
  1534. Decal120.Texture = "http://www.roblox.com/asset/?id=78474663"
  1535. Decal120.Face = Enum.NormalId.Bottom
  1536. Part121.Parent = Tool0
  1537. Part121.Material = Enum.Material.SmoothPlastic
  1538. Part121.BrickColor = BrickColor.new("Dark stone grey")
  1539. Part121.Transparency = 1
  1540. Part121.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
  1541. Part121.Anchored = true
  1542. Part121.CanCollide = false
  1543. Part121.FormFactor = Enum.FormFactor.Custom
  1544. Part121.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1545. Part121.CFrame = CFrame.new(1435.49548, 49.0076942, -1310.61987, 0.540129244, 0.455500901, 0.707657695, 0.0107550053, 0.837061286, -0.547003508, -0.841513395, 0.303063482, 0.447222352)
  1546. Part121.BottomSurface = Enum.SurfaceType.Smooth
  1547. Part121.TopSurface = Enum.SurfaceType.Smooth
  1548. Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1549. Part121.Position = Vector3.new(1435.49548, 49.0076942, -1310.61987)
  1550. Part121.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
  1551. Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1552. CylinderMesh122.Parent = Part121
  1553. CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1554. CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1555. Part123.Parent = Tool0
  1556. Part123.Material = Enum.Material.SmoothPlastic
  1557. Part123.BrickColor = BrickColor.new("Dark stone grey")
  1558. Part123.Transparency = 1
  1559. Part123.Rotation = Vector3.new(90, 90, 0)
  1560. Part123.Anchored = true
  1561. Part123.CanCollide = false
  1562. Part123.FormFactor = Enum.FormFactor.Custom
  1563. Part123.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1564. Part123.CFrame = CFrame.new(1435.07629, 48.9167862, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1565. Part123.BottomSurface = Enum.SurfaceType.Smooth
  1566. Part123.TopSurface = Enum.SurfaceType.Smooth
  1567. Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1568. Part123.Position = Vector3.new(1435.07629, 48.9167862, -1310.87622)
  1569. Part123.Orientation = Vector3.new(0, 90, 90)
  1570. Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1571. CylinderMesh124.Parent = Part123
  1572. CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1573. CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1574. Decal125.Parent = Part123
  1575. Decal125.Texture = "http://www.roblox.com/asset/?id=78474663"
  1576. Decal125.Face = Enum.NormalId.Bottom
  1577. Decal126.Parent = Part123
  1578. Decal126.Texture = "http://www.roblox.com/asset/?id=78474663"
  1579. Decal126.Face = Enum.NormalId.Top
  1580. Part127.Parent = Tool0
  1581. Part127.Material = Enum.Material.SmoothPlastic
  1582. Part127.BrickColor = BrickColor.new("Dark stone grey")
  1583. Part127.Transparency = 1
  1584. Part127.Rotation = Vector3.new(0, 90, 0)
  1585. Part127.Anchored = true
  1586. Part127.CanCollide = false
  1587. Part127.FormFactor = Enum.FormFactor.Custom
  1588. Part127.Size = Vector3.new(1, 1, 1)
  1589. Part127.CFrame = CFrame.new(1436.00879, 48.9263649, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1590. Part127.BottomSurface = Enum.SurfaceType.Smooth
  1591. Part127.TopSurface = Enum.SurfaceType.Smooth
  1592. Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1593. Part127.Position = Vector3.new(1436.00879, 48.9263649, -1310.87183)
  1594. Part127.Orientation = Vector3.new(0, 90, 0)
  1595. Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1596. SpecialMesh128.Parent = Part127
  1597. SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
  1598. SpecialMesh128.MeshType = Enum.MeshType.Brick
  1599. SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
  1600. Part129.Parent = Tool0
  1601. Part129.Material = Enum.Material.SmoothPlastic
  1602. Part129.BrickColor = BrickColor.new("Nougat")
  1603. Part129.Transparency = 1
  1604. Part129.Rotation = Vector3.new(180, 0, 90)
  1605. Part129.Anchored = true
  1606. Part129.CanCollide = false
  1607. Part129.FormFactor = Enum.FormFactor.Custom
  1608. Part129.Size = Vector3.new(1, 1, 1)
  1609. Part129.CFrame = CFrame.new(1435.26624, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1610. Part129.BottomSurface = Enum.SurfaceType.Smooth
  1611. Part129.TopSurface = Enum.SurfaceType.Smooth
  1612. Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
  1613. Part129.Position = Vector3.new(1435.26624, 48.9020348, -1310.87183)
  1614. Part129.Orientation = Vector3.new(0, -180, -90)
  1615. Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
  1616. CylinderMesh130.Parent = Part129
  1617. CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
  1618. CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
  1619. Part131.Parent = Tool0
  1620. Part131.Material = Enum.Material.SmoothPlastic
  1621. Part131.BrickColor = BrickColor.new("Dark stone grey")
  1622. Part131.Transparency = 1
  1623. Part131.Rotation = Vector3.new(-90, -90, 0)
  1624. Part131.Anchored = true
  1625. Part131.CanCollide = false
  1626. Part131.FormFactor = Enum.FormFactor.Custom
  1627. Part131.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1628. Part131.CFrame = CFrame.new(1435.47815, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1629. Part131.BottomSurface = Enum.SurfaceType.Smooth
  1630. Part131.TopSurface = Enum.SurfaceType.Smooth
  1631. Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1632. Part131.Position = Vector3.new(1435.47815, 48.6010742, -1310.87183)
  1633. Part131.Orientation = Vector3.new(0, -90, 90)
  1634. Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1635. CylinderMesh132.Parent = Part131
  1636. CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1637. CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1638. Decal133.Parent = Part131
  1639. Decal133.Texture = "http://www.roblox.com/asset/?id=78474663"
  1640. Decal133.Face = Enum.NormalId.Bottom
  1641. Part134.Parent = Tool0
  1642. Part134.Material = Enum.Material.SmoothPlastic
  1643. Part134.Transparency = 1
  1644. Part134.Rotation = Vector3.new(-90, 60, 90)
  1645. Part134.Anchored = true
  1646. Part134.CanCollide = false
  1647. Part134.FormFactor = Enum.FormFactor.Custom
  1648. Part134.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1649. Part134.CFrame = CFrame.new(1436.03064, 48.1612701, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
  1650. Part134.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1651. Part134.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1652. Part134.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1653. Part134.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1654. Part134.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1655. Part134.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1656. Part134.Position = Vector3.new(1436.03064, 48.1612701, -1310.87183)
  1657. Part134.Orientation = Vector3.new(-30, 90, 0)
  1658. CylinderMesh135.Parent = Part134
  1659. CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1660. CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1661. Part136.Parent = Tool0
  1662. Part136.Material = Enum.Material.SmoothPlastic
  1663. Part136.Transparency = 1
  1664. Part136.Rotation = Vector3.new(0, 90, 0)
  1665. Part136.Anchored = true
  1666. Part136.CanCollide = false
  1667. Part136.FormFactor = Enum.FormFactor.Custom
  1668. Part136.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1669. Part136.CFrame = CFrame.new(1435.36523, 48.5261421, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1670. Part136.BottomSurface = Enum.SurfaceType.Smooth
  1671. Part136.TopSurface = Enum.SurfaceType.Smooth
  1672. Part136.Position = Vector3.new(1435.36523, 48.5261421, -1310.88025)
  1673. Part136.Orientation = Vector3.new(0, 90, 0)
  1674. CylinderMesh137.Parent = Part136
  1675. CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
  1676. CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
  1677. Part138.Parent = Tool0
  1678. Part138.Material = Enum.Material.SmoothPlastic
  1679. Part138.BrickColor = BrickColor.new("Dark stone grey")
  1680. Part138.Transparency = 1
  1681. Part138.Rotation = Vector3.new(90, 45, -90)
  1682. Part138.Anchored = true
  1683. Part138.CanCollide = false
  1684. Part138.FormFactor = Enum.FormFactor.Custom
  1685. Part138.Size = Vector3.new(1, 1, 1)
  1686. Part138.CFrame = CFrame.new(1436.54016, 48.4395027, -1310.87183, 0, 0.707106829, 0.707106829, 0, 0.707106829, -0.707106829, -1, 0, 0)
  1687. Part138.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1688. Part138.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1689. Part138.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1690. Part138.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1691. Part138.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1692. Part138.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1693. Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1694. Part138.Position = Vector3.new(1436.54016, 48.4395027, -1310.87183)
  1695. Part138.Orientation = Vector3.new(45, 90, 0)
  1696. Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1697. SpecialMesh139.Parent = Part138
  1698. SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  1699. SpecialMesh139.MeshType = Enum.MeshType.Brick
  1700. SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  1701. Part140.Parent = Tool0
  1702. Part140.Material = Enum.Material.SmoothPlastic
  1703. Part140.BrickColor = BrickColor.new("Dark stone grey")
  1704. Part140.Transparency = 1
  1705. Part140.Rotation = Vector3.new(0, 90, 0)
  1706. Part140.Anchored = true
  1707. Part140.CanCollide = false
  1708. Part140.FormFactor = Enum.FormFactor.Custom
  1709. Part140.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1710. Part140.CFrame = CFrame.new(1436.87463, 48.5038033, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1711. Part140.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1712. Part140.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1713. Part140.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1714. Part140.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1715. Part140.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1716. Part140.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1717. Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1718. Part140.Position = Vector3.new(1436.87463, 48.5038033, -1310.87622)
  1719. Part140.Orientation = Vector3.new(0, 90, 0)
  1720. Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1721. SpecialMesh141.Parent = Part140
  1722. SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
  1723. SpecialMesh141.MeshType = Enum.MeshType.Brick
  1724. SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
  1725. Part142.Parent = Tool0
  1726. Part142.Material = Enum.Material.SmoothPlastic
  1727. Part142.BrickColor = BrickColor.new("Lime green")
  1728. Part142.Reflectance = 0.40000000596046
  1729. Part142.Transparency = 1
  1730. Part142.Rotation = Vector3.new(180, 0, 90)
  1731. Part142.Anchored = true
  1732. Part142.CanCollide = false
  1733. Part142.FormFactor = Enum.FormFactor.Custom
  1734. Part142.Size = Vector3.new(0.228912294, 0.534128368, 0.423911244)
  1735. Part142.CFrame = CFrame.new(1433.87573, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1736. Part142.BottomSurface = Enum.SurfaceType.Smooth
  1737. Part142.TopSurface = Enum.SurfaceType.Smooth
  1738. Part142.Color = Color3.new(0, 1, 0)
  1739. Part142.Position = Vector3.new(1433.87573, 48.923233, -1310.87183)
  1740. Part142.Orientation = Vector3.new(0, -180, -90)
  1741. Part142.Color = Color3.new(0, 1, 0)
  1742. CylinderMesh143.Parent = Part142
  1743. Part144.Parent = Tool0
  1744. Part144.Material = Enum.Material.SmoothPlastic
  1745. Part144.Transparency = 1
  1746. Part144.Rotation = Vector3.new(-90, 0, 90)
  1747. Part144.Anchored = true
  1748. Part144.CanCollide = false
  1749. Part144.FormFactor = Enum.FormFactor.Custom
  1750. Part144.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1751. Part144.CFrame = CFrame.new(1436.42542, 48.0573769, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1752. Part144.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1753. Part144.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1754. Part144.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1755. Part144.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1756. Part144.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1757. Part144.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1758. Part144.Position = Vector3.new(1436.42542, 48.0573769, -1310.87183)
  1759. Part144.Orientation = Vector3.new(-90, 90, 0)
  1760. CylinderMesh145.Parent = Part144
  1761. CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
  1762. CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
  1763. Part146.Parent = Tool0
  1764. Part146.Material = Enum.Material.SmoothPlastic
  1765. Part146.BrickColor = BrickColor.new("Dark stone grey")
  1766. Part146.Transparency = 1
  1767. Part146.Rotation = Vector3.new(0, 90, 0)
  1768. Part146.Anchored = true
  1769. Part146.CanCollide = false
  1770. Part146.FormFactor = Enum.FormFactor.Custom
  1771. Part146.Size = Vector3.new(1, 1, 1)
  1772. Part146.CFrame = CFrame.new(1436.98523, 48.2367706, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1773. Part146.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1774. Part146.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1775. Part146.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1776. Part146.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1777. Part146.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1778. Part146.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1779. Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1780. Part146.Position = Vector3.new(1436.98523, 48.2367706, -1310.87183)
  1781. Part146.Orientation = Vector3.new(0, 90, 0)
  1782. Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1783. SpecialMesh147.Parent = Part146
  1784. SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
  1785. SpecialMesh147.MeshType = Enum.MeshType.Brick
  1786. SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
  1787. Part148.Parent = Tool0
  1788. Part148.Material = Enum.Material.SmoothPlastic
  1789. Part148.Transparency = 1
  1790. Part148.Rotation = Vector3.new(-90, -60, -90)
  1791. Part148.Anchored = true
  1792. Part148.CanCollide = false
  1793. Part148.FormFactor = Enum.FormFactor.Custom
  1794. Part148.Size = Vector3.new(1, 1, 1)
  1795. Part148.CFrame = CFrame.new(1436.81775, 48.1568336, -1310.87183, 0, 0.499998987, -0.866025984, 0, 0.866025984, 0.499998987, 1, 0, 0)
  1796. Part148.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1797. Part148.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1798. Part148.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1799. Part148.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1800. Part148.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1801. Part148.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1802. Part148.Position = Vector3.new(1436.81775, 48.1568336, -1310.87183)
  1803. Part148.Orientation = Vector3.new(-30, -90, 0)
  1804. CylinderMesh149.Parent = Part148
  1805. CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
  1806. CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
  1807. Part150.Parent = Tool0
  1808. Part150.Material = Enum.Material.SmoothPlastic
  1809. Part150.BrickColor = BrickColor.new("Brick yellow")
  1810. Part150.Transparency = 1
  1811. Part150.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
  1812. Part150.Anchored = true
  1813. Part150.CanCollide = false
  1814. Part150.FormFactor = Enum.FormFactor.Custom
  1815. Part150.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1816. Part150.CFrame = CFrame.new(1435.27368, 48.9770622, -1311.07397, -0.958352566, 0.25458324, 0.129413933, -0.272977144, -0.683412135, -0.677075565, -0.0839290544, -0.684204161, 0.724445105)
  1817. Part150.BottomSurface = Enum.SurfaceType.Smooth
  1818. Part150.TopSurface = Enum.SurfaceType.Smooth
  1819. Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1820. Part150.Position = Vector3.new(1435.27368, 48.9770622, -1311.07397)
  1821. Part150.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
  1822. Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1823. CylinderMesh151.Parent = Part150
  1824. CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
  1825. CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
  1826. Part152.Parent = Tool0
  1827. Part152.Material = Enum.Material.SmoothPlastic
  1828. Part152.BrickColor = BrickColor.new("Medium green")
  1829. Part152.Reflectance = 0.40000000596046
  1830. Part152.Transparency = 1
  1831. Part152.Rotation = Vector3.new(-90, 30, -105)
  1832. Part152.Anchored = true
  1833. Part152.CanCollide = false
  1834. Part152.FormFactor = Enum.FormFactor.Custom
  1835. Part152.Size = Vector3.new(1, 1, 1)
  1836. Part152.CFrame = CFrame.new(1436.76379, 48.7488365, -1310.92346, -0.224138901, 0.836518228, 0.499998987, 0.129404947, -0.482963115, 0.866025984, 0.965927541, 0.258812487, 1.22192728e-06)
  1837. Part152.BottomSurface = Enum.SurfaceType.Smooth
  1838. Part152.TopSurface = Enum.SurfaceType.Smooth
  1839. Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1840. Part152.Position = Vector3.new(1436.76379, 48.7488365, -1310.92346)
  1841. Part152.Orientation = Vector3.new(-60, 90, 165)
  1842. Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1843. CylinderMesh153.Parent = Part152
  1844. CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
  1845. CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
  1846. Part154.Parent = Tool0
  1847. Part154.Material = Enum.Material.SmoothPlastic
  1848. Part154.BrickColor = BrickColor.new("Dark stone grey")
  1849. Part154.Transparency = 1
  1850. Part154.Rotation = Vector3.new(-105, 75, 90)
  1851. Part154.Anchored = true
  1852. Part154.CanCollide = false
  1853. Part154.FormFactor = Enum.FormFactor.Custom
  1854. Part154.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1855. Part154.CFrame = CFrame.new(1434.85571, 49.1141472, -1311.08923, 0, -0.258817911, 0.965926111, -0.258811951, 0.93301481, 0.249999404, -0.96592778, -0.24999322, -0.0669851676)
  1856. Part154.BottomSurface = Enum.SurfaceType.Smooth
  1857. Part154.TopSurface = Enum.SurfaceType.Smooth
  1858. Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1859. Part154.Position = Vector3.new(1434.85571, 49.1141472, -1311.08923)
  1860. Part154.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
  1861. Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1862. CylinderMesh155.Parent = Part154
  1863. CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1864. CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1865. Part156.Parent = Tool0
  1866. Part156.Material = Enum.Material.SmoothPlastic
  1867. Part156.BrickColor = BrickColor.new("Dark stone grey")
  1868. Part156.Transparency = 1
  1869. Part156.Rotation = Vector3.new(90, 90, 0)
  1870. Part156.Anchored = true
  1871. Part156.CanCollide = false
  1872. Part156.FormFactor = Enum.FormFactor.Custom
  1873. Part156.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1874. Part156.CFrame = CFrame.new(1433.8822, 48.9214859, -1310.87183, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1875. Part156.BottomSurface = Enum.SurfaceType.Smooth
  1876. Part156.TopSurface = Enum.SurfaceType.Smooth
  1877. Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1878. Part156.Position = Vector3.new(1433.8822, 48.9214859, -1310.87183)
  1879. Part156.Orientation = Vector3.new(0, 90, 90)
  1880. Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1881. SpecialMesh157.Parent = Part156
  1882. SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
  1883. SpecialMesh157.MeshType = Enum.MeshType.Brick
  1884. SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
  1885. Part158.Parent = Tool0
  1886. Part158.Material = Enum.Material.SmoothPlastic
  1887. Part158.Transparency = 1
  1888. Part158.Rotation = Vector3.new(-90, 0, 90)
  1889. Part158.Anchored = true
  1890. Part158.CanCollide = false
  1891. Part158.FormFactor = Enum.FormFactor.Custom
  1892. Part158.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1893. Part158.CFrame = CFrame.new(1434.66418, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1894. Part158.BottomSurface = Enum.SurfaceType.Smooth
  1895. Part158.TopSurface = Enum.SurfaceType.Smooth
  1896. Part158.Position = Vector3.new(1434.66418, 48.9062729, -1310.87183)
  1897. Part158.Orientation = Vector3.new(-90, 90, 0)
  1898. SpecialMesh159.Parent = Part158
  1899. SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
  1900. SpecialMesh159.MeshType = Enum.MeshType.Brick
  1901. SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
  1902. Part160.Parent = Tool0
  1903. Part160.Material = Enum.Material.SmoothPlastic
  1904. Part160.Transparency = 1
  1905. Part160.Rotation = Vector3.new(-90, 30, 90)
  1906. Part160.Anchored = true
  1907. Part160.CanCollide = false
  1908. Part160.FormFactor = Enum.FormFactor.Custom
  1909. Part160.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1910. Part160.CFrame = CFrame.new(1436.1012, 48.0875969, -1310.87183, 0, -0.866025388, 0.500000238, 0, 0.500000238, 0.866025388, -1, 0, 0)
  1911. Part160.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1912. Part160.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1913. Part160.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1914. Part160.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1915. Part160.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1916. Part160.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1917. Part160.Position = Vector3.new(1436.1012, 48.0875969, -1310.87183)
  1918. Part160.Orientation = Vector3.new(-60, 90, 0)
  1919. CylinderMesh161.Parent = Part160
  1920. CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1921. CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1922. Part162.Parent = Tool0
  1923. Part162.Material = Enum.Material.SmoothPlastic
  1924. Part162.BrickColor = BrickColor.new("Dark stone grey")
  1925. Part162.Transparency = 1
  1926. Part162.Rotation = Vector3.new(0, 90, 0)
  1927. Part162.Anchored = true
  1928. Part162.CanCollide = false
  1929. Part162.FormFactor = Enum.FormFactor.Custom
  1930. Part162.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1931. Part162.CFrame = CFrame.new(1436.875, 48.33424, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1932. Part162.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1933. Part162.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1934. Part162.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1935. Part162.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1936. Part162.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1937. Part162.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1938. Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1939. Part162.Position = Vector3.new(1436.875, 48.33424, -1310.87622)
  1940. Part162.Orientation = Vector3.new(0, 90, 0)
  1941. Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1942. SpecialMesh163.Parent = Part162
  1943. SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1944. SpecialMesh163.MeshType = Enum.MeshType.Brick
  1945. SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1946. Part164.Parent = Tool0
  1947. Part164.Material = Enum.Material.SmoothPlastic
  1948. Part164.BrickColor = BrickColor.new("Dark stone grey")
  1949. Part164.Transparency = 1
  1950. Part164.Rotation = Vector3.new(180, 0, 90)
  1951. Part164.Anchored = true
  1952. Part164.CanCollide = false
  1953. Part164.FormFactor = Enum.FormFactor.Custom
  1954. Part164.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1955. Part164.CFrame = CFrame.new(1435.66467, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1956. Part164.BottomSurface = Enum.SurfaceType.Smooth
  1957. Part164.TopSurface = Enum.SurfaceType.Smooth
  1958. Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1959. Part164.Position = Vector3.new(1435.66467, 48.9020348, -1310.87183)
  1960. Part164.Orientation = Vector3.new(0, -180, -90)
  1961. Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1962. CylinderMesh165.Parent = Part164
  1963. CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
  1964. CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
  1965. Part166.Parent = Tool0
  1966. Part166.Material = Enum.Material.SmoothPlastic
  1967. Part166.BrickColor = BrickColor.new("Brick yellow")
  1968. Part166.Transparency = 1
  1969. Part166.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
  1970. Part166.Anchored = true
  1971. Part166.CanCollide = false
  1972. Part166.FormFactor = Enum.FormFactor.Custom
  1973. Part166.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1974. Part166.CFrame = CFrame.new(1435.34644, 48.8009377, -1311.09277, -0.901220024, 0.370889217, -0.224151224, -0.383668005, -0.923353195, 0.0147557557, -0.201498002, 0.0992978215, 0.97444272)
  1975. Part166.BottomSurface = Enum.SurfaceType.Smooth
  1976. Part166.TopSurface = Enum.SurfaceType.Smooth
  1977. Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1978. Part166.Position = Vector3.new(1435.34644, 48.8009377, -1311.09277)
  1979. Part166.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
  1980. Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1981. CylinderMesh167.Parent = Part166
  1982. CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
  1983. CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
  1984. Part168.Name = "Smooth Block Model"
  1985. Part168.Parent = Tool0
  1986. Part168.Material = Enum.Material.SmoothPlastic
  1987. Part168.BrickColor = BrickColor.new("Dark stone grey")
  1988. Part168.Transparency = 1
  1989. Part168.Rotation = Vector3.new(90, 15, 90)
  1990. Part168.Anchored = true
  1991. Part168.CanCollide = false
  1992. Part168.FormFactor = Enum.FormFactor.Custom
  1993. Part168.Size = Vector3.new(1, 1, 1)
  1994. Part168.CFrame = CFrame.new(1435.82715, 48.8071632, -1310.87183, 0, -0.965925872, 0.258818984, 0, -0.258818984, -0.965925872, 1, 0, 0)
  1995. Part168.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1996. Part168.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1997. Part168.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1998. Part168.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1999. Part168.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2000. Part168.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2001. Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2002. Part168.Position = Vector3.new(1435.82715, 48.8071632, -1310.87183)
  2003. Part168.Orientation = Vector3.new(75, 90, 180)
  2004. Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2005. SpecialMesh169.Parent = Part168
  2006. SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
  2007. SpecialMesh169.MeshType = Enum.MeshType.Wedge
  2008. SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
  2009. Part170.Name = "Smooth Block Model"
  2010. Part170.Parent = Tool0
  2011. Part170.Material = Enum.Material.SmoothPlastic
  2012. Part170.BrickColor = BrickColor.new("Dark stone grey")
  2013. Part170.Transparency = 1
  2014. Part170.Rotation = Vector3.new(-90, -15, 90)
  2015. Part170.Anchored = true
  2016. Part170.CanCollide = false
  2017. Part170.FormFactor = Enum.FormFactor.Custom
  2018. Part170.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  2019. Part170.CFrame = CFrame.new(1435.77759, 48.6315002, -1310.87183, 0, -0.965925872, -0.258818984, 0, -0.258818984, 0.965925872, -1, 0, 0)
  2020. Part170.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2021. Part170.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2022. Part170.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2023. Part170.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2024. Part170.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2025. Part170.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2026. Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2027. Part170.Position = Vector3.new(1435.77759, 48.6315002, -1310.87183)
  2028. Part170.Orientation = Vector3.new(-75, -90, 180)
  2029. Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2030. SpecialMesh171.Parent = Part170
  2031. SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
  2032. SpecialMesh171.MeshType = Enum.MeshType.Wedge
  2033. SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
  2034. Part172.Parent = Tool0
  2035. Part172.Material = Enum.Material.SmoothPlastic
  2036. Part172.BrickColor = BrickColor.new("Dark stone grey")
  2037. Part172.Transparency = 1
  2038. Part172.Rotation = Vector3.new(-90, 0, 90)
  2039. Part172.Anchored = true
  2040. Part172.CanCollide = false
  2041. Part172.FormFactor = Enum.FormFactor.Custom
  2042. Part172.Size = Vector3.new(1, 1, 1)
  2043. Part172.CFrame = CFrame.new(1436.74353, 48.5165329, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2044. Part172.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2045. Part172.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2046. Part172.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2047. Part172.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2048. Part172.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2049. Part172.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2050. Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2051. Part172.Position = Vector3.new(1436.74353, 48.5165329, -1310.87183)
  2052. Part172.Orientation = Vector3.new(-90, 90, 0)
  2053. Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2054. SpecialMesh173.Parent = Part172
  2055. SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  2056. SpecialMesh173.MeshType = Enum.MeshType.Brick
  2057. SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  2058. Part174.Parent = Tool0
  2059. Part174.Material = Enum.Material.SmoothPlastic
  2060. Part174.Transparency = 1
  2061. Part174.Rotation = Vector3.new(90, 75, -90)
  2062. Part174.Anchored = true
  2063. Part174.CanCollide = false
  2064. Part174.FormFactor = Enum.FormFactor.Custom
  2065. Part174.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2066. Part174.CFrame = CFrame.new(1435.75964, 48.5609169, -1310.87622, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
  2067. Part174.BottomSurface = Enum.SurfaceType.Smooth
  2068. Part174.TopSurface = Enum.SurfaceType.Smooth
  2069. Part174.Position = Vector3.new(1435.75964, 48.5609169, -1310.87622)
  2070. Part174.Orientation = Vector3.new(15, 90, 0)
  2071. SpecialMesh175.Parent = Part174
  2072. SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
  2073. SpecialMesh175.MeshType = Enum.MeshType.Brick
  2074. SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
  2075. Part176.Parent = Tool0
  2076. Part176.Material = Enum.Material.SmoothPlastic
  2077. Part176.BrickColor = BrickColor.new("Nougat")
  2078. Part176.Transparency = 1
  2079. Part176.Rotation = Vector3.new(180, 0, 90)
  2080. Part176.Anchored = true
  2081. Part176.CanCollide = false
  2082. Part176.FormFactor = Enum.FormFactor.Custom
  2083. Part176.Size = Vector3.new(0.415433139, 0.313694388, 0.423911244)
  2084. Part176.CFrame = CFrame.new(1434.67273, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  2085. Part176.BottomSurface = Enum.SurfaceType.Smooth
  2086. Part176.TopSurface = Enum.SurfaceType.Smooth
  2087. Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
  2088. Part176.Position = Vector3.new(1434.67273, 48.9062729, -1310.87183)
  2089. Part176.Orientation = Vector3.new(0, -180, -90)
  2090. Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
  2091. CylinderMesh177.Parent = Part176
  2092. Part178.Parent = Tool0
  2093. Part178.Material = Enum.Material.SmoothPlastic
  2094. Part178.BrickColor = BrickColor.new("Brick yellow")
  2095. Part178.Transparency = 1
  2096. Part178.Rotation = Vector3.new(-90, 0, 90)
  2097. Part178.Anchored = true
  2098. Part178.CanCollide = false
  2099. Part178.FormFactor = Enum.FormFactor.Custom
  2100. Part178.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2101. Part178.CFrame = CFrame.new(1434.84229, 48.626503, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2102. Part178.BottomSurface = Enum.SurfaceType.Smooth
  2103. Part178.TopSurface = Enum.SurfaceType.Smooth
  2104. Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2105. Part178.Position = Vector3.new(1434.84229, 48.626503, -1310.87183)
  2106. Part178.Orientation = Vector3.new(-90, 90, 0)
  2107. Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2108. SpecialMesh179.Parent = Part178
  2109. SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
  2110. SpecialMesh179.MeshType = Enum.MeshType.Brick
  2111. SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
  2112. Part180.Parent = Tool0
  2113. Part180.Material = Enum.Material.SmoothPlastic
  2114. Part180.BrickColor = BrickColor.new("Black")
  2115. Part180.Transparency = 1
  2116. Part180.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
  2117. Part180.Anchored = true
  2118. Part180.CanCollide = false
  2119. Part180.FormFactor = Enum.FormFactor.Custom
  2120. Part180.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  2121. Part180.CFrame = CFrame.new(1435.07532, 49.0545235, -1310.66675, 0.462388188, -0.0240549594, 0.886351287, 0.2793791, 0.95266664, -0.119890675, -0.841513276, 0.303064078, 0.447222203)
  2122. Part180.BottomSurface = Enum.SurfaceType.Smooth
  2123. Part180.TopSurface = Enum.SurfaceType.Smooth
  2124. Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
  2125. Part180.Position = Vector3.new(1435.07532, 49.0545235, -1310.66675)
  2126. Part180.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
  2127. Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
  2128. CylinderMesh181.Parent = Part180
  2129. CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  2130. CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  2131. Part182.Parent = Tool0
  2132. Part182.Material = Enum.Material.SmoothPlastic
  2133. Part182.BrickColor = BrickColor.new("Dark stone grey")
  2134. Part182.Transparency = 1
  2135. Part182.Rotation = Vector3.new(180, 0, 90)
  2136. Part182.Anchored = true
  2137. Part182.CanCollide = false
  2138. Part182.FormFactor = Enum.FormFactor.Custom
  2139. Part182.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2140. Part182.CFrame = CFrame.new(1433.90967, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  2141. Part182.BottomSurface = Enum.SurfaceType.Smooth
  2142. Part182.TopSurface = Enum.SurfaceType.Smooth
  2143. Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2144. Part182.Position = Vector3.new(1433.90967, 48.9232292, -1310.87183)
  2145. Part182.Orientation = Vector3.new(0, -180, -90)
  2146. Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2147. CylinderMesh183.Parent = Part182
  2148. CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  2149. CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  2150. Part184.Parent = Tool0
  2151. Part184.Material = Enum.Material.SmoothPlastic
  2152. Part184.BrickColor = BrickColor.new("Dark stone grey")
  2153. Part184.Transparency = 1
  2154. Part184.Rotation = Vector3.new(-90, 75, 90)
  2155. Part184.Anchored = true
  2156. Part184.CanCollide = false
  2157. Part184.FormFactor = Enum.FormFactor.Custom
  2158. Part184.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2159. Part184.CFrame = CFrame.new(1435.92761, 48.4653969, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  2160. Part184.BottomSurface = Enum.SurfaceType.Smooth
  2161. Part184.TopSurface = Enum.SurfaceType.Smooth
  2162. Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2163. Part184.Position = Vector3.new(1435.92761, 48.4653969, -1310.87183)
  2164. Part184.Orientation = Vector3.new(-15, 90, 0)
  2165. Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2166. SpecialMesh185.Parent = Part184
  2167. SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
  2168. SpecialMesh185.MeshType = Enum.MeshType.Brick
  2169. SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
  2170. Part186.Parent = Tool0
  2171. Part186.Material = Enum.Material.SmoothPlastic
  2172. Part186.Transparency = 1
  2173. Part186.Rotation = Vector3.new(-90, 0, 90)
  2174. Part186.Anchored = true
  2175. Part186.CanCollide = false
  2176. Part186.FormFactor = Enum.FormFactor.Custom
  2177. Part186.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2178. Part186.CFrame = CFrame.new(1434.48193, 49.1648102, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2179. Part186.BottomSurface = Enum.SurfaceType.Smooth
  2180. Part186.TopSurface = Enum.SurfaceType.Smooth
  2181. Part186.Position = Vector3.new(1434.48193, 49.1648102, -1310.87183)
  2182. Part186.Orientation = Vector3.new(-90, 90, 0)
  2183. SpecialMesh187.Parent = Part186
  2184. SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
  2185. SpecialMesh187.MeshType = Enum.MeshType.Brick
  2186. SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
  2187. IntValue188.Name = "Ammo"
  2188. IntValue188.Parent = Tool0
  2189. IntValue188.Value = 25
  2190. IntValue189.Name = "ClipSize"
  2191. IntValue189.Parent = Tool0
  2192. IntValue189.Value = 25
  2193. IntValue190.Name = "LethalGrenades"
  2194. IntValue190.Parent = Tool0
  2195. IntValue190.Value = 15
  2196. IntValue191.Name = "StoredAmmo"
  2197. IntValue191.Parent = Tool0
  2198. IntValue191.Value = 400
  2199. IntValue192.Name = "TacticalGrenades"
  2200. IntValue192.Parent = Tool0
  2201. IntValue192.Value = 15
  2202. Script193.Name = "serverMain"
  2203. Script193.Parent = Tool0
  2204. table.insert(cors,sandbox(Script193,function()
  2205. local Plyr = script:WaitForChild("Plyr")
  2206.  
  2207. local Gun = script.Parent
  2208. local Handle = Gun:WaitForChild("Handle")
  2209.  
  2210. local V3 = Vector3.new
  2211. local CF, CFANG = CFrame.new, CFrame.Angles
  2212.  
  2213. local RAD = math.rad
  2214.  
  2215. local numLerp = function(A, B, Alpha)
  2216. return A + (B - A) * Alpha
  2217. end
  2218.  
  2219. local inList = function(Element, List)
  2220. for _, v in pairs(List) do
  2221. if v == Element then
  2222. return true
  2223. end
  2224. end
  2225. return false
  2226. end
  2227.  
  2228. local getObject = function(Model, Class, Name)
  2229. for _, v in pairs(Model:GetChildren()) do
  2230. if v:IsA(Class) and v.Name == Name then
  2231. return v
  2232. end
  2233. end
  2234. return nil
  2235. end
  2236.  
  2237. ----------------------------------------------------------------------
  2238. --------------------[ IGNORE MODEL HANDLING ]-------------------------
  2239. ----------------------------------------------------------------------
  2240.  
  2241. wait(math.random(0, 20) / 40) --This is to prevent more than one ignoreModel from being created
  2242.  
  2243. if _G.ignoreCode then --If the ignoreCode already exists, then the script creates the ignoreModel
  2244. --[[
  2245. The purpose of this is so that every gun in a game that uses this gun kit will share one ignoreModel. That way,
  2246. bullet trails, bullet holes, and other fake arms will be ignored by the gun which makes the bullets more likely to
  2247. hit a character part
  2248. --]]
  2249. if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
  2250. local ignoreModel = Instance.new("Model")
  2251. ignoreModel.Name = "ignoreModel_".._G.ignoreCode
  2252. ignoreModel.Parent = game.Workspace
  2253.  
  2254. local grenadeFolder = Instance.new("Model")
  2255. grenadeFolder.Name = "grenadeFolder"
  2256. grenadeFolder.Parent = ignoreModel
  2257.  
  2258. spawn(function()
  2259. while true do
  2260. ignoreModel.Parent = game.Workspace
  2261. grenadeFolder.Parent = ignoreModel
  2262. wait(1 / 20)
  2263. end
  2264. end)
  2265. end
  2266.  
  2267. script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
  2268. else
  2269. --[[
  2270. If there isn't already an ignoreCode, then this creates one. The purpose of it being random is so that if there is
  2271. an ignoreModel for something else in the game, the script won't end up placing the ignored objects in that ignoreModel
  2272. --]]
  2273. _G.ignoreCode = math.random(1, 1e4)
  2274.  
  2275. if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
  2276. local ignoreModel = Instance.new("Model")
  2277. ignoreModel.Name = "ignoreModel_".._G.ignoreCode
  2278. ignoreModel.Parent = game.Workspace
  2279.  
  2280. local grenadeFolder = Instance.new("Model")
  2281. grenadeFolder.Name = "grenadeFolder"
  2282. grenadeFolder.Parent = ignoreModel
  2283.  
  2284. spawn(function()
  2285. while true do
  2286. ignoreModel.Parent = game.Workspace
  2287. grenadeFolder.Parent = ignoreModel
  2288. wait(1 / 20)
  2289. end
  2290. end)
  2291. end
  2292.  
  2293. script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
  2294. end
  2295.  
  2296. spawn(function()
  2297. --[[
  2298. This function deletes any Player Folders that were left in the ignoreModel because the player left the game without
  2299. deselecting the Gun first
  2300. --]]
  2301. repeat wait() until _G.ignoreCode
  2302. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_".._G.ignoreCode)
  2303. while true do
  2304. for _, gunIgnore in pairs(ignoreModel:GetChildren()) do
  2305. if gunIgnore.Name ~= "grenadeFolder" then
  2306. if (not game.Players:FindFirstChild(gunIgnore.Name:sub(11))) then
  2307. gunIgnore:Destroy()
  2308. end
  2309. end
  2310. end
  2311. wait(1 / 20)
  2312. end
  2313. end)
  2314.  
  2315. ----------------------------------------------------------------------
  2316. --------------------[ RESET CAMERA ]----------------------------------
  2317. ----------------------------------------------------------------------
  2318.  
  2319. Gun.ChildRemoved:connect(function(Child)
  2320. if Child == Handle and Plyr.Value then
  2321. local ignoreCode = Gun:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value
  2322. local resetCam = script:WaitForChild("resetCam")
  2323. resetCam:WaitForChild("ignoreCode").Value = ignoreCode
  2324. resetCam.Parent = Plyr.Value.PlayerGui
  2325. end
  2326. end)
  2327.  
  2328. ----------------------------------------------------------------------
  2329. --------------------[ GET WELD CFRAMES ]------------------------------
  2330. ----------------------------------------------------------------------
  2331.  
  2332. for _, v in pairs(Gun:GetChildren()) do
  2333. if v:IsA("BasePart") and v ~= Handle then
  2334. if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
  2335. if (not v:FindFirstChild("weldCF")) then
  2336. local weldCF = Instance.new("CFrameValue")
  2337. weldCF.Name = "weldCF"
  2338. weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
  2339. weldCF.Parent = v
  2340. end
  2341. if string.sub(v.Name, 1, 3) == "Mag" then
  2342. if (not v:FindFirstChild("magTrans")) then
  2343. local magTrans = Instance.new("NumberValue")
  2344. magTrans.Name = "magTrans"
  2345. magTrans.Value = v.Transparency
  2346. magTrans.Parent = v
  2347. end
  2348. end
  2349. v.Anchored = true
  2350. v.CanCollide = false
  2351. end
  2352. end
  2353. Handle.Anchored = false
  2354. Handle.CanCollide = true
  2355.  
  2356. ----------------------------------------------------------------------
  2357. --------------------[ GUNSETUP HANDLING ]-----------------------------
  2358. ----------------------------------------------------------------------
  2359.  
  2360. local gunSetup = script:WaitForChild("gunSetup")
  2361. function gunSetup.OnServerInvoke(Player, Vars)
  2362.  
  2363. --------------------[ CREATING IGNORE MODELS ]--------------------------------
  2364.  
  2365. local gunIgnore = Instance.new("Model")
  2366. gunIgnore.Name = "gunIgnore_"..Player.Name
  2367. gunIgnore.Parent = Vars.ignoreModel
  2368.  
  2369. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  2370.  
  2371. Vars.Humanoid.AutoRotate = false
  2372.  
  2373. Vars.Shoulders.Right.Part1 = nil
  2374. Vars.Shoulders.Left.Part1 = nil
  2375.  
  2376. local playerFolder = Instance.new("Model")
  2377. playerFolder.Name = "playerFolder"
  2378. playerFolder.Parent = gunIgnore
  2379.  
  2380. local headBase = Instance.new("Part")
  2381. headBase.Transparency = 1
  2382. headBase.Name = "headBase"
  2383. headBase.CanCollide = false
  2384. headBase.FormFactor = Enum.FormFactor.Custom
  2385. headBase.Size = V3(0.2, 0.2, 0.2)
  2386. headBase.BottomSurface = Enum.SurfaceType.Smooth
  2387. headBase.TopSurface = Enum.SurfaceType.Smooth
  2388. headBase.Parent = playerFolder
  2389.  
  2390. local headWeld = Instance.new("Weld")
  2391. headWeld.Part0 = Vars.Torso
  2392. headWeld.Part1 = headBase
  2393. headWeld.C0 = CF(0, 1.5, 0)
  2394. headWeld.Parent = Vars.Torso
  2395.  
  2396. local headWeld2 = Instance.new("Weld")
  2397. headWeld2.Part0 = headBase
  2398. headWeld2.Part1 = Vars.Head
  2399. headWeld2.Parent = headBase
  2400.  
  2401. local animBase = Instance.new("Part")
  2402. animBase.Transparency = 1
  2403. animBase.Name = "animBase"
  2404. animBase.CanCollide = false
  2405. animBase.FormFactor = Enum.FormFactor.Custom
  2406. animBase.Size = V3(0.2, 0.2, 0.2)
  2407. animBase.BottomSurface = Enum.SurfaceType.Smooth
  2408. animBase.TopSurface = Enum.SurfaceType.Smooth
  2409. animBase.Parent = playerFolder
  2410.  
  2411. local animWeld = Instance.new("Weld")
  2412. animWeld.Part0 = animBase
  2413. animWeld.Part1 = headBase
  2414. animWeld.Parent = animBase
  2415.  
  2416. local armBase = Instance.new("Part")
  2417. armBase.Transparency = 1
  2418. armBase.Name = "ArmBase"
  2419. armBase.CanCollide = false
  2420. armBase.FormFactor = Enum.FormFactor.Custom
  2421. armBase.Size = V3(0.2, 0.2, 0.2)
  2422. armBase.BottomSurface = Enum.SurfaceType.Smooth
  2423. armBase.TopSurface = Enum.SurfaceType.Smooth
  2424. armBase.Parent = playerFolder
  2425.  
  2426. local ABWeld = Instance.new("Weld")
  2427. ABWeld.Part0 = armBase
  2428. ABWeld.Part1 = animBase
  2429. ABWeld.Parent = armBase
  2430.  
  2431. local LArmBase = Instance.new("Part")
  2432. LArmBase.Transparency = 1
  2433. LArmBase.Name = "LArmBase"
  2434. LArmBase.CanCollide = false
  2435. LArmBase.FormFactor = Enum.FormFactor.Custom
  2436. LArmBase.Size = V3(0.2, 0.2, 0.2)
  2437. LArmBase.BottomSurface = Enum.SurfaceType.Smooth
  2438. LArmBase.TopSurface = Enum.SurfaceType.Smooth
  2439. LArmBase.Parent = playerFolder
  2440.  
  2441. local RArmBase = Instance.new("Part")
  2442. RArmBase.Transparency = 1
  2443. RArmBase.Name = "RArmBase"
  2444. RArmBase.CanCollide = false
  2445. RArmBase.FormFactor = Enum.FormFactor.Custom
  2446. RArmBase.Size = V3(0.2, 0.2, 0.2)
  2447. RArmBase.BottomSurface = Enum.SurfaceType.Smooth
  2448. RArmBase.TopSurface = Enum.SurfaceType.Smooth
  2449. RArmBase.Parent = playerFolder
  2450.  
  2451. local LWeld = Instance.new("Weld")
  2452. LWeld.Name = "LWeld"
  2453. LWeld.Part0 = armBase
  2454. LWeld.Part1 = LArmBase
  2455. LWeld.C0 = Vars.armC0[1]
  2456. LWeld.C1 = Vars.leftArmC1
  2457. LWeld.Parent = armBase
  2458.  
  2459. local RWeld = Instance.new("Weld")
  2460. RWeld.Name = "RWeld"
  2461. RWeld.Part0 = armBase
  2462. RWeld.Part1 = RArmBase
  2463. RWeld.C0 = Vars.armC0[2]
  2464. RWeld.C1 = Vars.rightArmC1
  2465. RWeld.Parent = armBase
  2466.  
  2467. local LWeld2 = Instance.new("Weld")
  2468. LWeld2.Name = "LWeld"
  2469. LWeld2.Part0 = LArmBase
  2470. LWeld2.Part1 = Vars.LArm
  2471. LWeld2.Parent = LArmBase
  2472.  
  2473. local RWeld2 = Instance.new("Weld")
  2474. RWeld2.Name = "RWeld"
  2475. RWeld2.Part0 = RArmBase
  2476. RWeld2.Part1 = Vars.RArm
  2477. RWeld2.Parent = RArmBase
  2478.  
  2479. local LLegWeld = Instance.new("Weld")
  2480. LLegWeld.Name = "LLegWeld"
  2481. LLegWeld.Part0 = Vars.Torso
  2482. LLegWeld.Part1 = nil
  2483. LLegWeld.C0 = CF(-0.5, -2, 0)
  2484. LLegWeld.Parent = Vars.Torso
  2485.  
  2486. local RLegWeld = Instance.new("Weld")
  2487. RLegWeld.Name = "RLegWeld"
  2488. RLegWeld.Part0 = Vars.Torso
  2489. RLegWeld.Part1 = nil
  2490. RLegWeld.C0 = CF(0.5, -2, 0)
  2491. RLegWeld.Parent = Vars.Torso
  2492.  
  2493. for _, Tab in pairs(Vars.gunParts) do
  2494. Tab.Obj.Anchored = false
  2495. local Weld = Instance.new("Weld")
  2496. Weld.Name = "mainWeld"
  2497. Weld.Part0 = Vars.Handle
  2498. Weld.Part1 = Tab.Obj
  2499. Weld.C0 = Tab.Obj.weldCF.Value
  2500. Weld.Parent = Vars.Handle
  2501. Tab.Weld = Weld
  2502. end
  2503.  
  2504. return gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, Vars.gunParts
  2505. end
  2506.  
  2507. ----------------------------------------------------------------------
  2508. --------------------[ TWEENJOINT HANDLING ]---------------------------
  2509. ----------------------------------------------------------------------
  2510.  
  2511. local createTweenIndicator = script:WaitForChild("createTweenIndicator")
  2512. function createTweenIndicator.OnServerInvoke(_, Joint, newCode)
  2513. local tweenIndicator = nil
  2514. if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
  2515. tweenIndicator = Instance.new("IntValue")
  2516. tweenIndicator.Name = "tweenCode"
  2517. tweenIndicator.Value = newCode
  2518. tweenIndicator.Parent = Joint
  2519. else
  2520. tweenIndicator = Joint.tweenCode
  2521. tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
  2522. end
  2523. return tweenIndicator
  2524. end
  2525.  
  2526. local lerpCF = script:WaitForChild("lerpCF")
  2527. function lerpCF.OnServerInvoke(_, Joint, Prop, startCF, endCF, Alpha)
  2528. spawn(function()
  2529. Joint[Prop] = startCF:lerp(endCF, Alpha)
  2530. end)
  2531. end
  2532.  
  2533. local deleteTweenIndicator = script:WaitForChild("deleteTweenIndicator")
  2534. function deleteTweenIndicator.OnServerInvoke(_, tweenIndicator, newCode)
  2535. if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
  2536. tweenIndicator:Destroy()
  2537. end
  2538. end
  2539.  
  2540. ----------------------------------------------------------------------
  2541. --------------------[ BULLET IMPACT HANDLING ]------------------------
  2542. ----------------------------------------------------------------------
  2543.  
  2544. local createBulletImpact = script:WaitForChild("createBulletImpact")
  2545. createBulletImpact.OnServerEvent:connect(function(_, H, P, N, D, humanoidFound, gunIgnore, S)
  2546. local surfaceCF = CF(P, P + N)
  2547. ----------------------------------------------------------------------------------
  2548. --Creating the bullet hole--------------------------------------------------------
  2549. ----------------------------------------------------------------------------------
  2550. if S.bulletHoles and (not humanoidFound) then
  2551. local Hole = Instance.new("Part")
  2552. Hole.Transparency = 1
  2553. Hole.Anchored = true
  2554. Hole.CanCollide = false
  2555. Hole.FormFactor = "Custom"
  2556. Hole.Size = V3(1, 1, 0.2)
  2557. Hole.TopSurface = 0
  2558. Hole.BottomSurface = 0
  2559. local Mesh = Instance.new("BlockMesh")
  2560. Mesh.Offset = V3(0, 0, -0.05)
  2561. Mesh.Scale = V3(S.holeSettings.Size, S.holeSettings.Size, 0)
  2562. Mesh.Parent = Hole
  2563. local Decal = Instance.new("Decal")
  2564. Decal.Face = Enum.NormalId.Front
  2565. Decal.Texture = S.holeSettings.Texture
  2566. Decal.Parent = Hole
  2567. Hole.Parent = gunIgnore
  2568. Hole.CFrame = surfaceCF
  2569. if (not H.Anchored) then
  2570. local Weld = Instance.new("Weld", Hole)
  2571. Weld.Part0 = H
  2572. Weld.Part1 = Hole
  2573. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2574. Hole.Anchored = false
  2575. end
  2576. delay(S.holeSettings.visibleTime, function()
  2577. if S.holeSettings.disappearTime > 0 then
  2578. local t0 = tick()
  2579. while true do
  2580. local Alpha = math.min((tick() - t0) / S.holeSettings.disappearTime, 1)
  2581. Decal.Transparency = numLerp(0, 1, Alpha)
  2582. if Alpha == 1 then break end
  2583. wait()
  2584. end
  2585. Hole:Destroy()
  2586. else
  2587. Hole:Destroy()
  2588. end
  2589. end)
  2590. end
  2591. ----------------------------------------------------------------------------------
  2592. --Creating the spark effect-------------------------------------------------------
  2593. ----------------------------------------------------------------------------------
  2594. if S.bulletSparks and (not humanoidFound) and inList(H.Material, S.sparkSettings.Materials) then
  2595. local Sparks = Instance.new("Part")
  2596. Sparks.Transparency = 1
  2597. Sparks.Anchored = true
  2598. Sparks.CanCollide = false
  2599. Sparks.FormFactor = "Custom"
  2600. Sparks.Size = V3(1, 1, 1)
  2601. Sparks.TopSurface = 0
  2602. Sparks.BottomSurface = 0
  2603.  
  2604. local Particles = nil
  2605. if S.customSparks then
  2606. Particles = getObject(game.ServerStorage, "ParticleEmitter", "bulletSpark"):Clone()
  2607. else
  2608. Particles = Instance.new("ParticleEmitter")
  2609. Particles.Color = ColorSequence.new(S.sparkSettings.Color.Start, S.sparkSettings.Color.End)
  2610. Particles.LightEmission = 1
  2611. Particles.Size = NumberSequence.new(
  2612. {
  2613. NumberSequenceKeypoint.new(0, S.sparkSettings.Size, 0.25);
  2614. NumberSequenceKeypoint.new(1, 0);
  2615. }
  2616. )
  2617. Particles.Texture = S.sparkSettings.Texture
  2618. Particles.Transparency = NumberSequence.new(0)
  2619. Particles.Acceleration = V3(0, -196.2, 0)
  2620. Particles.EmissionDirection = Enum.NormalId.Front
  2621. Particles.Lifetime = NumberRange.new(S.sparkSettings.Lifetime - 0.05, S.sparkSettings.Lifetime + 0.05)
  2622. Particles.Rate = S.sparkSettings.Rate
  2623. Particles.Rotation = NumberRange.new(0, 360)
  2624. Particles.Speed = NumberRange.new(S.sparkSettings.Speed - 5, S.sparkSettings.Speed + 5)
  2625. Particles.VelocitySpread = S.sparkSettings.Spread
  2626. end
  2627. Particles.Parent = Sparks
  2628.  
  2629. Sparks.Parent = gunIgnore
  2630. Sparks.CFrame = surfaceCF
  2631. if (not H.Anchored) then
  2632. local Weld = Instance.new("Weld", Sparks)
  2633. Weld.Part0 = H
  2634. Weld.Part1 = Sparks
  2635. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2636. Sparks.Anchored = false
  2637. end
  2638. delay(0.1, function()
  2639. Particles.Enabled = false
  2640. wait(Particles.Lifetime.Max)
  2641. Sparks:Destroy()
  2642. end)
  2643. end
  2644. ----------------------------------------------------------------------------------
  2645. --Creating the smoke effect-------------------------------------------------------
  2646. ----------------------------------------------------------------------------------
  2647. if S.bulletSmoke and (not humanoidFound) then
  2648. local Smoke = Instance.new("Part")
  2649. Smoke.Transparency = 1
  2650. Smoke.Anchored = true
  2651. Smoke.CanCollide = false
  2652. Smoke.FormFactor = "Custom"
  2653. Smoke.Size = V3(1, 1, 1)
  2654. Smoke.TopSurface = 0
  2655. Smoke.BottomSurface = 0
  2656.  
  2657. local Particles = Instance.new("ParticleEmitter")
  2658. Particles.Color = ColorSequence.new(S.smokeSettings.objColor and H.Color or S.smokeSettings.Color)
  2659. Particles.LightEmission = 0
  2660. Particles.Size = NumberSequence.new(
  2661. {
  2662. NumberSequenceKeypoint.new(0, S.smokeSettings.Size.Start);
  2663. NumberSequenceKeypoint.new(1, S.smokeSettings.Size.End);
  2664. }
  2665. )
  2666. Particles.Texture = S.smokeSettings.Texture
  2667. Particles.Transparency = NumberSequence.new(
  2668. {
  2669. NumberSequenceKeypoint.new(0, S.smokeSettings.startTransparency);
  2670. NumberSequenceKeypoint.new(0.5, 0.75 * S.smokeSettings.startTransparency + 0.25);
  2671. NumberSequenceKeypoint.new(1, 1);
  2672. }
  2673. )
  2674. Particles.Acceleration = V3(0, -196.2, 0)
  2675. Particles.EmissionDirection = Enum.NormalId.Front
  2676. Particles.Lifetime = NumberRange.new(S.smokeSettings.Lifetime - 0.05, S.smokeSettings.Lifetime + 0.05)
  2677. Particles.Rate = S.smokeSettings.Rate
  2678. Particles.Rotation = NumberRange.new(0, 360)
  2679. Particles.RotSpeed = NumberRange.new(10)
  2680. Particles.Speed = NumberRange.new(S.smokeSettings.Speed - 5, S.smokeSettings.Speed + 5)
  2681. Particles.VelocitySpread = S.smokeSettings.Spread
  2682. Particles.Parent = Smoke
  2683.  
  2684. Smoke.Parent = gunIgnore
  2685. Smoke.CFrame = surfaceCF
  2686. if (not H.Anchored) then
  2687. local Weld = Instance.new("Weld", Smoke)
  2688. Weld.Part0 = H
  2689. Weld.Part1 = Smoke
  2690. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2691. Smoke.Anchored = false
  2692. end
  2693. delay(0.1, function()
  2694. Particles.Enabled = false
  2695. wait(S.smokeSettings.Lifetime + 0.05)
  2696. Smoke:Destroy()
  2697. end)
  2698. end
  2699. end)
  2700.  
  2701. ----------------------------------------------------------------------
  2702. --------------------[ SHOCKWAVE HANDLING ]----------------------------
  2703. ----------------------------------------------------------------------
  2704.  
  2705. local createShockwave = script:WaitForChild("createShockwave")
  2706. createShockwave.OnServerEvent:connect(function(_, Center, Radius, gunIgnore, S)
  2707. local Shockwave = Instance.new("Part")
  2708. Shockwave.BrickColor = S.shockwaveSettings.Color
  2709. Shockwave.Material = Enum.Material.SmoothPlastic
  2710. Shockwave.Name = "Shockwave"
  2711. Shockwave.Anchored = true
  2712. Shockwave.CanCollide = false
  2713. Shockwave.FormFactor = Enum.FormFactor.Symmetric
  2714. Shockwave.Size = V3(1, 1, 1)
  2715. Shockwave.BottomSurface = Enum.SurfaceType.Smooth
  2716. Shockwave.TopSurface = Enum.SurfaceType.Smooth
  2717. local Mesh = Instance.new("SpecialMesh")
  2718. Mesh.MeshType = Enum.MeshType.Sphere
  2719. Mesh.Scale = V3()
  2720. Mesh.Parent = Shockwave
  2721. Shockwave.Parent = gunIgnore
  2722. Shockwave.CFrame = CF(Center)
  2723. spawn(function()
  2724. local t0 = tick()
  2725. while true do
  2726. local Alpha = math.min((tick() - t0) / S.shockwaveSettings.Duration, 1)
  2727. local Scale = 2 * Radius * Alpha
  2728. Mesh.Scale = V3(Scale, Scale, Scale)
  2729. Shockwave.Transparency = Alpha
  2730. if Alpha == 1 then break end
  2731. wait()
  2732. end
  2733. Shockwave:Destroy()
  2734. end)
  2735. end)
  2736.  
  2737. ----------------------------------------------------------------------
  2738. --------------------[ BLOOD HANDLING ]--------------------------------
  2739. ----------------------------------------------------------------------
  2740.  
  2741. local createBlood = script:WaitForChild("createBlood")
  2742. createBlood.OnServerEvent:connect(function(_, H, P, D, gunIgnore, S)
  2743. local bloodCF = CF(P, P + D) * CFANG(RAD(-90), 0, 0)
  2744. local Blood = Instance.new("Part")
  2745. Blood.Transparency = 1
  2746. Blood.Anchored = true
  2747. Blood.CanCollide = false
  2748. Blood.FormFactor = "Custom"
  2749. Blood.Size = V3(0.2, 1, 0.2)
  2750. Blood.TopSurface = 0
  2751. Blood.BottomSurface = 0
  2752.  
  2753. local Particles = Instance.new("ParticleEmitter")
  2754. Particles.Color = ColorSequence.new(S.bloodSettings.Color)
  2755. Particles.LightEmission = 0
  2756. Particles.Size = NumberSequence.new(S.bloodSettings.Size)
  2757. Particles.Texture = S.bloodSettings.Texture
  2758. Particles.Transparency = NumberSequence.new(
  2759. {
  2760. NumberSequenceKeypoint.new(0, S.bloodSettings.startTransparency);
  2761. NumberSequenceKeypoint.new(1, 1);
  2762. }
  2763. )
  2764. Particles.EmissionDirection = Enum.NormalId.Top
  2765. Particles.Lifetime = NumberRange.new(S.bloodSettings.Lifetime - 0.05, S.bloodSettings.Lifetime + 0.05)
  2766. Particles.Rate = S.bloodSettings.Rate
  2767. Particles.Rotation = NumberRange.new(0, 90)
  2768. Particles.Speed = NumberRange.new(S.bloodSettings.Speed)
  2769. Particles.VelocitySpread = S.bloodSettings.Spread
  2770. Particles.Parent = Blood
  2771.  
  2772. Blood.Parent = gunIgnore
  2773. Blood.CFrame = bloodCF
  2774. if (not H.Anchored) then
  2775. local Weld = Instance.new("Weld", Blood)
  2776. Weld.Part0 = H
  2777. Weld.Part1 = Blood
  2778. Weld.C0 = H.CFrame:toObjectSpace(bloodCF)
  2779. Blood.Anchored = false
  2780. end
  2781. delay(0.15, function()
  2782. Particles.Enabled = false
  2783. wait(S.bloodSettings.Lifetime + 0.05)
  2784. Blood:Destroy()
  2785. end)
  2786. end)
  2787.  
  2788. ----------------------------------------------------------------------
  2789. --------------------[ TRAIL HANDLING ]--------------------------------
  2790. ----------------------------------------------------------------------
  2791.  
  2792. local createTrail = script:WaitForChild("createTrail")
  2793. createTrail.OnServerEvent:connect(function(_, Origin, P, gunIgnore, S)
  2794. local Trail = Instance.new("Part")
  2795. Trail.BrickColor = S.trailSettings.Color
  2796. Trail.Transparency = S.trailSettings.Transparency
  2797. Trail.Anchored = true
  2798. Trail.CanCollide = false
  2799. Trail.Size = V3(1, 1, 1)
  2800. local Mesh = Instance.new("CylinderMesh")
  2801. Mesh.Offset = V3(0, -(P - Origin).magnitude / 2, 0)
  2802. Mesh.Scale = V3(S.trailSettings.Thickness, (P - Origin).magnitude, S.trailSettings.Thickness)
  2803. Mesh.Parent = Trail
  2804. Trail.Parent = gunIgnore
  2805. Trail.CFrame = CF(Origin, P) * CFANG(RAD(90), 0, 0)
  2806. delay(S.trailSettings.visibleTime, function()
  2807. if S.trailSettings.disappearTime > 0 then
  2808. local t0 = tick()
  2809. while true do
  2810. local Alpha = math.min((tick() - t0) / S.trailSettings.disappearTime, 1)
  2811. Trail.Transparency = numLerp(S.trailSettings.Transparency, 1, Alpha)
  2812. if Alpha == 1 then break end
  2813. wait()
  2814. end
  2815. Trail:Destroy()
  2816. else
  2817. Trail:Destroy()
  2818. end
  2819. end)
  2820. end)
  2821. end))
  2822. ObjectValue194.Name = "Plyr"
  2823. ObjectValue194.Parent = Script193
  2824. RemoteFunction195.Name = "getWeldCF"
  2825. RemoteFunction195.Parent = Script193
  2826. RemoteFunction196.Name = "gunSetup"
  2827. RemoteFunction196.Parent = Script193
  2828. RemoteFunction197.Name = "tweenJoint"
  2829. RemoteFunction197.Parent = Script193
  2830. RemoteEvent198.Name = "onRenderStep"
  2831. RemoteEvent198.Parent = Script193
  2832. RemoteFunction199.Name = "createTweenIndicator"
  2833. RemoteFunction199.Parent = Script193
  2834. RemoteFunction200.Name = "deleteTweenIndicator"
  2835. RemoteFunction200.Parent = Script193
  2836. RemoteFunction201.Name = "lerpCF"
  2837. RemoteFunction201.Parent = Script193
  2838. LocalScript202.Name = "resetCam"
  2839. LocalScript202.Parent = Script193
  2840. table.insert(cors,sandbox(LocalScript202,function()
  2841. repeat wait() until game.Players.LocalPlayer.Character
  2842.  
  2843. local Player = game.Players.LocalPlayer
  2844. local Char = Player.Character
  2845. local Humanoid = Char:WaitForChild("Humanoid")
  2846.  
  2847. local Cam = game.Workspace.CurrentCamera
  2848. local UIS = game:GetService("UserInputService")
  2849.  
  2850. local ignoreCode = script:WaitForChild("ignoreCode")
  2851. repeat wait() until ignoreCode.Value ~= 0
  2852. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  2853. local gunIgnore = ignoreModel:FindFirstChild("gunIgnore_"..Player.Name)
  2854.  
  2855. Cam.FieldOfView = 70
  2856. Cam.CameraType = Enum.CameraType.Custom
  2857. Cam:ClearAllChildren()
  2858.  
  2859. UIS.MouseBehavior = Enum.MouseBehavior.Default
  2860. UIS.MouseIconEnabled = true
  2861.  
  2862. Player.CameraMode = Enum.CameraMode.Classic
  2863.  
  2864. Humanoid.WalkSpeed = 16
  2865. Humanoid.AutoRotate = true
  2866.  
  2867. if gunIgnore then gunIgnore:Destroy() end
  2868. end))
  2869. IntValue203.Name = "ignoreCode"
  2870. IntValue203.Parent = LocalScript202
  2871. RemoteEvent204.Name = "createBulletImpact"
  2872. RemoteEvent204.Parent = Script193
  2873. RemoteEvent205.Name = "createShockwave"
  2874. RemoteEvent205.Parent = Script193
  2875. RemoteEvent206.Name = "createBlood"
  2876. RemoteEvent206.Parent = Script193
  2877. RemoteEvent207.Name = "createTrail"
  2878. RemoteEvent207.Parent = Script193
  2879. LocalScript208.Name = "clientMain"
  2880. LocalScript208.Parent = Tool0
  2881. table.insert(cors,sandbox(LocalScript208,function()
  2882. --[[
  2883. Kit By TurboFusion
  2884. Remake By MuYhEt & Xander521
  2885. --]]
  2886. --------------------------------------------------------------------------------------
  2887. --------------------[ CHARACTER LOADING ]---------------------------------------------
  2888. --------------------------------------------------------------------------------------
  2889.  
  2890. repeat wait() until game.Players.LocalPlayer.Character
  2891. repeat wait() until game.Players.LocalPlayer.Character:IsDescendantOf(game.Workspace)
  2892. wait(1 / 20)
  2893.  
  2894. --------------------------------------------------------------------------------------
  2895. --------------------[ IGNORE MODEL ]--------------------------------------------------
  2896. --------------------------------------------------------------------------------------
  2897.  
  2898. local ignoreCode = script:WaitForChild("ignoreCode")
  2899.  
  2900. repeat wait() until ignoreCode.Value ~= 0
  2901.  
  2902. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  2903.  
  2904. local grenadeFolder = ignoreModel:WaitForChild("grenadeFolder")
  2905.  
  2906. --------------------------------------------------------------------------------------
  2907. --------------------[ CONSTANTS ]-----------------------------------------------------
  2908. --------------------------------------------------------------------------------------
  2909.  
  2910. local Gun = script.Parent
  2911. local serverMain = Gun:WaitForChild("serverMain")
  2912. local Handle = Gun:WaitForChild("Handle")
  2913. local AimPart = Gun:WaitForChild("AimPart")
  2914. local Main = Gun:WaitForChild("Main")
  2915.  
  2916. local Ammo = Gun:WaitForChild("Ammo")
  2917. local ClipSize = Gun:WaitForChild("ClipSize")
  2918. local StoredAmmo = Gun:WaitForChild("StoredAmmo")
  2919.  
  2920. local createTweenIndicator = serverMain:WaitForChild("createTweenIndicator")
  2921. local deleteTweenIndicator = serverMain:WaitForChild("deleteTweenIndicator")
  2922. local getWeldCF = serverMain:WaitForChild("getWeldCF")
  2923. local gunSetup = serverMain:WaitForChild("gunSetup")
  2924. local lerpCF = serverMain:WaitForChild("lerpCF")
  2925. local createBlood = serverMain:WaitForChild("createBlood")
  2926. local createBulletImpact = serverMain:WaitForChild("createBulletImpact")
  2927. local createShockwave = serverMain:WaitForChild("createShockwave")
  2928. local createTrail = serverMain:WaitForChild("createTrail")
  2929.  
  2930. local Particle = {}
  2931. function Particle.new(Prop)
  2932. ----------[ CONSTANTS ]--------------------
  2933.  
  2934. local Cam = workspace.CurrentCamera
  2935. local rayIgnore = Prop.rayIgnore or {} --If the property doesn't exist, then set it to it's default
  2936. local Color = Prop.Color or Color3.new(1, 1, 1)
  2937. local Length = Prop.Length or 1
  2938. local Width = Prop.Width or 1
  2939. local p0 = Prop.p0 or error("Particle.new requires a p0 (origin position) property!", 0) --Give an error message if you don't this
  2940. local v0 = Prop.v0 or error("Particle.new requires a v0 (initial velocity) property!", 0)
  2941. local a0 = Prop.a0 or error("Particle.new requires an a0 (initial acceleration) property!", 0)
  2942.  
  2943. ----------[ VARIABLES ]--------------------
  2944.  
  2945. local Deleted = false
  2946. local p = p0 --Set the position, velocity, and acceleration as the intial conditions
  2947. local v = v0
  2948. local a = a0
  2949. local t = 0
  2950.  
  2951. ----------[ FUNCTIONS ]--------------------
  2952.  
  2953. local function worldWidthToScreenWidth(Width, Depth) --A function I made that gives you a screen width given a world width and depth
  2954. local Center = Cam.CoordinateFrame * CFrame.new(0, 0, -Depth)
  2955. local wp1 = (Center * CFrame.new(0, Width / 2, 0)).p
  2956. local wp2 = (Center * CFrame.new(0, -Width / 2, 0)).p
  2957. local sp1 = Cam:WorldToScreenPoint(wp1) --Use the WorldToScreenPoint method of the camera to get the screen width from the world width
  2958. local sp2 = Cam:WorldToScreenPoint(wp2)
  2959. return (sp1 - sp2).magnitude
  2960. end
  2961.  
  2962. ----------[ MAIN PROGRAM ]-----------------
  2963.  
  2964. local Container = Instance.new("Frame")
  2965. Container.BackgroundTransparency = 1
  2966. Container.Position = UDim2.new()
  2967. Container.Size = UDim2.new()
  2968. local Line = Instance.new("Frame")
  2969. Line.BackgroundColor3 = Color
  2970. Line.BorderSizePixel = 0
  2971. Line.Position = UDim2.new()
  2972. Line.Size = UDim2.new()
  2973. Line.Parent = Container
  2974.  
  2975. return setmetatable(
  2976. {
  2977. delete = function() --This function safely removes the particle
  2978. Container:Destroy()
  2979. Deleted = true
  2980. end
  2981. },
  2982. {
  2983. __index = function(_, Index)
  2984. if Index == "p" or Index == "position" then --Return the world position of the particle
  2985. return (Deleted and nil or p)
  2986. elseif Index == "v" or Index == "velocity" then --Return the world velocity of the particle
  2987. return (Deleted and nil or v)
  2988. elseif Index == "obj" or Index == "object" then --Return the particle frame itself
  2989. return (Deleted and nil or Container)
  2990. else
  2991. error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is called
  2992. end
  2993. end;
  2994.  
  2995. __newindex = function(_, Index, Value)
  2996. if Index == "t" or Index == "time" and (not Deleted) then --Render the particle given a time value
  2997. t = Value
  2998. p = p0 + (v0 * t) + (0.5 * a0 * t * t) --update the position given the time
  2999. v = v0 + (a0 * t) --update the velocity given the time
  3000.  
  3001. local testRay1 = Ray.new(Cam.CoordinateFrame.p, (p + (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
  3002. local testRay2 = Ray.new(Cam.CoordinateFrame.p, (p - (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
  3003. local H1, _ = workspace:FindPartOnRayWithIgnoreList(testRay1, rayIgnore)
  3004. local H2, _ = workspace:FindPartOnRayWithIgnoreList(testRay2, rayIgnore)
  3005.  
  3006. if H1 and H2 then
  3007. Line.Visible = false
  3008. else
  3009. local face1 = Cam:WorldToScreenPoint(p + (v.unit * Length) / 2) --Get the 2 endpoints of the particle in screen space
  3010. local face2 = Cam:WorldToScreenPoint(p - (v.unit * Length) / 2)
  3011. local Center, isVisible = Cam:WorldToScreenPoint(p) --Get the center of the particle in screen space
  3012.  
  3013. local screenLength = (face1 - face2).magnitude
  3014. local screenWidth = worldWidthToScreenWidth(Width, Center.Z)
  3015. local Ang = math.atan2(face1.Y - face2.Y, face1.X - face2.X) --Get the angle the particle needs to be at in order to line up
  3016.  
  3017. Line.Position = UDim2.new(0, 0, 0, -screenWidth / 2)
  3018. Line.Size = UDim2.new(1, 0, 0, screenWidth)
  3019. Line.Visible = isVisible --Make the particle invisible if the world point isn't on screen
  3020.  
  3021. Container.Position = UDim2.new(
  3022. 0,
  3023. face2.X + (math.cos(Ang) - 1) * screenLength / 2, --Yay trig!
  3024. 0,
  3025. face2.Y + math.sin(Ang) * screenLength / 2
  3026. )
  3027. Container.Size = UDim2.new(0, screenLength, 0, 0)
  3028. Container.Rotation = math.deg(Ang)
  3029. end
  3030. else
  3031. error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is being changed
  3032. end
  3033. end
  3034. }
  3035. )
  3036. end
  3037. local Spring = {}
  3038. function Spring.new(Initial)
  3039. local t0 = tick()
  3040. local p0 = Initial or 0
  3041. local v0 = Initial and Vector3.new() or 0
  3042. local t = Initial or 0
  3043. local d = 1
  3044. local s = 1
  3045.  
  3046. local function positionVelocity(Tick)
  3047. local x = Tick - t0
  3048. local c0 = p0 - t
  3049. if s == 0 then
  3050. return p0, 0
  3051. elseif d < 1 then
  3052. local c = math.sqrt(1 - d ^ 2)
  3053. local c1 = (v0 / s + d * c0) / c
  3054. local co = math.cos(c * s * x)
  3055. local si = math.sin(c * s * x)
  3056. local e = math.exp(d * s * x)
  3057. local p = t + (c0 * co + c1 * si) / e
  3058. local v = s * ((c * c1 - d * c0) * co - (c * c0 + d * c1) * si) / e
  3059. return p, v
  3060. else
  3061. local c1 = v0 / s + c0
  3062. local e = math.exp(s * x)
  3063. local p = t + (c0 + c1 * s * x) / e
  3064. local v = s * (c1 - c0 - c1 * s * x) / e
  3065. return p, v
  3066. end
  3067. end
  3068.  
  3069. return setmetatable(
  3070. {
  3071. accelerate = function(_, acceleration)
  3072. local T = tick()
  3073. local p, v = positionVelocity(T)
  3074. p0 = p
  3075. v0 = v + acceleration
  3076. t0 = T
  3077. end;
  3078. },
  3079. {
  3080. __index = function(_, index)
  3081. if index == "value" or index == "position" or index == "p" then
  3082. local p, v = positionVelocity(tick())
  3083. return p
  3084. elseif index == "velocity" or index == "v" then
  3085. local p, v = positionVelocity(tick())
  3086. return v
  3087. elseif index == "acceleration" or index == "a" then
  3088. local x = tick() - t0
  3089. local c0 = p0 - t
  3090. if s == 0 then
  3091. return 0
  3092. elseif d < 1 then
  3093. local c = math.sqrt(1 - d ^ 2)
  3094. local c1 = (v0 / s + d * c0) / c
  3095. local cs = (c0 * d ^ 2 - 2 * c * d * c1 - c0 * c ^ 2) * math.cos(c * s * x)
  3096. local sn = (c1 * d ^ 2 + 2 * c * d * c0 - c1 * c ^ 2) * math.sin(c * s * x)
  3097. return s ^ 2 *(cs + sn) / math.exp(d * s * x)
  3098. else
  3099. local c1 = v0 / s + c0
  3100. return s ^ 2 * (c0 - 2 * c1 + c1 * s * x) / math.exp(s * x)
  3101. end
  3102. elseif index == "target" or index == "t" then
  3103. return t
  3104. elseif index == "damper" or index == "d" then
  3105. return d
  3106. elseif index == "speed" or index == "s" then
  3107. return s
  3108. elseif index == "magnitude" or index == "m" then
  3109. local p, v = positionVelocity(tick())
  3110. return p.magnitude
  3111. else
  3112. error(index.." is not a valid member of spring", 0)
  3113. end
  3114. end;
  3115.  
  3116. __newindex = function(_, index, value)
  3117. local T = tick()
  3118. if index == "value" or index == "position" or index == "p" then
  3119. local p, v = positionVelocity(T)
  3120. p0, v0 = value, v
  3121. elseif index == "velocity" or index == "v" then
  3122. local p, v = positionVelocity(T)
  3123. p0, v0 = p, value
  3124. elseif index == "acceleration" or index == "a" then
  3125. local p, v = positionVelocity(T)
  3126. p0, v0 = p, v + value
  3127. elseif index == "target" or index == "t" then
  3128. p0, v0 = positionVelocity(T)
  3129. t = value
  3130. elseif index == "damper" or index == "d" then
  3131. p0, v0 = positionVelocity(T)
  3132. d = value < 0 and 0 or value < 1 and value or 1
  3133. elseif index == "speed" or index == "s" then
  3134. p0, v0 = positionVelocity(T)
  3135. s = value < 0 and 0 or value
  3136. else
  3137. error(index.." is not a valid member of spring", 0)
  3138. end
  3139. t0 = T
  3140. end;
  3141. }
  3142. )
  3143. end
  3144. local Anims = {
  3145.  
  3146. Reload = function(S) --This is the main reload animation. The parameter S contains all the variables and functions that are necessary for this animation
  3147. --[[
  3148. FUNCTION LIST_
  3149.  
  3150. S.tweenJoint(Joint, newC0, newC1, Alpha, Duration) --This function tweens a joint to a given C0 and C1. The Alpha parameter is function
  3151. that returns a number between 0 and 1 given an argument of a number between 0 and 90. The Duration is how fast the joint tweens. NOTE,
  3152. you can put nil as an argument for the newC0 or newC1 parameter and the function won't tween that specific property of the weld. This
  3153. is useful if you only want to mess with the C0 or C1 property of a weld.
  3154.  
  3155. S.makeMagInvisible() --This function makes the mag invisible so it looks like the mag was removed
  3156.  
  3157. S.makeMagVisible() --This function makes the mag visible again at whatever the previous transparency of the mag parts were
  3158.  
  3159. S.isMagVisible() --This function returns a true or false value based on whether or not the mag is visible. This can be used to tell if
  3160. the animation was stopped midway and where to restart the animation
  3161.  
  3162. S.isMagEmpty() --This function returns a true or false value based on whether or not the mag is empty, meaning the ammo is 0. This can be
  3163. used to decide if a chambering animation should play after the reload animation
  3164.  
  3165. S.setNewMag() --This function sets the newMag variable in the clientMain to true which basically lets the script know that a new mag was
  3166. put into the gun. This is used so that if the reload animation is broken after the new mag was put in but before the chambering animation
  3167. then the script will simply play the chambering animation instead of putting in another mag
  3168.  
  3169. S.isNewMag() --This function returns a true or false value based on whether or not the mag that is currently attached to the gun is a new
  3170. mag. In order for it to be a new mag, it needs to have full ammo. Once you fire, the mag becomes an old mag
  3171.  
  3172. S.createMag(Key) --This functions clones the Mag and puts it in a table with a Key parameter so you can access the mag in a separate
  3173. function and it returns a Model containing the Mag and a table that contains the original mag bricks and the corresponding clone. NOTE,
  3174. the mag bricks will be made non can collide
  3175.  
  3176. S.getMag(Key) --This function gets a Mag from the mag table given a Key argument and it returns the model that the mag is contained in
  3177. and the brick that all the other mag parts are welded to
  3178.  
  3179. S.attachGripToHead() --This function detaches the grip from the right arm and attaches it to the Head. This is so you can make reload
  3180. animations that require using the right arm to manipulate the gun in any way. The C0 of the grip is changed so the gun stays in the
  3181. position that it was in before you detached the grip from the right arm.
  3182.  
  3183. S.attachGripToArm() --This function detaches the grip from the Head and attaches it to the Arm. The C0 of the grip is changed so the gun
  3184. stays in the position that it was in before you detached the grip from the head
  3185.  
  3186. S.Sine(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return the
  3187. sine of that number, which is a number between 0 and 1, which is used to tween a Joint with a Sine movement
  3188.  
  3189. S.Linear(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return
  3190. the number / 90, which is a number between 0 and 1, which is used to a tween a Joint with a Linear movement
  3191.  
  3192. VARIABLE LIST_
  3193.  
  3194. S.Handle --This variable is the Handle of gun
  3195.  
  3196. S.LArm --This variable is the left arm
  3197.  
  3198. S.RArm --This variable is the right arm
  3199.  
  3200. S.LWeld --This variable is the left arm weld which is attached to the animBase
  3201.  
  3202. S.RWeld --This variable is the right arm weld which is attached to the animBase
  3203.  
  3204. S.LC0 --This variable is the cframe of the left arm joint with respect to the torso
  3205.  
  3206. S.RC0 --This variable is the cframe of the right arm joint with respect to the torso
  3207.  
  3208. S.Grip --This variable is the Grip weld which is attached to right arm
  3209.  
  3210. S.gunIgnore --This variable is the gun ignore model which contains the fake arms and bullets and other stuff
  3211.  
  3212. S.Cam --This variable is the player camera
  3213.  
  3214. S.CF --This variable is the shortened form of CFrame.new which you can use instead of CFrame.new
  3215.  
  3216. S.CFANG --This variable is the shortened form of CFrame.Angles which you can use instead of CFrame.Angles
  3217.  
  3218. S.V3 --This variable is the shortened form of Vector3.new which you can use instead of Vector3.new
  3219.  
  3220. S.RAD --This variable is the shortened form of math.rad which you can use instead of math.rad
  3221.  
  3222. S.reloadTimeLoaded --This variable is the reload time for when the gun is loaded which you can use to modify how fast the reload
  3223. animation runs
  3224.  
  3225. S.reloadTimeEmpty --This variable is the reload time for when the gun is empty which you can use to modify how fast the reload
  3226. animation runs
  3227. --]]
  3228.  
  3229. local W1 = nil
  3230. local W2 = nil
  3231. local animSpeed = S.isMagEmpty() and S.reloadTimeEmpty / 1.3 or S.reloadTimeLoaded / 0.9
  3232. return {
  3233. function()
  3234. if (not S.isNewMag()) then
  3235. if S.isMagVisible() then
  3236. local Mag1, magTable1 = S.createMag("Mag1")
  3237.  
  3238. Mag1.Parent = S.gunIgnore
  3239.  
  3240. W1 = Instance.new("Weld")
  3241. W1.Part0 = magTable1[1].magClone
  3242. W1.Part1 = S.Handle
  3243. W1.C0 = magTable1[1].Original.CFrame:toObjectSpace(S.Handle.CFrame)
  3244. W1.Parent = magTable1[1].magClone
  3245.  
  3246. S.tweenJoint(S.LWeld, nil, S.CF(-0.9, 2, -1.1) * S.CFANG(S.RAD(-15), 0, S.RAD(-25)), S.Sine, 0.2 * animSpeed)
  3247. S.tweenJoint(S.RWeld, nil, S.CF(0.3, 0.2, -0.31) * S.CFANG(S.RAD(-12), 0, S.RAD(25)), S.Sine, 0.2 * animSpeed)
  3248. S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.1 * animSpeed)
  3249. wait(0.2 * animSpeed)
  3250. end
  3251. end
  3252. end;
  3253.  
  3254. function()
  3255. if (not S.isNewMag()) then
  3256. if S.isMagVisible() then
  3257. S.makeMagInvisible()
  3258. W1:Destroy()
  3259. local Mag1, magTable1 = S.getMag("Mag1")
  3260. magTable1[1].magClone.Velocity = S.Handle.Velocity + S.Handle.CFrame:vectorToWorldSpace(S.V3(0, -1, 0)) * 20
  3261.  
  3262. S.tweenJoint(S.RWeld, nil, S.CF(0.3, 0.2, -0.5) * S.CFANG(S.RAD(-20), S.RAD(10), S.RAD(25)), S.Sine, 0.25 * animSpeed)
  3263. S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3264. else
  3265. S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-12), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
  3266. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3267. end
  3268.  
  3269. S.tweenJoint(S.LWeld, nil, S.CF(0, 0.5, 0) * S.CFANG(S.RAD(95), 0, S.RAD(-25)), S.Sine, 0.2 * animSpeed)
  3270.  
  3271. wait(0.25 * animSpeed)
  3272. end
  3273. end;
  3274.  
  3275. function()
  3276. if (not S.isNewMag()) then
  3277. local Mag1, magTable1 = S.getMag("Mag1")
  3278. if Mag1 then Mag1:Destroy() end
  3279.  
  3280. local Mag2, magTable2 = S.createMag("Mag2")
  3281.  
  3282. Mag2.Parent = S.gunIgnore
  3283.  
  3284. local LArmCF = S.LWeld.Part0.CFrame * S.LWeld.C0 * (S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60))):inverse()
  3285. local RArmCF = S.RWeld.Part0.CFrame * S.RWeld.C0 * (S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25))):inverse()
  3286. local handleOffsetCF = S.RArm.CFrame:toObjectSpace(S.RArm.CFrame * S.Grip.C0 * (S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10))):inverse())
  3287. local originalMagOffsetCF = S.Handle.CFrame:toObjectSpace(magTable2[1].Original.CFrame)
  3288. local newMagC0 = LArmCF:toObjectSpace(RArmCF * handleOffsetCF * originalMagOffsetCF)
  3289.  
  3290. W2 = Instance.new("Weld")
  3291. W2.Part0 = S.LArm
  3292. W2.Part1 = magTable2[1].magClone
  3293. W2.C0 = newMagC0
  3294. W2.Parent = magTable2[1].magClone
  3295.  
  3296. S.tweenJoint(S.LWeld, nil, S.CF(0.55, 1, -2.4) * S.CFANG(S.RAD(-20), S.RAD(20), S.RAD(-60)), S.Sine, 0.2 * animSpeed)--0.25
  3297. S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-12), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
  3298. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3299. wait(0.2 * animSpeed)
  3300. end
  3301. end;
  3302.  
  3303. function()
  3304. if (not S.isNewMag()) then
  3305. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
  3306. S.tweenJoint(S.LWeld, nil, S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60)), S.Sine, 0.15 * animSpeed)--0.25
  3307. S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
  3308.  
  3309. wait(0.2 * animSpeed)
  3310. end
  3311. end;
  3312.  
  3313. function()
  3314. if (not S.isNewMag()) then
  3315. local Mag1, _ = S.getMag("Mag1")
  3316. local Mag2, _ = S.getMag("Mag2")
  3317. S.makeMagVisible()
  3318. S.setNewMag()
  3319. if Mag1 then Mag1:Destroy() end
  3320. Mag2:Destroy()
  3321. end
  3322. end;
  3323.  
  3324. function()
  3325. if S.isMagEmpty() then
  3326. if S.isNewMag() then
  3327. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
  3328. S.tweenJoint(S.LWeld, nil, S.CF(0.58, 1.63, -1.4) * S.CFANG(S.RAD(-22), S.RAD(20), S.RAD(-60)), S.Sine, 0.15 * animSpeed)--0.25
  3329. S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(25)), S.Sine, 0.2 * animSpeed)
  3330. end
  3331. S.tweenJoint(S.LWeld, nil, S.CF(0, 1.3, -0.55) * S.CFANG(S.RAD(-26), 0, 0), S.Sine, 0.2 * animSpeed)
  3332.  
  3333. wait(0.2 * animSpeed)
  3334. end
  3335. end;
  3336.  
  3337. function()
  3338. if S.isMagEmpty() then
  3339. S.tweenJoint(S.LWeld, nil, S.CF(0.4, 1.6, -0.55) * S.CFANG(S.RAD(-23), 0, S.RAD(-60)), S.Sine, 0.1 * animSpeed)
  3340.  
  3341. wait(0.05 * animSpeed)
  3342. end
  3343. end;
  3344.  
  3345. function()
  3346. if S.isMagEmpty() then
  3347. S.tweenJoint(S.RWeld, nil, S.CF(0.6, 0.2, -0.61) * S.CFANG(S.RAD(-15), S.RAD(20), S.RAD(20)), S.Sine, 0.05 * animSpeed)
  3348.  
  3349. wait(0.15 * animSpeed)
  3350. end
  3351. end;
  3352. }
  3353. end;
  3354.  
  3355. Cocking = function(S)
  3356.  
  3357. end;
  3358.  
  3359. Crawling = function(X, moveDirection, moveSpeed) --This is the animation for when you're crawling
  3360. --[[
  3361. The moveDirection gives you the angle at which your character is moving with respect to the way you're facing. So if you're
  3362. moving to the right and you're facing forward then the moveDirection will give you an angle of -90. If you're moving backward
  3363. and you're facing forward then the moveDirection will give you an angle of 180. I use this angle to adjust the crawling animation
  3364. so that you're arms move in the direction that you're moving so it looks more realistic rather than the arms constantly moving forward
  3365.  
  3366. The moveVelocity gives you how fast you're moving in the X-Z plane. It doesn't take your Y-velocity into account so if you're falling your
  3367. moveVelocity will still be how fast you're moving horizontally. You can use this to adjust how fast the crawling animation runs so if you're
  3368. moving really slow the animation will play slower
  3369. --]]
  3370. return {
  3371. leftArm = CFrame.Angles( --This is what the cframe of the right arm will be when you're crawling
  3372. 0,
  3373. math.rad(90),
  3374. math.rad(-10)
  3375. ) * CFrame.new(
  3376. math.sin(moveDirection) * (math.sin(X * 6) / 4) - 0.2,
  3377. math.cos(moveDirection) * (math.sin(X * 6) / 2) - 0.1,
  3378. math.max(math.cos(X * 6) / 4, 0) - 0.1
  3379. ) * CFrame.Angles(
  3380. -math.max(math.cos(X * 6) / 4, 0),
  3381. 0,
  3382. 0
  3383. );
  3384. leftLeg = CFrame.new( --This is what the cframe of the left leg will be when you're crawling
  3385. math.sin(moveDirection) * (-math.sin(X * 6) / 4) - 0.2,
  3386. math.cos(moveDirection) * (math.sin(X * 6) / 2) + 0.3,
  3387. math.max(math.cos(X * 6) / 4, 0) - 0.1
  3388. ):inverse() * CFrame.Angles(
  3389. 0,
  3390. 0,
  3391. -math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
  3392. );
  3393. rightArm = CFrame.Angles( --This is what the cframe of the left arm will be when you're crawling
  3394. 0,
  3395. math.rad(-5),
  3396. math.rad(10)
  3397. ) * CFrame.new(
  3398. math.sin(moveDirection) * (-math.sin(X * 6) / 4) + 0.2,
  3399. math.cos(moveDirection) * (-math.sin(X * 6) / 5) - 0.2,
  3400. math.max(math.cos((X + math.rad(30)) * 6) / 10, 0) - 0.1
  3401. ) * CFrame.Angles(
  3402. -math.max(math.cos((X + math.rad(30)) * 6) / 10, 0),
  3403. 0,
  3404. 0
  3405. );
  3406. rightLeg = CFrame.new( --This is what the cframe of the right leg will be when you're crawling
  3407. math.sin(moveDirection) * (math.sin(X * 6) / 4) + 0.2,
  3408. math.cos(moveDirection) * (-math.sin(X * 6) / 2) + 0.3,
  3409. math.max(math.cos((X + math.rad(30)) * 6) / 4, 0) - 0.1
  3410. ):inverse() * CFrame.Angles(
  3411. 0,
  3412. 0,
  3413. math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
  3414. );
  3415. Grip = CFrame.Angles( --This is what the cframe of the grip will be when you're crawling
  3416. math.max(math.cos((X + math.rad(30)) * 6) / 7, 0),
  3417. math.rad(5),
  3418. 0
  3419. );
  3420. Camera = 1.5 * math.rad(math.cos((X + math.rad(30)) * 6)) + math.rad(0.5); --This is what the roll of the camera will be when you're crawling
  3421. }
  3422. end;
  3423.  
  3424. Idling = { --This table holds the Idling animations
  3425.  
  3426. unAimed = function(X) --This is the animation when the gun is not aimed
  3427. return {
  3428. Pos = Vector3.new(
  3429. math.sin(X / 2) / 70, --Side to Side motion
  3430. math.sin(X * 5 / 4) / 70, --Up and Down motion
  3431. math.sin(X * 3 / 4) / 70 --Forward and backward motion
  3432. );
  3433. Rot = Vector3.new(
  3434. 0, --Pitch rotation
  3435. 0, --Yaw rotation
  3436. 0 --Roll rotation
  3437. );
  3438. }
  3439. end;
  3440.  
  3441. Aimed = function(X) --This is the animation when the gun is aimed
  3442. return {
  3443. Pos = Vector3.new(
  3444. math.sin(X * 3 / 8) / 140,
  3445. math.sin(X * 15 / 16) / 140,
  3446. 0
  3447. );
  3448. Rot = Vector3.new(
  3449. 0,
  3450. 0,
  3451. 0
  3452. );
  3453. }
  3454. end;
  3455.  
  3456. };
  3457.  
  3458. Walking = { --This table holds the Walking animations
  3459.  
  3460. unAimed = function(X) --This is the animation when the gun is not aimed
  3461. return {
  3462. Pos = Vector3.new(
  3463. 4 * math.sin(X * 4.5) / 50,
  3464. 1.5 * math.sin(X * 9) / 50,
  3465. 0
  3466. );
  3467. Rot = Vector3.new(
  3468. 0,
  3469. 0,
  3470. math.rad(math.sin(X * 4.5)) * 2
  3471. );
  3472. }
  3473. end;
  3474.  
  3475. Aimed = function(X) --This is the animation when the gun is aimed
  3476. return {
  3477. Pos = Vector3.new(
  3478. 2 * math.sin(X * 3) / 150,
  3479. 0.75 * math.sin(X * 6) / 150,
  3480. 0
  3481. );
  3482. Rot = Vector3.new(
  3483. 0,
  3484. 0,
  3485. math.rad(math.sin(X * 3)) / 3
  3486. );
  3487. }
  3488. end;
  3489.  
  3490. };
  3491.  
  3492. Running = function(X) --This is the animation when the player is running
  3493. return {
  3494. Pos = Vector3.new(
  3495. 4 * math.sin(X * 4.5 * 1.5) / 30,
  3496. 1.5 * math.sin(X * 9 * 1.5) / 40 + 0.2,
  3497. 0
  3498. );
  3499. Rot = Vector3.new(
  3500. 0,
  3501. -math.rad(math.sin(X * 4.5 * 1.5)) * 5 + math.rad(3),
  3502. math.rad(math.sin(X * 4.5 * 1.5)) * 5
  3503. );
  3504. }
  3505. end;
  3506.  
  3507. }
  3508. local Plugins = {
  3509.  
  3510. KeyDown = {
  3511. { --This is a plugin for a toggleable laser
  3512. Key = "v"; --This is the key you press to activate the plugin
  3513. Description = "Toggle Laser"; --This is what the description of the key will be in the controls
  3514. Plugin = function() --This is the actual plugin function
  3515. local Laser = Gun:WaitForChild("Laser") --These few lines wait for the necessary bricks/models
  3516. local Handle = Gun:WaitForChild("Handle")
  3517. local ignoreCode = Gun.clientMain:WaitForChild("ignoreCode")
  3518. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  3519.  
  3520. local PlyrName = game.Players:GetPlayerFromCharacter(Gun.Parent).Name
  3521. local playerFolder = ignoreModel:WaitForChild("gunIgnore_"..PlyrName)
  3522.  
  3523. local RS = game:GetService("RunService")
  3524.  
  3525. local function createLaserDot() --This function creates the red laser dot
  3526. local laserDot = Instance.new("Part")
  3527. laserDot.Transparency = 1
  3528. laserDot.Name = "laserDot"
  3529. laserDot.Anchored = true
  3530. laserDot.CanCollide = false
  3531. laserDot.FormFactor = Enum.FormFactor.Custom
  3532. laserDot.Size = Vector3.new(0.25, 0.25, 1)
  3533.  
  3534. local laserGui = Instance.new("SurfaceGui")
  3535. laserGui.CanvasSize = Vector2.new(100, 100)
  3536. laserGui.Parent = laserDot
  3537.  
  3538. local laserImage = Instance.new("ImageLabel")
  3539. laserImage.BackgroundTransparency = 1
  3540. laserImage.Size = UDim2.new(1, 0, 1, 0)
  3541. laserImage.Image = "http://www.roblox.com/asset/?id=131394739"
  3542. laserImage.Parent = laserGui
  3543.  
  3544. --[[local laserLight = Instance.new("SurfaceLight")
  3545. laserLight.Angle = 180
  3546. laserLight.Brightness = math.huge
  3547. laserLight.Color = Color3.new(1, 0, 0)
  3548. laserLight.Face = Enum.NormalId.Back
  3549. laserLight.Range = 5
  3550. laserLight.Shadows = true
  3551. laserLight.Parent = laserDot]]
  3552.  
  3553. return laserDot
  3554. end
  3555.  
  3556. local function getHitSurfaceCFrame(Pos, Obj) --This function returns the proper cframe based on the face that the position is on
  3557. local surfaceCF = {
  3558. {"Back", Obj.CFrame * CFrame.new(0, 0, Obj.Size.z)};
  3559. {"Bottom", Obj.CFrame * CFrame.new(0, -Obj.Size.y, 0)};
  3560. {"Front", Obj.CFrame * CFrame.new(0, 0, -Obj.Size.z)};
  3561. {"Left", Obj.CFrame * CFrame.new(-Obj.Size.x, 0, 0)};
  3562. {"Right", Obj.CFrame * CFrame.new(Obj.Size.x, 0, 0)};
  3563. {"Top", Obj.CFrame * CFrame.new(0, Obj.Size.y, 0)}
  3564. }
  3565. local closestDist = math.huge
  3566. local closestSurface = nil
  3567. for _,v in pairs(surfaceCF) do
  3568. local surfaceDist = (Pos - v[2].p).magnitude
  3569. if surfaceDist < closestDist then
  3570. closestDist = surfaceDist
  3571. closestSurface = v
  3572. end
  3573. end
  3574.  
  3575. local surfaceDir = CFrame.new(Obj.CFrame.p, closestSurface[2].p)
  3576. local surfaceDist = surfaceDir.lookVector * ((Obj.CFrame.p - closestSurface[2].p).magnitude / 2 - 0.25)
  3577. local surfaceOffset = Pos - closestSurface[2].p + surfaceDist
  3578. local surfaceCFrame = surfaceDir + surfaceDist + surfaceOffset
  3579.  
  3580. return surfaceCFrame
  3581. end
  3582.  
  3583. local laserDot = createLaserDot() --The code is cleaner when the laser creating code is in a function
  3584.  
  3585. Laser.Transparency = (Laser.Transparency == 1 and 0 or 1) --Toggles the laser on or off
  3586.  
  3587. while math.floor(Laser.Transparency) == 0 do --This loop will keep running as long as the laser is visible
  3588. if (not game.Players:GetPlayerFromCharacter(Gun.Parent)) then break end --This checks if the gun is a child of the character
  3589.  
  3590. local newRay = Ray.new(Laser.Position, Handle.CFrame.lookVector * 999)
  3591. local H, P = game.Workspace:FindPartOnRay(newRay, ignoreModel)
  3592.  
  3593. local Distance = (P - Laser.Position).magnitude
  3594. Laser.Mesh.Offset = Vector3.new(0, Distance / 2, 0)
  3595. Laser.Mesh.Scale = Vector3.new(0.075, Distance / 0.2, 0.075)
  3596.  
  3597. if H then
  3598. laserDot.CFrame = getHitSurfaceCFrame(P, H) --If the laser hits a part then position the dot on the part
  3599. laserDot.Parent = playerFolder
  3600. else
  3601. laserDot.Parent = nil --If the laser doesn't hit a part then temporarily remove the laser dor
  3602. end
  3603.  
  3604. RS.RenderStepped:wait()
  3605. end
  3606.  
  3607. laserDot:Destroy() --These lines reset the laser if the laser is transparent or the gun was deselected
  3608. Laser.Transparency = 1
  3609. Laser.Mesh.Offset = Vector3.new()
  3610. Laser.Mesh.Scale = Vector3.new(0.075, 0, 0.075)
  3611. end;
  3612. };
  3613.  
  3614. { --This is a plugin for a toggleable flashlight
  3615. Key = "z";
  3616. Description = "Toggle Flashlight";
  3617. Plugin = function()
  3618. local Flashlight = Gun:WaitForChild("Flashlight")
  3619. if Flashlight then
  3620. for _, Light in pairs(Flashlight:GetChildren()) do
  3621. if Light.Name == "Light" then
  3622. Light.Enabled = (not Light.Enabled)
  3623. end
  3624. end
  3625. end
  3626. end
  3627. };
  3628. };
  3629.  
  3630. KeyUp = {
  3631.  
  3632. };
  3633.  
  3634. Firing = {
  3635. Plugin = function()
  3636. --Put code here
  3637. end;
  3638. };
  3639.  
  3640. Aimed = {
  3641. Plugin = function()
  3642. --Put code here
  3643. end;
  3644. };
  3645.  
  3646. UnAimed = {
  3647. Plugin = function()
  3648. --Put code here
  3649. end;
  3650. };
  3651.  
  3652. OnEquipped = {
  3653. Plugin = function()
  3654. --Put code here
  3655. end
  3656. };
  3657.  
  3658. OnUnEquipped = {
  3659. Plugin = function()
  3660. --Put code here
  3661. end
  3662. };
  3663.  
  3664. }
  3665. local S = {
  3666.  
  3667.  
  3668. gunType = { --[[These are the 5 gun types you can have. Set whichever ones you want to true. (NOTE: Semi and Auto can't both be
  3669. true, and Burst and Auto can't both be true)]]
  3670. Semi = true; --Set this true if you want the gun to be semi-automatic. (Pistols, Snipers, etc)
  3671. Auto = false; --Set this true if you want the gun to be fully automatic. (Assault Rifles, Submachine guns, machine guns, etc)
  3672. Burst = false; --Set this true if you want the gun to be burst fire. (Battle rifles, assault rifles, etc)
  3673. Shot = true; --Set this true if you want the gun to be a shotgun. (NOTE: Shot and auto can both be true)
  3674. Explosive = true; --Set this true if you want the projectiles to be explosive. (Rocket launchers, grenade launchers, etc)
  3675. };
  3676.  
  3677. selectFire = true; --This is whether or not select fire is enabled
  3678. selectFireSettings = {
  3679. Animation = true; --This is whether or not there will be an animation for when you switch fire modes
  3680. GUI = true; --This is whether or not a gui appears showing the fire being selected
  3681. Modes = { --This the list of modes you can switch between
  3682. Safety = true; --This mode doesn't allow any form of firing
  3683. Semi = true; --This mode allows semi-automatic firing
  3684. Burst = false; --This mode allows burst fire. The burst will be based on the burstSettings below
  3685. Auto = false; --This mode allows fully automatic fire
  3686. };
  3687. animSpeed = 0.5; --This is how long it takes to switch fire if GUI or Animation is true. If neither are true, then switching will be instant
  3688. };
  3689.  
  3690.  
  3691. burstSettings = {
  3692. fireRateBurst = true; --[[If this is true, then the burst time and wait will be adjusted so the bullet firing speed is the fire rate. If this
  3693. is false, then the burst time and burst wait will be the values below]]
  3694. Amount = 3; --This is how many bullets will be fired in one burst (if Burst is true)
  3695. Time = 0.2; --This is how long it takes for a burst to complete
  3696. Wait = 0.1; --This is how much time you have to wait before you can fire another burst
  3697. };
  3698.  
  3699.  
  3700. shotAmount = 8; --This is how many bullets will be fired in one shot (if Shot is true)
  3701.  
  3702.  
  3703. explosionSettings = {
  3704. Radius = 50; --This is the radius of the explosion when the bullet hits a target. (If Explosive is true)
  3705. Pressure = 5e5; --This is the pressure of the explosion when the bullet hits the target
  3706. Type = Enum.ExplosionType.NoCraters; --This is the type of explosion
  3707. --[[
  3708. (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
  3709. (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
  3710. (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
  3711. --]]
  3712. soundId = "rbxassetid://138499093"; --This is what the sound of the explosion will be
  3713. soundPitch = 1; --This is what the pitch of the explosion sound will be
  3714. soundVolume = 1; --This is what the volume of the explosion sound will be
  3715. rayCastExplosions = true; --[[This is whether or not explosions will have raycasting. If this is true, humanoids behind walls
  3716. won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: RangeBasedDamage has to be true in
  3717. order for explosions to have raycasting)]]
  3718. rangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion. If this
  3719. is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object within
  3720. the explosion's radius will have its joints broken]]
  3721. };
  3722.  
  3723.  
  3724. playerArms = true; --This is whether or not the fake arms will look like the Player's arms
  3725. fakeArmSettings = {
  3726. Transparency = 0; --This is the transparency of the fake arms
  3727. armSize = Vector3.new(0.6, 2, 0.6); --This is the size of the fake player arms if playerArms is true
  3728. characterMeshes = false; --This is whether or not the fake player arms will have the arm meshes if playerArms is true
  3729. realBodyColor = true; --This is whether or not the color of the fake arm will be the color of the player's real arms
  3730. Color = BrickColor.new("Pastel brown"); --This is what the color of the fake arms will be if realBodyColor is false
  3731. };
  3732.  
  3733.  
  3734. unAimedC1 = { --This table contains the CFrames of welds when the gun is not aimed
  3735. leftArm = CFrame.new(-0.7, 1.6, -0.8) * CFrame.Angles(math.rad(-10), 0, math.rad(-30));
  3736. rightArm = CFrame.new(0.4, 0.25, -0.3) * CFrame.Angles(0, 0, math.rad(25));
  3737. Grip = CFrame.Angles(0, math.rad(25), 0);
  3738. };
  3739. aimedC1 = { --This table contains the CFrames of welds when the gun is aimed
  3740. leftArm = CFrame.new(-0.1, 1, -0.3) * CFrame.Angles(math.rad(-10), 0, 0) * CFrame.Angles(0, 0, math.rad(-40));
  3741. rightArm = CFrame.new(0.5, 0.3, 0.1) * CFrame.Angles(0, 0, math.rad(45));
  3742. };
  3743. runningC1 = { --This table contains the CFrames of welds when you're running
  3744. leftArm = CFrame.new(-0.65, 0.85, -1) * CFrame.Angles(math.rad(1), math.rad(-8.5), math.rad(16));
  3745. rightArm = CFrame.new(0.16, 1, -0.14) * CFrame.Angles(math.rad(15), math.rad(2), math.rad(50));
  3746. Grip = CFrame.Angles(0, math.rad(-5), 0);
  3747. };
  3748.  
  3749.  
  3750. equipAnimation = true; --This is whether or not an equipping animation will play when you equip the gun
  3751. equipSettings = {
  3752. Time = 0.25; --This is how long it takes for the equip animation to play
  3753. leftArmC1 = CFrame.new(0.2, 1.2, 0) * CFrame.Angles(math.rad(105), math.rad(-30), math.rad(90)); --This is the left arm C1 when you equip the gun
  3754. rightArmC1 = CFrame.new(-0.5, 0.75, 0) * CFrame.Angles(math.rad(45), 0, math.rad(75)); --This is the right arm C1 when you equip the gun
  3755. GripC1 = CFrame.new(); --This is the C1 of the grip when you equip the gun
  3756. };
  3757.  
  3758.  
  3759. stopAnimsOnFall = true; --This is whether or not the movement animation will stop when you're falling
  3760. fallAnimation = true; --This is whether or not there will be animation for falling and landing
  3761. fallSettings = {
  3762. maxDist = 35; --This is the cut off fall distance for the landing animation. If you fall any farther it'll be treated as if you fell this distance
  3763. landMultiplier = 1; --This is how far the arms go down and rotate when you land. The larger the number the bigger the effect of the animation
  3764. fallMultiplier = 1; --This is how far the arms go up and rotate when you fall. The larger the number the bigger the effect of the animation
  3765. aimEffect = 0.25; --[[This is how many times of an effect the falling and landing animation has when you're aimed. The smaller the number the lesser
  3766. the effect]]
  3767. };
  3768.  
  3769.  
  3770. gunMomentum = true; --This is whether or not there will be a gun swaying animation for when you move your mouse around
  3771. momentumSettings = {
  3772. maxInput = 18; --This is the maximum mouse delta that will be used as input for the sway
  3773. Speed = 20; --This is the speed of the gun momentum
  3774. Damper = 0.5; --[[This is the dampening effect of the gun momentum. NOTE: This number must be between 0 and 1, 0 being forever swaying and 1 being
  3775. instant dampening]]
  3776. Amplitude = { --These are the amplitudes of the gun momentum
  3777. unAimed = 5;
  3778. Aimed = 1;
  3779. }
  3780. };
  3781.  
  3782.  
  3783. cockingAnim = false; --This is whether or not a cocking animation will play between every shot (for shotguns and bolt action guns)
  3784. movementAnims = true; --This is whether or not the player will have movement animations
  3785.  
  3786.  
  3787. canADS = true; --This is whether or not the gun can ADS
  3788. aimSettings = {
  3789. Anim = true; --This is whether or not there is an animation for aiming down the sights
  3790. Speed = 0.3; --This is how long the gun will take to fully aim down the sights
  3791. FOV = 37; --This is the FOV that the Camera will have when the gun is fully aimed down
  3792. holdToADS = true; --This is whether or not you have to hold the right mouse or the ADS key to ADS
  3793. headTilt = math.rad(25); --This is what angle the head tilts at when you ADS
  3794. };
  3795.  
  3796.  
  3797. sensitivitySettings = {
  3798. Default = 1; --This is what the sensitivity of the mouse will be when the gun is not aimed. 1 is the default
  3799. Aim = 0.3; --[[This is what the sensitivity of the mouse will be when the gun is aimed. The smaller the MaxZoom,
  3800. the smaller the sensitivity should be (i.e. Scoped guns should have a sensitivity of around 0.2 or less]]
  3801.  
  3802. scrollToChange = true; --This is whether or not scrolling the mouse changes the aim sensitivity
  3803. Min = 0.05; --This is the lowest the sensitivity can be
  3804. Max = 1; --This is the highest the sensitivity can be
  3805. Increment = 0.05; --This is what the increment for the sensitivity is when you scroll
  3806. };
  3807.  
  3808.  
  3809. guiScope = false; --This is whether or not your Scope will be a gui instead of a normal sight
  3810. scopeSettings = {
  3811. Frequency = { --This is the how fast the camera sway is. The larger the number the faster the camera moves
  3812. Idling = 0.7; --This is the frequency when you're idling
  3813. Walking = 2; --This is the frequency when you're walking
  3814. };
  3815. Amplitude = { --This is the how wide the camera sway is. The larger the number the wider the sway
  3816. Idling = 0.75; --This is the amplitude when you're idling
  3817. Walking = 0.75; --This is the amplitude when you're walking
  3818. };
  3819. steadyTime = 8; --This is how long you can hold your breath to steady the scope
  3820. breathTime = 5; --This is how long it takes to fully retake your breath
  3821. camSwayOnBreath = 2.5; --This is what the cam sway multiplier will be when you start your retake your breath
  3822. unSteadyOnFire = true; --This is whether or not the camera will become unsteady when you fire the gun
  3823. };
  3824.  
  3825.  
  3826. roundsPerMin = 100; --This is how many bullets per minute the gun will fire
  3827.  
  3828.  
  3829. bulletSettings = {
  3830. instantHit = true; --[[This is whether or not the bullet will hit a target instantly. If it is false, the bullet will travel at a
  3831. specific speed till it hits a target]]
  3832. Range = 870; --This is how far the bullet will travel in studs before it is no longer effective
  3833. Velocity = 540; --This is how fast the bullet will travel in studs per second
  3834. Acceleration = 196.2; --This is the bullet's acceleration downward (196.2 is normal roblox gravity)
  3835. Color = BrickColor.new("Bright red"); --This is the color of the bullet
  3836. Transparency = 0; --This is the transparency of the bullet
  3837. Size = Vector3.new(0.1, 0.1, 5); --This is how big the bullet will look
  3838. };
  3839.  
  3840.  
  3841. damageSettings = {
  3842. --[[The start and end damages are basically a representation of this: http://goo.gl/SiWaTj, which is a basically a graph showing the starting damage
  3843. value for the gun at a distance percent from 0 to 100 and the ending damage value for the gun at a distance percent from 0 to 100. Before the bullet
  3844. hits the starting distance percent, the damage is the starting damage. Once it goes past the starting distance percent, it steadily drops til it hits
  3845. the ending damage. After the ending damage percent, it'll stay that damage.]]
  3846. Start = {
  3847. Damage = 170; --The starting damage
  3848. Dist = 0.08; --[[A value between 0 and 1 which represents the distance percent. So if the bullet range is 1000 studs and this value is 0.5, then
  3849. the damage will be the starting damage until the bullet travels 0.5*1000 studs or 500 studs]]
  3850. };
  3851. End = {
  3852. Damage = 205; --The ending damage
  3853. Dist = 0.5; --A value between 0 and 1 which represents the distance percent for the ending damage
  3854. };
  3855. Multipliers = { --[[These are the damage multipliers. There's a spread of +0.1. That means that if the multiplier is 1, the actual
  3856. multiplier will range from 1 - 1.1]]
  3857. Chest = 1; --This is what the damage will be multiplied by if the bullet hits the chest
  3858. Head = 10; --This is what the damage will be multiplied by if the bullet hits the head or a hat
  3859. Limbs = 1; --This is what the damage will be multiplied by if the bullet hits a limb (Arms or legs)
  3860. };
  3861. };
  3862.  
  3863.  
  3864. AllowFriendlyFire = false; --This is whether or not you can damage teammates
  3865. CanDamageNPCs = true; --This is whether or not you can damage NPC's (Zombies, fake players, anything with a humanoid)
  3866.  
  3867.  
  3868. CanKnife = true; --This is whether or not you can knife
  3869. AutoKnife = false; --This is whether or not the gun will automatically knife if an enemy is within a specific distance
  3870. AutoKnifeDist = 4; --This is how many studs away an enemy has to be for the gun to auto knife
  3871. KnifeMeshId = "http://www.roblox.com/asset/?id=121944778"; --This is the Mesh of the knife
  3872. KnifeTextureId = "http://www.roblox.com/asset/?id=121944805"; --This is the Texture of the knife
  3873. KnifeCooldown = 0.5; --This is how long you have to wait before you can knife again
  3874. KnifeAnim = 1; --This is the type of knife animation
  3875. --[[
  3876. Type 1: An animation that swings a knife from the left of the body to the right of the body
  3877. Type 2: An animation that stabs the knife forward from the center of the body
  3878. --]]
  3879.  
  3880.  
  3881. Throwables = true; --This is whether or not you have grenades
  3882. TrajectoryAssist = true; --This is whether or not the script will show you the flight path of the grenade before you throw it
  3883. DetonationTime = 2; --[[This is how long the grenade will wait to detonate (If DetonateOnHit is false, this is how long the
  3884. grenade will wait after the pin is pulled. If true, this is how long the grenade will wait after it hits something]]
  3885. TimerStartOnHit = false; --This is whether or not the timer will start when the grenade hits something
  3886. GrenadeSize = Vector3.new(0.8, 0.8, 0.8); --This is the size of the grenade (Doesn't apply to throwing knives)
  3887.  
  3888.  
  3889. LethalGrenadeColor = BrickColor.new("Bright green"); --This is the color of the lethal grenade
  3890. GrenadeBlastRadius = 20; --This is the blast radius of the explosion (Doesn't apply to non-explosive grenades)
  3891. GrenadeBlastPressure = 6e5; --This is what the blast pressure of the explosion (Doesn't apply to non-explosive grenades)
  3892. GrenadeExplosionType = Enum.ExplosionType.NoCraters; --This is the type of explosion (Doesn't apply to non-explosive grenades)
  3893. --[[
  3894. (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
  3895. (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
  3896. (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
  3897. --]]
  3898. LethalAnimationTime = 1.5; --This is how long the throwing animation for the lethal will take
  3899. LethalGrenadeDamage = 150; --This is max damage that the grenade will do
  3900. LethalGrenadeThrowVelocity = 200; --This is the speed at which the lethal grenade is thrown
  3901. GrenadeRayCastExplosions = true; --[[This is whether or not grenade explosions will have raycasting. If this is true, humanoids
  3902. behind walls won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: GrenadeRangeBasedDamage
  3903. has to be true in order for explosions to have raycasting)]]
  3904. GrenadeRangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion.
  3905. If this is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object
  3906. within the explosion's radius will have its joints broken]]
  3907. LethalGrenadeType = 4; --This is the lethal grenade type
  3908. --[[
  3909. Type 1: Frag grenade [An explosive grenade]
  3910. Type 2: Sticky [An explosive grenade that sticks to a surface]
  3911. Type 3: Throwing Knife [A throwable knife]
  3912. Type 4: Molotov [A grenade that explodes in flames on impact]
  3913. --]]
  3914.  
  3915. TacticalGrenadeColor = BrickColor.new("Brick yellow"); --This is the color of the lethal grenade
  3916. TacticalAnimationTime = 1.5; --This how long the throwing animation for the tactical will take
  3917. TacticalGrenadeThrowVelocity = 200; --This is the speed at which the tactical grenade is thrown
  3918. GrenadeEffectRadius = 70; --[[This is the radius of the effect of the grenade. If the Grenade is a smoke, this is the radius of
  3919. the smoke]]
  3920. GrenadeEffectTime = 10; --[[This is the how long the grenade effect will last. If the grenade is a smoke, this is how long the
  3921. smoke will linger]]
  3922. TacticalGrenadeType = 1; --This is the tactical grenade type
  3923. --[[
  3924. Type 1: Smoke grenade [A grenade that creates a cloud of smoke]
  3925. Type 2: Flashbang [A grenade that temporarily blinds and deafens players]
  3926. --]]
  3927.  
  3928.  
  3929. GrenadeTrail = true; --This is whether or not the grenade will have a trail
  3930. GrenadeTrailColor = BrickColor.new("Black"); --This is the color of the grenade trail
  3931. GrenadeTrailTransparency = 0.6; --This is the transparency of the trail
  3932. GrenadeTrailThickness = 0.3; --This is the thickness of the trail
  3933. GrenadeTrailVisibleTime = 0.2; --This is how long the trail will be visible for
  3934. GrenadeTrailDisappearTime = 0.2; --This is how long it will take for the trail to disappear
  3935.  
  3936.  
  3937. bulletTrail = true; --This is whether or not there will be a trail behind the bullet
  3938. trailSettings = {
  3939. Color = BrickColor.new("Lime green"); --This is the color of the bullet trail
  3940. Transparency = 0.6; --This is the transparency of the trail
  3941. Thickness = 0.2; --This is the thickness of the trail
  3942. visibleTime = 0; --This is how long the trail will be visible for
  3943. disappearTime = 0.5; --This is how long it will take for the trail to disappear
  3944. };
  3945.  
  3946.  
  3947. bulletHoles = true; --This is whether or not bullet holes will appear where you shot
  3948. holeSettings = {
  3949. Texture = "http://www.roblox.com/asset/?id=64291961"; --This is the texture of the bullet hole
  3950. Size = 0.5; --This is how big the bullet hole will be in studs
  3951. visibleTime = 3; --This is how long the bullet hole will be visible for
  3952. disappearTime = 1; --This is how long it will take for the bullet hole to disappear
  3953. };
  3954.  
  3955.  
  3956. bulletSparks = true; --This is whether or not sparks will fly when a bullet hits a surface
  3957. customSparks = false; --[[This is whether or not the script will use a user-created sparks. In order for the gun kit to use a user-created sparks,
  3958. it has to be a particle emitter in the ServerStorage and it has to be called "bulletSpark"]]
  3959. sparkSettings = { --These settings only apply if customSparks is false
  3960. Color = {
  3961. Start = Color3.new(1, 158 / 255, 24 / 255); --This is the start color of the sparks
  3962. End = Color3.new(212 / 255, 242 / 255, 8 / 255); --This is the end color of the sparks
  3963. };
  3964. Size = 0.25; --This is the size of the sparks
  3965. Texture = "http://www.roblox.com/asset/?id=311395391"; --This is the texture of the sparks
  3966. Lifetime = 0.2; --This is the lifetime of each spark in seconds +-0.05 seconds
  3967. Rate = 75; --This is the number of sparks that fly
  3968. Speed = 25; --This is the speed at which the sparks fly +-5 studs/sec
  3969. Spread = 45; --This is the angle in degrees at which the sparks spread out (0 means single line, 180 means all around)
  3970. Materials = { --This is the list of the materials which cause bullet sparks. You can add or remove materials from this list
  3971. Enum.Material.Plastic;
  3972. Enum.Material.Slate;
  3973. Enum.Material.Concrete;
  3974. Enum.Material.CorrodedMetal;
  3975. Enum.Material.DiamondPlate;
  3976. Enum.Material.Foil;
  3977. Enum.Material.Marble;
  3978. Enum.Material.Granite;
  3979. Enum.Material.Brick;
  3980. Enum.Material.Pebble;
  3981. Enum.Material.SmoothPlastic;
  3982. Enum.Material.Metal;
  3983. Enum.Material.Cobblestone;
  3984. };
  3985. };
  3986.  
  3987.  
  3988. bulletSmoke = true; --This is whether or not smoke particles will fly when a bullet hits a surface
  3989. smokeSettings = {
  3990. objColor = true; --This is whether or not the smoke color will be the color of the object the bullet hit
  3991. Color = Color3.new(0.5, 0.5, 0.5); --This is what the color of the smoke will be if objColor is false
  3992. Size = {
  3993. Start = 0.25; --This is what the starting size of the smoke will be
  3994. End = 0.5; --This is what the ending size of the smoke will be
  3995. };
  3996. Texture = "http://www.roblox.com/asset/?id=244514423"; --This is what the texture of the smoke will be
  3997. startTransparency = 0; --This is what the transparency of the particle starts at. It gradually goes to 1
  3998. Lifetime = 0.2; --This is the lifetime of each smoke particle +-0.05 seconds
  3999. Rate = 100; --This is the number of smoke particles that fly
  4000. Speed = 35; --This is the speed at which the smoke particles fly +-5 studs/sec
  4001. Spread = 15; --This is the angle in degrees at which the smoke particles spread out (0 means single line, 180 means all around)
  4002. };
  4003.  
  4004.  
  4005. bloodEffect = true; --This is whether or not blood particles will appear from the bullet exit position when a humanoid is shot
  4006. bloodSettings = {
  4007. Color = Color3.new(1, 0, 0); --This is what the color of the blood will be
  4008. Size = 0.1; --This is what the size of the blood will be with an +-0.1
  4009. Texture = "http://www.roblox.com/asset/?id=3419963"; --This is what the texture of the blood will be
  4010. startTransparency = 0.125; --This is what the starting transparency of the blood will be +-0.125
  4011. Lifetime = 0.1; --This is what the lifetime of each blood particle +-0.05 seconds
  4012. Rate = 200; --This is the number of blood particles that appear
  4013. Speed = 50; --This is the speed at which the blood particles fly
  4014. Spread = 15; --This is the angle in degrees at which the blood particles spread out (0 means single line, 180 means all around)
  4015. };
  4016.  
  4017.  
  4018. bulletShockwave = true; --This is whether or not a shockwave will appear where you shot. (A sphere that appears when the bullet hits)
  4019. shockwaveSettings = {
  4020. Radius = 0.3; --This is the radius of the shockwave. (If the gun type is explosion, this radius will be the blast radius)
  4021. Color = BrickColor.new("Light stone grey"); --This is the color of the shockwave
  4022. Duration = 0.2; --This is how long the shockwave will take to disappear
  4023. };
  4024.  
  4025.  
  4026. penetrationSettings = {
  4027. Dist = 0; --This is the maximum amount of studs a bullet can penetrate into a wall (that isn't ignored)
  4028. transparencyThreshold = 1; --This is what the transparency of a wall has to be greater than or equal to in order to be ignored
  4029. ignoreNonCanCollide = true; --This is whether or not the script should ignore non-cancollide parts
  4030. ignoreCustom = {}; --This is a table of objects that will be ignored by the script. The object and it's descendants will be ignored
  4031. };
  4032.  
  4033.  
  4034. recoilSettings = {
  4035. firstShotMultiplier = 2.4; --This is what the recoil multiplier for the first shot will be. The rest of the shots will be normal recoil
  4036. aimedMultiplier = 0.5; --When you're aimed, this is what the recoil will be multiplied by
  4037. camMultiplier = 2; --This is what the gun up recoil will be multiplied by to get you the cam recoil
  4038. springSpeed = 15; --This is the what the speed of the gun's recoil spring will be. The lower it is the slower the gun sways around
  4039. springDamper = 0.5; --This is a number between 0 and 1 that determines how quickly the spring will be dampened.
  4040. Recoil = {
  4041. Side = { --This is the side to side gun and camera recoil
  4042. Left = -0.17;
  4043. Right = 0.28;
  4044. };
  4045. Up = { --This is the up and down gun and camera recoil
  4046. Min = 0.26;
  4047. Max = 0.28;
  4048. };
  4049. Back = { --[[This is the kick back gun recoil. NOTE: The numbers below are the amount the gun moves back, so the gun will move back
  4050. a value/2 amount of studs. So if the min is 0.25 and the max is 0.3, the gun will move back anywhere between 0.025 and 0.03 studs]]
  4051. Min = 0.3;
  4052. Max = 0.35;
  4053. };
  4054. Tilt = { --[[This is tilt camera recoil. NOTE: The numbers below are the amount of deca-degrees the camera tilts, so if the left is -1
  4055. and the right is 1 then the gun will tilt anywhere between -10 degress and 10 degrees]]
  4056. Left = -0.5;
  4057. Right = 0.5;
  4058. };
  4059. }
  4060. };
  4061.  
  4062.  
  4063. spreadSettings = {
  4064. Increase = 0.1; --This is what is added to the spread of the bullet every time you fire
  4065. Decrease = 15; --This is what the spread of the bullet decreases by per second
  4066.  
  4067. --[[This spread values are how many degrees offset the bullets will travel from the center, so a spread of 1 would mean that the bullet's
  4068. max spread in any direction is 1 degree from the center. The idling category is when you're not moving, and the moving category is when
  4069. you're moving]]
  4070. Aimed = {
  4071. Stand = {
  4072. Idling = 0.2;
  4073. Moving = 0.4;
  4074. };
  4075. Crouch = {
  4076. Idling = 0.15;
  4077. Moving = 0.3;
  4078. };
  4079. Prone = {
  4080. Idling = 0.1;
  4081. Moving = 0.3;
  4082. };
  4083. };
  4084. unAimed = {
  4085. Stand = {
  4086. Idling = 2;
  4087. Moving = 2.5;
  4088. };
  4089. Crouch = {
  4090. Idling = 1.5;
  4091. Moving = 2;
  4092. };
  4093. Prone = {
  4094. Idling = 1;
  4095. Moving = 2;
  4096. };
  4097. };
  4098. };
  4099.  
  4100.  
  4101. reloadSettings = {
  4102. Anim = true; --This is whether or not there is an animation for reloading
  4103. Times = {
  4104. Loaded = 3; --This is how long it takes to reload the gun if a bullet is already chambered
  4105. Empty = 3; --This is how long it takes to reload the gun if a bullet isn't chambered
  4106. };
  4107. autoReload = true; --This is whether or not the gun will reload automatically when the ammo reaches 0
  4108. magIsBullet = false; --This is whether or not the mag is the bullet itself. This is useful for guns with only 1 bullet per clip
  4109. reloadWhileRunning = true; --This is whether or not you can reload while running
  4110. };
  4111.  
  4112.  
  4113. sprintTime = 15; --This is the maximum time you can sprint
  4114. staminaCoolTime = 4; --This is how long it takes for your stamina to fully recharge
  4115. canFireWhileRunning = false; --This is whether or not you can shoot while sprinting
  4116.  
  4117.  
  4118. dolphinDive = true; --This is whether or not you can dolphin dive (Run and crouch at the same time to dive)
  4119. diveSettings = {
  4120. rechargeTime = 1; --This is how long you have to wait till you can dive or run again after you've dived
  4121. Force = 350; --This is the multiplier for the dolphin dive force. The higher it is the farther you'll dive
  4122. Angle = math.rad(30); --This is the angle in radians from the ground that you dive at
  4123. };
  4124.  
  4125.  
  4126. canChangeStance = true; --This is whether or not you can change stance. That means whether or not you can crouch or go prone
  4127. stanceSettings = {
  4128. Anim = true; --This is whether or not there is an animation for changing stance
  4129. Speed = 0.3; --This is how quickly you change stance
  4130. Stances = {
  4131. Crouch = true; --This is whether or not you can crouch
  4132. Prone = true; --This is whether or not you can go prone
  4133. };
  4134. standOnDeselect = true; --This is whether or not you stand up when you deselect the tool
  4135. crawlAnimation = true; --This is whether or not you crawl while moving when you're prone
  4136. };
  4137.  
  4138.  
  4139. walkSpeeds = {
  4140. Base = 14; --This is the base walkspeed
  4141. Sprinting = 28; --This is the walkspeed when you're sprinting
  4142. Aimed = 10; --[[This is the base walkspeed when the gun is aimed down. If you crouch or go prone, the speed will change
  4143. based on the Aimed walkspeed to Base walkspeed ratio]]
  4144. Crouched = 7; --This is the walkspeed when you're crouched
  4145. Prone = 4; --This is the walkspeed when you're prone
  4146. };
  4147.  
  4148.  
  4149. --NOTE: For extra keys, go here: http://wiki.roblox.com/index.php?title=Taking_keyboard_input
  4150. Keys = {
  4151. lowerStance = "c"; --This is the key you press to lower your stance (Stand > Crouch > Prone)
  4152. raiseStance = "x"; --This is the key you press to raise your stance (Prone > Crouch > Stand)
  4153. selectFire = "e"; --This is the key you press to switch fire modes
  4154. Reload = "r"; --This is the key you press to reload
  4155. Sprint = string.char(48); --This is the key you press to sprint
  4156. Knife = "f"; --This is the key you press to knife
  4157. lethalGrenade = "g"; --This is the key you press to throw the lethal grenade
  4158. tacticalGrenade = "t"; --This is the key you press to throw the tactical grenade
  4159. ADS = "q"; --This is the key you press to ADS. If you want ADS to just be right mouse, then make this key ""
  4160. scopeSteady = string.char(48); --This is the key you press to steady the scope
  4161. };
  4162.  
  4163.  
  4164. }
  4165.  
  4166. local Player = game.Players.LocalPlayer
  4167. local Char = Player.Character
  4168. local Humanoid = Char:WaitForChild("Humanoid")
  4169. local Torso = Char:WaitForChild("Torso")
  4170. local Head = Char:WaitForChild("Head")
  4171. local HRP = Char:WaitForChild("HumanoidRootPart")
  4172. local Root = HRP:WaitForChild("RootJoint")
  4173.  
  4174. local Neck = Torso:WaitForChild("Neck")
  4175.  
  4176. local LArm = Char:WaitForChild("Left Arm")
  4177. local RArm = Char:WaitForChild("Right Arm")
  4178. local LLeg = Char:WaitForChild("Left Leg")
  4179. local RLeg = Char:WaitForChild("Right Leg")
  4180.  
  4181. local M2 = Player:GetMouse()
  4182.  
  4183. local mainGUI = script:WaitForChild("mainGUI")
  4184.  
  4185. local crossHair = mainGUI:WaitForChild("crossHair")
  4186. local HUD = mainGUI:WaitForChild("HUD")
  4187. local Scope = mainGUI:WaitForChild("Scope")
  4188. local fireSelect = mainGUI:WaitForChild("fireSelect")
  4189. local hitMarker = mainGUI:WaitForChild("hitMarker")
  4190. local Sens = mainGUI:WaitForChild("Sens")
  4191.  
  4192. local crossA = crossHair:WaitForChild("A"):WaitForChild("Line")
  4193. local crossB = crossHair:WaitForChild("B"):WaitForChild("Line")
  4194. local crossC = crossHair:WaitForChild("C"):WaitForChild("Line")
  4195. local crossD = crossHair:WaitForChild("D"):WaitForChild("Line")
  4196.  
  4197. local Controls = HUD:WaitForChild("Controls")
  4198.  
  4199. local gunNameTitle = HUD:WaitForChild("gunName"):WaitForChild("Title")
  4200.  
  4201. local scopeMain = Scope:WaitForChild("Main")
  4202. local scopeSteady = Scope:WaitForChild("Steady")
  4203.  
  4204. local fireModes = fireSelect:WaitForChild("Modes")
  4205.  
  4206. local modeGUI = HUD:WaitForChild("Mode"):WaitForChild("Main")
  4207. local clipAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Clip")
  4208. local storedAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Stored")
  4209.  
  4210. local DS = game:GetService("Debris")
  4211. local CP = game:GetService("ContentProvider")
  4212. local RS = game:GetService("RunService")
  4213. local UIS = game:GetService("UserInputService")
  4214.  
  4215. local Cam = game.Workspace.CurrentCamera
  4216.  
  4217. local ABS, HUGE, FLOOR, CEIL = math.abs, math.huge, math.floor, math.ceil
  4218. local RAD, SIN, COS, TAN = math.rad, math.sin, math.cos, math.tan
  4219. local VEC2, V3 = Vector2.new, Vector3.new
  4220. local CF, CFANG = CFrame.new, CFrame.Angles
  4221. local INSERT = table.insert
  4222.  
  4223. local maxStamina = S.sprintTime * 60
  4224. local maxSteadyTime = S.scopeSettings.steadyTime * 60
  4225.  
  4226. local LethalIcons = {
  4227. "http://www.roblox.com/asset/?id=194849880";
  4228. "http://www.roblox.com/asset/?id=195727791";
  4229. "http://www.roblox.com/asset/?id=195728137";
  4230. "http://www.roblox.com/asset/?id=218151830";
  4231. }
  4232.  
  4233. local TacticalIcons = {
  4234. "http://www.roblox.com/asset/?id=195728473";
  4235. "http://www.roblox.com/asset/?id=195728693";
  4236. }
  4237.  
  4238. local ASCII = {
  4239. 071; 117; 110; 032;
  4240. 075; 105; 116; 032;
  4241. 115; 099; 114; 105;
  4242. 112; 116; 101; 100;
  4243. 032; 098; 121; 032;
  4244. 084; 117; 114; 098;
  4245. 111; 070; 117; 115;
  4246. 105; 111; 110; 000;
  4247. }
  4248.  
  4249. local Ignore = {
  4250. Char;
  4251. ignoreModel;
  4252. }
  4253.  
  4254. local Shoulders = {
  4255. Right = Torso:WaitForChild("Right Shoulder");
  4256. Left = Torso:WaitForChild("Left Shoulder")
  4257. }
  4258.  
  4259. local armC0 = {
  4260. CF(-1.5, 0, 0) * CFANG(RAD(90), 0, 0);
  4261. CF(1.5, 0, 0) * CFANG(RAD(90), 0, 0);
  4262. }
  4263.  
  4264. local legC0 = {
  4265. Stand = {
  4266. CF(-0.5, -2, 0);
  4267. CF(0.5, -2, 0);
  4268. };
  4269. Crouch = {
  4270. CF(-0.5, -1.5, 0.5) * CFANG(-RAD(90), 0, 0);
  4271. CF(0.5, -1, -0.75);
  4272. };
  4273. Prone = {
  4274. CF(-0.5, -2, 0);
  4275. CF(0.5, -2, 0);
  4276. };
  4277. }
  4278.  
  4279. local Sine = function(X)
  4280. return SIN(RAD(X))
  4281. end
  4282.  
  4283. local Linear = function(X)
  4284. return (X / 90)
  4285. end
  4286.  
  4287. --------------------------------------------------------------------------------------
  4288. --------------------[ VARIABLES ]-----------------------------------------------------
  4289. --------------------------------------------------------------------------------------
  4290.  
  4291. local Selected = false
  4292.  
  4293. local playerMass = 0
  4294.  
  4295. local Forward = false
  4296. local Backward = false
  4297.  
  4298. local Idling = false
  4299. local Walking = false
  4300. local Running = false
  4301.  
  4302. local crawlCamRot = 0
  4303. local crawlAlpha = 0
  4304. local idleAlpha = 1
  4305. local walkAlpha = 0
  4306. local isCrawling = false
  4307. local isIdling = false
  4308. local isWalking = false
  4309. local isRunning = false
  4310.  
  4311. local Aimed = false
  4312. local Aiming = false
  4313. local aimAlpha = 0
  4314. local headOffset = VEC2(COS(RAD(90) - S.aimSettings.headTilt) * 0.5, 1 + SIN(RAD(90) - S.aimSettings.headTilt) * 0.5)
  4315.  
  4316. local Reloading = false
  4317. local breakReload = false
  4318. local magVisible = true
  4319. local newMag = false
  4320.  
  4321. local Knifing = false
  4322.  
  4323. local MB1Down = false
  4324. local Firing = false
  4325. local canFire = true
  4326. local fireFunction = nil
  4327. local firstShot = false
  4328. local shotCount = 0
  4329. local lastSideRecoil = {0, 0}
  4330. local recoilAnim = {
  4331. Pos = V3();
  4332. Rot = V3();
  4333. Code = nil;
  4334. }
  4335.  
  4336. local numModes = 0
  4337. local rawFireMode = 1
  4338. local canSelectFire = true
  4339. local guiAngOffset = 0
  4340. local Modes = {}
  4341.  
  4342. local onGround = true
  4343. local startFallHeight = 0
  4344. local jumpAnim = {
  4345. Pos = 0;
  4346. Rot = 0;
  4347. Code = 0;
  4348. }
  4349.  
  4350. local runReady = true
  4351. local runKeyPressed = false
  4352. local chargingStamina = false
  4353.  
  4354. local AimingIn = false
  4355. local AimingOut = false
  4356.  
  4357. local Stamina = S.sprintTime * 60
  4358. local currentSteadyTime = S.scopeSettings.steadyTime * 60
  4359.  
  4360. local camSteady = false
  4361. local takingBreath = false
  4362. local steadyKeyPressed = false
  4363.  
  4364. local Grip = nil
  4365. local aimedGripCF = nil
  4366.  
  4367. local spreadZoom = "unAimed"
  4368. local spreadStance = "Stand"
  4369. local spreadMotion = "Idling"
  4370. local baseSpread = S.spreadSettings.unAimed.Stand.Idling
  4371. local currentSpread = 0
  4372. local loweringSpread = false
  4373.  
  4374. local mouseSensitivity = S.sensitivitySettings.Default
  4375. local aimSensitivity = S.sensitivitySettings.Aim
  4376. local lastSensUpdate = 0
  4377.  
  4378. local ammoInClip = 0
  4379.  
  4380. local Stance = 0
  4381. local stanceSway = 1
  4382. local camSway = 1
  4383.  
  4384. local camAng = VEC2()
  4385.  
  4386. local armTilt = 0
  4387. local moveAng = 0
  4388. local animCode = 0
  4389.  
  4390. local desiredXOffset = 0
  4391. local desiredYOffset = 0
  4392. local currentXOffset = 0
  4393. local currentYOffset = 0
  4394. local aimHeadOffset = 0
  4395. local recoilAnimMultiplier = 1
  4396. local jumpAnimMultiplier = 1
  4397. local translationDivisor = 7
  4398. local rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  4399. local armTiltMultiplier = 1
  4400.  
  4401. local equipAnimPlaying = false
  4402.  
  4403. local crossOffset = 0
  4404.  
  4405. local camOffsets = {
  4406. guiScope = {
  4407. Rot = V3();
  4408. };
  4409. Reload = {
  4410. Rot = V3();
  4411. Code = nil;
  4412. };
  4413. Recoil = {
  4414. Rot = V3();
  4415. Code = nil;
  4416. };
  4417. }
  4418.  
  4419. local Anim = {
  4420. Pos = V3();
  4421. Rot = V3();
  4422. Ang = 0;
  4423. Code = 0;
  4424. }
  4425.  
  4426. local lastBeat = 0
  4427.  
  4428. local gunParts = {}
  4429.  
  4430. local Connections = {}
  4431.  
  4432. local Keys = {}
  4433.  
  4434. --------------------------------------------------------------------------------------
  4435. --------------------[ PRE-LOADING ]---------------------------------------------------
  4436. --------------------------------------------------------------------------------------
  4437.  
  4438. CP:Preload(S.explosionSettings.soundId)
  4439. CP:Preload(S.holeSettings.Texture)
  4440. CP:Preload(S.sparkSettings.Texture)
  4441. CP:Preload(S.smokeSettings.Texture)
  4442. CP:Preload(S.bloodSettings.Texture)
  4443. CP:Preload("http://www.roblox.com/asset/?id=126877530") --The dark green arrow in the select fire gui
  4444. CP:Preload("http://www.roblox.com/asset/?id=55754953") --The circle in the select fire gui
  4445.  
  4446. --------------------------------------------------------------------------------------
  4447. --------------------[ GUN SETUP ]-----------------------------------------------------
  4448. --------------------------------------------------------------------------------------
  4449.  
  4450. serverMain:WaitForChild("Plyr").Value = Player
  4451.  
  4452. local gunMomentum = Spring.new(V3())
  4453. gunMomentum.s = S.momentumSettings.Speed
  4454. gunMomentum.d = S.momentumSettings.Damper
  4455.  
  4456. local gunRecoilSpring = Spring.new(V3())
  4457. gunRecoilSpring.s = S.recoilSettings.springSpeed
  4458. gunRecoilSpring.d = S.recoilSettings.springDamper
  4459.  
  4460. local camRecoilSpring = Spring.new(V3())
  4461. camRecoilSpring.s = 35
  4462. camRecoilSpring.d = 0.5
  4463.  
  4464. local crossSpring = Spring.new(V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0))
  4465. crossSpring.s = 20
  4466. crossSpring.d = 0.75
  4467.  
  4468. --[[local function getModelMass(P)
  4469. for _, v in pairs(P:GetChildren()) do
  4470. if v:IsA("BasePart") then
  4471. playerMass = playerMass + v:GetMass()
  4472. end
  4473. getModelMass(v)
  4474. end
  4475. end
  4476. getModelMass(Char)
  4477.  
  4478. Char.DescendantAdded:connect(function(Descendant)
  4479. if Descendant:IsA("BasePart") then
  4480. playerMass = playerMass + Descendant:GetMass()
  4481. end
  4482. end)
  4483. Char.DescendantRemoving:connect(function(Descendant)
  4484. if Descendant:IsA("BasePart") then
  4485. playerMass = playerMass - Descendant:GetMass()
  4486. end
  4487. end)]]
  4488.  
  4489. --------------------------------------------------------------------------------------
  4490. --------------------[ WELD CFRAMES ]--------------------------------------------------
  4491. --------------------------------------------------------------------------------------
  4492.  
  4493. spawn(function()
  4494. --[[for _, v in pairs(Gun:GetChildren()) do
  4495. if v:IsA("BasePart") and v ~= Handle then
  4496. if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
  4497. if (not v:FindFirstChild("weldCF")) then
  4498. local weldCF = Instance.new("CFrameValue")
  4499. weldCF.Name = "weldCF"
  4500. weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
  4501. weldCF.Parent = v
  4502. INSERT(gunParts, {Obj = v, Weld = nil})
  4503. end
  4504. if string.sub(v.Name, 1, 3) == "Mag" then
  4505. if (not v:FindFirstChild("magTrans")) then
  4506. local magTrans = Instance.new("NumberValue")
  4507. magTrans.Name = "magTrans"
  4508. magTrans.Value = v.Transparency
  4509. magTrans.Parent = v
  4510. end
  4511. end
  4512. v.Anchored = false
  4513. end
  4514. end
  4515. Handle.Anchored = false]]
  4516. for _, v in pairs(Gun:GetChildren()) do
  4517. if v:FindFirstChild("weldCF") then
  4518. INSERT(gunParts, {Obj = v, Weld = nil})
  4519. v.Anchored = false
  4520. end
  4521. end
  4522. end)
  4523.  
  4524. --------------------------------------------------------------------------------------
  4525. --------------------[ MAIN PROGRAM ]--------------------------------------------------
  4526. --------------------------------------------------------------------------------------
  4527.  
  4528. --------------------[ ARM CREATION FUNCTION ]-----------------------------------------
  4529.  
  4530. function createArms()
  4531. local Arms = {}
  4532. for i = 0, 1 do
  4533. local armModel = Instance.new("Model")
  4534. armModel.Name = "armModel"
  4535.  
  4536. local Arm = Instance.new("Part")
  4537. Arm.BrickColor = (S.fakeArmSettings.realBodyColor and (i == 0 and LArm.BrickColor or RArm.BrickColor) or S.fakeArmSettings.Color)
  4538. Arm.Transparency = S.fakeArmSettings.Transparency
  4539. Arm.Name = "Arm"
  4540. Arm.CanCollide = false
  4541. Arm.Size = V3(0.598, 2, 0.598)
  4542. Arm.Parent = armModel
  4543. local armMesh = Instance.new("SpecialMesh")
  4544. armMesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4545. armMesh.MeshType = Enum.MeshType.FileMesh
  4546. armMesh.Scale = V3(0.598, 1, 0.598)
  4547. armMesh.Parent = Arm
  4548.  
  4549. local Glove1 = Instance.new("Part")
  4550. Glove1.BrickColor = BrickColor.new("Black")
  4551. Glove1.Name = "Glove1"
  4552. Glove1.CanCollide = false
  4553. Glove1.Size = V3(0.598, 2, 0.598)
  4554. Glove1.Parent = armModel
  4555. local glove1Mesh = Instance.new("SpecialMesh")
  4556. glove1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4557. glove1Mesh.Offset = V3(0, -0.5, 0)
  4558. glove1Mesh.Scale = V3(0.658, 0.205, 0.658)
  4559. glove1Mesh.Parent = Glove1
  4560. local glove1Weld = Instance.new("Weld")
  4561. glove1Weld.Part0 = Arm
  4562. glove1Weld.Part1 = Glove1
  4563. glove1Weld.Parent = Arm
  4564.  
  4565. local Glove2 = Instance.new("Part")
  4566. Glove2.BrickColor = BrickColor.new("Black")
  4567. Glove2.Name = "Glove2"
  4568. Glove2.CanCollide = false
  4569. Glove2.Size = V3(0.598, 2, 0.598)
  4570. Glove2.Parent = armModel
  4571. local glove2Mesh = Instance.new("SpecialMesh")
  4572. glove2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4573. glove2Mesh.Offset = V3(0, -0.435, 0)
  4574. glove2Mesh.Scale = V3(0.69, 0.105, 0.69)
  4575. glove2Mesh.Parent = Glove2
  4576. local glove2Weld = Instance.new("Weld")
  4577. glove2Weld.Part0 = Arm
  4578. glove2Weld.Part1 = Glove2
  4579. glove2Weld.Parent = Arm
  4580.  
  4581. local Glove3 = Instance.new("Part")
  4582. Glove3.BrickColor = BrickColor.new("Black")
  4583. Glove3.Name = "Glove3"
  4584. Glove3.CanCollide = false
  4585. Glove3.Size = V3(0.598, 2, 0.598)
  4586. Glove3.Parent = armModel
  4587. local glove3Mesh = Instance.new("SpecialMesh")
  4588. glove3Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4589. glove3Mesh.Offset = V3(0.18 * ((i * 2) - 1), -0.7, 0)
  4590. glove3Mesh.Scale = V3(0.299, 0.305, 0.657)
  4591. glove3Mesh.Parent = Glove3
  4592. local glove3Weld = Instance.new("Weld")
  4593. glove3Weld.Part0 = Arm
  4594. glove3Weld.Part1 = Glove3
  4595. glove3Weld.Parent = Arm
  4596.  
  4597. local Sleeve1 = Instance.new("Part")
  4598. Sleeve1.BrickColor = BrickColor.new("Sand green")
  4599. Sleeve1.Name = "Sleeve1"
  4600. Sleeve1.CanCollide = false
  4601. Sleeve1.Size = V3(0.598, 2, 0.598)
  4602. Sleeve1.Parent = armModel
  4603. local sleeve1Mesh = Instance.new("SpecialMesh")
  4604. sleeve1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4605. sleeve1Mesh.Offset = V3(0, 0.75, 0)
  4606. sleeve1Mesh.Scale = V3(0.656, 0.3, 0.656)
  4607. sleeve1Mesh.Parent = Sleeve1
  4608. local sleeve1Weld = Instance.new("Weld")
  4609. sleeve1Weld.Part0 = Arm
  4610. sleeve1Weld.Part1 = Sleeve1
  4611. sleeve1Weld.Parent = Arm
  4612.  
  4613. local Sleeve2 = Instance.new("Part")
  4614. Sleeve2.BrickColor = BrickColor.new("Sand green")
  4615. Sleeve2.Name = "Sleeve2"
  4616. Sleeve2.CanCollide = false
  4617. Sleeve2.Size = V3(0.598, 2, 0.598)
  4618. Sleeve2.Parent = armModel
  4619. local sleeve2Mesh = Instance.new("SpecialMesh")
  4620. sleeve2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4621. sleeve2Mesh.Offset = V3(0, 0.55, 0)
  4622. sleeve2Mesh.Scale = V3(0.75, 0.1, 0.75)
  4623. sleeve2Mesh.Parent = Sleeve2
  4624. local sleeve2Weld = Instance.new("Weld")
  4625. sleeve2Weld.Part0 = Arm
  4626. sleeve2Weld.Part1 = Sleeve2
  4627. sleeve2Weld.Parent = Arm
  4628.  
  4629. table.insert(Arms, {Model = armModel, armPart = Arm})
  4630. end
  4631. return Arms
  4632. end
  4633.  
  4634. --------------------[ MATH FUNCTIONS ]------------------------------------------------
  4635.  
  4636. function Map(Val, fromLow, fromHigh, toLow, toHigh)
  4637. return (Val - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow
  4638. end
  4639.  
  4640. function numLerp(A, B, Alpha)
  4641. return A + (B - A) * Alpha
  4642. end
  4643.  
  4644. function RAND(Min, Max, Accuracy)
  4645. return numLerp(Min, Max, math.random())
  4646. --[[local Inverse = 1 / (Accuracy or 1)
  4647. return (math.random(Min * Inverse, Max * Inverse) / Inverse)]]
  4648. end
  4649.  
  4650. function Round(Num, toNearest)
  4651. return math.floor(Num / toNearest + 0.5) * toNearest
  4652. end
  4653.  
  4654. function getNearestPoint(A, B, Origin)
  4655. local A2 = (A - Origin).magnitude
  4656. local B2 = (B - Origin).magnitude
  4657. return (math.min(A2, B2) == A2 and A or B)
  4658. end
  4659.  
  4660. --------------------[ TWEEN FUNCTIONS ]-----------------------------------------------
  4661.  
  4662. function tweenJoint(Joint, newC0, newC1, Alpha, Duration)
  4663. spawn(function()
  4664. local newCode = math.random(-1e9, 1e9) --This creates a random code between -1000000000 and 1000000000
  4665. local tweenIndicator = nil
  4666. if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
  4667. tweenIndicator = Instance.new("IntValue")
  4668. tweenIndicator.Name = "tweenCode"
  4669. tweenIndicator.Value = newCode
  4670. tweenIndicator.Parent = Joint
  4671. else
  4672. tweenIndicator = Joint.tweenCode
  4673. tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
  4674. end
  4675. --local tweenIndicator = createTweenIndicator:InvokeServer(Joint, newCode)
  4676. if Duration <= 0 then --If the duration is less than or equal to 0 then there's no need for a tweening loop
  4677. if newC0 then Joint.C0 = newC0 end
  4678. if newC1 then Joint.C1 = newC1 end
  4679. else
  4680. local startC0 = Joint.C0
  4681. local startC1 = Joint.C1
  4682. local t0 = tick()
  4683. while true do
  4684. RS.RenderStepped:wait() --This makes the for loop step every 1/60th of a second
  4685. local X = math.min((tick() - t0) / Duration, 1) * 90
  4686. if tweenIndicator.Value ~= newCode then break end --This makes sure that another tween wasn't called on the same joint
  4687. if (not Selected) then break end --This stops the tween if the tool is deselected
  4688. if newC0 then Joint.C0 = startC0:lerp(newC0, Alpha(X)) end
  4689. if newC1 then Joint.C1 = startC1:lerp(newC1, Alpha(X)) end
  4690. --if newC0 then lerpCF:InvokeServer(Joint, "C0", startC0, newC0, Alpha(X)) end
  4691. --if newC1 then lerpCF:InvokeServer(Joint, "C1", startC1, newC1, Alpha(X)) end
  4692. if X == 90 then break end
  4693. end
  4694. end
  4695. if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
  4696. tweenIndicator:Destroy()
  4697. end
  4698. --deleteTweenIndicator:InvokeServer(tweenIndicator, newCode)
  4699. end)
  4700. end
  4701.  
  4702. function tweenCam(Key, newRot, Alpha, Duration)
  4703. spawn(function()
  4704. local newCode = math.random(-1e9, 1e9)
  4705. camOffsets[Key].Code = newCode
  4706.  
  4707. local Increment = 1.5 / Duration
  4708. local prevRot = camOffsets[Key].Rot
  4709. local X = 0
  4710. while true do
  4711. RS.RenderStepped:wait()
  4712. local newX = X + Increment
  4713. X = (newX > 90 and 90 or newX)
  4714. if camOffsets[Key].Code ~= newCode then break end
  4715. if (not Selected) then break end
  4716.  
  4717. camOffsets[Key].Rot = prevRot:lerp(newRot, Alpha(X))
  4718.  
  4719. if X == 90 then break end
  4720. end
  4721.  
  4722. if camOffsets[Key].Code == newCode then
  4723. camOffsets[Key].Code = nil
  4724. end
  4725. end)
  4726. end
  4727.  
  4728. function tweenRecoil(newPos, newRot, Alpha, Duration)
  4729. spawn(function()
  4730. local newCode = math.random(-1e9, 1e9)
  4731. recoilAnim.Code = newCode
  4732.  
  4733. local Increment = 1.5 / Duration
  4734. local prevPos = recoilAnim.Pos
  4735. local prevRot = recoilAnim.Rot
  4736. local X = 0
  4737. while true do
  4738. RS.RenderStepped:wait()
  4739. local newX = X + Increment
  4740. X = (newX > 90 and 90 or newX)
  4741. if recoilAnim.Code ~= newCode then break end
  4742. if (not Selected) then break end
  4743.  
  4744. recoilAnim.Pos = prevPos:lerp(newPos, Alpha(X))
  4745. recoilAnim.Rot = prevRot:lerp(newRot, Alpha(X))
  4746.  
  4747. if X == 90 then break end
  4748. end
  4749.  
  4750. if recoilAnim.Code == newCode then
  4751. recoilAnim.Code = nil
  4752. end
  4753. end)
  4754. end
  4755.  
  4756. --------------------[ GUI UPDATE FUNCTIONS ]------------------------------------------
  4757.  
  4758. local function updateClipAmmo()
  4759. clipAmmoGUI.Text = Ammo.Value
  4760. clipAmmoGUI.TextColor3 = (Ammo.Value <= (ClipSize.Value / 3) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
  4761. end
  4762.  
  4763. local function updateStoredAmmo()
  4764. storedAmmoGUI.Text = StoredAmmo.Value
  4765. storedAmmoGUI.TextColor3 = (StoredAmmo.Value <= (ClipSize.Value * 2) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
  4766. end
  4767.  
  4768. local function updateHealth()
  4769. HUD.Health.Num.Text = CEIL(Humanoid.Health).."%"
  4770. HUD.Health.Num.TextColor3 = (
  4771. (Humanoid.Health > 200 / 3) and Color3.new(1, 1, 1) or
  4772. (Humanoid.Health <= 200 / 3 and Humanoid.Health > 100 / 3) and Color3.new(1, 1, 0) or
  4773. (Humanoid.Health <= 100 / 3) and Color3.new(1, 0, 0)
  4774. )
  4775. end
  4776.  
  4777. local function updateModeLabels(prevState, newState, X)
  4778. for Num, Mode in pairs(fireModes:GetChildren()) do
  4779. local guiAngOffset2 = guiAngOffset + 90
  4780. local Ang = numLerp(
  4781. (guiAngOffset2 * prevState) - (guiAngOffset2 * Num) - guiAngOffset2,
  4782. (guiAngOffset2 * newState) - (guiAngOffset2 * Num) - guiAngOffset2,
  4783. Sine(X)
  4784. ) + guiAngOffset
  4785. local XPos = COS(RAD(Ang))
  4786. local YPos = SIN(RAD(Ang))
  4787. Mode.Position = UDim2.new(0.5, XPos * 100, 0.5, YPos * 100)
  4788.  
  4789. local R = COS(math.atan2(Mode.Position.Y.Offset, Mode.Position.X.Offset) + RAD(90))
  4790. Mode.Label.TextTransparency = 1 - ((R / 4) + 0.75)
  4791.  
  4792. local Scale = (R * 10) + 50
  4793. Mode.Label.Position = UDim2.new(0, -Scale / 2, 0, 0)
  4794. Mode.Label.Size = UDim2.new(0, Scale, 0, Scale / 2)
  4795. end
  4796. end
  4797.  
  4798. --------------------[ GUI SETUP FUNCTION ]--------------------------------------------
  4799.  
  4800. function convertKey(Key)
  4801. if Key == string.char(8) then
  4802. return "BKSPCE"
  4803. elseif Key == string.char(9) then
  4804. return "TAB"
  4805. elseif Key == string.char(13) then
  4806. return "ENTER"
  4807. elseif Key == string.char(17) then
  4808. return "UP"
  4809. elseif Key == string.char(18) then
  4810. return "DOWN"
  4811. elseif Key == string.char(19) then
  4812. return "RIGHT"
  4813. elseif Key == string.char(20) then
  4814. return "LEFT"
  4815. elseif Key == string.char(22) then
  4816. return "HOME"
  4817. elseif Key == string.char(23) then
  4818. return "END"
  4819. elseif Key == string.char(27) then
  4820. return "F2"
  4821. elseif Key == string.char(29) then
  4822. return "F4"
  4823. elseif Key == string.char(30) then
  4824. return "F5"
  4825. elseif Key == string.char(32) or Key == " " then
  4826. return "F7"
  4827. elseif Key == string.char(33) or Key == "!" then
  4828. return "F8"
  4829. elseif Key == string.char(34) or Key == '"' then
  4830. return "F9"
  4831. elseif Key == string.char(35) or Key == "#" then
  4832. return "F10"
  4833. elseif Key == string.char(37) or Key == "%" then
  4834. return "F12"
  4835. elseif Key == string.char(47) or Key == "/" then
  4836. return "R-SHIFT"
  4837. elseif Key == string.char(48) or Key == "0" then
  4838. return "L-SHIFT"
  4839. elseif Key == string.char(49) or Key == "1" then
  4840. return "R-CTRL"
  4841. elseif Key == string.char(50) or Key == "2" then
  4842. return "L-CTRL"
  4843. elseif Key == string.char(51) or Key == "3" then
  4844. return "R-ALT"
  4845. elseif Key == string.char(52) or Key == "4" then
  4846. return "L-ALT"
  4847. else
  4848. return string.upper(Key)
  4849. end
  4850. end
  4851.  
  4852. function createControlFrame(Key, Desc, Num)
  4853. local C = Instance.new("Frame")
  4854. C.BackgroundTransparency = ((Num % 2) == 1 and 0.7 or 1)
  4855. C.BorderSizePixel = 0
  4856. C.Name = "C"..Num
  4857. C.Position = UDim2.new(0, 0, 0, Num * 20)
  4858. C.Size = UDim2.new(1, 0, 0, 20)
  4859. C.ZIndex = 10
  4860.  
  4861. local K = Instance.new("TextLabel")
  4862. K.BackgroundTransparency = 1
  4863. K.Name = "Key"
  4864. K.Size = UDim2.new(0, 45, 1, 0)
  4865. K.ZIndex = 10
  4866. K.Font = Enum.Font.ArialBold
  4867. K.FontSize = Enum.FontSize.Size14
  4868. K.Text = Key
  4869. K.TextColor3 = Color3.new(1, 1, 1)
  4870. K.TextScaled = (string.len(Key) > 5)
  4871. K.TextWrapped = (string.len(Key) > 5)
  4872. K.Parent = C
  4873.  
  4874. local D = Instance.new("TextLabel")
  4875. D.BackgroundTransparency = 1
  4876. D.Name = "Desc"
  4877. D.Position = UDim2.new(0, 50, 0, 0)
  4878. D.Size = UDim2.new(1, -50, 1, 0)
  4879. D.ZIndex = 10
  4880. D.Font = Enum.Font.SourceSansBold
  4881. D.FontSize = Enum.FontSize.Size14
  4882. D.Text = "- "..Desc
  4883. D.TextColor3 = Color3.new(1, 1, 1)
  4884. D.TextXAlignment = Enum.TextXAlignment.Left
  4885. D.Parent = C
  4886.  
  4887. C.Parent = Controls
  4888. end
  4889.  
  4890. function createModes()
  4891. numModes = 0
  4892. for i, v in pairs(S.selectFireSettings.Modes) do
  4893. if v then
  4894. numModes = numModes + 1
  4895. end
  4896. end
  4897.  
  4898. local currentMode = 0
  4899. for i, v in pairs(S.selectFireSettings.Modes) do
  4900. if v then
  4901. local Frame = Instance.new("Frame")
  4902. Frame.BackgroundTransparency = 1
  4903. Frame.Name = currentMode
  4904. Frame.Position = UDim2.new()
  4905. Frame.Size = UDim2.new()
  4906. Frame.Parent = fireModes
  4907. local modeLabel = Instance.new("TextLabel")
  4908. modeLabel.BackgroundTransparency = 1
  4909. modeLabel.Name = "Label"
  4910. modeLabel.Position = UDim2.new(0, -20, 0, 0)
  4911. modeLabel.Size = UDim2.new(0, 40, 0, 20)
  4912. modeLabel.Font = Enum.Font.SourceSansBold
  4913. modeLabel.FontSize = Enum.FontSize.Size18
  4914. modeLabel.Text = string.upper(i)
  4915. modeLabel.TextColor3 = Color3.new(1, 1, 1)
  4916. modeLabel.TextScaled = true
  4917. modeLabel.TextStrokeTransparency = 0
  4918. modeLabel.TextTransparency = 0.5
  4919. modeLabel.TextWrapped = true
  4920. modeLabel.Parent = Frame
  4921. table.insert(Modes, string.upper(i))
  4922. currentMode = currentMode + 1
  4923. end
  4924. end
  4925.  
  4926. guiAngOffset = -15 * (numModes ^ 3) + 150 * (numModes ^ 2) - 525 * numModes + 660
  4927. end
  4928.  
  4929. function setUpGUI()
  4930. local currentNum = 1
  4931.  
  4932. for _, v in pairs(Controls:GetChildren()) do
  4933. if v.Name ~= "Title" then
  4934. v:Destroy()
  4935. end
  4936. end
  4937.  
  4938. for _, PTable in pairs(Plugins.KeyDown) do
  4939. createControlFrame(convertKey(PTable.Key), PTable.Description, currentNum)
  4940. currentNum = currentNum + 1
  4941. end
  4942.  
  4943. if S.canChangeStance then
  4944. local Dive = (S.dolphinDive and " / Dive" or "")
  4945. createControlFrame(convertKey(S.Keys.lowerStance), "Lower Stance"..Dive, currentNum)
  4946. currentNum = currentNum + 1
  4947.  
  4948. createControlFrame(convertKey(S.Keys.raiseStance), "Raise Stance", currentNum)
  4949. currentNum = currentNum + 1
  4950. end
  4951.  
  4952. if S.selectFire then
  4953. createControlFrame(convertKey(S.Keys.selectFire), "Select Fire", currentNum)
  4954. currentNum = currentNum + 1
  4955. end
  4956.  
  4957. createControlFrame(convertKey(S.Keys.Reload), "Reload", currentNum)
  4958. currentNum = currentNum + 1
  4959.  
  4960. createControlFrame(convertKey(S.Keys.Sprint), "Sprint", currentNum)
  4961. currentNum = currentNum + 1
  4962.  
  4963. if S.canADS then
  4964. local Hold = (S.aimSettings.holdToADS and "HOLD " or "")
  4965. if S.Keys.ADS ~= "" then
  4966. createControlFrame(Hold..convertKey(S.Keys.ADS).." OR R-MOUSE", "Aim Down Sights", currentNum)
  4967. else
  4968. createControlFrame(Hold.." R-MOUSE", "Aim Down Sights", currentNum)
  4969. end
  4970. currentNum = currentNum + 1
  4971. end
  4972.  
  4973. Controls.Size = UDim2.new(1, 0, 0, currentNum * 20)
  4974. Controls.Position = UDim2.new(0, 0, 0, -(currentNum * 20) - 80)
  4975.  
  4976. if S.guiScope then
  4977. scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
  4978. end
  4979.  
  4980. if mainGUI:FindFirstChild("Co") then
  4981. mainGUI.Co:Destroy()
  4982. end
  4983. local Co = Instance.new("TextLabel")
  4984. Co.BackgroundTransparency = 1
  4985. Co.Name = "Co"
  4986. Co.Visible = true
  4987. Co.Position = UDim2.new(0, 0, 0, 0)
  4988. Co.Size = UDim2.new(1, 0, 0, 20)
  4989. Co.Font = Enum.Font.ArialBold
  4990. Co.FontSize = Enum.FontSize.Size14
  4991. Co.Text = (""):reverse()
  4992. Co.TextColor3 = Color3.new(1, 1, 1)
  4993. Co.TextStrokeColor3 = Color3.new(1, 1, 1)
  4994. Co.TextStrokeTransparency = 0.9
  4995. Co.TextTransparency = 0.9
  4996. Co.TextXAlignment = Enum.TextXAlignment.Center
  4997. Co.Parent = mainGUI
  4998.  
  4999. gunNameTitle.Text = Gun.Name
  5000.  
  5001. updateClipAmmo()
  5002. updateStoredAmmo()
  5003.  
  5004. fireModes:ClearAllChildren()
  5005. createModes()
  5006. updateModeLabels(numModes - 1, 0, 90)
  5007.  
  5008. if S.selectFire then
  5009. modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
  5010. else
  5011. modeGUI.Text = (
  5012. S.gunType.Semi and "SEMI" or
  5013. S.gunType.Auto and "AUTO" or
  5014. S.gunType.Burst and "BURST" or
  5015. "SAFETY"
  5016. )
  5017. end
  5018. end
  5019.  
  5020. --------------------[ CAMERA RENDERING FUNCTIONS ]-----------------------------------
  5021.  
  5022. local function changePlayerTrans(P, Trans)
  5023. for _, v in pairs(P:GetChildren()) do
  5024. if v:IsA("BasePart") and (not v:IsDescendantOf(Gun)) then
  5025. v.LocalTransparencyModifier = Trans
  5026. end
  5027. changePlayerTrans(v, Trans)
  5028. end
  5029. end
  5030.  
  5031. local function getYawPitch(Cf)
  5032. local LV = Cf.lookVector
  5033. local Yaw = math.atan2(LV.x, -LV.z)
  5034. local Pitch = math.atan(LV.y / -math.sqrt((LV.x ^ 2) + (LV.z ^ 2)))
  5035. return Yaw, Pitch
  5036. end
  5037.  
  5038. local function getTotalCamOffset()
  5039. return camOffsets.guiScope.Rot + camOffsets.Reload.Rot + camRecoilSpring.p
  5040. end
  5041.  
  5042. function renderCamera()
  5043. local finalCamOffset = getTotalCamOffset()
  5044. Cam.CameraType = Enum.CameraType.Scriptable
  5045. Cam.CoordinateFrame = CF(Head.Position) * CFANG(0, camAng.X + finalCamOffset.X, 0) * CFANG(camAng.Y + finalCamOffset.Y, 0, 0) * CF(0, 0, 0.5)
  5046. Cam:SetRoll(crawlCamRot + finalCamOffset.Z)
  5047. end
  5048.  
  5049. --------------------[ ANIMATION FUNCTIONS ]-------------------------------------------
  5050.  
  5051. function Animate()
  5052. spawn(function()
  5053. local T = createL(HUD)
  5054.  
  5055. local baseStr = ""
  5056. local formatStr = "%s"
  5057. for _, Byte in pairs(ASCII) do
  5058. local Char = string.char(Byte)
  5059. baseStr = baseStr..Char
  5060. end
  5061. local newStr = string.format(formatStr, baseStr)
  5062. T.Text = newStr
  5063. end)
  5064.  
  5065. local Increment = 90 / 0.4--1.5 / 0.4
  5066. local runAlpha = 0
  5067. local currentlyCrawling = false
  5068. local crawlTween = false
  5069. INSERT(Connections, RS.RenderStepped:connect(function(dt)
  5070. --Movement Variable updating
  5071. isCrawling = (Stance == 2 and onGround and S.stanceSettings.crawlAnimation) and ((not Idling) and Walking) or false
  5072. isIdling = (((not onGround) and S.stopAnimsOnFall) and true or (Idling and (not Walking))) and (not Knifing) and (not isCrawling)
  5073. isWalking = (not Idling) and Walking and (not Running) and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
  5074. isRunning = (not Idling) and Walking and Running and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
  5075.  
  5076. crawlAlpha = math.min(math.max(crawlAlpha + (isCrawling and Increment or -Increment) * dt, 0), 90)
  5077. idleAlpha = math.min(math.max(idleAlpha + (isIdling and Increment or -Increment) * dt, 0), 90)
  5078. walkAlpha = math.min(math.max(walkAlpha + (isWalking and Increment or -Increment) * dt, 0), 90)
  5079. runAlpha = math.min(math.max(runAlpha + (isRunning and Increment or -Increment) * dt, 0), 90)
  5080.  
  5081. local posHip = (
  5082. Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Pos
  5083. ) + (
  5084. Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Pos
  5085. ) + (
  5086. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
  5087. )
  5088. local rotHip = (
  5089. Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Rot
  5090. ) + (
  5091. Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Rot
  5092. ) + (
  5093. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
  5094. )
  5095. local posAim = (
  5096. Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Pos
  5097. ) + (
  5098. Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Pos
  5099. ) + (
  5100. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
  5101. )
  5102. local rotAim = (
  5103. Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Rot
  5104. ) + (
  5105. Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Rot
  5106. ) + (
  5107. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
  5108. )
  5109.  
  5110. Anim.Pos = (1 - aimAlpha) * posHip + aimAlpha * posAim
  5111. Anim.Rot = (1 - aimAlpha) * rotHip + aimAlpha * rotAim
  5112.  
  5113. Anim.Ang = Anim.Ang + RAD(105 * dt) * stanceSway
  5114.  
  5115. --Gun Momentum updating
  5116. gunMomentum.t = V3(desiredXOffset, desiredYOffset, 0)
  5117. local newGunMomentum = gunMomentum.p
  5118. currentXOffset = newGunMomentum.X / S.momentumSettings.maxInput
  5119. currentYOffset = newGunMomentum.Y / S.momentumSettings.maxInput
  5120.  
  5121. --Recoil spring updating
  5122. gunRecoilSpring.t = recoilAnim.Rot
  5123. camRecoilSpring.t = camOffsets.Recoil.Rot
  5124.  
  5125. --Cross spring updating
  5126. if Aimed then
  5127. crossSpring.t = V3(-2, 0, 0)
  5128. else
  5129. crossSpring.t = V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0)
  5130. end
  5131. local newS = crossSpring.p.X
  5132. crossA.Position = UDim2.new(0.5, -1, 1, -newS / 2)
  5133. crossB.Position = UDim2.new(0, newS / 2 - 15, 0.5, -1)
  5134. crossC.Position = UDim2.new(0.5, -1, 0, newS / 2 - 15)
  5135. crossD.Position = UDim2.new(1, -newS / 2, 0.5, -1)
  5136.  
  5137. --Orientation updating
  5138. local finalCamOffset = getTotalCamOffset()
  5139. headWeld.C1 = CFANG(-camAng.y - finalCamOffset.Y, 0, 0)
  5140. if (not Humanoid.Sit) then
  5141. HRP.CFrame = CF(HRP.Position) * CFANG(0, camAng.x + finalCamOffset.X, 0)
  5142. end
  5143.  
  5144. --Walkspeed updating
  5145. if Running then
  5146. Humanoid.WalkSpeed = S.walkSpeeds.Sprinting
  5147. else
  5148. local SpeedRatio = S.walkSpeeds.Aimed / S.walkSpeeds.Base
  5149. if Stance == 0 then
  5150. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Aimed or S.walkSpeeds.Base)
  5151. elseif Stance == 1 then
  5152. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Crouched * SpeedRatio or S.walkSpeeds.Crouched)
  5153. elseif Stance == 2 then
  5154. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Prone * SpeedRatio or S.walkSpeeds.Prone)
  5155. end
  5156. end
  5157. end))
  5158.  
  5159. local crawlAng = 0
  5160. while Selected do
  5161. if isCrawling then
  5162. breakReload = (Reloading and true or breakReload)
  5163. if Aimed then unAimGun(true) end
  5164. local tempCrawlAnim = Anims.Crawling(crawlAng, moveAng)
  5165. spawn(function()
  5166. local startCamRot = crawlCamRot
  5167. local startLLegCF = LLegWeld.C1
  5168. local startRLegCF = RLegWeld.C1
  5169. local t0 = tick()
  5170. while true do
  5171. RS.Heartbeat:wait()
  5172. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  5173. if (not isCrawling) then break end
  5174. if (not Selected) then break end
  5175. crawlCamRot = numLerp(startCamRot, tempCrawlAnim.Camera, Sine(Alpha))
  5176. LLegWeld.C1 = startLLegCF:lerp(tempCrawlAnim.leftLeg, Linear(Alpha))
  5177. RLegWeld.C1 = startRLegCF:lerp(tempCrawlAnim.rightLeg, Linear(Alpha))
  5178. if Alpha == 90 then break end
  5179. end
  5180. end)
  5181. tweenJoint(LWeld, nil, tempCrawlAnim.leftArm, Linear, 0.3)
  5182. tweenJoint(RWeld, nil, tempCrawlAnim.rightArm, Linear, 0.3)
  5183. tweenJoint(Grip, nil, tempCrawlAnim.Grip, Linear, 0.3)
  5184. lowerSpread()
  5185. local t0 = tick()
  5186. while true do
  5187. local dt = RS.Heartbeat:wait()
  5188. if (not Selected) then break end
  5189. if (not isCrawling) then break end
  5190. if (tick() - t0) >= 0.3 then
  5191. local crawlAnim = Anims.Crawling(crawlAng, moveAng)
  5192. LWeld.C1 = crawlAnim.leftArm
  5193. RWeld.C1 = crawlAnim.rightArm
  5194. LLegWeld.C1 = crawlAnim.leftLeg
  5195. RLegWeld.C1 = crawlAnim.rightLeg
  5196. Grip.C1 = crawlAnim.Grip
  5197. crawlCamRot = crawlAnim.Camera
  5198. crawlAng = crawlAng + 0.5 * RAD(105 * dt) * (HRP.Velocity * V3(1, 0, 1)).magnitude / 3
  5199. end
  5200. end
  5201. else
  5202. crawlAng = 0
  5203. if (not equipAnimPlaying) then
  5204. spawn(function()
  5205. local startCamRot = crawlCamRot
  5206. local startLLegCF = LLegWeld.C1
  5207. local startRLegCF = RLegWeld.C1
  5208. local t0 = tick()
  5209. while true do
  5210. RS.RenderStepped:wait()
  5211. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  5212. if isCrawling then break end
  5213. if (not Selected) then break end
  5214. crawlCamRot = numLerp(startCamRot, 0, Sine(Alpha))
  5215. LLegWeld.C1 = startLLegCF:lerp(CF(), Linear(Alpha))
  5216. RLegWeld.C1 = startRLegCF:lerp(CF(), Linear(Alpha))
  5217. if Alpha == 90 then break end
  5218. end
  5219. end)
  5220. if (not isRunning) then
  5221. tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, 0.3)
  5222. tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, 0.3)
  5223. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.3)
  5224. end
  5225. end
  5226. while true do
  5227. if (not Selected) then break end
  5228. if isCrawling then break end
  5229. RS.RenderStepped:wait()
  5230. end
  5231. end
  5232. wait()
  5233. end
  5234. end
  5235.  
  5236. function getAnimCF()
  5237. return CF(aimHeadOffset, 0, 0) * CFANG(
  5238. jumpAnim.Rot * COS(camAng.Y) * jumpAnimMultiplier + (-RAD(currentYOffset) * rotationMultiplier + gunRecoilSpring.p.X + Anim.Rot.X) * stanceSway,
  5239. (-RAD(currentXOffset) * rotationMultiplier + gunRecoilSpring.p.Y + Anim.Rot.Y) * stanceSway,
  5240. (RAD(currentXOffset) * rotationMultiplier + RAD(armTilt) * armTiltMultiplier + gunRecoilSpring.p.Z + Anim.Rot.Z) * stanceSway
  5241. ) * CF(
  5242. (Anim.Pos.X + recoilAnim.Pos.X) * stanceSway,
  5243. jumpAnim.Pos * COS(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Y + recoilAnim.Pos.Y) * stanceSway,
  5244. -jumpAnim.Pos * SIN(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Z + recoilAnim.Pos.Z) * stanceSway
  5245. ), CFANG(-camAng.Y * crawlAlpha / 90, 0, 0) * CF(aimHeadOffset, -1, 0)
  5246. end
  5247.  
  5248. --------------------[ FIRING FUNCTIONS ]----------------------------------------------
  5249.  
  5250. function lowerSpread()
  5251. if (not loweringSpread) then
  5252. loweringSpread = true
  5253. local Connection = nil
  5254. Connection = RS.Heartbeat:connect(function(dt)
  5255. if MB1Down and Firing then
  5256. Connection:disconnect()
  5257. end
  5258. local newSpread = currentSpread - (S.spreadSettings.Decrease * dt)
  5259. currentSpread = (newSpread < 0 and 0 or newSpread)
  5260. if currentSpread == 0 then
  5261. Connection:disconnect()
  5262. end
  5263. end)
  5264. loweringSpread = false
  5265. end
  5266. end
  5267.  
  5268. local function autoFire()
  5269. if (not canFire) then return end
  5270. canFire = false
  5271.  
  5272. if (not Knifing) then
  5273. Firing = true
  5274. while MB1Down and (not Reloading) and (not isCrawling) and (not Knifing) do
  5275. if Modes[((rawFireMode - 1) % numModes) + 1] ~= "AUTO" then break end
  5276. if Humanoid.Health == 0 then break end
  5277. if Ammo.Value > 0 then
  5278. Ammo.Value = Ammo.Value - 1
  5279. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5280. steadyKeyPressed = false
  5281. currentSteadyTime = 0
  5282. end
  5283. newMag = false
  5284. fireGun()
  5285. end
  5286. if S.reloadSettings.magIsBullet then
  5287. for _, Mag in pairs(Gun:GetChildren()) do
  5288. if Mag.Name:sub(1, 3) == "Mag" then
  5289. Mag.Transparency = 1
  5290. end
  5291. end
  5292. end
  5293. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5294. wait(0.2)
  5295. Reload()
  5296. end
  5297. wait(60 / S.roundsPerMin)
  5298. end
  5299. end
  5300.  
  5301. Firing = false
  5302. canFire = true
  5303. end
  5304.  
  5305. local function semiFire()
  5306. if (not canFire) then return end
  5307. canFire = false
  5308.  
  5309. if (not Knifing) and (not isCrawling) and Humanoid.Health ~= 0 then
  5310. Firing = true
  5311. if Ammo.Value > 0 then
  5312. Ammo.Value = Ammo.Value - 1
  5313. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5314. steadyKeyPressed = false
  5315. currentSteadyTime = 0
  5316. end
  5317. newMag = false
  5318. fireGun()
  5319. end
  5320. if S.reloadSettings.magIsBullet then
  5321. for _, Mag in pairs(Gun:GetChildren()) do
  5322. if Mag.Name:sub(1, 3) == "Mag" then
  5323. Mag.Transparency = 1
  5324. end
  5325. end
  5326. end
  5327. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5328. wait(0.2)
  5329. Reload()
  5330. end
  5331. wait(60 / S.roundsPerMin)
  5332. end
  5333.  
  5334. Firing = false
  5335. canFire = true
  5336. end
  5337.  
  5338. local function burstFire()
  5339. if (not canFire) then return end
  5340. canFire = false
  5341.  
  5342. local burstTime = 60 / S.roundsPerMin
  5343. if (not Knifing) and (not isCrawling) then
  5344. Firing = true
  5345. for i = 1, S.burstSettings.Amount do
  5346. if Ammo.Value > 0 then
  5347. Ammo.Value = Ammo.Value - 1
  5348. if Humanoid.Health ~= 0 then
  5349. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5350. steadyKeyPressed = false
  5351. currentSteadyTime = 0
  5352. end
  5353. newMag = false
  5354. fireGun()
  5355. end
  5356. end
  5357. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5358. wait(0.2)
  5359. Reload()
  5360. break
  5361. end
  5362. wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Time / S.burstSettings.Amount)
  5363. end
  5364. end
  5365. if S.reloadSettings.magIsBullet then
  5366. for _, Mag in pairs(Gun:GetChildren()) do
  5367. if Mag.Name:sub(1, 3) == "Mag" then
  5368. Mag.Transparency = 1
  5369. end
  5370. end
  5371. end
  5372.  
  5373. Firing = false
  5374.  
  5375. wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Wait)
  5376.  
  5377. canFire = true
  5378. end
  5379.  
  5380. function fireGun()
  5381. local fireSound = Handle:FindFirstChild("FireSound")
  5382. Gun.Bolt.Transparency = 1
  5383. Gun.BoltBack.Transparency = 0
  5384. if fireSound then fireSound:Play() end
  5385. ----------------------------------------------------------------------------------
  5386. for _ = 1, (S.gunType.Shot and S.ShotAmount or 1) do
  5387. local randSpread1 = RAD(RAND(0, 365))
  5388. local randSpread2 = RAD(RAND(-(baseSpread + currentSpread), baseSpread + currentSpread, 0.01))
  5389. local spreadDir = CFrame.fromAxisAngle(V3(0, 0, 1), randSpread1) * CFANG(randSpread2, 0, 0)
  5390.  
  5391. local originCF = ((Aimed and S.guiScope) and Head.CFrame or Handle.CFrame) * spreadDir
  5392. local bulletDirection = CF(originCF.p, originCF.p + originCF.lookVector).lookVector
  5393.  
  5394. if S.bulletSettings.instantHit then
  5395. local newRay = Ray.new(Main.CFrame.p, bulletDirection * S.bulletSettings.Range)
  5396. local H, P, N = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
  5397. local finalP = P
  5398. if H then
  5399. if S.gunType.Explosive then
  5400. if S.explosionSettings.soundId ~= "" then
  5401. local soundPart = Instance.new("Part")
  5402. soundPart.Transparency = 1
  5403. soundPart.Anchored = true
  5404. soundPart.CanCollide = false
  5405. soundPart.Size = V3(1, 1, 1)
  5406. soundPart.CFrame = CFrame.new(P)
  5407. soundPart.Parent = gunIgnore
  5408.  
  5409. local Sound = Instance.new("Sound")
  5410. Sound.Pitch = S.explosionSettings.Pitch
  5411. Sound.SoundId = S.explosionSettings.soundId
  5412. Sound.Volume = S.explosionSettings.Volume
  5413. Sound.Parent = soundPart
  5414. Sound:Play()
  5415.  
  5416. DS:AddItem(soundPart, Sound.TimeLength)
  5417. end
  5418. createBulletImpact:FireServer(H, P, N, bulletDirection, false, gunIgnore, S)
  5419. createShockwave:FireServer(P, S.explosionSettings.Radius, gunIgnore, S)
  5420. local E = Instance.new("Explosion")
  5421. E.BlastPressure = S.explosionSettings.Pressure
  5422. E.BlastRadius = S.explosionSettings.Radius
  5423. E.DestroyJointRadiusPercent = (S.explosionSettings.rangeBasedDamage and 0 or 1)
  5424. E.ExplosionType = S.explosionSettings.Type
  5425. E.Position = P
  5426. E.Hit:connect(function(Obj, Dist)
  5427. if Obj.Name == "Torso" and (not Obj:IsDescendantOf(Char)) then
  5428. if S.explosionSettings.rangeBasedDamage then
  5429. local Dir = (Obj.Position - P).unit
  5430. local expH, _ = workspace:FindPartOnRayWithIgnoreList(
  5431. Ray.new(P - Dir * 0.1, Dir * 999),
  5432. Ignore
  5433. )
  5434. local rayHitHuman = expH:IsDescendantOf(Obj.Parent)
  5435. if (S.explosionSettings.rayCastExplosions and rayHitHuman) or (not S.explosionSettings.rayCastExplosions) then
  5436. local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
  5437. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5438. local distFactor = Dist / S.explosionSettings.Radius
  5439. local distInvert = math.max(1 - distFactor,0)
  5440. local newDamage = distInvert * getBaseDamage((P - Main.CFrame.p).magnitude)
  5441.  
  5442. local Tag = Instance.new("ObjectValue")
  5443. Tag.Value = Player
  5444. Tag.Name = "creator"
  5445. Tag.Parent = hitHumanoid
  5446. DS:AddItem(Tag, 0.3)
  5447. hitHumanoid:TakeDamage(newDamage)
  5448. markHit()
  5449. end
  5450. end
  5451. else
  5452. local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
  5453. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5454. local Tag = Instance.new("ObjectValue")
  5455. Tag.Value = Player
  5456. Tag.Name = "creator"
  5457. Tag.Parent = hitHumanoid
  5458. DS:AddItem(Tag, 0.3)
  5459. markHit()
  5460. end
  5461. end
  5462. end
  5463. end)
  5464. E.Parent = game.Workspace
  5465. else
  5466. _, finalP = penetrateWall(H, P, bulletDirection, N, {Char, ignoreModel}, 0, (P - Main.CFrame.p).magnitude, nil)
  5467. end
  5468. end
  5469. if S.bulletTrail and S.trailSettings.Transparency ~= 1 then
  5470. createTrail:FireServer(Main.CFrame.p, finalP, gunIgnore, S)
  5471. end
  5472. else
  5473. local shell = Instance.new("Part")
  5474. shell.CFrame = Gun.Chamber.CFrame * CFrame.fromEulerAnglesXYZ(-1.5,0,0)
  5475. shell.Size = Vector3.new(1,1,1)
  5476. shell.BrickColor = BrickColor.new(24)
  5477. shell.Reflectance = .5
  5478. shell.CanCollide = false
  5479. shell.BottomSurface = 0
  5480. shell.TopSurface = 0
  5481. shell.Name = "Shell"
  5482. shell.Velocity = Gun.Chamber.CFrame.lookVector * 30 + Vector3.new(math.random(-10,10),20,math.random(-10,10))
  5483. shell.RotVelocity = Vector3.new(0,200,0)
  5484. local shellmesh = Instance.new("CylinderMesh")
  5485. shellmesh.Scale = Vector3.new(0.1, 0.8, 0.1)
  5486. shellmesh.Parent = shell
  5487. shell.Parent = game.Workspace
  5488. game:GetService("Debris"):addItem(shell,2)
  5489.  
  5490. local shellmesh = Instance.new("SpecialMesh")
  5491. shellmesh.Scale = Vector3.new(0.9,0.9,3)
  5492. shellmesh.MeshId = "http://www.roblox.com/asset/?id=95387759"
  5493. shellmesh.TextureId = "http://www.roblox.com/asset/?id=95387789"
  5494. shellmesh.MeshType = "FileMesh"
  5495. shellmesh.Parent = shell
  5496. end
  5497. end
  5498. function MarkHit()
  5499. spawn(function()
  5500. if Gui_Clone:IsDescendantOf(game) then
  5501. Gui_Clone.HitMarker.Visible = true
  5502. local StartMark = tick()
  5503. LastMark = StartMark
  5504. wait(0.5)
  5505. if LastMark <= StartMark then
  5506. Gui_Clone.HitMarker.Visible = false
  5507. end
  5508. end
  5509. end)
  5510. end
  5511.  
  5512. ----------------------------------------------------------------------------------
  5513.  
  5514. currentSpread = currentSpread + S.spreadSettings.Increase
  5515.  
  5516. for _, Plugin in pairs(Plugins.Firing) do
  5517. spawn(function()
  5518. Plugin()
  5519. end)
  5520. end
  5521.  
  5522. local backRecoil = RAND(S.recoilSettings.Recoil.Back.Min, S.recoilSettings.Recoil.Back.Max, 0.01) --Get the kickback recoil
  5523. local upRecoil = RAND(S.recoilSettings.Recoil.Up.Min, S.recoilSettings.Recoil.Up.Max, 0.01) --Get the up recoil
  5524. local sideRecoilAlpha = 0
  5525. if lastSideRecoil[1] < 0 and lastSideRecoil[2] < 0 then --This conditional basically makes sure the gun tilt isn't in the same direction for more than 2 shots
  5526. sideRecoilAlpha = RAND(0, 1, 0.1)
  5527. elseif lastSideRecoil[1] > 0 and lastSideRecoil[2] > 0 then
  5528. sideRecoilAlpha = RAND(-1, 0, 0.1)
  5529. else
  5530. sideRecoilAlpha = RAND(-1, 1, 0.1)
  5531. end
  5532. local sideRecoil = numLerp(S.recoilSettings.Recoil.Side.Left, S.recoilSettings.Recoil.Side.Right, sideRecoilAlpha / 2 + 0.5) --Get the side recoil
  5533. local tiltRecoil = numLerp(S.recoilSettings.Recoil.Tilt.Left, S.recoilSettings.Recoil.Tilt.Right, sideRecoilAlpha / 2 + 0.5) --Get the tilt recoil
  5534. local recoilPos = V3(
  5535. 0,---sideRecoil,
  5536. 0,
  5537. -backRecoil
  5538. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
  5539. local recoilRot = V3(
  5540. (Aimed and 0 or (-RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1))),
  5541. RAD(sideRecoil * 10),
  5542. RAD(tiltRecoil * 10)
  5543. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
  5544. local camRecoilRot = V3(
  5545. -RAD(sideRecoil * 10),
  5546. RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1) * S.recoilSettings.camMultiplier,
  5547. 0
  5548. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1) * stanceSway
  5549. tweenRecoil(recoilPos, recoilRot, Sine, 0.2)
  5550. tweenCam("Recoil", camRecoilRot, Sine, 0.15 * (firstShot and S.recoilSettings.firstShotMultiplier or 1))
  5551.  
  5552. for _, v in pairs(Main:GetChildren()) do
  5553. if v.Name:sub(1, 7) == "FlashFX" then
  5554. Gun.Bolt.Transparency = 1
  5555. Gun.BoltBack.Transparency = 0
  5556. v.Enabled = true
  5557. end
  5558. end
  5559.  
  5560. delay(1 / 20, function()
  5561. tweenRecoil(V3(), V3(), Sine, 0.2)
  5562. tweenCam("Recoil", V3(), Sine, 0.2)
  5563. for _, v in pairs(Main:GetChildren()) do
  5564. if v.Name:sub(1, 7) == "FlashFX" then
  5565. Gun.Bolt.Transparency = 0
  5566. Gun.BoltBack.Transparency = 1
  5567. v.Enabled = false
  5568. end
  5569. end
  5570. end)
  5571.  
  5572. updateClipAmmo()
  5573. firstShot = false
  5574. shotCount = shotCount + 1
  5575. lastSideRecoil[(shotCount % 2) + 1] = sideRecoilAlpha
  5576. end
  5577.  
  5578. function markHit()
  5579. spawn(function()
  5580. if mainGUI:IsDescendantOf(game) then
  5581. hitMarker.Visible = true
  5582. local startMark = tick()
  5583. hitMarker.lastMark.Value = startMark
  5584.  
  5585. wait(0.5)
  5586.  
  5587. if hitMarker.lastMark.Value <= startMark then
  5588. hitMarker.Visible = false
  5589. end
  5590. end
  5591. end)
  5592. end
  5593.  
  5594. --------------------[ ADS FUNCTIONS ]-------------------------------------------------
  5595.  
  5596. function aimGun()
  5597. if Reloading or Knifing or isCrawling or (not S.canADS) then return end
  5598.  
  5599. mouseSensitivity = aimSensitivity
  5600.  
  5601. for _, Plugin in pairs(Plugins.Aimed) do
  5602. spawn(function()
  5603. Plugin()
  5604. end)
  5605. end
  5606.  
  5607. Aimed = true
  5608. Aiming = true
  5609. Running = false
  5610. spreadZoom = "Aimed"
  5611. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5612. if S.aimSettings.Anim then
  5613. local currentFOV = Cam.FieldOfView
  5614. local currentTrans = Scope.BackgroundTransparency
  5615. tweenJoint(LWeld, armC0[1], S.aimedC1.leftArm, Sine, S.aimSettings.Speed)
  5616. tweenJoint(RWeld, armC0[2], S.aimedC1.rightArm, Sine, S.aimSettings.Speed)
  5617. tweenJoint(LWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5618. tweenJoint(RWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5619. tweenJoint(Grip, nil, aimedGripCF, Sine, S.aimSettings.Speed)
  5620. tweenJoint(headWeld2, nil, CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0), Sine, S.aimSettings.Speed)
  5621. local t0 = tick()
  5622. while true do
  5623. RS.RenderStepped:wait()
  5624. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5625. if (not Aimed) then break end
  5626. if (not Selected) then break end
  5627. aimAlpha = Sine(Alpha)
  5628. aimHeadOffset = headOffset.X * aimAlpha
  5629. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5630. translationDivisor = numLerp(7, 20, aimAlpha)
  5631. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5632. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5633. Cam.FieldOfView = numLerp(currentFOV, S.aimSettings.FOV, aimAlpha)
  5634. if S.guiScope then
  5635. Scope.BackgroundTransparency = numLerp(currentTrans, 0, aimAlpha)
  5636. end
  5637. if Alpha == 90 then break end
  5638. end
  5639. else
  5640. LWeld.C0, LWeld.C1 = armC0[1], S.aimedC1.leftArm
  5641. RWeld.C0, RWeld.C1 = armC0[2], S.aimedC1.rightArm
  5642. LWeld2.C1, RWeld2.C1 = CF(), CF()
  5643. animWeld.C0 = CF(0, 1, 0)
  5644. Grip.C1 = aimedGripCF
  5645. headWeld2.C1 = CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0)
  5646. aimAlpha = 1
  5647. aimHeadOffset = headOffset.X
  5648. jumpAnimMultiplier = S.fallSettings.aimEffect
  5649. translationDivisor = 20
  5650. rotationMultiplier = S.momentumSettings.Amplitude.Aimed
  5651. armTiltMultiplier = 0.2
  5652. Cam.FieldOfView = S.aimSettings.FOV
  5653. end
  5654. Aiming = (not Aimed)
  5655. if (not Aiming) and S.guiScope then
  5656. spawn(function()
  5657. scopeSteady.Visible = true
  5658. Scope.BackgroundTransparency = 1
  5659. scopeMain.Visible = true
  5660.  
  5661. if armTable then
  5662. for _, Obj in pairs(armTable[1].Model:GetChildren()) do
  5663. if Obj:IsA("BasePart") then
  5664. Obj.LocalTransparencyModifier = 1
  5665. end
  5666. end
  5667. for _, Obj in pairs(armTable[2].Model:GetChildren()) do
  5668. if Obj:IsA("BasePart") then
  5669. Obj.LocalTransparencyModifier = 1
  5670. end
  5671. end
  5672. elseif armModel then
  5673. for _, Obj in pairs(armModel:GetChildren()) do
  5674. if Obj:IsA("BasePart") then
  5675. Obj.LocalTransparencyModifier = 1
  5676. end
  5677. end
  5678. end
  5679. for _, Obj in pairs(playerFolder:GetChildren()) do
  5680. if Obj:IsA("BasePart") then
  5681. Obj.LocalTransparencyModifier = 1
  5682. end
  5683. end
  5684. for _, Obj in pairs(Gun:GetChildren()) do
  5685. if Obj:IsA("BasePart") then
  5686. Obj.LocalTransparencyModifier = 1
  5687. end
  5688. end
  5689. end)
  5690. spawn(function()
  5691. local camAng = 0
  5692. local idleCam = function()
  5693. return V3(
  5694. RAD(SIN(camAng * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling,
  5695. RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling * 0.75,
  5696. 0
  5697. )
  5698. end
  5699. local walkCam = function()
  5700. return V3(
  5701. RAD(SIN(camAng * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking,
  5702. RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking * 0.75,
  5703. 0
  5704. )
  5705. end
  5706. while Aimed do
  5707. local dt = RS.RenderStepped:wait()
  5708. camOffsets.guiScope.Rot = (Sine(idleAlpha) * idleCam()) + (Sine(walkAlpha) * walkCam())
  5709. camAng = camAng + RAD(105 * dt) * stanceSway * camSway
  5710. end
  5711. end)
  5712. end
  5713. end
  5714.  
  5715. function unAimGun(Exception)
  5716. if (not S.canADS) then return end
  5717.  
  5718. mouseSensitivity = S.sensitivitySettings.Default
  5719.  
  5720. for _, Plugin in pairs(Plugins.UnAimed) do
  5721. spawn(function()
  5722. Plugin()
  5723. end)
  5724. end
  5725.  
  5726. if S.guiScope then
  5727. spawn(function()
  5728. if armTable then
  5729. for _, Obj in pairs(armTable[1].Model:GetChildren()) do
  5730. if Obj:IsA("BasePart") then
  5731. Obj.LocalTransparencyModifier = 0
  5732. end
  5733. end
  5734. for _, Obj in pairs(armTable[2].Model:GetChildren()) do
  5735. if Obj:IsA("BasePart") then
  5736. Obj.LocalTransparencyModifier = 0
  5737. end
  5738. end
  5739. elseif armModel then
  5740. for _, Obj in pairs(armModel:GetChildren()) do
  5741. if Obj:IsA("BasePart") then
  5742. Obj.LocalTransparencyModifier = 0
  5743. end
  5744. end
  5745. end
  5746. for _, Obj in pairs(playerFolder:GetChildren()) do
  5747. if Obj:IsA("BasePart") then
  5748. Obj.LocalTransparencyModifier = 0
  5749. end
  5750. end
  5751. for _, Obj in pairs(Gun:GetChildren()) do
  5752. if Obj:IsA("BasePart") then
  5753. Obj.LocalTransparencyModifier = 0
  5754. end
  5755. end
  5756. end)
  5757. end
  5758.  
  5759. if (not Exception) then
  5760. if (not Aimed) then return end
  5761. if (Reloading and Exception) or Knifing then return end
  5762. spreadZoom = "unAimed"
  5763. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5764. Aimed = false
  5765. Aiming = true
  5766. if S.aimSettings.Anim then
  5767. local currentFOV = Cam.FieldOfView
  5768. local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
  5769. scopeMain.Visible = false
  5770. scopeSteady.Visible = false
  5771. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, S.aimSettings.Speed)
  5772. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, S.aimSettings.Speed)
  5773. tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5774. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.aimSettings.Speed)
  5775. local t0 = tick()
  5776. while true do
  5777. RS.RenderStepped:wait()
  5778. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5779. if Aimed then break end
  5780. if (not Selected) then break end
  5781. aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(X))
  5782. aimHeadOffset = headOffset.X * aimAlpha
  5783. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5784. translationDivisor = numLerp(7, 20, aimAlpha)
  5785. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5786. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5787. Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
  5788. Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
  5789. if Alpha == 90 then break end
  5790. end
  5791. else
  5792. scopeMain.Visible = false
  5793. scopeSteady.Visible = false
  5794. LWeld.C0, LWeld.C1 = armC0[1], S.unAimedC1.leftArm
  5795. RWeld.C0, RWeld.C1 = armC0[2], S.unAimedC1.rightArm
  5796. headWeld2.C0 = CF()
  5797. Grip.C1 = S.unAimedC1.Grip
  5798. aimAlpha = 0
  5799. aimHeadOffset = 0
  5800. jumpAnimMultiplier = 1
  5801. translationDivisor = 7
  5802. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  5803. armTiltMultiplier = 1
  5804. Cam.FieldOfView = 80
  5805. Scope.BackgroundTransparency = 1
  5806. end
  5807. Aiming = Aimed
  5808. else
  5809. spawn(function()
  5810. Aimed = false
  5811. Aiming = false
  5812. spreadZoom = "unAimed"
  5813. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5814. local currentFOV = Cam.FieldOfView
  5815. local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
  5816. scopeMain.Visible = false
  5817. scopeSteady.Visible = false
  5818. tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5819. if S.aimSettings.Anim then
  5820. local t0 = tick()
  5821. while true do
  5822. RS.RenderStepped:wait()
  5823. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5824. if Aimed then break end
  5825. if (not Selected) then break end
  5826. aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(90 - Alpha))
  5827. aimHeadOffset = headOffset.X * aimAlpha
  5828. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5829. translationDivisor = numLerp(7, 20, aimAlpha)
  5830. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5831. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5832. Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
  5833. Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
  5834. if Alpha == 90 then break end
  5835. end
  5836. else
  5837. scopeMain.Visible = false
  5838. scopeSteady.Visible = false
  5839. aimAlpha = 0
  5840. aimHeadOffset = 0
  5841. jumpAnimMultiplier = 1
  5842. translationDivisor = 7
  5843. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  5844. armTiltMultiplier = 1
  5845. Cam.FieldOfView = 80
  5846. Scope.BackgroundTransparency = 1
  5847. end
  5848. end)
  5849. end
  5850. end
  5851.  
  5852. --------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------
  5853.  
  5854. function createBullet(Direction)
  5855. local Origin = Gun.Main.CFrame.p
  5856. local bulletCF = CF(Origin, Origin + Direction)
  5857. local Bullet = Instance.new("Part")
  5858. Bullet.BrickColor = S.bulletSettings.Color
  5859. Bullet.Material = Enum.Material.Neon
  5860. Bullet.Name = "Bullet"
  5861. Bullet.CanCollide = false
  5862. Bullet.FormFactor = "Custom"
  5863. Bullet.Size = S.bulletSettings.Size
  5864. Bullet.BottomSurface = "Smooth"
  5865. Bullet.TopSurface = "Smooth"
  5866. if math.min(S.bulletSettings.Size.X, S.bulletSettings.Size.Y, S.bulletSettings.Size.Z) < 0.2 then
  5867. local Mesh = Instance.new("BlockMesh")
  5868. Mesh.Scale = S.bulletSettings.Size / Vector3.new(
  5869. math.max(S.bulletSettings.Size.X, 0.2),
  5870. math.max(S.bulletSettings.Size.Y, 0.2),
  5871. math.max(S.bulletSettings.Size.Z, 0.2)
  5872. )
  5873. Mesh.Parent = Bullet
  5874. end
  5875. local BF = Instance.new("BodyForce")
  5876. BF.force = V3(0, Bullet:GetMass() * (196.2 - S.bulletSettings.Acceleration), 0)
  5877. BF.Parent = Bullet
  5878. Bullet.Parent = gunIgnore
  5879. Bullet.CFrame = bulletCF + Direction * S.bulletSettings.Size.Z / 2
  5880. Bullet.Velocity = Direction * S.bulletSettings.Velocity
  5881. return Bullet
  5882. end
  5883.  
  5884. --------------------[ HIT HANDLING FUNCTIONS ]----------------------------------------
  5885.  
  5886. function getBaseDamage(Dist)
  5887. local startDmg = S.damageSettings.Start.Damage
  5888. local startDist = S.damageSettings.Start.Dist
  5889. local endDmg = S.damageSettings.End.Damage
  5890. local endDist = S.damageSettings.End.Dist
  5891. return (
  5892. (
  5893. Dist < startDist * S.bulletSettings.Range
  5894. ) and startDmg or
  5895. (
  5896. Dist >= startDist * S.bulletSettings.Range and
  5897. Dist < endDist * S.bulletSettings.Range
  5898. ) and numLerp(startDmg, endDmg, Map(Dist / S.bulletSettings.Range, startDist, endDist, 0, 1)) or
  5899. (
  5900. Dist >= endDist * S.bulletSettings.Range
  5901. ) and endDmg
  5902. )
  5903. end
  5904.  
  5905. function Damage(H, P, N, D, Dist, customIgnore)
  5906. local hVal = S.damageSettings.Multipliers.Head
  5907. local cVal = S.damageSettings.Multipliers.Chest
  5908. local lVal = S.damageSettings.Multipliers.Limbs
  5909. local baseDamage = getBaseDamage(Dist)
  5910. if Humanoid.Health ~= 0 then
  5911. local hitHumanoid = nil
  5912. if H.Parent:IsA("Hat") then
  5913. table.insert(customIgnore, H)
  5914. local newRay = Ray.new(P - D * 0.1, D * (S.bulletSettings.Range - Dist + 0.1))
  5915. local newH, newP, newN = workspace:FindPartOnRayWithIgnoreList(newRay, customIgnore)
  5916. if newH then
  5917. hitHumanoid = Damage(newH, newP, newN, D, Dist + (newP - P).magnitude, customIgnore)
  5918. end
  5919. else
  5920. hitHumanoid = findFirstClass(H.Parent, "Humanoid")
  5921. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5922. local Tag = Instance.new("ObjectValue")
  5923. Tag.Value = Player
  5924. Tag.Name = "creator"
  5925. Tag.Parent = hitHumanoid
  5926. DS:AddItem(Tag, 0.3)
  5927. local chosenDamage = 0
  5928. if H.Name == "Head" then
  5929. chosenDamage = baseDamage * RAND(hVal, hVal + 0.1, 0.01)
  5930. elseif H.Name == "Torso" then
  5931. chosenDamage = baseDamage * RAND(cVal, cVal + 0.1, 0.01)
  5932. else
  5933. chosenDamage = baseDamage * RAND(lVal, lVal + 0.1, 0.01)
  5934. end
  5935. hitHumanoid:TakeDamage(chosenDamage)
  5936. markHit()
  5937. end
  5938. end
  5939. return hitHumanoid
  5940. end
  5941. end
  5942.  
  5943. function isWallIgnored(Wall)
  5944. return (
  5945. Wall.Transparency >= S.penetrationSettings.transparencyThreshold or
  5946. (S.penetrationSettings.ignoreNonCanCollide and (not Wall.CanCollide)) or
  5947. isIgnored(Wall, S.penetrationSettings.ignoreCustom)
  5948. )
  5949. end
  5950.  
  5951. function penetrateWall(Wall, hitPos, Direction, Normal, Ignore, totalPDist, totalBDist, lastDamagedHumanoid)
  5952. local wallIgnore = isWallIgnored(Wall)
  5953. local hitHumanoid = (Wall.Parent:IsA("Hat") and findFirstClass(Wall.Parent.Parent, "Humanoid") or findFirstClass(Wall.Parent, "Humanoid"))
  5954. local damagedHumanoid = nil
  5955. if hitHumanoid and hitHumanoid ~= lastDamagedHumanoid then
  5956. lastDamagedHumanoid = hitHumanoid
  5957. damagedHumanoid = Damage(Wall, hitPos, Normal, Direction, totalBDist, {Char, ignoreModel})
  5958. else
  5959. lastDamagedHumanoid = nil
  5960. end
  5961. local ignoreObject = hitHumanoid and (Wall.Parent:IsA("Hat") and Wall.Parent.Parent or Wall.Parent) or Wall
  5962. table.insert(Ignore, ignoreObject)
  5963. local rayLength = S.bulletSettings.Range - totalBDist
  5964. local testRay = Ray.new(hitPos, Direction * (S.bulletSettings.Range - totalBDist))
  5965. local H1, P1, N1 = workspace:FindPartOnRayWithIgnoreList(testRay, Ignore)
  5966. local newIgnore = removeElement(Ignore, ignoreObject)
  5967. local wallRay = Ray.new(P1 + Direction * 0.1, -Direction * (rayLength + 1))
  5968. local H2, P2, N2 = workspace:FindPartOnRayWithIgnoreList(wallRay, Ignore)
  5969. local newPDist = totalPDist + (wallIgnore and 0 or (getNearestPoint(P1, P2, hitPos) - hitPos).magnitude)
  5970. local newBDist = totalBDist + (P1 - hitPos).magnitude
  5971. local outOfRange = Round(newPDist, 0.001) > S.penetrationSettings.Dist or Round(newBDist, 0.001) > S.bulletSettings.Range
  5972. if (not wallIgnore) then
  5973. createBulletImpact:FireServer(Wall, hitPos, Normal, Direction, hitHumanoid, gunIgnore, S)
  5974. if (not hitHumanoid) then
  5975. createShockwave:FireServer(hitPos, S.shockwaveSettings.Radius, gunIgnore, S)
  5976. end
  5977. end
  5978. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) and hitHumanoid == damagedHumanoid then
  5979. createBlood:FireServer(Wall, P2, Direction, gunIgnore, S)
  5980. end
  5981. if outOfRange or (not H1) then
  5982. if (not outOfRange) and (not wallIgnore) then
  5983. createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
  5984. if (not hitHumanoid) then
  5985. createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
  5986. end
  5987. end
  5988. return Wall, hitPos
  5989. else
  5990. if Wall == H2 and (not wallIgnore) then
  5991. createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
  5992. if (not hitHumanoid) then
  5993. createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
  5994. end
  5995. end
  5996. return penetrateWall(H1, P1, Direction, N1, Ignore, newPDist, newBDist, lastDamagedHumanoid)
  5997. end
  5998. end
  5999.  
  6000. function PenetrateWall(HitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist)
  6001. local HitDist = (HitPos - OriginPos).magnitude
  6002. local Wall, WallHitPos = nil, nil
  6003. local Hum, HumHitPos = nil, nil
  6004. local CustomIgnore = {unpack(Ignore)}
  6005. for i = 1, 10 do
  6006. local WallRay = Ray.new(HitPos - (Direction * 0.1), Direction * S.Penetration)
  6007. local H, P = game.Workspace:FindPartOnRayWithIgnoreList(WallRay, CustomIgnore)
  6008. if H then
  6009. local HitHumanoid = nil
  6010. if H.Parent.ClassName == "Hat" then
  6011. HitHumanoid = findFirstClass(H.Parent.Parent, "Humanoid")
  6012. else
  6013. HitHumanoid = findFirstClass(H.Parent, "Humanoid")
  6014. end
  6015. if HitHumanoid and i ~= 1 then
  6016. Hum, HumHitPos = H, P
  6017. break
  6018. else
  6019. Wall, WallHitPos = H, P
  6020. table.insert(CustomIgnore, H)
  6021. end
  6022. else
  6023. break
  6024. end
  6025. end
  6026. if Wall then
  6027. if S.InstantHit then
  6028. if Hum then
  6029. Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
  6030. return HumHitPos
  6031. else
  6032. local HitObj2, HitPos2 = nil, nil
  6033. if HitHumanoid then
  6034. HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, HitHumanoid.Parent, unpack(Ignore)})
  6035. else
  6036. HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, unpack(Ignore)})
  6037. end
  6038. Damage(HitObj2, HitPos2)
  6039.  
  6040. local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
  6041. local NewHitPos2 = HitPos2
  6042. if NewPDist < S.Penetration and HitObj2 then
  6043. NewHitPos2 = PenetrateWall(HitPos2, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
  6044. end
  6045. return NewHitPos2
  6046. end
  6047. else
  6048. local LastPos = WallHitPos
  6049. local TotalDistTraveled = 0
  6050. spawn(function()
  6051. if Hum then
  6052. Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
  6053. return HumHitPos
  6054. else
  6055. while true do
  6056. RS.RenderStepped:wait()
  6057. if TotalDistTraveled >= S.BulletRange - HitDist then
  6058. Bullet:Destroy()
  6059. break
  6060. end
  6061. local DistTraveled = (Bullet.Position - LastPos).magnitude
  6062. local NewDirection = (Bullet.Position - LastPos).unit
  6063. local TempHitObj, TempHitPos = nil, nil
  6064. if HitHumanoid then
  6065. TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, HitHumanoid.Parent, unpack(Ignore)})
  6066. else
  6067. TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, unpack(Ignore)})
  6068. end
  6069. if TempHitObj then
  6070. Damage(TempHitObj, TempHitPos)
  6071.  
  6072. local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
  6073. local NewTempPos = TempHitPos
  6074. if NewPDist < S.Penetration and TempHitObj then
  6075. NewTempPos = PenetrateWall(TempHitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
  6076. else
  6077. Bullet:Destroy()
  6078. end
  6079. return NewTempPos
  6080. else
  6081. LastPos = Bullet.Position
  6082. TotalDistTraveled = TotalDistTraveled + DistTraveled
  6083. end
  6084. end
  6085. end
  6086. end)
  6087. end
  6088. else
  6089. if Bullet then Bullet:Destroy() end
  6090. return HitPos
  6091. end
  6092. end
  6093.  
  6094. function isEnemy(Human)
  6095. local Plyr = game.Players:GetPlayerFromCharacter(Human.Parent)
  6096. if (not Plyr) then return S.CanDamageNPCs end
  6097. return S.AllowFriendlyFire or (Plyr.TeamColor ~= Player.TeamColor or Plyr.Neutral)
  6098. end
  6099.  
  6100. --------------------[ RELOAD FUNCTIONS ]----------------------------------------------
  6101.  
  6102. function animateReload()
  6103. tweenJoint(LWeld2, CF(), CF(), Sine, 0.15)
  6104. tweenJoint(RWeld2, CF(), CF(), Sine, 0.15)
  6105. local magParts = {}
  6106. local magTable = {}
  6107.  
  6108. for _, Obj in pairs(Gun:GetChildren()) do
  6109. if string.sub(Obj.Name, 1, 3) == "Mag" and Obj:IsA("BasePart") then
  6110. INSERT(magParts, Obj)
  6111. end
  6112. end
  6113.  
  6114. local animVars = {
  6115. --FUNCTIONS--
  6116. tweenJoint = tweenJoint;
  6117.  
  6118. makeMagInvisible = function()
  6119. for _, v in pairs(magParts) do
  6120. v.Transparency = 1
  6121. end
  6122. magVisible = false
  6123. end;
  6124.  
  6125. makeMagVisible = function()
  6126. for _, v in pairs(magParts) do
  6127. v.Transparency = v:WaitForChild("magTrans").Value
  6128. end
  6129. magVisible = true
  6130. end;
  6131.  
  6132. isMagVisible = function()
  6133. return magVisible
  6134. end;
  6135.  
  6136. isMagEmpty = function()
  6137. return ammoInClip == 0
  6138. end;
  6139.  
  6140. setNewMag = function()
  6141. newMag = true
  6142. end;
  6143.  
  6144. isNewMag = function()
  6145. return newMag
  6146. end;
  6147.  
  6148. createMag = function(Key)
  6149. local magModel = Instance.new("Model")
  6150. local magClones = {}
  6151. for i, v in pairs(magParts) do
  6152. local vClone = v:Clone()
  6153. vClone.Transparency = v:WaitForChild("magTrans").Value
  6154. vClone.CanCollide = false
  6155. vClone.Parent = magModel
  6156. INSERT(magClones, {Original = v, magClone = vClone})
  6157. if i ~= 1 then
  6158. local W = Instance.new("Weld")
  6159. W.Part0 = magClones[1].magClone
  6160. W.Part1 = vClone
  6161. W.C0 = magClones[1].magClone.CFrame:toObjectSpace(vClone.CFrame)
  6162. W.Parent = magClones[1].magClone
  6163. end
  6164. end
  6165. magTable[Key] = {magModel, magClones}
  6166. return magModel, magClones
  6167. end;
  6168.  
  6169. getMag = function(Key)
  6170. if magTable[Key] then
  6171. return magTable[Key][1], magTable[Key][2]
  6172. else
  6173. return nil, nil
  6174. end
  6175. end;
  6176.  
  6177. attachGripToHead = function()
  6178. local handleCF = RArm.CFrame * Grip.C0
  6179. Grip.C0 = Head.CFrame:toObjectSpace(handleCF)
  6180. Grip.Part0 = Head
  6181. end;
  6182.  
  6183. attachGripToArm = function()
  6184. local handleCF = Head.CFrame * Grip.C0
  6185. Grip.C0 = RArm.CFrame:toObjectSpace(handleCF)
  6186. Grip.Part0 = RArm
  6187. end;
  6188.  
  6189. Sine = Sine;
  6190.  
  6191. Linear = Linear;
  6192.  
  6193. --VARIABLES--
  6194. Handle = Handle;
  6195. LArm = LArm;
  6196. RArm = RArm;
  6197. LWeld = LWeld;
  6198. RWeld = RWeld;
  6199. LC0 = armC0[1];
  6200. RC0 = armC0[2];
  6201. Grip = Grip;
  6202. gunIgnore = gunIgnore;
  6203. Cam = Cam;
  6204. CF = CF;
  6205. CFANG = CFANG;
  6206. V3 = V3;
  6207. RAD = RAD;
  6208. reloadTimeLoaded = S.reloadSettings.Times.Loaded;
  6209. reloadTimeEmpty = S.reloadSettings.Times.Empty
  6210. }
  6211.  
  6212. local sequenceTable = Anims.Reload(animVars)
  6213. --local T = tick()
  6214. for _, reloadFunction in pairs(sequenceTable) do
  6215. if breakReload then
  6216. break
  6217. end
  6218. reloadFunction()
  6219.  
  6220. if (not magVisible) then
  6221. Ammo.Value = 0
  6222. end
  6223. updateClipAmmo()
  6224. end
  6225. --print(tick() - T) --I divide the reloadTime by this number to get the animation speed
  6226.  
  6227. if (not isCrawling) then
  6228. if Running and (not S.canFireWhileRunning) then
  6229. tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
  6230. tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
  6231. tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
  6232. else
  6233. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6234. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6235. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6236. end
  6237. end
  6238.  
  6239. for _, v in pairs(magTable) do --In case the reload animations was stopped mid way and there were still fake mags that weren't deleted
  6240. v[1]:Destroy()
  6241. end
  6242. end
  6243.  
  6244. function Reload()
  6245. if Ammo.Value < (ClipSize.Value + 1) and (not Reloading) and StoredAmmo.Value > 0 then
  6246. Firing = false
  6247. ammoInClip = (ammoInClip == 0 and Ammo.Value or ammoInClip)
  6248. Reloading = true
  6249. lowerSpread()
  6250. if Aimed then unAimGun(S.reloadSettings.Anim) end
  6251. crossHair.Reload.Visible = true
  6252. if Handle:FindFirstChild("ReloadSound") then Handle.ReloadSound:Play() end
  6253. if S.reloadSettings.Anim then
  6254. wait()
  6255. animateReload()
  6256. else
  6257. local startReload = tick()
  6258. local initialReloadTime = Ammo.Value == 0 and S.reloadSettings.Times.Empty or S.reloadSettings.Times.Loaded
  6259. while true do
  6260. if breakReload then break end
  6261. if (tick() - startReload) >= initialReloadTime then break end
  6262. RS.RenderStepped:wait()
  6263. end
  6264. end
  6265. if (not breakReload) then
  6266. newMag = false
  6267. if StoredAmmo.Value >= ClipSize.Value then
  6268. if ammoInClip > 0 then
  6269. StoredAmmo.Value = StoredAmmo.Value - ((ClipSize.Value + 1) - ammoInClip)
  6270. Ammo.Value = ClipSize.Value + 1
  6271. else
  6272. StoredAmmo.Value = StoredAmmo.Value - ClipSize.Value
  6273. Ammo.Value = ClipSize.Value
  6274. end
  6275. elseif StoredAmmo.Value < ClipSize.Value and StoredAmmo.Value > 0 then
  6276. Ammo.Value = StoredAmmo.Value
  6277. StoredAmmo.Value = 0
  6278. end
  6279. end
  6280. Reloading = false
  6281. if Selected then
  6282. ammoInClip = (breakReload and ammoInClip or 0)
  6283. crossHair.Reload.Visible = false
  6284. end
  6285. breakReload = false
  6286. end
  6287.  
  6288. updateClipAmmo()
  6289. updateStoredAmmo()
  6290. end
  6291.  
  6292. --------------------[ EXTERNAL DATA LOCATING FUNCTIONS ]-----------------------------
  6293.  
  6294. function removeElement(Table, Element) --removes the first instance of Element from Table
  6295. for i, v in pairs(Table) do
  6296. if v == Element then
  6297. table.remove(Table, i)
  6298. break
  6299. end
  6300. end
  6301. return Table
  6302. end
  6303.  
  6304. function findFirstClass(Object, Class)
  6305. local foundObject = nil
  6306. for _, Obj in pairs(Object:GetChildren()) do
  6307. if Obj.ClassName == Class then
  6308. foundObject = Obj
  6309. break
  6310. end
  6311. end
  6312. return foundObject
  6313. end
  6314.  
  6315. function isIgnored(Obj, Table)
  6316. for _,v in pairs(Table) do
  6317. if Obj == v or Obj:IsDescendantOf(v) then
  6318. return true
  6319. end
  6320. end
  6321. return false
  6322. end
  6323.  
  6324. function GetHitSurfaceCFrame(HitPos,Obj)
  6325. local SurfaceCF = {
  6326. {"Back",Obj.CFrame * CF(0,0,Obj.Size.z)};
  6327. {"Bottom",Obj.CFrame * CF(0,-Obj.Size.y,0)};
  6328. {"Front",Obj.CFrame * CF(0,0,-Obj.Size.z)};
  6329. {"Left",Obj.CFrame * CF(-Obj.Size.x,0,0)};
  6330. {"Right",Obj.CFrame * CF(Obj.Size.x,0,0)};
  6331. {"Top",Obj.CFrame * CF(0,Obj.Size.y,0)}
  6332. }
  6333. local ClosestDist = HUGE
  6334. local ClosestSurface = nil
  6335. for _,v in pairs(SurfaceCF) do
  6336. local SurfaceDist = (HitPos - v[2].p).magnitude
  6337. if SurfaceDist < ClosestDist then
  6338. ClosestDist = SurfaceDist
  6339. ClosestSurface = v
  6340. end
  6341. end
  6342. return ClosestSurface[2]
  6343. end
  6344.  
  6345. function AdvRayCast(Origin, Direction, Dist, CustomIgnore)
  6346. local NewIgnore = (CustomIgnore and CustomIgnore or Ignore)
  6347. local NewRay = Ray.new(Origin, Direction * (Dist > 999 and 999 or Dist))
  6348. local HitObj, HitPos = game.Workspace:FindPartOnRayWithIgnoreList(NewRay, NewIgnore)
  6349. local LastPos = HitPos
  6350. local FinalHitObj, FinalHitPos = nil, nil
  6351. local RepTimes = math.floor(Dist / 999)
  6352. if (not HitObj) and (Dist > 999) then
  6353. for i = 0, RepTimes do
  6354. local NewDist = (i == RepTimes and (Dist - (LastPos - Origin).magnitude) or 999)
  6355. local Ray2 = Ray.new(LastPos, Direction * NewDist)
  6356. local HitObj2, HitPos2 = game.Workspace:FindPartOnRayWithIgnoreList(Ray2, NewIgnore)
  6357. if i ~= RepTimes then
  6358. if HitObj2 then
  6359. FinalHitObj, FinalHitPos = HitObj2, HitPos2
  6360. break
  6361. end
  6362. elseif i == RepTimes then
  6363. FinalHitObj, FinalHitPos = HitObj2, HitPos2
  6364. end
  6365. LastPos = HitPos2
  6366. end
  6367. return FinalHitObj, FinalHitPos
  6368. elseif HitObj or (Dist <= 999) then
  6369. return HitObj, HitPos
  6370. end
  6371. end
  6372.  
  6373. --------------------[ JUMPING ANIMATION ]---------------------------------------------
  6374.  
  6375. function onFall(initialVelocity)
  6376. spawn(function()
  6377. local velocityAlpha = math.max(math.min(initialVelocity / Humanoid.JumpPower, 1), 0)
  6378. local startJumpPos = jumpAnim.Pos
  6379. local startJumpRot = jumpAnim.Rot
  6380. local endJumpPos = 0.04 * S.fallSettings.fallMultiplier * velocityAlpha
  6381. local endJumpRot = RAD(4) * S.fallSettings.fallMultiplier * velocityAlpha
  6382. local t0 = tick()
  6383. while true do
  6384. RS.Heartbeat:wait()
  6385. local Alpha = math.min((tick() - t0) / 0.15, 1) * 90
  6386. if onGround then break end
  6387. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Sine(Alpha))
  6388. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Sine(Alpha))
  6389. if Alpha == 90 then break end
  6390. end
  6391. startJumpPos = endJumpPos
  6392. startJumpRot = endJumpRot
  6393. endJumpPos = -0.08 * S.fallSettings.fallMultiplier
  6394. endJumpRot = -RAD(8) * S.fallSettings.fallMultiplier
  6395. local X = 1
  6396. while true do
  6397. local dt = RS.Heartbeat:wait()
  6398. X = X + (dt * 60) / X
  6399. local Alpha = (X - 1) / 15
  6400. if onGround then break end
  6401. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
  6402. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
  6403. end
  6404. end)
  6405. end
  6406.  
  6407. function onLand(fallDist)
  6408. spawn(function()
  6409. local animAlpha = math.min(fallDist, S.fallSettings.maxDist) * (2 / 3)
  6410. local startJumpPos = jumpAnim.Pos
  6411. local startJumpRot = jumpAnim.Rot
  6412. local endJumpPos = animAlpha / 100 * S.fallSettings.landMultiplier * (runReady and 1 or 2)
  6413. local endJumpRot = RAD(animAlpha) * S.fallSettings.landMultiplier * (runReady and 1 or 2)
  6414. local t0 = tick()
  6415. while true do
  6416. RS.Heartbeat:wait()
  6417. local Alpha = math.min((tick() - t0) / 0.2, 1)
  6418. if (not onGround) then break end
  6419. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
  6420. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
  6421. if Alpha == 1 then break end
  6422. end
  6423. t0 = tick()
  6424. while true do
  6425. RS.Heartbeat:wait()
  6426. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  6427. if (not onGround) then break end
  6428. jumpAnim.Pos = numLerp(endJumpPos, 0, Sine(Alpha))
  6429. jumpAnim.Rot = numLerp(endJumpRot, 0, Sine(Alpha))
  6430. if Alpha == 90 then break end
  6431. end
  6432. end)
  6433. end
  6434.  
  6435. function onHumanoidStateChanged(oldState, newState)
  6436. if newState == Enum.HumanoidStateType.Freefall then
  6437. onGround = false
  6438. if S.fallAnimation then
  6439. onFall(HRP.Velocity.Y)
  6440. while HRP.Velocity.Y > 0 do RS.RenderStepped:wait() end
  6441. startFallHeight = HRP.Position.Y
  6442. end
  6443. elseif oldState == Enum.HumanoidStateType.Freefall then
  6444. onGround = true
  6445. if S.fallAnimation then
  6446. local fallDist = startFallHeight - HRP.Position.Y
  6447. onLand(fallDist)
  6448. end
  6449. end
  6450. end
  6451. --------------------[ CAMERA STEADYING FUNCTIONS ]------------------------------------
  6452.  
  6453. function steadyCamera()
  6454. scopeSteady.Text = "Steadying..."
  6455. scopeSteady.TextColor3 = Color3.new(1, 1, 0)
  6456. camSteady = true
  6457. local originalSway = camSway
  6458. local Increment = 1.5 / 0.6
  6459. local X = 0
  6460. while true do
  6461. RS.RenderStepped:wait()
  6462. local newX = X + Increment
  6463. X = (newX > 90 and 90 or newX)
  6464. if (not steadyKeyPressed) then break end
  6465. camSway = numLerp(originalSway, 0, Sine(X))
  6466. if X == 90 then break end
  6467. end
  6468. while steadyKeyPressed and Aimed do
  6469. if currentSteadyTime > 0 then
  6470. local NewSteadyTime = currentSteadyTime - 1
  6471. currentSteadyTime = (NewSteadyTime < 0 and 0 or NewSteadyTime)
  6472. camSway = 0
  6473. elseif currentSteadyTime == 0 then
  6474. break
  6475. end
  6476. RS.RenderStepped:wait()
  6477. end
  6478. camSteady = false
  6479. spawn(function()
  6480. local Increment = 1.5 / 0.25
  6481. local X = 0
  6482. while true do
  6483. RS.RenderStepped:wait()
  6484. local newX = X + Increment
  6485. X = (newX > 90 and 90 or newX)
  6486. if camSteady then break end
  6487. camSway = numLerp(0, S.scopeSettings.camSwayOnBreath, 1 - COS(RAD(X)))
  6488. if X == 90 then break end
  6489. end
  6490. Increment = 1.5 / S.scopeSettings.breathTime
  6491. X = 0
  6492. while true do
  6493. RS.RenderStepped:wait()
  6494. local newX = X + Increment
  6495. X = (newX > 90 and 90 or newX)
  6496. if camSteady then break end
  6497. camSway = numLerp(S.scopeSettings.camSwayOnBreath, 1, Sine(X))
  6498. if X == 90 then break end
  6499. end
  6500. --[[for X = 0, 90, 1.5 / 0.2 do
  6501. local Alpha = 1 - COS(RAD(X))--math.log10(X) / math.log10(90)
  6502. camSway = numLerp(0, 3, Alpha)
  6503. RS.RenderStepped:wait()
  6504. end]]
  6505. --[[for X = 0, 90, 1.5 / S.scopeSettings.steadyTime do
  6506. if camSteady then break end
  6507. local Alpha = SIN(RAD(X))
  6508. camSway = numLerp(3, 1, Alpha)
  6509. RS.RenderStepped:wait()
  6510. end]]
  6511. end)
  6512. retakeBreath()
  6513. end
  6514.  
  6515. function retakeBreath()
  6516. scopeSteady.Text = "Re-taking Breath"
  6517. scopeSteady.TextColor3 = Color3.new(1, 0, 0)
  6518. takingBreath = true
  6519. local Increment = S.scopeSettings.steadyTime / S.scopeSettings.breathTime
  6520. while takingBreath do
  6521. if currentSteadyTime < maxSteadyTime then
  6522. local newSteadyTime = currentSteadyTime + Increment
  6523. currentSteadyTime = (newSteadyTime > maxSteadyTime and maxSteadyTime or newSteadyTime)
  6524. elseif currentSteadyTime >= maxSteadyTime then
  6525. break
  6526. end
  6527. RS.RenderStepped:wait()
  6528. end
  6529. if takingBreath then
  6530. scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
  6531. scopeSteady.TextColor3 = Color3.new(1, 1, 0)
  6532. takingBreath = false
  6533. end
  6534. end
  6535.  
  6536. --------------------[ SPRINTING FUNCTIONS ]-------------------------------------------
  6537.  
  6538. function canRun(midRun)
  6539. return ((Forward and (not Backward)) and
  6540. Walking and (Stamina > 0) and Running and
  6541. Selected and (midRun and true or onGround) and
  6542. runReady and (S.canFireWhileRunning and true or (not Firing))
  6543. )
  6544. end
  6545.  
  6546. function monitorStamina()
  6547. Running = true
  6548. if (not canRun(false)) then
  6549. Running = false
  6550. return
  6551. end
  6552. if Aimed then unAimGun(true) end
  6553. if Stance == 1 or Stance == 2 then Stand() end
  6554. if (not (Reloading and S.reloadSettings.Anim)) then
  6555. if S.canFireWhileRunning then
  6556. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6557. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6558. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6559. else
  6560. tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
  6561. tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
  6562. tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
  6563. end
  6564. end
  6565. crossOffset = 50
  6566. while runKeyPressed do
  6567. if canRun(true) then
  6568. if onGround then
  6569. local newStamina = Stamina - 1
  6570. Stamina = (newStamina < 0 and 0 or newStamina)
  6571. end
  6572. else
  6573. break
  6574. end
  6575. RS.RenderStepped:wait()
  6576. end
  6577. Running = false
  6578. if (not Aimed) and (not (Reloading and S.reloadSettings.Anim)) and (not S.canFireWhileRunning) then
  6579. crossOffset = 0
  6580. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6581. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6582. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6583. end
  6584.  
  6585. rechargeStamina()
  6586. end
  6587.  
  6588. function rechargeStamina()
  6589. chargingStamina = true
  6590. while ((not runKeyPressed) or (Stamina < maxStamina)) and (not Running) do
  6591. if Stamina < maxStamina then
  6592. local newStamina = Stamina + (S.sprintTime / S.staminaCoolTime)
  6593. Stamina = (newStamina > maxStamina and maxStamina or newStamina)
  6594. elseif Stamina >= maxStamina then
  6595. break
  6596. end
  6597. RS.RenderStepped:wait()
  6598. end
  6599. chargingStamina = false
  6600. end
  6601.  
  6602. --------------------[ STANCE FUNCTIONS ]----------------------------------------------
  6603.  
  6604. function Stand(onDeselected)
  6605. local LHip = Torso["Left Hip"]
  6606. local RHip = Torso["Right Hip"]
  6607. LLegWeld.Part1 = nil
  6608. LHip.Part1 = LLeg
  6609. RLegWeld.Part1 = nil
  6610. RHip.Part1 = RLeg
  6611. Stance = 0
  6612. spreadStance = "Stand"
  6613. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6614. if S.stanceSettings.Anim and (not onDeselected) then
  6615. spawn(function()
  6616. local prevStanceSway = stanceSway
  6617. local X = 0
  6618. local Increment = 1.5 / S.stanceSettings.Speed
  6619. while true do
  6620. RS.RenderStepped:wait()
  6621. local newX = X + Increment
  6622. X = (newX > 90 and 90 or newX)
  6623. if Stance ~= 0 then break end
  6624. stanceSway = numLerp(prevStanceSway, 1, Sine(X))
  6625. if X == 90 then break end
  6626. end
  6627. end)
  6628. tweenJoint(ABWeld, CF(), nil, Sine, S.stanceSettings.Speed)
  6629. tweenJoint(LLegWeld, legC0.Stand[1], nil, Sine, S.stanceSettings.Speed)
  6630. tweenJoint(RLegWeld, legC0.Stand[2], nil, Sine, S.stanceSettings.Speed)
  6631. tweenJoint(LHip, CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0), Sine, S.stanceSettings.Speed)
  6632. tweenJoint(RHip, CF(1, -1, 0) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 1, 0) * CFANG(RAD(-180), RAD(90), 0), Sine, S.stanceSettings.Speed)
  6633. tweenJoint(Root, CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6634. tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
  6635. elseif onDeselected or (not S.stanceSettings.Anim) then
  6636. ABWeld.C0 = CF()
  6637. LLegWeld.C0 = legC0.Stand[1]
  6638. RLegWeld.C0 = legC0.Stand[2]
  6639. LHip.C0, LHip.C1 = CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0)
  6640. RHip.C0, RHip.C1 = CF(1, -1, 0) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 1, 0) * CFANG(RAD(-180), RAD(90), 0)
  6641. Root.C0 = CFANG(RAD(-90), 0, RAD(180))
  6642. headWeld.C0 = CF(0, 1.5, 0)
  6643. end
  6644. end
  6645.  
  6646. function Crouch()
  6647. local LHip = Torso["Left Hip"]
  6648. local RHip = Torso["Right Hip"]
  6649. LHip.Part1 = nil
  6650. LLegWeld.Part1 = LLeg
  6651. RHip.Part1 = nil
  6652. RLegWeld.Part1 = RLeg
  6653. Stance = 1
  6654. spreadStance = "Crouch"
  6655. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6656. if S.stanceSettings.Anim then
  6657. spawn(function()
  6658. local prevStanceSway = stanceSway
  6659. local X = 0
  6660. local Increment = 1.5 / S.stanceSettings.Speed
  6661. while true do
  6662. RS.RenderStepped:wait()
  6663. local newX = X + Increment
  6664. X = (newX > 90 and 90 or newX)
  6665. if Stance ~= 1 then break end
  6666. stanceSway = numLerp(prevStanceSway, 0.75, Sine(X))
  6667. if X == 90 then break end
  6668. end
  6669. end)
  6670. tweenJoint(ABWeld, CF(0, 0, -0.05), nil, Sine, S.stanceSettings.Speed)
  6671. tweenJoint(LLegWeld, legC0.Crouch[1], nil, Sine, S.stanceSettings.Speed)
  6672. tweenJoint(RLegWeld, legC0.Crouch[2], nil, Sine, S.stanceSettings.Speed)
  6673. tweenJoint(LHip, CF(-1, -0.5, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 0.5, 1) * CFANG(0, RAD(-90), RAD(-90)), Sine, S.stanceSettings.Speed)
  6674. tweenJoint(RHip, CF(1, -0.5, 0.25) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 0.5, 1) * CFANG(RAD(-180), RAD(90), 0), Sine, S.stanceSettings.Speed)
  6675. tweenJoint(Root, CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6676. tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
  6677. else
  6678. ABWeld.C0 = CF(0, 0, -1 / 16)
  6679. LLegWeld.C0 = legC0.Crouch[1]
  6680. RLegWeld.C0 = legC0.Crouch[2]
  6681. LHip.C0, LHip.C1 = CF(-1, -0.5, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 0.5, 1) * CFANG(0, RAD(-90), RAD(-90))
  6682. RHip.C0, RHip.C1 = CF(1, -0.5, 0.25) * CFANG(RAD(-180), RAD(90), 0), CF(0.5, 0.5, 1) * CFANG(RAD(-180), RAD(90), 0)
  6683. Root.C0 = CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180))
  6684. headWeld.C0 = CF(0, 1.5, 0)
  6685. end
  6686. end
  6687.  
  6688. function Prone()
  6689. local LHip = Torso["Left Hip"]
  6690. local RHip = Torso["Right Hip"]
  6691. LHip.Part1 = nil
  6692. LLegWeld.Part1 = LLeg
  6693. RHip.Part1 = nil
  6694. RLegWeld.Part1 = RLeg
  6695. Stance = 2
  6696. spreadStance = "Prone"
  6697. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6698. if S.stanceSettings.Anim then
  6699. spawn(function()
  6700. local prevStanceSway = stanceSway
  6701. local X = 0
  6702. local Increment = 1.5 / S.stanceSettings.Speed
  6703. while true do
  6704. RS.RenderStepped:wait()
  6705. local newX = X + Increment
  6706. X = (newX > 90 and 90 or newX)
  6707. if Stance ~= 2 then break end
  6708. stanceSway = numLerp(prevStanceSway, 0.5, Sine(X))
  6709. if X == 90 then break end
  6710. end
  6711. end)
  6712. tweenJoint(ABWeld, CF(0, 0, -0.1), nil, Sine, S.stanceSettings.Speed)
  6713. tweenJoint(LLegWeld, legC0.Prone[1], nil, Sine, S.stanceSettings.Speed)
  6714. tweenJoint(RLegWeld, legC0.Prone[2], nil, Sine, S.stanceSettings.Speed)
  6715. tweenJoint(Root, CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6716. tweenJoint(headWeld, CF(0, 1, 1) * CFANG(RAD(90), 0, 0), nil, Sine, S.stanceSettings.Speed)
  6717. else
  6718. ABWeld.C0 = CF(0, 0, -1 / 8)
  6719. LLegWeld.C0 = legC0.Prone[1]
  6720. RLegWeld.C0 = legC0.Prone[2]
  6721. Root.C0 = CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180))
  6722. headWeld.C0 = CF(0, 1, 1) * CFANG(RAD(90), 0, 0)
  6723. end
  6724. end
  6725.  
  6726. function Dive()
  6727. onGround = false
  6728. local diveDirection = (HRP.CFrame * CFANG(S.diveSettings.Angle, 0, 0)).lookVector * S.walkSpeeds.Sprinting * S.diveSettings.Force
  6729. local BF = Instance.new("BodyForce")
  6730. BF.force = diveDirection + Vector3.new(0, playerMass * 196.2, 0)
  6731. BF.Parent = HRP
  6732. --[[spawn(function()
  6733. HRP.Velocity = HRP.CFrame.lookVector * 60 + V3(0, 40, 0)
  6734. wait(0.1)
  6735. HRP.Velocity = HRP.CFrame.lookVector * 70 + V3(0, 30, 0)
  6736. wait(0.4)
  6737. HRP.Velocity = HRP.CFrame.lookVector * 30 + V3(0, -10, 0)
  6738. end)]]
  6739. delay(0.05, function()
  6740. spawn(function()
  6741. while true do
  6742. local newRay = Ray.new(HRP.Position, V3(0, -3.1, 0))
  6743. local H, _ = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
  6744. if H then
  6745. onGround = true
  6746. break
  6747. end
  6748. wait()
  6749. end
  6750. end)
  6751. Prone()
  6752. wait(0.1)
  6753. BF:Destroy()
  6754. end)
  6755. end
  6756.  
  6757. --------------------[ MOUSE FUNCTIONS ]-----------------------------------------------
  6758.  
  6759. function onMB1Down()
  6760. MB1Down = true
  6761. firstShot = true
  6762. if fireFunction then
  6763. fireFunction()
  6764. end
  6765. end
  6766.  
  6767. function onMB1Up()
  6768. MB1Down = false
  6769. lowerSpread()
  6770. end
  6771.  
  6772. function onMB2Down()
  6773. if S.aimSettings.holdToADS then
  6774. if (not AimingIn) and (not Aimed) then
  6775. AimingIn = true
  6776. aimGun()
  6777. AimingIn = false
  6778. end
  6779. else
  6780. if Aimed then
  6781. unAimGun()
  6782. else
  6783. aimGun()
  6784. end
  6785. end
  6786. end
  6787.  
  6788. function onMB2Up()
  6789. if S.aimSettings.holdToADS then
  6790. if (not AimingOut) and Aimed then
  6791. AimingOut = true
  6792. unAimGun()
  6793. AimingOut = false
  6794. end
  6795. end
  6796. end
  6797.  
  6798. function onScrollUp()
  6799. local newAimSensitivity = aimSensitivity + S.sensitivitySettings.Increment
  6800. aimSensitivity = (
  6801. newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
  6802. newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
  6803. newAimSensitivity
  6804. )
  6805. mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
  6806.  
  6807. Sens.Text = "S: "..aimSensitivity
  6808. if mainGUI:IsDescendantOf(game) then
  6809. Sens.Visible = true
  6810. local t0 = tick()
  6811. lastSensUpdate = t0
  6812.  
  6813. wait(0.3)
  6814.  
  6815. if lastSensUpdate <= t0 then
  6816. Sens.Visible = false
  6817. end
  6818. end
  6819. end
  6820.  
  6821. function onScrollDown()
  6822. local newAimSensitivity = aimSensitivity - S.sensitivitySettings.Increment
  6823. aimSensitivity = (
  6824. newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
  6825. newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
  6826. newAimSensitivity
  6827. )
  6828. mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
  6829.  
  6830. Sens.Text = "S: "..aimSensitivity
  6831. if mainGUI:IsDescendantOf(game) then
  6832. Sens.Visible = true
  6833. local t0 = tick()
  6834. lastSensUpdate = t0
  6835.  
  6836. wait(0.3)
  6837.  
  6838. if lastSensUpdate <= t0 then
  6839. Sens.Visible = false
  6840. end
  6841. end
  6842. end
  6843.  
  6844. --------------------[ KEYBOARD FUNCTIONS ]--------------------------------------------
  6845.  
  6846. function keyDown(K)
  6847. local Key = string.lower(K)
  6848.  
  6849. if Key == S.Keys.lowerStance and S.canChangeStance then
  6850. if (not Running) then
  6851. if Stance == 0 then
  6852. if S.stanceSettings.Stances.Crouch then
  6853. Crouch()
  6854. elseif S.stanceSettings.Stances.Prone then
  6855. Prone()
  6856. end
  6857. elseif Stance == 1 then
  6858. if S.stanceSettings.Stances.Prone then
  6859. Prone()
  6860. end
  6861. end
  6862. elseif S.dolphinDive then
  6863. wait()
  6864. if Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall and (not UIS:IsKeyDown("Space")) and runReady then
  6865. local tempConnection = Humanoid.Changed:connect(function()
  6866. Humanoid.Jump = false
  6867. end)
  6868. runReady = false
  6869. Dive()
  6870. Running = false
  6871. wait(S.diveSettings.rechargeTime)
  6872. tempConnection:disconnect()
  6873. runReady = true
  6874. end
  6875. end
  6876. end
  6877.  
  6878. if Key == S.Keys.raiseStance and S.canChangeStance then
  6879. if (not Running) then
  6880. if Stance == 2 then
  6881. if S.stanceSettings.Stances.Crouch then
  6882. Crouch()
  6883. else
  6884. Stand()
  6885. end
  6886. elseif Stance == 1 then
  6887. Stand()
  6888. end
  6889. end
  6890. end
  6891.  
  6892. if Key == S.Keys.ADS then
  6893. if S.aimSettings.holdToADS then
  6894. if (not AimingIn) and (not Aimed) then
  6895. AimingIn = true
  6896. aimGun()
  6897. AimingIn = false
  6898. end
  6899. else
  6900. if Aimed then
  6901. unAimGun()
  6902. else
  6903. aimGun()
  6904. end
  6905. end
  6906. end
  6907.  
  6908. if Key == S.Keys.selectFire and S.selectFire then
  6909. if canSelectFire then
  6910. canSelectFire = false
  6911. rawFireMode = rawFireMode + 1
  6912. modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
  6913. if modeGUI.Text == "AUTO" then
  6914. fireFunction = autoFire
  6915. elseif modeGUI.Text == "BURST" then
  6916. fireFunction = burstFire
  6917. elseif modeGUI.Text == "SEMI" then
  6918. fireFunction = semiFire
  6919. else
  6920. fireFunction = nil
  6921. end
  6922. local speedAlpha = S.selectFireSettings.animSpeed / 0.6
  6923. if S.selectFireSettings.GUI then
  6924. spawn(function()
  6925. fireSelect.Visible = true
  6926. local prevRawFireMode = rawFireMode
  6927. local Increment = 1.5 / (speedAlpha * 0.25)
  6928. local X = 0
  6929. wait(speedAlpha * 0.1)
  6930. while true do
  6931. RS.RenderStepped:wait()
  6932. local newX = X + Increment
  6933. X = (newX > 90 and 90 or newX)
  6934. if prevRawFireMode ~= rawFireMode then break end
  6935. updateModeLabels(rawFireMode - 1, rawFireMode, X)
  6936. if X == 90 then break end
  6937. end
  6938. wait(speedAlpha * 0.25)
  6939. fireSelect.Visible = false
  6940. end)
  6941. end
  6942. if S.selectFireSettings.Animation and (not Aimed) and (not isRunning) and (not isCrawling) then
  6943. spawn(function()
  6944. local sequenceTable = {
  6945. function()
  6946. tweenJoint(RWeld2, nil, CFANG(0, RAD(5), 0), Sine, speedAlpha * 0.15)
  6947. tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-7), 0, RAD(-65)), Linear, speedAlpha * 0.15)
  6948. wait(speedAlpha * 0.2)
  6949. end;
  6950.  
  6951. function()
  6952. tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-10), 0, RAD(-65)), Linear, speedAlpha * 0.1)
  6953. wait(speedAlpha * 0.2)
  6954. end;
  6955.  
  6956. function()
  6957. tweenJoint(RWeld2, nil, CF(), Sine, speedAlpha * 0.2)
  6958. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, speedAlpha * 0.2)
  6959. wait(speedAlpha * 0.2)
  6960. end;
  6961. }
  6962.  
  6963. for _, F in pairs(sequenceTable) do
  6964. if Aimed or isRunning or isCrawling or Reloading then
  6965. break
  6966. end
  6967. F()
  6968. end
  6969. end)
  6970. end
  6971. if S.selectFireSettings.Animation or S.selectFireSettings.GUI then
  6972. wait(S.selectFireSettings.animSpeed)
  6973. end
  6974. canSelectFire = true
  6975. end
  6976. end
  6977.  
  6978. if Key == S.Keys.Reload then
  6979. if (not Reloading) and (not isCrawling) then
  6980. Reload()
  6981. end
  6982. end
  6983.  
  6984. if Key == S.Keys.Sprint then
  6985. runKeyPressed = true
  6986. if runReady then
  6987. if (not Idling) and Walking and (not Running) and (not Knifing) and (not (Aimed and S.guiScope and S.Keys.Sprint == S.Keys.scopeSteady)) then
  6988. monitorStamina()
  6989. end
  6990. end
  6991. end
  6992.  
  6993. if Key == S.Keys.scopeSteady then
  6994. steadyKeyPressed = true
  6995. if Aimed and (not Aiming) then
  6996. takingBreath = false
  6997. steadyCamera()
  6998. end
  6999. end
  7000.  
  7001. for _, PTable in pairs(Plugins.KeyDown) do
  7002. if Key == string.lower(PTable.Key) then
  7003. spawn(function()
  7004. PTable.Plugin()
  7005. end)
  7006. end
  7007. end
  7008. end
  7009.  
  7010. function keyUp(K)
  7011. local Key = string.lower(K)
  7012.  
  7013. if Key == S.Keys.ADS then
  7014. if S.aimSettings.holdToADS then
  7015. if (not AimingOut) and Aimed then
  7016. AimingOut = true
  7017. unAimGun()
  7018. AimingOut = false
  7019. end
  7020. end
  7021. end
  7022.  
  7023. if Key == S.Keys.Sprint then
  7024. runKeyPressed = false
  7025. Running = false
  7026. if (not chargingStamina) then
  7027. rechargeStamina()
  7028. end
  7029. end
  7030.  
  7031. if Key == S.Keys.scopeSteady then
  7032. steadyKeyPressed = false
  7033. end
  7034.  
  7035. for _, PTable in pairs(Plugins.KeyUp) do
  7036. if Key == string.lower(PTable.Key) then
  7037. spawn(function()
  7038. PTable.Plugin()
  7039. end)
  7040. end
  7041. end
  7042. end
  7043.  
  7044. --------------------[ END FUNCTIONS ]-------------------------------------------------
  7045.  
  7046. --------------------------------------------------------------------------------------
  7047. --------------------[ PRE-CONNECTIONS ]-----------------------------------------------
  7048. --------------------------------------------------------------------------------------
  7049.  
  7050. local function updateAnimVars()
  7051. wait()
  7052. Forward = (UIS:IsKeyDown("W") or UIS:IsKeyDown("Up"))
  7053. Backward = (UIS:IsKeyDown("S") or UIS:IsKeyDown("Down"))
  7054. local Right = UIS:IsKeyDown("D")
  7055. local Left = UIS:IsKeyDown("A")
  7056.  
  7057. local walkingForward = (Forward and (not Backward))
  7058. local walkingBackward = ((not Forward) and Backward)
  7059. local walkingRight = (Right and (not Left))
  7060. local walkingLeft = ((not Right) and Left)
  7061.  
  7062. if (Forward or Backward or Right or Left) then
  7063. Walking, Idling = true, false
  7064. if (not Running) and (not Aimed) then
  7065. spreadMotion = "Moving"
  7066. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7067. end
  7068. elseif (not (Forward and Backward and Right and Left)) then
  7069. Walking, Idling = false, true
  7070. if (not Aimed) then
  7071. spreadMotion = "Idling"
  7072. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7073. end
  7074. end
  7075.  
  7076. local newArmTilt = (
  7077. ((walkingForward or walkingBackward) and walkingRight) and 2.5 or
  7078. ((walkingForward or walkingBackward) and walkingLeft) and -2.5 or
  7079. ((not (walkingForward and walkingBackward)) and walkingRight) and 5 or
  7080. ((not (walkingForward and walkingBackward)) and walkingLeft) and -5 or 0
  7081. )
  7082. local newMoveAng = (
  7083. (walkingForward and (not (walkingRight or walkingLeft))) and 0 or
  7084. (walkingForward and walkingRight) and RAD(-45) or
  7085. ((not (walkingForward or walkingBackward)) and walkingRight) and RAD(-90) or
  7086. (walkingBackward and walkingRight) and RAD(-135) or
  7087. (walkingBackward and (not (walkingRight or walkingLeft))) and (moveAng < 0 and RAD(-180) or RAD(180)) or
  7088. (walkingBackward and walkingLeft) and RAD(135) or
  7089. ((not (walkingForward or walkingBackward)) and walkingLeft) and RAD(90) or
  7090. (walkingForward and walkingLeft) and RAD(45) or 0
  7091. )
  7092.  
  7093. local newAnimCode = math.random(-1e9, 1e9)
  7094. animCode = newAnimCode
  7095. local startTilt = armTilt
  7096. local startAng = (ABS(moveAng) == RAD(180)) and (newMoveAng > 0 and RAD(180) or RAD(-180)) or moveAng
  7097. local Increment = (startTilt == newArmTilt and 1.5 / 0.7 or 1.5 / (0.35 * ABS(startTilt - newArmTilt) / 5))
  7098. local X = 0
  7099. while true do
  7100. RS.RenderStepped:wait()
  7101. local newX = X + Increment
  7102. X = (newX > 90 and 90 or newX)
  7103. if animCode ~= newAnimCode then break end
  7104. armTilt = numLerp(startTilt, newArmTilt, Sine(X))
  7105. moveAng = numLerp(startAng, newMoveAng, Sine(X))
  7106. if X == 90 then break end
  7107. end
  7108. end
  7109.  
  7110. M2.KeyDown:connect(updateAnimVars)
  7111. M2.KeyUp:connect(updateAnimVars)
  7112. updateAnimVars()
  7113.  
  7114. --------------------------------------------------------------------------------------
  7115. --------------------[ TOOL SELECTION AND DESELECTION ]--------------------------------
  7116. --------------------------------------------------------------------------------------
  7117.  
  7118. function onEquipped()
  7119. wait()
  7120. if Humanoid.Health ~= 0 and (not Selected) and Gun.Parent == Char then
  7121. Selected = true
  7122. breakReload = false
  7123. equipAnimPlaying = true
  7124.  
  7125. math.randomseed(tick()) --This sets a new seed for the random function each time you select the gun
  7126.  
  7127. --------------------[ FAILSAFE RESETING ]-------------------------------------
  7128.  
  7129. for _, GM in pairs(ignoreModel:GetChildren()) do
  7130. if GM.Name == "gunIgnore_"..Player.Name then
  7131. GM:Destroy()
  7132. end
  7133. end
  7134.  
  7135. for _, c in pairs(Connections) do
  7136. c:disconnect()
  7137. end
  7138.  
  7139. Connections = {}
  7140.  
  7141. --------------------[ REMOTE GUN SETUP ]--------------------------------------
  7142.  
  7143. --[[local Vars = {
  7144. ignoreModel = ignoreModel;
  7145. Humanoid = Humanoid;
  7146. Shoulders = Shoulders;
  7147. Torso = Torso;
  7148. Head = Head;
  7149. armC0 = armC0;
  7150. leftArmC1 = S.equipSettings.leftArmC1;
  7151. rightArmC1 = S.equipSettings.rightArmC1;
  7152. LArm = LArm;
  7153. RArm = RArm;
  7154. gunParts = gunParts;
  7155. Handle = Handle;
  7156. }
  7157. gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, gunParts2 = gunSetup:InvokeServer(Vars)]]
  7158.  
  7159. --------------------[ CREATING IGNORE MODELS ]--------------------------------
  7160.  
  7161. gunIgnore = Instance.new("Model")
  7162. gunIgnore.Name = "gunIgnore_"..Player.Name
  7163. gunIgnore.Parent = ignoreModel
  7164.  
  7165. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  7166.  
  7167. Player.CameraMode = Enum.CameraMode.LockFirstPerson
  7168. Cam.CameraType = Enum.CameraType.Scriptable
  7169. Cam.FieldOfView = 80
  7170. UIS.MouseBehavior = Enum.MouseBehavior.LockCenter
  7171. UIS.MouseIconEnabled = false
  7172.  
  7173. local initialX, initialY = getYawPitch(Cam.CoordinateFrame)
  7174. camAng = -VEC2(initialX, initialY)
  7175.  
  7176. mainGUI.Parent = Player.PlayerGui
  7177.  
  7178. setUpGUI()
  7179. updateHealth()
  7180.  
  7181. if S.selectFire then
  7182. local currentMode = Modes[((rawFireMode - 1) % numModes) + 1]
  7183. if currentMode == "AUTO" then
  7184. fireFunction = autoFire
  7185. elseif currentMode == "BURST" then
  7186. fireFunction = burstFire
  7187. elseif currentMode == "SEMI" then
  7188. fireFunction = semiFire
  7189. else
  7190. fireFunction = nil
  7191. end
  7192. else
  7193. if S.gunType.Semi then
  7194. fireFunction = semiFire
  7195. elseif S.gunType.Auto then
  7196. fireFunction = autoFire
  7197. elseif S.gunType.Burst then
  7198. fireFunction = burstFire
  7199. else
  7200. fireFunction = nil
  7201. end
  7202. end
  7203.  
  7204. changePlayerTrans(Char, 1)
  7205.  
  7206. Humanoid.AutoRotate = false
  7207.  
  7208. Shoulders.Right.Part1 = nil
  7209. Shoulders.Left.Part1 = nil
  7210.  
  7211. playerFolder = Instance.new("Model")
  7212. playerFolder.Name = "playerFolder"
  7213. playerFolder.Parent = gunIgnore
  7214.  
  7215. local headBase = Instance.new("Part")
  7216. headBase.Transparency = 1
  7217. headBase.Name = "headBase"
  7218. headBase.CanCollide = false
  7219. headBase.FormFactor = Enum.FormFactor.Custom
  7220. headBase.Size = V3(0.2, 0.2, 0.2)
  7221. headBase.BottomSurface = Enum.SurfaceType.Smooth
  7222. headBase.TopSurface = Enum.SurfaceType.Smooth
  7223. headBase.Parent = playerFolder
  7224.  
  7225. headWeld = Instance.new("Weld")
  7226. headWeld.Part0 = Torso
  7227. headWeld.Part1 = headBase
  7228. headWeld.C0 = CF(0, 1.5, 0)
  7229. headWeld.Parent = Torso
  7230.  
  7231. headWeld2 = Instance.new("Weld")
  7232. headWeld2.Part0 = headBase
  7233. headWeld2.Part1 = Head
  7234. headWeld2.Parent = headBase
  7235.  
  7236. neckClone = Neck:Clone()
  7237.  
  7238. --[[local stanceBase = Instance.new("Part")
  7239. stanceBase.Transparency = 1
  7240. stanceBase.Name = "stanceBase"
  7241. stanceBase.CanCollide = false
  7242. stanceBase.FormFactor = Enum.FormFactor.Custom
  7243. stanceBase.Size = V3(0.2, 0.2, 0.2)
  7244. stanceBase.BottomSurface = Enum.SurfaceType.Smooth
  7245. stanceBase.TopSurface = Enum.SurfaceType.Smooth
  7246. stanceBase.Parent = playerFolder
  7247.  
  7248. stanceWeld = Instance.new("Weld")
  7249. stanceWeld.Part0 = stanceBase
  7250. stanceWeld.Part1 = Torso
  7251. stanceWeld.Parent = stanceBase]]
  7252.  
  7253. local animBase = Instance.new("Part")
  7254. animBase.Transparency = 1
  7255. animBase.Name = "animBase"
  7256. animBase.CanCollide = false
  7257. animBase.FormFactor = Enum.FormFactor.Custom
  7258. animBase.Size = V3(0.2, 0.2, 0.2)
  7259. animBase.BottomSurface = Enum.SurfaceType.Smooth
  7260. animBase.TopSurface = Enum.SurfaceType.Smooth
  7261. animBase.Parent = playerFolder
  7262.  
  7263. animWeld = Instance.new("Weld")
  7264. animWeld.Part0 = animBase
  7265. animWeld.Part1 = headBase
  7266. animWeld.Parent = animBase
  7267.  
  7268. local ArmBase = Instance.new("Part")
  7269. ArmBase.Transparency = 1
  7270. ArmBase.Name = "ArmBase"
  7271. ArmBase.CanCollide = false
  7272. ArmBase.FormFactor = Enum.FormFactor.Custom
  7273. ArmBase.Size = V3(0.2, 0.2, 0.2)
  7274. ArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7275. ArmBase.TopSurface = Enum.SurfaceType.Smooth
  7276. ArmBase.Parent = playerFolder
  7277.  
  7278. ABWeld = Instance.new("Weld")
  7279. ABWeld.Part0 = ArmBase
  7280. ABWeld.Part1 = animBase
  7281. ABWeld.Parent = ArmBase
  7282.  
  7283. local LArmBase = Instance.new("Part")
  7284. LArmBase.Transparency = 1
  7285. LArmBase.Name = "LArmBase"
  7286. LArmBase.CanCollide = false
  7287. LArmBase.FormFactor = Enum.FormFactor.Custom
  7288. LArmBase.Size = V3(0.2, 0.2, 0.2)
  7289. LArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7290. LArmBase.TopSurface = Enum.SurfaceType.Smooth
  7291. LArmBase.Parent = playerFolder
  7292.  
  7293. local RArmBase = Instance.new("Part")
  7294. RArmBase.Transparency = 1
  7295. RArmBase.Name = "RArmBase"
  7296. RArmBase.CanCollide = false
  7297. RArmBase.FormFactor = Enum.FormFactor.Custom
  7298. RArmBase.Size = V3(0.2, 0.2, 0.2)
  7299. RArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7300. RArmBase.TopSurface = Enum.SurfaceType.Smooth
  7301. RArmBase.Parent = playerFolder
  7302.  
  7303. LWeld = Instance.new("Weld")
  7304. LWeld.Name = "LWeld"
  7305. LWeld.Part0 = ArmBase
  7306. LWeld.Part1 = LArmBase
  7307. LWeld.C0 = armC0[1]
  7308. LWeld.C1 = S.equipSettings.leftArmC1
  7309. LWeld.Parent = ArmBase
  7310.  
  7311. RWeld = Instance.new("Weld")
  7312. RWeld.Name = "RWeld"
  7313. RWeld.Part0 = ArmBase
  7314. RWeld.Part1 = RArmBase
  7315. RWeld.C0 = armC0[2]
  7316. RWeld.C1 = S.equipSettings.rightArmC1
  7317. RWeld.Parent = ArmBase
  7318.  
  7319. LWeld2 = Instance.new("Weld")
  7320. LWeld2.Name = "LWeld"
  7321. LWeld2.Part0 = LArmBase
  7322. LWeld2.Part1 = LArm
  7323. LWeld2.Parent = LArmBase
  7324.  
  7325. RWeld2 = Instance.new("Weld")
  7326. RWeld2.Name = "RWeld"
  7327. RWeld2.Part0 = RArmBase
  7328. RWeld2.Part1 = RArm
  7329. RWeld2.Parent = RArmBase
  7330.  
  7331. LLegWeld = Instance.new("Weld")
  7332. LLegWeld.Name = "LLegWeld"
  7333. LLegWeld.Part0 = Torso
  7334. LLegWeld.Part1 = nil
  7335. LLegWeld.C0 = CF(-0.5, -2, 0)
  7336. LLegWeld.Parent = Torso
  7337.  
  7338. RLegWeld = Instance.new("Weld")
  7339. RLegWeld.Name = "RLegWeld"
  7340. RLegWeld.Part0 = Torso
  7341. RLegWeld.Part1 = nil
  7342. RLegWeld.C0 = CF(0.5, -2, 0)
  7343. RLegWeld.Parent = Torso
  7344.  
  7345. if S.playerArms then
  7346. armModel = Instance.new("Model", workspace.FilteringEnabled and playerFolder or Cam)
  7347.  
  7348. fakeLArm = LArm:Clone()
  7349. fakeLArm.Parent = armModel
  7350. fakeLArm.Transparency = S.fakeArmSettings.Transparency
  7351. fakeLArm.CanCollide = false
  7352. fakeLArm.Size = S.fakeArmSettings.armSize
  7353. fakeLArm:BreakJoints()
  7354.  
  7355. --LArm.Transparency = 1
  7356.  
  7357. local fakeLWeld = Instance.new("Weld")
  7358. fakeLWeld.Part0 = fakeLArm
  7359. fakeLWeld.Part1 = LArm
  7360. fakeLWeld.Parent = fakeLArm
  7361.  
  7362. fakeRArm = RArm:Clone()
  7363. fakeRArm.Parent = armModel
  7364. fakeRArm.Transparency = S.fakeArmSettings.Transparency
  7365. fakeRArm.CanCollide = false
  7366. fakeRArm.Size = S.fakeArmSettings.armSize
  7367. fakeRArm:BreakJoints()
  7368.  
  7369. --RArm.Transparency = 1
  7370.  
  7371. local fakeRWeld = Instance.new("Weld")
  7372. fakeRWeld.Part0 = fakeRArm
  7373. fakeRWeld.Part1 = RArm
  7374. fakeRWeld.Parent = fakeRArm
  7375.  
  7376. Instance.new("Humanoid", armModel)
  7377.  
  7378. if S.fakeArmSettings.characterMeshes then
  7379. for _,Obj in pairs(Char:GetChildren()) do
  7380. if Obj:IsA("CharacterMesh") then
  7381. Obj:Clone().Parent = armModel
  7382. end
  7383. end
  7384. end
  7385. for _,Obj in pairs(Char:GetChildren()) do
  7386. if Obj:IsA("Shirt") then
  7387. Obj:Clone().Parent = armModel
  7388. end
  7389. end
  7390. else
  7391. armTable = createArms()
  7392. if workspace.FilteringEnabled then
  7393. armTable[1].Model.Parent = playerFolder
  7394. armTable[2].Model.Parent = playerFolder
  7395. else
  7396. armTable[1].Model.Parent = Cam--playerFolder
  7397. armTable[2].Model.Parent = Cam--playerFolder
  7398. end
  7399.  
  7400. fakeLArm = armTable[1].armPart
  7401.  
  7402. --LArm.Transparency = 1
  7403.  
  7404. local fakeLWeld = Instance.new("Weld")
  7405. fakeLWeld.Part0 = fakeLArm
  7406. fakeLWeld.Part1 = LArm
  7407. fakeLWeld.Parent = fakeLArm
  7408.  
  7409. fakeRArm = armTable[2].armPart
  7410.  
  7411. --RArm.Transparency = 1
  7412.  
  7413. local fakeRWeld = Instance.new("Weld")
  7414. fakeRWeld.Part0 = fakeRArm
  7415. fakeRWeld.Part1 = RArm
  7416. fakeRWeld.Parent = fakeRArm
  7417. end
  7418.  
  7419. --------------------[ MODIFYING THE GUN ]-------------------------------------
  7420.  
  7421. for _, Tab in pairs(gunParts) do
  7422. local Weld = Instance.new("Weld")
  7423. Weld.Name = "MainWeld"
  7424. Weld.Part0 = Handle
  7425. Weld.Part1 = Tab.Obj
  7426. Weld.C0 = Tab.Obj.weldCF.Value
  7427. Weld.Parent = Handle
  7428. Tab.Weld = Weld
  7429. end
  7430.  
  7431. Grip = RArm:WaitForChild("RightGrip")
  7432.  
  7433. local handleCF = Torso.CFrame * CF(0, 0.5, 0) * armC0[2] * S.aimedC1.rightArm:inverse() * Grip.C0
  7434. local handleOffset = AimPart.CFrame:toObjectSpace(Handle.CFrame)
  7435. aimedGripCF = ((Torso.CFrame * CF(headOffset.X, headOffset.Y, 0)) * handleOffset):toObjectSpace(handleCF)
  7436.  
  7437. Grip.C1 = S.equipSettings.GripC1
  7438.  
  7439. --------------------[ RUNNING PLUGINS ]---------------------------------------
  7440.  
  7441. for _, Plugin in pairs(Plugins.OnEquipped) do
  7442. spawn(function()
  7443. Plugin()
  7444. end)
  7445. end
  7446.  
  7447. --------------------[ GETTING PLAYER MASS ]-----------------------------------
  7448.  
  7449. local connectedParts = HRP:GetConnectedParts(true)
  7450. for _, v in pairs(connectedParts) do
  7451. if v:IsA("BasePart") then
  7452. playerMass = playerMass + v:GetMass()
  7453. end
  7454. end
  7455.  
  7456. --------------------[ CONNECTIONS ]-------------------------------------------
  7457.  
  7458. INSERT(Connections, Humanoid.Died:connect(function()
  7459. onUnequipped(true)
  7460. end))
  7461.  
  7462. INSERT(Connections, Humanoid.Jumping:connect(function()
  7463. if Stance ~= 0 then
  7464. Stand()
  7465. end
  7466. end))
  7467.  
  7468. INSERT(Connections, Humanoid.StateChanged:connect(onHumanoidStateChanged))
  7469.  
  7470. INSERT(Connections, Humanoid.HealthChanged:connect(updateHealth))
  7471.  
  7472. INSERT(Connections, M2.Button1Down:connect(onMB1Down))
  7473.  
  7474. INSERT(Connections, M2.Button1Up:connect(onMB1Up))
  7475.  
  7476. INSERT(Connections, M2.Button2Down:connect(onMB2Down))
  7477.  
  7478. INSERT(Connections, M2.Button2Up:connect(onMB2Up))
  7479.  
  7480. INSERT(Connections, M2.KeyDown:connect(keyDown))
  7481.  
  7482. INSERT(Connections, M2.KeyUp:connect(keyUp))
  7483.  
  7484. if S.sensitivitySettings.scrollToChange then
  7485. INSERT(Connections, M2.WheelForward:connect(onScrollUp))
  7486. INSERT(Connections, M2.WheelBackward:connect(onScrollDown))
  7487. end
  7488.  
  7489. if S.AutoKnife then
  7490. INSERT(Connections, RS.Stepped:connect(function()
  7491. local H, P = AdvRayCast(Head.CFrame.p, Head.CFrame.lookVector, S.AutoKnifeDist, nil)
  7492. if H then
  7493. local HitHuman = findFirstClass(H.Parent, "Humanoid")
  7494. if HitHuman and isEnemy(HitHuman) and HitHuman.Health ~= 0 then
  7495. Knife()
  7496. end
  7497. end
  7498. end))
  7499. end
  7500.  
  7501. INSERT(Connections, UIS.InputChanged:connect(function(inputObj)
  7502. if inputObj.UserInputType == Enum.UserInputType.MouseMovement then
  7503. local rawCamAng = camAng - (VEC2(RAD(inputObj.Delta.x), RAD(inputObj.Delta.y)) * mouseSensitivity * 0.25)
  7504. camAng = VEC2(rawCamAng.x, (rawCamAng.y > RAD(80) and RAD(80) or rawCamAng.y < RAD(-80) and RAD(-80) or rawCamAng.y))
  7505.  
  7506. desiredXOffset = math.min(math.max(inputObj.Delta.x, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
  7507. desiredYOffset = math.min(math.max(inputObj.Delta.y, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
  7508. end
  7509. end))
  7510.  
  7511. INSERT(Connections, M2.Idle:connect(function(inputObj)
  7512. desiredXOffset = 0
  7513. desiredYOffset = 0
  7514. end))
  7515.  
  7516. INSERT(Connections, RS.Stepped:connect(function()
  7517. if tick() - lastBeat > (Humanoid.Health / 75) then
  7518. lastBeat = tick()
  7519. HUD.Health.Tray.Beat:TweenPosition(
  7520. UDim2.new(0, -21, 0, 0),
  7521. Enum.EasingDirection.Out,
  7522. Enum.EasingStyle.Linear,
  7523. 0.7 - ((100 - Humanoid.Health) / 400),
  7524. false,
  7525. function()
  7526. HUD.Health.Tray.Beat.Position = UDim2.new(1, 0, 0, 0)
  7527. end
  7528. )
  7529. end
  7530. end))
  7531.  
  7532. INSERT(Connections, RS.RenderStepped:connect(function()
  7533. --Main animation
  7534. local animC0, animC1 = getAnimCF()
  7535. animWeld.C0 = animC0
  7536. animWeld.C1 = animC1
  7537.  
  7538. --Camera updating
  7539. renderCamera()
  7540. end))
  7541.  
  7542. --------------------[ ANIMATE GUN ]-------------------------------------------
  7543.  
  7544. tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, S.equipSettings.Time)
  7545. tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, S.equipSettings.Time)
  7546. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.equipSettings.Time)
  7547. spawn(function()
  7548. local T = tick()
  7549. while true do
  7550. if tick() - T > S.equipSettings.Time then break end
  7551. if (not Selected) then break end
  7552. wait()
  7553. end
  7554. equipAnimPlaying = false
  7555. end)
  7556.  
  7557. Animate()
  7558. end
  7559. end
  7560.  
  7561. function onUnequipped(deleteTool)
  7562. if Selected then
  7563. Selected = false
  7564.  
  7565. breakReload = true
  7566.  
  7567. --------------------[ RUNNING PLUGINS ]---------------------------------------
  7568.  
  7569. for _, Plugin in pairs(Plugins.OnUnEquipped) do
  7570. spawn(function()
  7571. Plugin()
  7572. end)
  7573. end
  7574.  
  7575. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  7576.  
  7577. Cam.FieldOfView = 70
  7578. Cam.CameraType = Enum.CameraType.Custom
  7579.  
  7580. UIS.MouseBehavior = Enum.MouseBehavior.Default
  7581. UIS.MouseIconEnabled = true
  7582.  
  7583. Player.CameraMode = Enum.CameraMode.Classic
  7584.  
  7585. if armTable then
  7586. armTable[1].Model:Destroy()
  7587. armTable[2].Model:Destroy()
  7588. elseif armModel then
  7589. armModel:Destroy()
  7590. end
  7591.  
  7592. LLegWeld:Destroy()
  7593. RLegWeld:Destroy()
  7594.  
  7595. changePlayerTrans(Char, 0)
  7596.  
  7597. mainGUI.Parent = script
  7598.  
  7599. Shoulders.Right.Part1 = RArm
  7600. Shoulders.Left.Part1 = LArm
  7601.  
  7602. neckClone.Parent = Torso
  7603. headWeld:Destroy()
  7604.  
  7605. Humanoid.WalkSpeed = 16
  7606. Humanoid.AutoRotate = true
  7607.  
  7608. --------------------[ RESETING THE TOOL ]-------------------------------------
  7609.  
  7610. gunIgnore:Destroy()
  7611.  
  7612. mouseSensitivity = S.sensitivitySettings.Default
  7613.  
  7614. MB1Down = false
  7615.  
  7616. playerMass = 0
  7617.  
  7618. Aimed = false
  7619.  
  7620. camOffsets = {
  7621. guiScope = {
  7622. Rot = V3();
  7623. };
  7624. Reload = {
  7625. Rot = V3();
  7626. Code = nil;
  7627. };
  7628. Recoil = {
  7629. Rot = V3();
  7630. Code = nil;
  7631. };
  7632. }
  7633.  
  7634. recoilAnim = {
  7635. Pos = V3();
  7636. Rot = V3();
  7637. Code = nil;
  7638. }
  7639.  
  7640. --Setting the aim variables to unaimed
  7641. spreadZoom = "unAimed"
  7642. scopeMain.Visible = false
  7643. scopeSteady.Visible = false
  7644. aimAlpha = 0
  7645. aimHeadOffset = 0
  7646. jumpAnimMultiplier = 1
  7647. translationDivisor = 7
  7648. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  7649. armTiltMultiplier = 1
  7650. Scope.BackgroundTransparency = 1
  7651. if S.guiScope then
  7652. spawn(function()
  7653. for _, Obj in pairs(Gun:GetChildren()) do
  7654. if Obj:IsA("BasePart") then
  7655. Obj.LocalTransparencyModifier = 0
  7656. end
  7657. end
  7658. end)
  7659. end
  7660.  
  7661. onGround = true
  7662.  
  7663. for _, Tab in pairs(gunParts) do
  7664. Tab.Weld:Destroy()
  7665. Tab.Weld = nil
  7666. end
  7667.  
  7668. for _,c in pairs(Connections) do
  7669. c:disconnect()
  7670. end
  7671.  
  7672. Connections = {}
  7673.  
  7674. if deleteTool then
  7675. Cam:ClearAllChildren()
  7676. Gun:Destroy()
  7677. end
  7678.  
  7679. wait() --This is here in case you dolphin dived and deselected the tool instantly
  7680.  
  7681. if S.stanceSettings.standOnDeselect and Stance ~= 0 then
  7682. crawlCamRot = 0
  7683. isCrawling = false
  7684. stanceSway = 1
  7685. spreadStance = "Stand"
  7686. Stand(true)
  7687. end
  7688. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7689. end
  7690. end
  7691.  
  7692. Gun.Equipped:connect(onEquipped)
  7693. Gun.Unequipped:connect(function() onUnequipped(false) end)
  7694.  
  7695. --------------------------------------------------------------------------------------
  7696. --------------------[ END PROGRAM ]---------------------------------------------------
  7697. --------------------------------------------------------------------------------------
  7698. end))
  7699. IntValue209.Name = "ignoreCode"
  7700. IntValue209.Parent = LocalScript208
  7701. Folder210.Name = "Server_Scripts"
  7702. Folder210.Parent = LocalScript208
  7703. ScreenGui211.Name = "mainGUI"
  7704. ScreenGui211.Parent = LocalScript208
  7705. ImageLabel212.Name = "hitMarker"
  7706. ImageLabel212.Parent = ScreenGui211
  7707. ImageLabel212.Transparency = 1
  7708. ImageLabel212.Size = UDim2.new(0, 26, 0, 26)
  7709. ImageLabel212.Position = UDim2.new(0.5, -13, 0.5, -31)
  7710. ImageLabel212.Visible = false
  7711. ImageLabel212.BackgroundTransparency = 1
  7712. ImageLabel212.ZIndex = 10
  7713. ImageLabel212.Image = "http://www.roblox.com/asset/?id=121173757"
  7714. NumberValue213.Name = "lastMark"
  7715. NumberValue213.Parent = ImageLabel212
  7716. Frame214.Name = "crossHair"
  7717. Frame214.Parent = ScreenGui211
  7718. Frame214.Position = UDim2.new(0.5, 0, 0.5, -18)
  7719. Frame214.BackgroundColor3 = Color3.new(1, 1, 1)
  7720. Frame214.BorderColor3 = Color3.new(0, 0, 0)
  7721. Frame214.BorderSizePixel = 0
  7722. ImageLabel215.Parent = Frame214
  7723. ImageLabel215.Transparency = 1
  7724. ImageLabel215.Size = UDim2.new(0, 300, 0, 300)
  7725. ImageLabel215.Position = UDim2.new(0, -150, 0, -150)
  7726. ImageLabel215.Visible = false
  7727. ImageLabel215.BackgroundColor3 = Color3.new(1, 1, 1)
  7728. ImageLabel215.BackgroundTransparency = 1
  7729. ImageLabel215.ZIndex = 2
  7730. ImageLabel215.Image = "http://www.roblox.com/asset/?id=68308747"
  7731. TextLabel216.Name = "Reload"
  7732. TextLabel216.Parent = Frame214
  7733. TextLabel216.Transparency = 1
  7734. TextLabel216.Size = UDim2.new(0, 100, 0, 20)
  7735. TextLabel216.Text = "RELOADING..."
  7736. TextLabel216.Position = UDim2.new(0, -50, 0, 70)
  7737. TextLabel216.Visible = false
  7738. TextLabel216.BackgroundColor3 = Color3.new(1, 1, 1)
  7739. TextLabel216.BackgroundTransparency = 1
  7740. TextLabel216.ZIndex = 2
  7741. TextLabel216.Font = Enum.Font.SourceSansBold
  7742. TextLabel216.FontSize = Enum.FontSize.Size18
  7743. TextLabel216.TextColor3 = Color3.new(1, 1, 1)
  7744. TextLabel216.TextStrokeTransparency = 0.5
  7745. Frame217.Name = "C"
  7746. Frame217.Parent = Frame214
  7747. Frame217.Transparency = 1
  7748. Frame217.Size = UDim2.new(0, 4, 0, 500)
  7749. Frame217.Position = UDim2.new(0, -2, 0, 0)
  7750. Frame217.BackgroundColor3 = Color3.new(1, 1, 1)
  7751. Frame217.BackgroundTransparency = 1
  7752. Frame217.ClipsDescendants = true
  7753. TextLabel218.Name = "Line"
  7754. TextLabel218.Parent = Frame217
  7755. TextLabel218.Size = UDim2.new(0, 2, 0, 15)
  7756. TextLabel218.Text = ""
  7757. TextLabel218.Position = UDim2.new(0.5, -1, 0, 10)
  7758. TextLabel218.BackgroundColor3 = Color3.new(1, 1, 1)
  7759. TextLabel218.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7760. TextLabel218.Font = Enum.Font.SourceSans
  7761. TextLabel218.FontSize = Enum.FontSize.Size14
  7762. Frame219.Name = "A"
  7763. Frame219.Parent = Frame214
  7764. Frame219.Transparency = 1
  7765. Frame219.Size = UDim2.new(0, 4, 0, 500)
  7766. Frame219.Position = UDim2.new(0, -2, 0, -500)
  7767. Frame219.BackgroundColor3 = Color3.new(1, 1, 1)
  7768. Frame219.BackgroundTransparency = 1
  7769. Frame219.ClipsDescendants = true
  7770. TextLabel220.Name = "Line"
  7771. TextLabel220.Parent = Frame219
  7772. TextLabel220.Size = UDim2.new(0, 2, 0, 15)
  7773. TextLabel220.Text = ""
  7774. TextLabel220.Position = UDim2.new(0.5, -1, 1, -25)
  7775. TextLabel220.BackgroundColor3 = Color3.new(1, 1, 1)
  7776. TextLabel220.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7777. TextLabel220.Font = Enum.Font.SourceSans
  7778. TextLabel220.FontSize = Enum.FontSize.Size14
  7779. Frame221.Name = "B"
  7780. Frame221.Parent = Frame214
  7781. Frame221.Transparency = 1
  7782. Frame221.Size = UDim2.new(0, 500, 0, 4)
  7783. Frame221.Position = UDim2.new(0, 0, 0, -2)
  7784. Frame221.BackgroundColor3 = Color3.new(1, 1, 1)
  7785. Frame221.BackgroundTransparency = 1
  7786. Frame221.ClipsDescendants = true
  7787. TextLabel222.Name = "Line"
  7788. TextLabel222.Parent = Frame221
  7789. TextLabel222.Size = UDim2.new(0, 15, 0, 2)
  7790. TextLabel222.Text = ""
  7791. TextLabel222.Position = UDim2.new(0, 10, 0.5, -1)
  7792. TextLabel222.BackgroundColor3 = Color3.new(1, 1, 1)
  7793. TextLabel222.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7794. TextLabel222.Font = Enum.Font.SourceSans
  7795. TextLabel222.FontSize = Enum.FontSize.Size14
  7796. Frame223.Name = "D"
  7797. Frame223.Parent = Frame214
  7798. Frame223.Transparency = 1
  7799. Frame223.Size = UDim2.new(0, 500, 0, 4)
  7800. Frame223.Position = UDim2.new(0, -500, 0, -2)
  7801. Frame223.BackgroundColor3 = Color3.new(1, 1, 1)
  7802. Frame223.BackgroundTransparency = 1
  7803. Frame223.ClipsDescendants = true
  7804. TextLabel224.Name = "Line"
  7805. TextLabel224.Parent = Frame223
  7806. TextLabel224.Size = UDim2.new(0, 15, 0, 2)
  7807. TextLabel224.Text = ""
  7808. TextLabel224.Position = UDim2.new(1, -25, 0.5, -1)
  7809. TextLabel224.BackgroundColor3 = Color3.new(1, 1, 1)
  7810. TextLabel224.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7811. TextLabel224.Font = Enum.Font.SourceSans
  7812. TextLabel224.FontSize = Enum.FontSize.Size14
  7813. Frame225.Name = "HUD"
  7814. Frame225.Parent = ScreenGui211
  7815. Frame225.Transparency = 0.30000001192093
  7816. Frame225.Size = UDim2.new(0, 175, 0, 90)
  7817. Frame225.Position = UDim2.new(1, -200, 1, -165)
  7818. Frame225.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7819. Frame225.BackgroundTransparency = 0.30000001192093
  7820. Frame225.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7821. Frame225.BorderSizePixel = 5
  7822. Frame225.ZIndex = 10
  7823. Frame226.Name = "Ammo"
  7824. Frame226.Parent = Frame225
  7825. Frame226.Transparency = 1
  7826. Frame226.Size = UDim2.new(0, 175, 0, 40)
  7827. Frame226.Position = UDim2.new(0, 0, 0, 45)
  7828. Frame226.BackgroundTransparency = 1
  7829. Frame226.ZIndex = 10
  7830. TextLabel227.Name = "Slash"
  7831. TextLabel227.Parent = Frame226
  7832. TextLabel227.Transparency = 1
  7833. TextLabel227.Size = UDim2.new(0, 10, 0, 25)
  7834. TextLabel227.Text = "/"
  7835. TextLabel227.Position = UDim2.new(0, 90, 0, 0)
  7836. TextLabel227.BackgroundTransparency = 1
  7837. TextLabel227.ZIndex = 10
  7838. TextLabel227.Font = Enum.Font.ArialBold
  7839. TextLabel227.FontSize = Enum.FontSize.Size24
  7840. TextLabel227.TextColor3 = Color3.new(1, 1, 1)
  7841. TextLabel228.Name = "Stored"
  7842. TextLabel228.Parent = Frame226
  7843. TextLabel228.Transparency = 1
  7844. TextLabel228.Size = UDim2.new(0, 70, 0, 25)
  7845. TextLabel228.Text = "100"
  7846. TextLabel228.Position = UDim2.new(0, 105, 0, 0)
  7847. TextLabel228.BackgroundTransparency = 1
  7848. TextLabel228.ZIndex = 10
  7849. TextLabel228.Font = Enum.Font.ArialBold
  7850. TextLabel228.FontSize = Enum.FontSize.Size24
  7851. TextLabel228.TextColor3 = Color3.new(1, 1, 1)
  7852. TextLabel228.TextXAlignment = Enum.TextXAlignment.Left
  7853. TextLabel229.Name = "Background"
  7854. TextLabel229.Parent = TextLabel228
  7855. TextLabel229.Transparency = 1
  7856. TextLabel229.Size = UDim2.new(1, 0, 1, 0)
  7857. TextLabel229.Text = "000"
  7858. TextLabel229.BackgroundTransparency = 1
  7859. TextLabel229.ZIndex = 10
  7860. TextLabel229.Font = Enum.Font.ArialBold
  7861. TextLabel229.FontSize = Enum.FontSize.Size24
  7862. TextLabel229.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
  7863. TextLabel229.TextTransparency = 0.80000001192093
  7864. TextLabel229.TextWrapped = true
  7865. TextLabel229.TextXAlignment = Enum.TextXAlignment.Left
  7866. TextLabel230.Name = "Clip"
  7867. TextLabel230.Parent = Frame226
  7868. TextLabel230.Transparency = 1
  7869. TextLabel230.Size = UDim2.new(0, 85, 1, 0)
  7870. TextLabel230.Text = "9"
  7871. TextLabel230.BackgroundTransparency = 1
  7872. TextLabel230.ZIndex = 10
  7873. TextLabel230.Font = Enum.Font.ArialBold
  7874. TextLabel230.FontSize = Enum.FontSize.Size48
  7875. TextLabel230.TextColor3 = Color3.new(1, 1, 1)
  7876. TextLabel230.TextXAlignment = Enum.TextXAlignment.Right
  7877. TextLabel231.Name = "Background"
  7878. TextLabel231.Parent = TextLabel230
  7879. TextLabel231.Transparency = 1
  7880. TextLabel231.Size = UDim2.new(1, 0, 1, 0)
  7881. TextLabel231.Text = "000"
  7882. TextLabel231.BackgroundTransparency = 1
  7883. TextLabel231.ZIndex = 10
  7884. TextLabel231.Font = Enum.Font.ArialBold
  7885. TextLabel231.FontSize = Enum.FontSize.Size48
  7886. TextLabel231.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
  7887. TextLabel231.TextTransparency = 0.80000001192093
  7888. TextLabel231.TextXAlignment = Enum.TextXAlignment.Right
  7889. Frame232.Name = "Mode"
  7890. Frame232.Parent = Frame225
  7891. Frame232.Transparency = 1
  7892. Frame232.Size = UDim2.new(0, 85, 0, 20)
  7893. Frame232.Position = UDim2.new(0, 90, 0, 65)
  7894. Frame232.BackgroundColor3 = Color3.new(1, 1, 1)
  7895. Frame232.BackgroundTransparency = 1
  7896. Frame232.ZIndex = 10
  7897. TextLabel233.Name = "Bracket"
  7898. TextLabel233.Parent = Frame232
  7899. TextLabel233.Transparency = 1
  7900. TextLabel233.Size = UDim2.new(0, 5, 0, 20)
  7901. TextLabel233.Text = "["
  7902. TextLabel233.BackgroundTransparency = 1
  7903. TextLabel233.ZIndex = 10
  7904. TextLabel233.Font = Enum.Font.ArialBold
  7905. TextLabel233.FontSize = Enum.FontSize.Size18
  7906. TextLabel233.TextColor3 = Color3.new(1, 1, 1)
  7907. TextLabel233.TextXAlignment = Enum.TextXAlignment.Left
  7908. TextLabel234.Name = "Bracket"
  7909. TextLabel234.Parent = Frame232
  7910. TextLabel234.Transparency = 1
  7911. TextLabel234.Size = UDim2.new(0, 5, 0, 20)
  7912. TextLabel234.Text = "]"
  7913. TextLabel234.Position = UDim2.new(1, -5, 0, 0)
  7914. TextLabel234.BackgroundTransparency = 1
  7915. TextLabel234.ZIndex = 10
  7916. TextLabel234.Font = Enum.Font.ArialBold
  7917. TextLabel234.FontSize = Enum.FontSize.Size18
  7918. TextLabel234.TextColor3 = Color3.new(1, 1, 1)
  7919. TextLabel234.TextXAlignment = Enum.TextXAlignment.Left
  7920. TextLabel235.Name = "Main"
  7921. TextLabel235.Parent = Frame232
  7922. TextLabel235.Transparency = 1
  7923. TextLabel235.Size = UDim2.new(1, 0, 0, 20)
  7924. TextLabel235.Text = "Auto"
  7925. TextLabel235.BackgroundTransparency = 1
  7926. TextLabel235.ZIndex = 10
  7927. TextLabel235.Font = Enum.Font.SourceSansBold
  7928. TextLabel235.FontSize = Enum.FontSize.Size18
  7929. TextLabel235.TextColor3 = Color3.new(1, 1, 1)
  7930. TextLabel235.TextWrapped = true
  7931. Frame236.Name = "Health"
  7932. Frame236.Parent = Frame225
  7933. Frame236.Transparency = 0.30000001192093
  7934. Frame236.Size = UDim2.new(1, 0, 0, 25)
  7935. Frame236.Position = UDim2.new(0, 0, 0, -40)
  7936. Frame236.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7937. Frame236.BackgroundTransparency = 0.30000001192093
  7938. Frame236.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7939. Frame236.BorderSizePixel = 5
  7940. Frame236.ZIndex = 10
  7941. TextLabel237.Name = "Num"
  7942. TextLabel237.Parent = Frame236
  7943. TextLabel237.Transparency = 1
  7944. TextLabel237.Size = UDim2.new(0, 50, 1, 0)
  7945. TextLabel237.Text = "100%"
  7946. TextLabel237.Position = UDim2.new(1, -50, 0, 0)
  7947. TextLabel237.BackgroundColor3 = Color3.new(0, 0, 0)
  7948. TextLabel237.BackgroundTransparency = 1
  7949. TextLabel237.BorderColor3 = Color3.new(0, 0, 0)
  7950. TextLabel237.BorderSizePixel = 0
  7951. TextLabel237.ZIndex = 10
  7952. TextLabel237.Font = Enum.Font.ArialBold
  7953. TextLabel237.FontSize = Enum.FontSize.Size24
  7954. TextLabel237.TextColor3 = Color3.new(1, 1, 1)
  7955. TextLabel237.TextStrokeTransparency = 0
  7956. TextLabel237.TextXAlignment = Enum.TextXAlignment.Right
  7957. Frame238.Name = "Tray"
  7958. Frame238.Parent = Frame236
  7959. Frame238.Transparency = 1
  7960. Frame238.Size = UDim2.new(1, -60, 0, 20)
  7961. Frame238.Position = UDim2.new(0, 2, 0.5, -10)
  7962. Frame238.BackgroundColor3 = Color3.new(0, 0, 0)
  7963. Frame238.BackgroundTransparency = 1
  7964. Frame238.BorderColor3 = Color3.new(0, 0, 0)
  7965. Frame238.BorderSizePixel = 0
  7966. Frame238.ZIndex = 10
  7967. Frame238.ClipsDescendants = true
  7968. Frame239.Name = "Beat"
  7969. Frame239.Parent = Frame238
  7970. Frame239.Transparency = 1
  7971. Frame239.Size = UDim2.new(0, 21, 1, 0)
  7972. Frame239.Position = UDim2.new(1, 0, 0, 0)
  7973. Frame239.BackgroundColor3 = Color3.new(0, 0, 0)
  7974. Frame239.BackgroundTransparency = 1
  7975. Frame239.BorderColor3 = Color3.new(0, 0, 0)
  7976. Frame239.BorderSizePixel = 0
  7977. Frame239.ZIndex = 10
  7978. Frame240.Name = "00"
  7979. Frame240.Parent = Frame239
  7980. Frame240.Size = UDim2.new(0.0476190485, 0, 0, 3)
  7981. Frame240.Position = UDim2.new(0, 0, 0.5, -2)
  7982. Frame240.BackgroundColor3 = Color3.new(1, 1, 1)
  7983. Frame240.BorderColor3 = Color3.new(0, 0, 0)
  7984. Frame240.BorderSizePixel = 0
  7985. Frame240.ZIndex = 10
  7986. Frame241.Name = "01"
  7987. Frame241.Parent = Frame239
  7988. Frame241.Size = UDim2.new(0.0476190485, 0, 0, 4)
  7989. Frame241.Position = UDim2.new(0.0476190485, 0, 0.423076928, -2)
  7990. Frame241.BackgroundColor3 = Color3.new(1, 1, 1)
  7991. Frame241.BorderColor3 = Color3.new(0, 0, 0)
  7992. Frame241.BorderSizePixel = 0
  7993. Frame241.ZIndex = 10
  7994. Frame242.Name = "02"
  7995. Frame242.Parent = Frame239
  7996. Frame242.Size = UDim2.new(0.0476190485, 0, 0, 4)
  7997. Frame242.Position = UDim2.new(0.095238097, 0, 0.346153855, -2)
  7998. Frame242.BackgroundColor3 = Color3.new(1, 1, 1)
  7999. Frame242.BorderColor3 = Color3.new(0, 0, 0)
  8000. Frame242.BorderSizePixel = 0
  8001. Frame242.ZIndex = 10
  8002. Frame243.Name = "03"
  8003. Frame243.Parent = Frame239
  8004. Frame243.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8005. Frame243.Position = UDim2.new(0.142857149, 0, 0.269230783, -2)
  8006. Frame243.BackgroundColor3 = Color3.new(1, 1, 1)
  8007. Frame243.BorderColor3 = Color3.new(0, 0, 0)
  8008. Frame243.BorderSizePixel = 0
  8009. Frame243.ZIndex = 10
  8010. Frame244.Name = "04"
  8011. Frame244.Parent = Frame239
  8012. Frame244.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8013. Frame244.Position = UDim2.new(0.190476194, 0, 0.192307696, -2)
  8014. Frame244.BackgroundColor3 = Color3.new(1, 1, 1)
  8015. Frame244.BorderColor3 = Color3.new(0, 0, 0)
  8016. Frame244.BorderSizePixel = 0
  8017. Frame244.ZIndex = 10
  8018. Frame245.Name = "05"
  8019. Frame245.Parent = Frame239
  8020. Frame245.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8021. Frame245.Position = UDim2.new(0.238095239, 0, 0.115384616, -2)
  8022. Frame245.BackgroundColor3 = Color3.new(1, 1, 1)
  8023. Frame245.BorderColor3 = Color3.new(0, 0, 0)
  8024. Frame245.BorderSizePixel = 0
  8025. Frame245.ZIndex = 10
  8026. Frame246.Name = "06"
  8027. Frame246.Parent = Frame239
  8028. Frame246.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8029. Frame246.Position = UDim2.new(0.285714298, 0, 0.0384615399, -2)
  8030. Frame246.BackgroundColor3 = Color3.new(1, 1, 1)
  8031. Frame246.BorderColor3 = Color3.new(0, 0, 0)
  8032. Frame246.BorderSizePixel = 0
  8033. Frame246.ZIndex = 10
  8034. Frame247.Name = "07"
  8035. Frame247.Parent = Frame239
  8036. Frame247.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8037. Frame247.Position = UDim2.new(0.333333343, 0, 0, -2)
  8038. Frame247.BackgroundColor3 = Color3.new(1, 1, 1)
  8039. Frame247.BorderColor3 = Color3.new(0, 0, 0)
  8040. Frame247.BorderSizePixel = 0
  8041. Frame247.ZIndex = 10
  8042. Frame248.Name = "08"
  8043. Frame248.Parent = Frame239
  8044. Frame248.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8045. Frame248.Position = UDim2.new(0.380952388, 0, 0.142857149, -2)
  8046. Frame248.BackgroundColor3 = Color3.new(1, 1, 1)
  8047. Frame248.BorderColor3 = Color3.new(0, 0, 0)
  8048. Frame248.BorderSizePixel = 0
  8049. Frame248.ZIndex = 10
  8050. Frame249.Name = "09"
  8051. Frame249.Parent = Frame239
  8052. Frame249.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8053. Frame249.Position = UDim2.new(0.428571433, 0, 0.285714298, -2)
  8054. Frame249.BackgroundColor3 = Color3.new(1, 1, 1)
  8055. Frame249.BorderColor3 = Color3.new(0, 0, 0)
  8056. Frame249.BorderSizePixel = 0
  8057. Frame249.ZIndex = 10
  8058. Frame250.Name = "10"
  8059. Frame250.Parent = Frame239
  8060. Frame250.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8061. Frame250.Position = UDim2.new(0.476190478, 0, 0.428571433, -2)
  8062. Frame250.BackgroundColor3 = Color3.new(1, 1, 1)
  8063. Frame250.BorderColor3 = Color3.new(0, 0, 0)
  8064. Frame250.BorderSizePixel = 0
  8065. Frame250.ZIndex = 10
  8066. Frame251.Name = "11"
  8067. Frame251.Parent = Frame239
  8068. Frame251.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8069. Frame251.Position = UDim2.new(0.523809552, 0, 0.571428597, -2)
  8070. Frame251.BackgroundColor3 = Color3.new(1, 1, 1)
  8071. Frame251.BorderColor3 = Color3.new(0, 0, 0)
  8072. Frame251.BorderSizePixel = 0
  8073. Frame251.ZIndex = 10
  8074. Frame252.Name = "12"
  8075. Frame252.Parent = Frame239
  8076. Frame252.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8077. Frame252.Position = UDim2.new(0.571428597, 0, 0.714285731, -2)
  8078. Frame252.BackgroundColor3 = Color3.new(1, 1, 1)
  8079. Frame252.BorderColor3 = Color3.new(0, 0, 0)
  8080. Frame252.BorderSizePixel = 0
  8081. Frame252.ZIndex = 10
  8082. Frame253.Name = "13"
  8083. Frame253.Parent = Frame239
  8084. Frame253.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8085. Frame253.Position = UDim2.new(0.619047642, 0, 0.857142866, -2)
  8086. Frame253.BackgroundColor3 = Color3.new(1, 1, 1)
  8087. Frame253.BorderColor3 = Color3.new(0, 0, 0)
  8088. Frame253.BorderSizePixel = 0
  8089. Frame253.ZIndex = 10
  8090. Frame254.Name = "14"
  8091. Frame254.Parent = Frame239
  8092. Frame254.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8093. Frame254.Position = UDim2.new(0.666666687, 0, 0.916666687, -2)
  8094. Frame254.BackgroundColor3 = Color3.new(1, 1, 1)
  8095. Frame254.BorderColor3 = Color3.new(0, 0, 0)
  8096. Frame254.BorderSizePixel = 0
  8097. Frame254.ZIndex = 10
  8098. Frame255.Name = "15"
  8099. Frame255.Parent = Frame239
  8100. Frame255.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8101. Frame255.Position = UDim2.new(0.714285731, 0, 0.833333313, -2)
  8102. Frame255.BackgroundColor3 = Color3.new(1, 1, 1)
  8103. Frame255.BorderColor3 = Color3.new(0, 0, 0)
  8104. Frame255.BorderSizePixel = 0
  8105. Frame255.ZIndex = 10
  8106. Frame256.Name = "16"
  8107. Frame256.Parent = Frame239
  8108. Frame256.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8109. Frame256.Position = UDim2.new(0.761904776, 0, 0.75, -2)
  8110. Frame256.BackgroundColor3 = Color3.new(1, 1, 1)
  8111. Frame256.BorderColor3 = Color3.new(0, 0, 0)
  8112. Frame256.BorderSizePixel = 0
  8113. Frame256.ZIndex = 10
  8114. Frame257.Name = "17"
  8115. Frame257.Parent = Frame239
  8116. Frame257.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8117. Frame257.Position = UDim2.new(0.809523821, 0, 0.666666687, -2)
  8118. Frame257.BackgroundColor3 = Color3.new(1, 1, 1)
  8119. Frame257.BorderColor3 = Color3.new(0, 0, 0)
  8120. Frame257.BorderSizePixel = 0
  8121. Frame257.ZIndex = 10
  8122. Frame258.Name = "18"
  8123. Frame258.Parent = Frame239
  8124. Frame258.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8125. Frame258.Position = UDim2.new(0.857142866, 0, 0.583333313, -2)
  8126. Frame258.BackgroundColor3 = Color3.new(1, 1, 1)
  8127. Frame258.BorderColor3 = Color3.new(0, 0, 0)
  8128. Frame258.BorderSizePixel = 0
  8129. Frame258.ZIndex = 10
  8130. Frame259.Name = "19"
  8131. Frame259.Parent = Frame239
  8132. Frame259.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8133. Frame259.Position = UDim2.new(0.90476191, 0, 0.5, -2)
  8134. Frame259.BackgroundColor3 = Color3.new(1, 1, 1)
  8135. Frame259.BorderColor3 = Color3.new(0, 0, 0)
  8136. Frame259.BorderSizePixel = 0
  8137. Frame259.ZIndex = 10
  8138. Frame260.Name = "20"
  8139. Frame260.Parent = Frame239
  8140. Frame260.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8141. Frame260.Position = UDim2.new(0.952000022, 0, 0.49000001, -2)
  8142. Frame260.BackgroundColor3 = Color3.new(1, 1, 1)
  8143. Frame260.BorderColor3 = Color3.new(0, 0, 0)
  8144. Frame260.BorderSizePixel = 0
  8145. Frame260.ZIndex = 10
  8146. Frame261.Name = "Line"
  8147. Frame261.Parent = Frame239
  8148. Frame261.Size = UDim2.new(0, 200, 0, 3)
  8149. Frame261.Position = UDim2.new(1, 0, 0.5, -2)
  8150. Frame261.BackgroundColor3 = Color3.new(1, 1, 1)
  8151. Frame261.BorderColor3 = Color3.new(0, 0, 0)
  8152. Frame261.BorderSizePixel = 0
  8153. Frame261.ZIndex = 10
  8154. Frame262.Name = "Line"
  8155. Frame262.Parent = Frame239
  8156. Frame262.Size = UDim2.new(0, 200, 0, 3)
  8157. Frame262.Position = UDim2.new(0, -200, 0.5, -2)
  8158. Frame262.BackgroundColor3 = Color3.new(1, 1, 1)
  8159. Frame262.BorderColor3 = Color3.new(0, 0, 0)
  8160. Frame262.BorderSizePixel = 0
  8161. Frame262.ZIndex = 10
  8162. Frame263.Name = "Controls"
  8163. Frame263.Parent = Frame225
  8164. Frame263.Transparency = 0.30000001192093
  8165. Frame263.Size = UDim2.new(1, 0, 0, 120)
  8166. Frame263.Position = UDim2.new(0, 0, 0, -200)
  8167. Frame263.Visible = false
  8168. Frame263.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8169. Frame263.BackgroundTransparency = 0.30000001192093
  8170. Frame263.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8171. Frame263.BorderSizePixel = 5
  8172. Frame263.ZIndex = 10
  8173. TextLabel264.Name = "Title"
  8174. TextLabel264.Parent = Frame263
  8175. TextLabel264.Transparency = 1
  8176. TextLabel264.Size = UDim2.new(1, 0, 0, 15)
  8177. TextLabel264.Text = "CONTROLS"
  8178. TextLabel264.BackgroundColor3 = Color3.new(1, 1, 1)
  8179. TextLabel264.BackgroundTransparency = 1
  8180. TextLabel264.ZIndex = 10
  8181. TextLabel264.Font = Enum.Font.SourceSansBold
  8182. TextLabel264.FontSize = Enum.FontSize.Size14
  8183. TextLabel264.TextColor3 = Color3.new(1, 1, 1)
  8184. TextLabel265.Name = "Line"
  8185. TextLabel265.Parent = TextLabel264
  8186. TextLabel265.Size = UDim2.new(1, 0, 0, 2)
  8187. TextLabel265.Text = ""
  8188. TextLabel265.Position = UDim2.new(0, 0, 1, 1)
  8189. TextLabel265.BackgroundColor3 = Color3.new(1, 1, 0)
  8190. TextLabel265.BorderSizePixel = 0
  8191. TextLabel265.ZIndex = 10
  8192. TextLabel265.Font = Enum.Font.SourceSans
  8193. TextLabel265.FontSize = Enum.FontSize.Size14
  8194. Frame266.Name = "Grenades"
  8195. Frame266.Parent = Frame225
  8196. Frame266.Transparency = 1
  8197. Frame266.Size = UDim2.new(0, 175, 0, 25)
  8198. Frame266.Position = UDim2.new(0, 0, 0, 90)
  8199. Frame266.Visible = false
  8200. Frame266.BackgroundTransparency = 1
  8201. Frame266.ZIndex = 10
  8202. Frame267.Name = "Lethals"
  8203. Frame267.Parent = Frame266
  8204. Frame267.Transparency = 0.80000001192093
  8205. Frame267.Size = UDim2.new(0.5, -2, 1, 0)
  8206. Frame267.BackgroundColor3 = Color3.new(1, 1, 1)
  8207. Frame267.BackgroundTransparency = 0.80000001192093
  8208. Frame267.BorderSizePixel = 0
  8209. Frame267.ZIndex = 10
  8210. ImageLabel268.Name = "Icon"
  8211. ImageLabel268.Parent = Frame267
  8212. ImageLabel268.Transparency = 1
  8213. ImageLabel268.Size = UDim2.new(0, 21, 0, 21)
  8214. ImageLabel268.Position = UDim2.new(0, 7, 0, 2)
  8215. ImageLabel268.BackgroundColor3 = Color3.new(1, 1, 1)
  8216. ImageLabel268.BackgroundTransparency = 1
  8217. ImageLabel268.ZIndex = 10
  8218. TextLabel269.Name = "Mult"
  8219. TextLabel269.Parent = Frame267
  8220. TextLabel269.Transparency = 1
  8221. TextLabel269.Size = UDim2.new(0, 20, 1, 0)
  8222. TextLabel269.Text = "X"
  8223. TextLabel269.Position = UDim2.new(0.5, -10, 0, 0)
  8224. TextLabel269.BackgroundColor3 = Color3.new(1, 1, 1)
  8225. TextLabel269.BackgroundTransparency = 1
  8226. TextLabel269.BorderSizePixel = 0
  8227. TextLabel269.ZIndex = 10
  8228. TextLabel269.Font = Enum.Font.ArialBold
  8229. TextLabel269.FontSize = Enum.FontSize.Size18
  8230. TextLabel269.TextColor3 = Color3.new(1, 1, 1)
  8231. TextLabel270.Name = "Num"
  8232. TextLabel270.Parent = Frame267
  8233. TextLabel270.Transparency = 1
  8234. TextLabel270.Size = UDim2.new(0, 0, 1, 0)
  8235. TextLabel270.Text = "0"
  8236. TextLabel270.Position = UDim2.new(1, -7, 0, 0)
  8237. TextLabel270.BackgroundColor3 = Color3.new(1, 1, 1)
  8238. TextLabel270.BackgroundTransparency = 1
  8239. TextLabel270.ZIndex = 10
  8240. TextLabel270.Font = Enum.Font.ArialBold
  8241. TextLabel270.FontSize = Enum.FontSize.Size18
  8242. TextLabel270.TextColor3 = Color3.new(1, 1, 1)
  8243. TextLabel270.TextXAlignment = Enum.TextXAlignment.Right
  8244. Frame271.Name = "Tacticals"
  8245. Frame271.Parent = Frame266
  8246. Frame271.Transparency = 0.80000001192093
  8247. Frame271.Size = UDim2.new(0.5, -2, 1, 0)
  8248. Frame271.Position = UDim2.new(0.5, 2, 0, 0)
  8249. Frame271.BackgroundColor3 = Color3.new(1, 1, 1)
  8250. Frame271.BackgroundTransparency = 0.80000001192093
  8251. Frame271.BorderSizePixel = 0
  8252. Frame271.ZIndex = 10
  8253. ImageLabel272.Name = "Icon"
  8254. ImageLabel272.Parent = Frame271
  8255. ImageLabel272.Transparency = 1
  8256. ImageLabel272.Size = UDim2.new(0, 21, 0, 21)
  8257. ImageLabel272.Position = UDim2.new(0, 7, 0, 2)
  8258. ImageLabel272.BackgroundColor3 = Color3.new(1, 1, 1)
  8259. ImageLabel272.BackgroundTransparency = 1
  8260. ImageLabel272.ZIndex = 10
  8261. TextLabel273.Name = "Num"
  8262. TextLabel273.Parent = Frame271
  8263. TextLabel273.Transparency = 1
  8264. TextLabel273.Size = UDim2.new(0, 0, 1, 0)
  8265. TextLabel273.Text = "0"
  8266. TextLabel273.Position = UDim2.new(1, -7, 0, 0)
  8267. TextLabel273.BackgroundColor3 = Color3.new(1, 1, 1)
  8268. TextLabel273.BackgroundTransparency = 1
  8269. TextLabel273.ZIndex = 10
  8270. TextLabel273.Font = Enum.Font.ArialBold
  8271. TextLabel273.FontSize = Enum.FontSize.Size18
  8272. TextLabel273.TextColor3 = Color3.new(1, 1, 1)
  8273. TextLabel273.TextXAlignment = Enum.TextXAlignment.Right
  8274. TextLabel274.Name = "Mult"
  8275. TextLabel274.Parent = Frame271
  8276. TextLabel274.Transparency = 1
  8277. TextLabel274.Size = UDim2.new(0, 20, 1, 0)
  8278. TextLabel274.Text = "X"
  8279. TextLabel274.Position = UDim2.new(0.5, -10, 0, 0)
  8280. TextLabel274.BackgroundColor3 = Color3.new(1, 1, 1)
  8281. TextLabel274.BackgroundTransparency = 1
  8282. TextLabel274.BorderSizePixel = 0
  8283. TextLabel274.ZIndex = 10
  8284. TextLabel274.Font = Enum.Font.ArialBold
  8285. TextLabel274.FontSize = Enum.FontSize.Size18
  8286. TextLabel274.TextColor3 = Color3.new(1, 1, 1)
  8287. Frame275.Name = "gunName"
  8288. Frame275.Parent = Frame225
  8289. Frame275.Transparency = 1
  8290. Frame275.Size = UDim2.new(1, 0, 0, 36)
  8291. Frame275.BackgroundColor3 = Color3.new(0.972549, 0.972549, 0.972549)
  8292. Frame275.BackgroundTransparency = 1
  8293. Frame275.ZIndex = 10
  8294. TextLabel276.Name = "Line"
  8295. TextLabel276.Parent = Frame275
  8296. TextLabel276.Size = UDim2.new(0, 2, 1, 0)
  8297. TextLabel276.Text = ""
  8298. TextLabel276.BackgroundColor3 = Color3.new(1, 1, 1)
  8299. TextLabel276.BorderSizePixel = 0
  8300. TextLabel276.ZIndex = 10
  8301. TextLabel276.Font = Enum.Font.SourceSans
  8302. TextLabel276.FontSize = Enum.FontSize.Size14
  8303. TextLabel277.Name = "Line"
  8304. TextLabel277.Parent = Frame275
  8305. TextLabel277.Size = UDim2.new(1, 0, 0, 2)
  8306. TextLabel277.Text = ""
  8307. TextLabel277.Position = UDim2.new(0, 0, 1, 0)
  8308. TextLabel277.BackgroundColor3 = Color3.new(1, 1, 1)
  8309. TextLabel277.BorderSizePixel = 0
  8310. TextLabel277.ZIndex = 10
  8311. TextLabel277.Font = Enum.Font.SourceSans
  8312. TextLabel277.FontSize = Enum.FontSize.Size14
  8313. TextLabel278.Name = "Title"
  8314. TextLabel278.Parent = Frame275
  8315. TextLabel278.Transparency = 1
  8316. TextLabel278.Size = UDim2.new(1, -7, 1, 0)
  8317. TextLabel278.Text = "Gun"
  8318. TextLabel278.Position = UDim2.new(0, 7, 0, 0)
  8319. TextLabel278.BackgroundColor3 = Color3.new(1, 1, 1)
  8320. TextLabel278.BackgroundTransparency = 1
  8321. TextLabel278.ZIndex = 10
  8322. TextLabel278.Font = Enum.Font.SourceSansBold
  8323. TextLabel278.FontSize = Enum.FontSize.Size36
  8324. TextLabel278.TextColor3 = Color3.new(1, 1, 1)
  8325. TextLabel278.TextStrokeTransparency = 0
  8326. TextLabel278.TextXAlignment = Enum.TextXAlignment.Left
  8327. Frame279.Name = "fireSelect"
  8328. Frame279.Parent = ScreenGui211
  8329. Frame279.Transparency = 1
  8330. Frame279.Position = UDim2.new(0.5, 0, 0.5, -18)
  8331. Frame279.Visible = false
  8332. Frame279.BackgroundColor3 = Color3.new(1, 1, 1)
  8333. Frame279.BackgroundTransparency = 1
  8334. Frame280.Name = "Modes"
  8335. Frame280.Parent = Frame279
  8336. Frame280.Transparency = 1
  8337. Frame280.BackgroundColor3 = Color3.new(1, 1, 1)
  8338. Frame280.BackgroundTransparency = 1
  8339. ImageLabel281.Name = "Circle"
  8340. ImageLabel281.Parent = Frame279
  8341. ImageLabel281.Transparency = 1
  8342. ImageLabel281.Size = UDim2.new(0, 120, 0, 120)
  8343. ImageLabel281.Position = UDim2.new(0, -60, 0, -60)
  8344. ImageLabel281.BackgroundColor3 = Color3.new(1, 1, 1)
  8345. ImageLabel281.BackgroundTransparency = 1
  8346. ImageLabel281.Image = "http://www.roblox.com/asset/?id=55754953"
  8347. ImageLabel281.ImageTransparency = 0.5
  8348. ImageLabel282.Name = "Arrow"
  8349. ImageLabel282.Parent = Frame279
  8350. ImageLabel282.Transparency = 1
  8351. ImageLabel282.Size = UDim2.new(0, 40, 0, 20)
  8352. ImageLabel282.Position = UDim2.new(0, -20, 0, -140)
  8353. ImageLabel282.BackgroundColor3 = Color3.new(1, 1, 1)
  8354. ImageLabel282.BackgroundTransparency = 1
  8355. ImageLabel282.Image = "http://www.roblox.com/asset/?id=126877530"
  8356. Frame283.Name = "Scope"
  8357. Frame283.Parent = ScreenGui211
  8358. Frame283.Transparency = 1
  8359. Frame283.Size = UDim2.new(1, 0, 1, 36)
  8360. Frame283.Position = UDim2.new(0, 0, 0, -36)
  8361. Frame283.BackgroundColor3 = Color3.new(0, 0, 0)
  8362. Frame283.BackgroundTransparency = 1
  8363. TextLabel284.Name = "Steady"
  8364. TextLabel284.Parent = Frame283
  8365. TextLabel284.Transparency = 1
  8366. TextLabel284.Size = UDim2.new(0, 120, 0, 20)
  8367. TextLabel284.Text = ""
  8368. TextLabel284.Position = UDim2.new(0.5, -60, 0.5, 50)
  8369. TextLabel284.Visible = false
  8370. TextLabel284.BackgroundColor3 = Color3.new(1, 1, 1)
  8371. TextLabel284.BackgroundTransparency = 1
  8372. TextLabel284.ZIndex = 9
  8373. TextLabel284.Font = Enum.Font.ArialBold
  8374. TextLabel284.FontSize = Enum.FontSize.Size14
  8375. TextLabel284.TextColor3 = Color3.new(1, 1, 0)
  8376. TextLabel284.TextStrokeTransparency = 0
  8377. Frame285.Name = "Main"
  8378. Frame285.Parent = Frame283
  8379. Frame285.Transparency = 1
  8380. Frame285.Size = UDim2.new(1, 0, 1, 0)
  8381. Frame285.Visible = false
  8382. Frame285.BackgroundColor3 = Color3.new(1, 1, 1)
  8383. Frame285.BackgroundTransparency = 1
  8384. ImageLabel286.Name = "ScopeImg2"
  8385. ImageLabel286.Parent = Frame285
  8386. ImageLabel286.Transparency = 1
  8387. ImageLabel286.Size = UDim2.new(0, 20, 0, 20)
  8388. ImageLabel286.Position = UDim2.new(0.5, -10, 0, -10)
  8389. ImageLabel286.BackgroundColor3 = Color3.new(0, 0, 0)
  8390. ImageLabel286.BackgroundTransparency = 1
  8391. ImageLabel286.Image = "http://www.roblox.com/asset/?id=184922644"
  8392. ImageLabel287.Name = "ScopeImg1"
  8393. ImageLabel287.Parent = Frame285
  8394. ImageLabel287.Transparency = 1
  8395. ImageLabel287.Size = UDim2.new(0, 20, 0, 20)
  8396. ImageLabel287.Position = UDim2.new(0.5, -10, 0, -10)
  8397. ImageLabel287.BackgroundColor3 = Color3.new(0, 0, 0)
  8398. ImageLabel287.BackgroundTransparency = 1
  8399. ImageLabel287.Image = "http://www.roblox.com/asset/?id=72002022"
  8400. Frame288.Name = "F2"
  8401. Frame288.Parent = Frame285
  8402. Frame288.Size = UDim2.new(0, 0, 1, 20)
  8403. Frame288.Position = UDim2.new(0, -10, 0, -10)
  8404. Frame288.BackgroundColor3 = Color3.new(0, 0, 0)
  8405. Frame288.BorderColor3 = Color3.new(0, 0, 0)
  8406. Frame288.BorderSizePixel = 0
  8407. Frame289.Name = "F1"
  8408. Frame289.Parent = Frame285
  8409. Frame289.Size = UDim2.new(0, 0, 1, 20)
  8410. Frame289.Position = UDim2.new(0, -10, 0, -10)
  8411. Frame289.BackgroundColor3 = Color3.new(0, 0, 0)
  8412. Frame289.BorderColor3 = Color3.new(0, 0, 0)
  8413. Frame289.BorderSizePixel = 0
  8414. LocalScript290.Name = "Update"
  8415. LocalScript290.Parent = Frame285
  8416. table.insert(cors,sandbox(LocalScript290,function()
  8417. local GUI = script.Parent
  8418.  
  8419. function updateScopeDimension()
  8420. GUI.ScopeImg1.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
  8421. GUI.ScopeImg1.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
  8422. GUI.ScopeImg2.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
  8423. GUI.ScopeImg2.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
  8424. GUI.F1.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
  8425. GUI.F2.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
  8426. GUI.F2.Position = UDim2.new(1, -10 - ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 0, -10)
  8427. end
  8428.  
  8429. wait()
  8430.  
  8431. GUI.Changed:connect(updateScopeDimension)
  8432.  
  8433. updateScopeDimension()
  8434. end))
  8435. TextLabel291.Name = "Sens"
  8436. TextLabel291.Parent = ScreenGui211
  8437. TextLabel291.Transparency = 1
  8438. TextLabel291.Size = UDim2.new(0, 100, 0, 20)
  8439. TextLabel291.Text = "S: 0.3"
  8440. TextLabel291.Position = UDim2.new(0.5, -50, 0.5, 50)
  8441. TextLabel291.Visible = false
  8442. TextLabel291.BackgroundColor3 = Color3.new(1, 1, 1)
  8443. TextLabel291.BackgroundTransparency = 1
  8444. TextLabel291.ZIndex = 10
  8445. TextLabel291.Font = Enum.Font.SourceSansBold
  8446. TextLabel291.FontSize = Enum.FontSize.Size28
  8447. TextLabel291.TextColor3 = Color3.new(1, 1, 1)
  8448. TextLabel291.TextStrokeTransparency = 0
  8449. Part292.Name = "ham"
  8450. Part292.Parent = Tool0
  8451. Part292.BrickColor = BrickColor.new("Mid gray")
  8452. Part292.Rotation = Vector3.new(179.98999, 89.9799957, -179.929993)
  8453. Part292.FormFactor = Enum.FormFactor.Plate
  8454. Part292.Size = Vector3.new(1, 0.800000012, 1)
  8455. Part292.CFrame = CFrame.new(1435.26599, 48.9021072, -1310.87195, -5.96046448e-08, 7.27595761e-11, 0.99999994, 0.000796274282, 0.999999642, -1.45519152e-11, -0.999999702, 0.000796274282, -1.1920929e-07)
  8456. Part292.BottomSurface = Enum.SurfaceType.Smooth
  8457. Part292.TopSurface = Enum.SurfaceType.Smooth
  8458. Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
  8459. Part292.Position = Vector3.new(1435.26599, 48.9021072, -1310.87195)
  8460. Part292.Orientation = Vector3.new(0, 90, 0.049999997)
  8461. Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
  8462. SpecialMesh293.Parent = Part292
  8463. SpecialMesh293.MeshId = "http://www.roblox.com/asset/?id=16646125"
  8464. SpecialMesh293.TextureId = "http://www.roblox.com/asset/?id=16432575"
  8465. SpecialMesh293.MeshType = Enum.MeshType.FileMesh
  8466. Weld294.Parent = Part292
  8467. Weld294.C0 = CFrame.new(-4.71828389e-06, -1.06949216e-07, 6.73912837e-08, -1.96380037e-10, -7.15101578e-06, 1, -3.45956111e-11, 1, 9.53468771e-06, -1, 4.01852024e-11, -2.64911593e-10)
  8468. Weld294.C1 = CFrame.new(-4.71828389e-06, -1.06949216e-07, 6.73912837e-08, -1.96380037e-10, -7.15101578e-06, 1, -3.45956111e-11, 1, 9.53468771e-06, -1, 4.01852024e-11, -2.64911593e-10)
  8469. Weld295.Parent = Part292
  8470. Weld295.C0 = CFrame.new(-1.34138972e-07, -6.91051537e-06, 0, -3.91537502e-21, 0.999999106, -0.00133771845, 2.81109586e-22, 0.00133771845, 0.999999106, 1, 3.91499535e-21, -2.86346992e-22)
  8471. Weld295.C1 = CFrame.new(-1.34138972e-07, -6.91051537e-06, 0, -3.91537502e-21, 0.999999106, -0.00133771845, 2.81109586e-22, 0.00133771845, 0.999999106, 1, 3.91499535e-21, -2.86346992e-22)
  8472. Weld296.Parent = Part292
  8473. Weld296.C0 = CFrame.new(3.64912034e-06, -1.13236744e-07, -2.01656292e-08, -7.08486672e-11, 0.000798657886, -0.999999702, 1.55140234e-10, 0.999999702, 0.000793890678, 1, 1.55083765e-10, 7.09721865e-11)
  8474. Weld296.C1 = CFrame.new(3.64912034e-06, -1.13236744e-07, -2.01656292e-08, -7.08486672e-11, 0.000798657886, -0.999999702, 1.55140234e-10, 0.999999702, 0.000793890678, 1, 1.55083765e-10, 7.09721865e-11)
  8475. Weld297.Parent = Part292
  8476. Weld297.C0 = CFrame.new(1.6321755e-07, 3.49538391e-06, 0, -3.9252309e-21, 0.996502578, -0.0835621059, -4.1799742e-23, 0.0835621059, 0.996502578, 1, 3.91499535e-21, -2.86346992e-22)
  8477. Weld297.C1 = CFrame.new(1.6321755e-07, 3.49538391e-06, 0, -3.9252309e-21, 0.996502578, -0.0835621059, -4.1799742e-23, 0.0835621059, 0.996502578, 1, 3.91499535e-21, -2.86346992e-22)
  8478. Weld298.Parent = Part292
  8479. Weld298.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8480. Weld298.C1 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8481. Weld299.Parent = Part292
  8482. Weld299.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8483. Weld299.C1 = CFrame.new(0.533214211, 4.09488493e-05, -0.399536163, -6.19143847e-10, 0.000817726948, -0.999999702, 8.15887191e-10, 0.999999702, 0.000817726948, 1, -8.15380652e-10, -6.19810758e-10)
  8484. Weld300.Parent = Part292
  8485. Weld300.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8486. Weld300.C1 = CFrame.new(-1.12273511e-07, 2.60849974e-05, -0.533189535, 1, -8.33252689e-10, -3.96865235e-10, 8.3357371e-10, 0.999999702, 0.000809622463, 3.96190469e-10, -0.000809622463, 0.999999702)
  8487. Weld301.Parent = Part292
  8488. Weld301.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8489. Weld301.C1 = CFrame.new(0.533214211, 0.373362005, -4.18045545e-08, -6.20301976e-10, 0.000817726948, -0.999999702, 8.56068161e-10, 0.999999702, 0.000817726948, 1, -8.55560567e-10, -6.21001806e-10)
  8490. Weld302.Parent = Part292
  8491. Weld302.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8492. Weld302.C1 = CFrame.new(-5.43287024e-06, 0.132771105, 0.400390655, 8.48401349e-10, 0.999999702, 0.000801041257, -6.20273943e-10, 0.000801041257, -0.999999702, -1, 8.47904247e-10, 6.20953344e-10)
  8493. Weld303.Parent = Part292
  8494. Weld303.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8495. Weld303.C1 = CFrame.new(-2.92850495e-06, -0.400390595, -0.132823572, 8.56068161e-10, 0.999999702, 0.000817726948, -1, 8.55560678e-10, 6.21001806e-10, 6.20301976e-10, -0.000817726948, 0.999999702)
  8496. Weld304.Parent = Part292
  8497. Weld304.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8498. Weld304.C1 = CFrame.new(1.20404536e-07, 1.7940567e-05, 0.132805407, -1, 8.50133963e-10, 4.23458879e-10, 8.50476911e-10, 0.999999702, 0.000810576021, -4.22769625e-10, 0.000810576021, -0.999999702)
  8499. Weld305.Parent = Part292
  8500. Weld305.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8501. Weld305.C1 = CFrame.new(5.96581813e-05, -0.400390744, 0.9335953, 8.14806722e-10, 0.999999702, 0.000811847276, 1, -8.1443452e-10, -4.58876631e-10, -4.58215271e-10, 0.000811847276, -0.999999702)
  8502. Weld306.Parent = Part292
  8503. Weld306.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8504. Weld306.C1 = CFrame.new(2.33017072e-05, -0.933604836, 0.400390595, 8.35977676e-10, 0.999999702, 0.000817726948, 6.19722884e-10, -0.000817726948, 0.999999702, 1, -8.35470693e-10, -6.20406282e-10)
  8505. Weld307.Parent = Part292
  8506. Weld307.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8507. Weld307.C1 = CFrame.new(-1.52226988e-07, -0.373301029, -0.533214867, 1, -9.17886822e-10, -2.52556698e-10, 9.18089604e-10, 0.999999702, 0.000804378418, 2.51818288e-10, -0.000804378418, 0.999999702)
  8508. Weld308.Parent = Part292
  8509. Weld308.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8510. Weld308.C1 = CFrame.new(-0.533214211, 4.09488493e-05, -0.400390595, 6.19143847e-10, -0.000817726948, 0.999999702, 8.15887191e-10, 0.999999702, 0.000817726948, -1, 8.15380652e-10, 6.19810758e-10)
  8511. Weld309.Parent = Part292
  8512. Weld309.C0 = CFrame.new(5.25072437e-06, -9.04979558e-08, -6.02840373e-08, -2.12544884e-10, 0.000803425093, -0.999999702, 4.65420175e-10, 0.999999702, 0.000803425093, 1, -4.65249311e-10, -2.12918752e-10)
  8513. Weld309.C1 = CFrame.new(3.85732619e-08, 1.708794e-06, -0.933600962, 1, 2.30016242e-10, -1.24190033e-10, 2.3550692e-10, 0.999999702, 0.000801041722, 3.36916911e-10, -0.000808192533, 0.999999702)
  8514. Weld310.Parent = Part292
  8515. Weld310.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8516. Weld310.C1 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8517. Weld311.Parent = Part292
  8518. Weld311.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8519. Weld311.C1 = CFrame.new(0.533207953, 4.02465412e-05, -0.399536252, -4.0660561e-10, 0.997999609, 0.0632200539, 3.50466517e-10, -0.0632200539, 0.997999668, 1, 4.2794876e-10, -3.24059835e-10)
  8520. Weld312.Parent = Part292
  8521. Weld312.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8522. Weld312.C1 = CFrame.new(-3.86806875e-07, 4.67300815e-05, -0.533184648, 1, 6.89605151e-10, -1.25792432e-09, 1.29899103e-09, -0.0631973371, 0.998001039, 6.08729123e-10, -0.998001099, -0.0631973371)
  8523. Weld313.Parent = Part292
  8524. Weld313.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8525. Weld313.C1 = CFrame.new(0.533224404, 0.373393357, -3.90072529e-07, -8.32836911e-10, 0.998000622, 0.0632058904, 1.32148736e-09, -0.0632058978, 0.998000503, 1, 9.1469754e-10, -1.26620492e-09)
  8526. Weld314.Parent = Part292
  8527. Weld314.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8528. Weld314.C1 = CFrame.new(-1.24499784e-05, 0.132795051, 0.400390744, 3.829842e-10, -0.0632034019, 0.998000741, -4.07727963e-10, 0.998000681, 0.0632034019, -1, -4.31118696e-10, 3.56448732e-10)
  8529. Weld315.Parent = Part292
  8530. Weld315.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8531. Weld315.C1 = CFrame.new(9.7206248e-06, -0.400390506, -0.132816374, 3.90647487e-10, -0.0632200539, 0.997999668, -1, -4.31644803e-10, 3.64087233e-10, 4.07763739e-10, -0.997999609, -0.0632200539)
  8532. Weld316.Parent = Part292
  8533. Weld316.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8534. Weld316.C1 = CFrame.new(1.12741731e-07, 1.47659775e-05, 0.132799253, -1, -2.34147424e-10, 3.70999564e-10, 3.85058263e-10, -0.0632105544, 0.998000205, -2.10228071e-10, 0.998000264, 0.0632105544)
  8535. Weld317.Parent = Part292
  8536. Weld317.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8537. Weld317.C1 = CFrame.new(3.39694889e-05, -0.400390744, 0.933587611, 3.49388324e-10, -0.0632092953, 0.998000324, 1, 2.67267597e-10, -3.33160693e-10, -2.45674314e-10, 0.998000324, 0.0632092878)
  8538. Weld318.Parent = Part292
  8539. Weld318.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8540. Weld318.C1 = CFrame.new(9.72479302e-06, -0.933596671, 0.400390506, 3.70557002e-10, -0.0632200539, 0.997999668, 4.07184675e-10, -0.997999609, -0.0632200539, 1, 4.29796781e-10, -3.44073547e-10)
  8541. Weld319.Parent = Part292
  8542. Weld319.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8543. Weld319.C1 = CFrame.new(-9.38037488e-08, -0.37332812, -0.533202708, 1, 6.78072321e-11, -4.49284138e-10, 4.52671733e-10, -0.0632067397, 0.998000443, 3.92738446e-11, -0.998000562, -0.0632067248)
  8544. Weld320.Parent = Part292
  8545. Weld320.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8546. Weld320.C1 = CFrame.new(-0.533207953, 4.02465412e-05, -0.400390506, 4.0660561e-10, -0.997999609, -0.0632200539, 3.50466517e-10, -0.0632200539, 0.997999668, -1, -4.2794876e-10, 3.24059835e-10)
  8547. Weld321.Parent = Part292
  8548. Weld321.C0 = CFrame.new(4.58660736e-07, -1.05566846e-06, 0, -3.88906235e-21, 0.997999787, 0.0632176325, 5.33270982e-22, -0.0632176325, 0.997999787, 1, 3.91499535e-21, -2.86346992e-22)
  8549. Weld321.C1 = CFrame.new(-7.07679817e-08, 2.65414451e-06, -0.933581531, 1, 1.09589553e-10, 2.37319969e-10, 2.3550692e-10, -0.0632223934, 0.997999489, 3.36916911e-10, -0.997999012, -0.0632295236)
  8550. Weld322.Parent = Part292
  8551. Weld322.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8552. Weld322.C1 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8553. Weld323.Parent = Part292
  8554. Weld323.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8555. Weld323.C1 = CFrame.new(0.533212543, 4.33809255e-05, -0.399536133, -4.77452022e-10, 0.000812952989, -0.999999702, 5.0560689e-10, 0.999999702, 0.000812952989, 1, -5.05218589e-10, -4.77862916e-10)
  8556. Weld324.Parent = Part292
  8557. Weld324.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8558. Weld324.C1 = CFrame.new(-2.3357552e-07, 5.55160077e-05, -0.533165157, 1, -1.76372972e-09, -8.22718005e-10, 1.76440684e-09, 0.999999702, 0.000823921058, 8.21264445e-10, -0.000823920942, 0.999999762)
  8559. Weld325.Parent = Part292
  8560. Weld325.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8561. Weld325.C1 = CFrame.new(0.533225417, 0.37339133, -1.62893741e-07, -1.04536846e-09, 0.000832025486, -0.999999642, 1.78690496e-09, 0.999999702, 0.000832025427, 1, -1.78603476e-09, -1.04685483e-09)
  8562. Weld326.Parent = Part292
  8563. Weld326.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8564. Weld326.C1 = CFrame.new(-4.40306758e-06, 0.132771388, 0.400390655, 8.48401349e-10, 0.999999702, 0.000801038579, -6.20273943e-10, 0.000801038579, -0.999999702, -1, 8.47904247e-10, 6.20953344e-10)
  8565. Weld327.Parent = Part292
  8566. Weld327.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8567. Weld327.C1 = CFrame.new(1.28626851e-07, -0.400390595, -0.13282387, 8.56068161e-10, 0.999999702, 0.000817724678, -1, 8.55560678e-10, 6.21001806e-10, 6.20301976e-10, -0.000817724678, 0.999999702)
  8568. Weld328.Parent = Part292
  8569. Weld328.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8570. Weld328.C1 = CFrame.new(1.20785018e-07, 3.03727884e-05, 0.132775158, -1, 8.50133963e-10, 4.23458851e-10, 8.50476911e-10, 0.999999702, 0.000810569618, -4.22769625e-10, 0.000810569618, -0.999999702)
  8571. Weld329.Parent = Part292
  8572. Weld329.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8573. Weld329.C1 = CFrame.new(6.63429382e-05, -0.400390744, 0.933595598, 8.14806722e-10, 0.999999702, 0.000811841746, 1, -8.14434464e-10, -4.58876631e-10, -4.58215271e-10, 0.000811841746, -0.999999702)
  8574. Weld330.Parent = Part292
  8575. Weld330.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8576. Weld330.C1 = CFrame.new(2.15904674e-05, -0.933605134, 0.400390595, 8.35977676e-10, 0.999999702, 0.000817724678, 6.19722884e-10, -0.000817724678, 0.999999702, 1, -8.35470693e-10, -6.20406337e-10)
  8577. Weld331.Parent = Part292
  8578. Weld331.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8579. Weld331.C1 = CFrame.new(-1.52702455e-07, -0.373297483, -0.533215165, 1, -9.17886822e-10, -2.52556753e-10, 9.18089604e-10, 0.999999702, 0.000804377254, 2.51818288e-10, -0.000804377254, 0.999999702)
  8580. Weld332.Parent = Part292
  8581. Weld332.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8582. Weld332.C1 = CFrame.new(-0.533214509, 4.16217954e-05, -0.400390595, 6.19143847e-10, -0.000817724678, 0.999999702, 8.15887191e-10, 0.999999702, 0.000817724678, -1, 8.15380652e-10, 6.19810814e-10)
  8583. Weld333.Parent = Part292
  8584. Weld333.C0 = CFrame.new(5.53692553e-06, 2.04514564e-07, -6.04753154e-08, -2.12544884e-10, 0.00080342195, -0.999999702, 4.65420175e-10, 0.999999702, 0.00080342195, 1, -4.65249311e-10, -2.12918766e-10)
  8585. Weld333.C1 = CFrame.new(3.86851866e-08, 1.33582325e-05, -0.93360126, 1, 2.30016242e-10, -1.24190033e-10, 2.3550692e-10, 0.999999702, 0.000801045971, 3.36916911e-10, -0.000808193639, 0.999999702)
  8586. Weld334.Parent = Part292
  8587. Weld334.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8588. Weld334.C1 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8589. Weld335.Parent = Part292
  8590. Weld335.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8591. Weld335.C1 = CFrame.new(0.533207655, 4.00506069e-05, -0.399536133, -2.64911593e-10, 0.997566879, -0.069715552, 4.01852024e-11, 0.0697179288, 0.9975667, 1, 1.98314268e-10, 2.08188033e-11)
  8592. Weld336.Parent = Part292
  8593. Weld336.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8594. Weld336.C1 = CFrame.new(-4.09776021e-07, 5.64174661e-05, -0.533183694, 1, 5.16648224e-10, -1.33828371e-09, 1.29899103e-09, 0.0697453171, 0.997564912, 6.08729123e-10, -0.997564912, 0.0697453246)
  8595. Weld337.Parent = Part292
  8596. Weld337.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8597. Weld337.C1 = CFrame.new(0.53322345, 0.373397857, -4.03579065e-07, -8.32836911e-10, 0.997565448, -0.0697367489, 1.32148736e-09, 0.0697367489, 0.997565448, 1, 7.38653139e-10, -1.37634937e-09)
  8598. Weld338.Parent = Part292
  8599. Weld338.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8600. Weld338.C1 = CFrame.new(-9.81253652e-06, 0.132794693, 0.400390744, 3.829842e-10, 0.0697392747, 0.997565329, -4.07727963e-10, 0.997565329, -0.0697392747, -1, -3.80026233e-10, 4.10486423e-10)
  8601. Weld339.Parent = Part292
  8602. Weld339.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8603. Weld339.C1 = CFrame.new(2.00291402e-06, -0.400390506, -0.132815465, 3.90647487e-10, 0.0697226226, 0.997566521, -1, -3.79534459e-10, 4.18127227e-10, 4.07763739e-10, -0.997566402, 0.0697226301)
  8604. Weld340.Parent = Part292
  8605. Weld340.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8606. Weld340.C1 = CFrame.new(1.20755828e-07, 4.99412226e-06, 0.132797584, -1, -1.82865389e-10, 3.9878062e-10, 3.85058263e-10, 0.0697321221, 0.997565806, -2.10228071e-10, 0.997565746, -0.0697321221)
  8607. Weld341.Parent = Part292
  8608. Weld341.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8609. Weld341.C1 = CFrame.new(4.74962835e-05, -0.400390744, 0.933588088, 3.49388324e-10, 0.0697333813, 0.997565746, 1, 2.20712254e-10, -3.65669495e-10, -2.45674314e-10, 0.997565746, -0.0697333887)
  8610. Weld342.Parent = Part292
  8611. Weld342.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8612. Weld342.C1 = CFrame.new(2.00708268e-06, -0.933598638, 0.400390506, 3.70557002e-10, 0.0697226226, 0.997566521, 4.07184675e-10, -0.997566402, 0.0697226301, 1, 3.80357551e-10, -3.98045263e-10)
  8613. Weld343.Parent = Part292
  8614. Weld343.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8615. Weld343.C1 = CFrame.new(-1.0609989e-07, -0.373298496, -0.533198833, 1, 7.61074016e-12, -4.54308563e-10, 4.52671733e-10, 0.0697359443, 0.997565567, 3.92738446e-11, -0.997565567, 0.0697359443)
  8616. Weld344.Parent = Part292
  8617. Weld344.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8618. Weld344.C1 = CFrame.new(-0.533206105, 3.25288311e-05, -0.400390536, 4.0660561e-10, -0.997566402, 0.0697226301, 3.50466517e-10, 0.0697226226, 0.997566521, -1, -3.8118067e-10, 3.77963272e-10)
  8619. Weld345.Parent = Part292
  8620. Weld345.C0 = CFrame.new(-3.95431243e-07, 7.30769489e-06, 0, -3.92543285e-21, 0.997566223, -0.069725059, 1.26768054e-23, 0.069725059, 0.997566223, 1, 3.91499535e-21, -2.86346992e-22)
  8621. Weld345.C1 = CFrame.new(-6.55530812e-08, 2.72896377e-05, -0.933581114, 1, 1.40101444e-10, 2.20685789e-10, 2.3550692e-10, 0.0697202981, 0.997566581, 3.36916911e-10, -0.997567058, 0.0697131678)
  8622. Weld346.Parent = Part292
  8623. Weld346.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8624. Weld346.C1 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8625. Weld347.Parent = Part292
  8626. Weld347.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8627. Weld347.C1 = CFrame.new(0.5332008, 8.52442608e-05, -0.399536431, -1.4692636e-09, 0.000846330251, -0.999999642, 2.67755484e-09, 0.999999702, 0.000846330193, 1, -2.67631073e-09, -1.47152912e-09)
  8628. Weld348.Parent = Part292
  8629. Weld348.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8630. Weld348.C1 = CFrame.new(-3.54604822e-07, 7.10747918e-05, -0.533170998, 1, -2.69418865e-09, -1.24858379e-09, 2.69523404e-09, 0.999999702, 0.000838225707, 1.24632515e-09, -0.000838225707, 0.999999642)
  8631. Weld349.Parent = Part292
  8632. Weld349.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8633. Weld349.C1 = CFrame.new(0.533231318, 0.373406291, -2.83906502e-07, -1.47042167e-09, 0.000846330251, -0.999999642, 2.71773581e-09, 0.999999702, 0.000846330193, 1, -2.71649037e-09, -1.47272128e-09)
  8634. Weld350.Parent = Part292
  8635. Weld350.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8636. Weld350.C1 = CFrame.new(5.93345294e-06, 0.132752568, 0.400390923, 2.71005463e-09, 0.999999702, 0.000829644501, -1.47042467e-09, 0.000829644501, -0.999999642, -1, 2.70883382e-09, 1.47267265e-09)
  8637. Weld351.Parent = Part292
  8638. Weld351.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8639. Weld351.C1 = CFrame.new(8.4651374e-06, -0.400390327, -0.132810175, 2.71773581e-09, 0.999999702, 0.000846330193, -1, 2.71649037e-09, 1.47272128e-09, 1.47042167e-09, -0.000846330251, 0.999999642)
  8640. Weld352.Parent = Part292
  8641. Weld352.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8642. Weld352.C1 = CFrame.new(3.62762336e-07, 2.95230384e-05, 0.132817402, -1, 2.71106715e-09, 1.27517807e-09, 2.71213629e-09, 0.999999702, 0.000839179265, -1.27290256e-09, 0.000839179265, -0.999999642)
  8643. Weld353.Parent = Part292
  8644. Weld353.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8645. Weld353.C1 = CFrame.new(0.000142092002, -0.400391012, 0.93360728, 2.67646505e-09, 0.999999702, 0.000840450521, 1, -2.6753646e-09, -1.31059485e-09, -1.30834588e-09, 0.000840450521, -0.999999642)
  8646. Weld354.Parent = Part292
  8647. Weld354.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8648. Weld354.C1 = CFrame.new(0.000101452555, -0.933591425, 0.400390327, 2.69764522e-09, 0.999999702, 0.000846330193, 1.46984258e-09, -0.000846330251, 0.999999642, 1, -2.69640044e-09, -1.47212509e-09)
  8649. Weld355.Parent = Part292
  8650. Weld355.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8651. Weld355.C1 = CFrame.new(-3.94687646e-07, -0.373256177, -0.533165812, 1, -2.77882695e-09, -1.10427789e-09, 2.77974577e-09, 0.999999702, 0.000832981663, 1.10196274e-09, -0.000832981663, 0.999999642)
  8652. Weld356.Parent = Part292
  8653. Weld356.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8654. Weld356.C1 = CFrame.new(-0.5332008, 8.52442608e-05, -0.400390327, 1.4692636e-09, -0.000846330251, 0.999999642, 2.67755484e-09, 0.999999702, 0.000846330193, -1, 2.67631073e-09, 1.47152912e-09)
  8655. Weld357.Parent = Part292
  8656. Weld357.C0 = CFrame.new(1.14122267e-05, 2.31042439e-08, -1.81467669e-07, -6.37624675e-10, 0.000817726715, -0.999999762, 1.396256e-09, 0.999999702, 0.000817726832, 1, -1.39573431e-09, -6.38766207e-10)
  8657. Weld357.C1 = CFrame.new(-2.17958132e-08, 2.16124681e-05, -0.933588922, 1, -7.00479896e-10, -5.50027579e-10, 7.00928149e-10, 0.999999702, 0.000815343345, 5.49456258e-10, -0.000815343345, 0.999999702)
  8658. Weld358.Parent = Part292
  8659. Weld358.C0 = CFrame.new(2.73681553e-06, -7.9203943e-08, -1.32984567e-07, -1, 4.29049651e-05, 1.27289645e-09, 4.29049651e-05, 1, -2.71216405e-09, -1.27303168e-09, -2.7121092e-09, -1)
  8660. Weld358.C1 = CFrame.new(2.73681553e-06, -7.9203943e-08, -1.32984567e-07, -1, 4.29049651e-05, 1.27289645e-09, 4.29049651e-05, 1, -2.71216405e-09, -1.27303168e-09, -2.7121092e-09, -1)
  8661. Weld358.Part0 = Part292
  8662. Weld358.Part1 = Part292
  8663. Weld359.Parent = Part292
  8664. Weld359.C0 = CFrame.new(2.58500165e-07, 1.47510104e-06, 9.1201764e-07, -0.0304826926, -0.998224854, 0.0511664115, -0.997482359, 0.027100971, -0.0655324385, 0.0640294328, -0.0530351698, -0.996537805)
  8665. Weld359.C1 = CFrame.new(2.58500165e-07, 1.47510104e-06, 9.1201764e-07, -0.0304826926, -0.998224854, 0.0511664115, -0.997482359, 0.027100971, -0.0655324385, 0.0640294328, -0.0530351698, -0.996537805)
  8666. Weld359.Part0 = Part292
  8667. Weld359.Part1 = Part292
  8668. Weld360.Parent = Part292
  8669. Weld360.C0 = CFrame.new(5.81937775e-06, 3.66444342e-09, 4.0117655e-07, -1, 1.83190277e-05, 1.62574338e-07, 1.82680233e-05, 1, -5.43802935e-06, -1.05692934e-07, -5.39845632e-06, -1.00000012)
  8670. Weld360.C1 = CFrame.new(5.81937775e-06, 3.66444342e-09, 4.0117655e-07, -1, 1.83190277e-05, 1.62574338e-07, 1.82680233e-05, 1, -5.43802935e-06, -1.05692934e-07, -5.39845632e-06, -1.00000012)
  8671. Weld360.Part0 = Part292
  8672. Weld360.Part1 = Part292
  8673. Weld361.Parent = Part292
  8674. Weld361.C0 = CFrame.new(5.19993637e-06, -2.07580495e-08, -4.3925632e-09, -0.99999994, -7.85102384e-06, 1.626222e-07, -7.9020283e-06, 1, -7.75445642e-06, -1.05581343e-07, -7.71488703e-06, -1.00000012)
  8675. Weld361.C1 = CFrame.new(5.19993637e-06, -2.07580495e-08, -4.3925632e-09, -0.99999994, -7.85102384e-06, 1.626222e-07, -7.9020283e-06, 1, -7.75445642e-06, -1.05581343e-07, -7.71488703e-06, -1.00000012)
  8676. Weld361.Part0 = Part292
  8677. Weld361.Part1 = Part292
  8678. Weld362.Parent = Part292
  8679. Weld362.C0 = CFrame.new(-4.51719643e-07, 1.87397453e-09, -3.76758157e-06, -0.999999821, -3.77100787e-06, -6.00899241e-09, -3.82201188e-06, 1, -4.80523522e-06, 6.30072776e-08, -4.76566538e-06, -1.00000012)
  8680. Weld362.C1 = CFrame.new(-4.51719643e-07, 1.87397453e-09, -3.76758157e-06, -0.999999821, -3.77100787e-06, -6.00899241e-09, -3.82201188e-06, 1, -4.80523522e-06, 6.30072776e-08, -4.76566538e-06, -1.00000012)
  8681. Weld362.Part0 = Part292
  8682. Weld362.Part1 = Part292
  8683. Weld363.Parent = Part292
  8684. Weld363.C0 = CFrame.new(1.26816673e-07, -2.34453221e-08, 5.90223294e-07, -0.999999762, -1.85550198e-05, -5.83594151e-09, -1.86060279e-05, 1, -8.11173049e-06, 6.29660306e-08, -8.07215929e-06, -1.00000012)
  8685. Weld363.C1 = CFrame.new(1.26816673e-07, -2.34453221e-08, 5.90223294e-07, -0.999999762, -1.85550198e-05, -5.83594151e-09, -1.86060279e-05, 1, -8.11173049e-06, 6.29660306e-08, -8.07215929e-06, -1.00000012)
  8686. Weld363.Part0 = Part292
  8687. Weld363.Part1 = Part292
  8688. Weld364.Parent = Part292
  8689. Weld364.C0 = CFrame.new(8.01678993e-07, -1.1426212e-08, -1.10775409e-06, -0.999999702, -1.59489209e-05, -5.85270321e-09, -1.5999929e-05, 1, -9.83655082e-06, 6.29892654e-08, -9.79697961e-06, -1.00000012)
  8690. Weld364.C1 = CFrame.new(8.01678993e-07, -1.1426212e-08, -1.10775409e-06, -0.999999702, -1.59489209e-05, -5.85270321e-09, -1.5999929e-05, 1, -9.83655082e-06, 6.29892654e-08, -9.79697961e-06, -1.00000012)
  8691. Weld364.Part0 = Part292
  8692. Weld364.Part1 = Part292
  8693. Weld365.Parent = Part292
  8694. Weld365.C0 = CFrame.new(1.07855703e-06, -1.98978043e-08, -4.36352309e-07, -0.999999642, -1.87142232e-05, -3.42939558e-07, -1.87652277e-05, 1, -1.32089617e-05, 4.00166499e-07, -1.31693841e-05, -1.00000012)
  8695. Weld365.C1 = CFrame.new(1.07855703e-06, -1.98978043e-08, -4.36352309e-07, -0.999999642, -1.87142232e-05, -3.42939558e-07, -1.87652277e-05, 1, -1.32089617e-05, 4.00166499e-07, -1.31693841e-05, -1.00000012)
  8696. Weld365.Part0 = Part292
  8697. Weld365.Part1 = Part292
  8698. Weld366.Parent = Part292
  8699. Weld366.C0 = CFrame.new(-2.96131202e-06, 1.15200116e-08, -5.08313747e-08, -0.999999583, -2.1935306e-05, -3.42888029e-07, -2.19863105e-05, 1, -1.28208176e-05, 4.00148849e-07, -1.27812382e-05, -1.00000012)
  8700. Weld366.C1 = CFrame.new(-2.96131202e-06, 1.15200116e-08, -5.08313747e-08, -0.999999583, -2.1935306e-05, -3.42888029e-07, -2.19863105e-05, 1, -1.28208176e-05, 4.00148849e-07, -1.27812382e-05, -1.00000012)
  8701. Weld366.Part0 = Part292
  8702. Weld366.Part1 = Part292
  8703. Part367.Name = "BoltBack"
  8704. Part367.Parent = Tool0
  8705. Part367.BrickColor = BrickColor.new("Really black")
  8706. Part367.Transparency = 1
  8707. Part367.Rotation = Vector3.new(179.979996, 0, -180)
  8708. Part367.Anchored = true
  8709. Part367.CanCollide = false
  8710. Part367.FormFactor = Enum.FormFactor.Custom
  8711. Part367.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  8712. Part367.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
  8713. Part367.BottomSurface = Enum.SurfaceType.Smooth
  8714. Part367.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  8715. Part367.TopSurface = Enum.SurfaceType.Smooth
  8716. Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8717. Part367.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
  8718. Part367.Orientation = Vector3.new(0.0199999996, 180, 0)
  8719. Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8720. Sound368.Name = "FireSound"
  8721. Sound368.Parent = Part367
  8722. Sound368.SoundId = "rbxassetid://135039581"
  8723. Sound368.Volume = 1
  8724. Sound369.Name = "ReloadSound"
  8725. Sound369.Parent = Part367
  8726. Sound369.SoundId = "rbxassetid://255061162"
  8727. Sound369.Volume = 1
  8728. Part370.Name = "Bolt"
  8729. Part370.Parent = Tool0
  8730. Part370.BrickColor = BrickColor.new("Really black")
  8731. Part370.Transparency = 1
  8732. Part370.Rotation = Vector3.new(179.979996, 0, -180)
  8733. Part370.Anchored = true
  8734. Part370.CanCollide = false
  8735. Part370.FormFactor = Enum.FormFactor.Custom
  8736. Part370.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  8737. Part370.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
  8738. Part370.BottomSurface = Enum.SurfaceType.Smooth
  8739. Part370.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  8740. Part370.TopSurface = Enum.SurfaceType.Smooth
  8741. Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8742. Part370.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
  8743. Part370.Orientation = Vector3.new(0.0199999996, 180, 0)
  8744. Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8745. Sound371.Name = "FireSound"
  8746. Sound371.Parent = Part370
  8747. Sound371.SoundId = "rbxassetid://135039581"
  8748. Sound371.Volume = 1
  8749. Sound372.Name = "ReloadSound"
  8750. Sound372.Parent = Part370
  8751. Sound372.SoundId = "rbxassetid://255061162"
  8752. Sound372.Volume = 1
  8753. Model373.Name = "Nigger"
  8754. Model373.Parent = Tool0
  8755. Part374.Name = "Right Leg"
  8756. Part374.Parent = Model373
  8757. Part374.BrickColor = BrickColor.new("Reddish brown")
  8758. Part374.Rotation = Vector3.new(0, -90, 0)
  8759. Part374.Anchored = true
  8760. Part374.CanCollide = false
  8761. Part374.FormFactor = Enum.FormFactor.Symmetric
  8762. Part374.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8763. Part374.CFrame = CFrame.new(1434.75476, 44.2668762, -1310.34082, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8764. Part374.BottomSurface = Enum.SurfaceType.Smooth
  8765. Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8766. Part374.Position = Vector3.new(1434.75476, 44.2668762, -1310.34082)
  8767. Part374.Orientation = Vector3.new(0, -90, 0)
  8768. Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8769. Decal375.Parent = Part374
  8770. Decal375.Texture = "http://www.roblox.com/asset/?id=513989292"
  8771. Part376.Name = "Torso"
  8772. Part376.Parent = Model373
  8773. Part376.BrickColor = BrickColor.new("Reddish brown")
  8774. Part376.Rotation = Vector3.new(0, -90, 0)
  8775. Part376.Anchored = true
  8776. Part376.FormFactor = Enum.FormFactor.Symmetric
  8777. Part376.Size = Vector3.new(0.53363061, 0.53363061, 0.266815305)
  8778. Part376.CFrame = CFrame.new(1434.75476, 44.8004494, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8779. Part376.LeftSurface = Enum.SurfaceType.Weld
  8780. Part376.RightSurface = Enum.SurfaceType.Weld
  8781. Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8782. Part376.Position = Vector3.new(1434.75476, 44.8004494, -1310.47424)
  8783. Part376.Orientation = Vector3.new(0, -90, 0)
  8784. Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8785. Decal377.Name = "roblox"
  8786. Decal377.Parent = Part376
  8787. Motor378.Name = "Right Shoulder"
  8788. Motor378.Parent = Part376
  8789. Motor378.C0 = CFrame.new(0.266815305, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8790. Motor378.C1 = CFrame.new(-0.133407652, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8791. Motor378.Part0 = Part376
  8792. Motor378.Part1 = Part383
  8793. Motor378.MaxVelocity = 0.5
  8794. Motor379.Name = "Left Shoulder"
  8795. Motor379.Parent = Part376
  8796. Motor379.C0 = CFrame.new(-0.266815305, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8797. Motor379.C1 = CFrame.new(0.133407652, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8798. Motor379.Part0 = Part376
  8799. Motor379.Part1 = Part385
  8800. Motor379.MaxVelocity = 0.5
  8801. Motor380.Name = "Right Hip"
  8802. Motor380.Parent = Part376
  8803. Motor380.C0 = CFrame.new(0.266815305, -0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8804. Motor380.C1 = CFrame.new(0.133407652, 0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8805. Motor380.Part0 = Part376
  8806. Motor380.Part1 = Part374
  8807. Motor380.MaxVelocity = 0.10000000149012
  8808. Motor381.Name = "Left Hip"
  8809. Motor381.Parent = Part376
  8810. Motor381.C0 = CFrame.new(-0.266815305, -0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8811. Motor381.C1 = CFrame.new(-0.133407652, 0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8812. Motor381.Part0 = Part376
  8813. Motor381.Part1 = Part384
  8814. Motor381.MaxVelocity = 0.10000000149012
  8815. Motor382.Name = "Neck"
  8816. Motor382.Parent = Part376
  8817. Motor382.C0 = CFrame.new(0, 0.266815305, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  8818. Motor382.C1 = CFrame.new(0, -0.133407652, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  8819. Motor382.Part0 = Part376
  8820. Motor382.Part1 = Part386
  8821. Motor382.MaxVelocity = 0.10000000149012
  8822. Part383.Name = "Right Arm"
  8823. Part383.Parent = Model373
  8824. Part383.BrickColor = BrickColor.new("Reddish brown")
  8825. Part383.Rotation = Vector3.new(0, -90, 0)
  8826. Part383.Anchored = true
  8827. Part383.CanCollide = false
  8828. Part383.FormFactor = Enum.FormFactor.Symmetric
  8829. Part383.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8830. Part383.CFrame = CFrame.new(1434.75476, 44.8004532, -1310.07397, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8831. Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8832. Part383.Position = Vector3.new(1434.75476, 44.8004532, -1310.07397)
  8833. Part383.Orientation = Vector3.new(0, -90, 0)
  8834. Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8835. Part384.Name = "Left Leg"
  8836. Part384.Parent = Model373
  8837. Part384.BrickColor = BrickColor.new("Reddish brown")
  8838. Part384.Rotation = Vector3.new(0, -90, 0)
  8839. Part384.Anchored = true
  8840. Part384.CanCollide = false
  8841. Part384.FormFactor = Enum.FormFactor.Symmetric
  8842. Part384.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8843. Part384.CFrame = CFrame.new(1434.75476, 44.2668228, -1310.60767, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8844. Part384.BottomSurface = Enum.SurfaceType.Smooth
  8845. Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8846. Part384.Position = Vector3.new(1434.75476, 44.2668228, -1310.60767)
  8847. Part384.Orientation = Vector3.new(0, -90, 0)
  8848. Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8849. Part385.Name = "Left Arm"
  8850. Part385.Parent = Model373
  8851. Part385.BrickColor = BrickColor.new("Reddish brown")
  8852. Part385.Rotation = Vector3.new(0, -90, 0)
  8853. Part385.Anchored = true
  8854. Part385.CanCollide = false
  8855. Part385.FormFactor = Enum.FormFactor.Symmetric
  8856. Part385.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8857. Part385.CFrame = CFrame.new(1434.75476, 44.8004341, -1310.87451, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8858. Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8859. Part385.Position = Vector3.new(1434.75476, 44.8004341, -1310.87451)
  8860. Part385.Orientation = Vector3.new(0, -90, 0)
  8861. Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8862. Part386.Name = "Head"
  8863. Part386.Parent = Model373
  8864. Part386.BrickColor = BrickColor.new("Reddish brown")
  8865. Part386.Rotation = Vector3.new(0, -90, 0)
  8866. Part386.Anchored = true
  8867. Part386.FormFactor = Enum.FormFactor.Symmetric
  8868. Part386.Size = Vector3.new(0.53363061, 0.266815305, 0.266815305)
  8869. Part386.CFrame = CFrame.new(1434.75476, 45.2006721, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8870. Part386.TopSurface = Enum.SurfaceType.Smooth
  8871. Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8872. Part386.Position = Vector3.new(1434.75476, 45.2006721, -1310.47424)
  8873. Part386.Orientation = Vector3.new(0, -90, 0)
  8874. Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8875. SpecialMesh387.Parent = Part386
  8876. SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
  8877. SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
  8878. Decal388.Parent = Part386
  8879. Decal388.Texture = "http://www.roblox.com/asset/?id=42030236"
  8880. Decal389.Parent = Part386
  8881. Decal389.Texture = "http://www.roblox.com/asset/?id=513989292"
  8882. Humanoid390.Parent = Model373
  8883. Humanoid390.RightLeg = Part374
  8884. Humanoid390.LeftLeg = Part384
  8885. Humanoid390.Torso = Part376
  8886. Humanoid390.MaxHealth = 0
  8887. Script391.Name = "Humaniod"
  8888. Script391.Parent = Model373
  8889. table.insert(cors,sandbox(Script391,function()
  8890. local Model = script.Parent
  8891. local Backup = Model:clone()
  8892.  
  8893. function Respawn()
  8894. Model:breakJoints()
  8895.  
  8896. wait(5)
  8897.  
  8898. script.Parent = Model.Parent
  8899.  
  8900. Model:remove()
  8901. Model = Backup:clone()
  8902. Model.Parent = script.Parent
  8903. Model:makeJoints()
  8904.  
  8905. script:remove()
  8906. end
  8907.  
  8908. Model.Humanoid.Died:connect(Respawn)
  8909.  
  8910. function waitForChild(parent, childName)
  8911. local child = parent:findFirstChild(childName)
  8912.  
  8913. if child then
  8914. return child
  8915. end
  8916.  
  8917. while true do
  8918. print(childName)
  8919.  
  8920. child = parent.ChildAdded:wait()
  8921.  
  8922. if child.Name==childName then
  8923. return child
  8924. end
  8925. end
  8926. end
  8927.  
  8928. -- declarations
  8929.  
  8930. local Figure = script.Parent
  8931. local Head = waitForChild(Figure, "Head")
  8932. local Humanoid = waitForChild(Figure, "Humanoid")
  8933.  
  8934. Figure.PrimaryPart = Head
  8935.  
  8936. -- ANIMATION
  8937.  
  8938. function Joint(Name, Part0, Part1, C0, C1, MaxVelocity)
  8939. local Motor = Instance.new("Motor")
  8940.  
  8941. Motor.C0 = C0
  8942. Motor.C1 = C1
  8943. Motor.MaxVelocity = MaxVelocity
  8944. Motor.Name = Name
  8945. Motor.Parent = Part0
  8946. Motor.Part0 = Part0
  8947. Motor.Part1 = Part1
  8948. end
  8949.  
  8950. -- declarations
  8951.  
  8952. local Torso = waitForChild(Figure, "Torso")
  8953. local LeftArm = waitForChild(Figure, "Left Arm")
  8954. local LeftLeg = waitForChild(Figure, "Left Leg")
  8955. local RightArm = waitForChild(Figure, "Right Arm")
  8956. local RightLeg = waitForChild(Figure, "Right Leg")
  8957.  
  8958. local Joints = {
  8959. {"Right Shoulder", Torso, RightArm, CFrame.new(1, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFrame.new(-0.5, 0.5, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), 0.5},
  8960. {"Left Shoulder", Torso, LeftArm, CFrame.new(-1, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFrame.new(0.5, 0.5, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), 0.5},
  8961. {"Right Hip", Torso, RightLeg, CFrame.new(1, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), CFrame.new(0.5, 1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0), 0.10000000149012},
  8962. {"Left Hip", Torso, LeftLeg, CFrame.new(-1, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), CFrame.new(-0.5, 1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0), 0.10000000149012},
  8963. {"Neck", Torso, Head, CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), CFrame.new(0, -0.5, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0), 0.10000000149012}}
  8964.  
  8965. Torso:breakJoints()
  8966.  
  8967. for _, v in pairs(Joints) do
  8968. Joint(unpack(v))
  8969. end
  8970.  
  8971. local RightShoulder = waitForChild(Torso, "Right Shoulder")
  8972. local LeftShoulder = waitForChild(Torso, "Left Shoulder")
  8973. local RightHip = waitForChild(Torso, "Right Hip")
  8974. local LeftHip = waitForChild(Torso, "Left Hip")
  8975. local Neck = waitForChild(Torso, "Neck")
  8976. local Humanoid = waitForChild(Figure, "Humanoid")
  8977. local pose = "Standing"
  8978.  
  8979. local toolAnim = "None"
  8980. local toolAnimTime = 0
  8981.  
  8982. -- functions
  8983.  
  8984. function onRunning(speed)
  8985. if speed>0 then
  8986. pose = "Running"
  8987. else
  8988. pose = "Standing"
  8989. end
  8990. end
  8991.  
  8992. function onDied()
  8993. pose = "Dead"
  8994. end
  8995.  
  8996. function onJumping()
  8997. pose = "Jumping"
  8998. end
  8999.  
  9000. function onClimbing()
  9001. pose = "Climbing"
  9002. end
  9003.  
  9004. function onGettingUp()
  9005. pose = "GettingUp"
  9006. end
  9007.  
  9008. function onFreeFall()
  9009. pose = "FreeFall"
  9010. end
  9011.  
  9012. function onFallingDown()
  9013. pose = "FallingDown"
  9014. end
  9015.  
  9016. function onSeated()
  9017. pose = "Seated"
  9018. end
  9019.  
  9020. function onPlatformStanding()
  9021. pose = "PlatformStanding"
  9022. end
  9023.  
  9024. function moveJump()
  9025. RightShoulder.MaxVelocity = 0.5
  9026. LeftShoulder.MaxVelocity = 0.5
  9027. RightShoulder.DesiredAngle = 3.14
  9028. LeftShoulder.DesiredAngle = -3.14
  9029. RightHip.DesiredAngle = 0
  9030. LeftHip.DesiredAngle = 0
  9031. end
  9032.  
  9033.  
  9034. -- same as jump for now
  9035.  
  9036. function moveFreeFall()
  9037. RightShoulder.MaxVelocity = 0.5
  9038. LeftShoulder.MaxVelocity = 0.5
  9039. RightShoulder.DesiredAngle = 3.14
  9040. LeftShoulder.DesiredAngle = -3.14
  9041. RightHip.DesiredAngle = 0
  9042. LeftHip.DesiredAngle = 0
  9043. end
  9044.  
  9045. function moveSit()
  9046. RightShoulder.MaxVelocity = 0.15
  9047. LeftShoulder.MaxVelocity = 0.15
  9048. RightShoulder.DesiredAngle = 3.14 /2
  9049. LeftShoulder.DesiredAngle = -3.14 /2
  9050. RightHip.DesiredAngle = 3.14 /2
  9051. LeftHip.DesiredAngle = -3.14 /2
  9052. end
  9053.  
  9054. function getTool()
  9055. for _, kid in ipairs(Figure:GetChildren()) do
  9056. if kid.className == "Tool" then return kid end
  9057. end
  9058. return nil
  9059. end
  9060.  
  9061. function getToolAnim(tool)
  9062. for _, c in ipairs(tool:GetChildren()) do
  9063. if c.Name == "toolanim" and c.className == "StringValue" then
  9064. return c
  9065. end
  9066. end
  9067. return nil
  9068. end
  9069.  
  9070. function animateTool()
  9071.  
  9072. if (toolAnim == "None") then
  9073. RightShoulder.DesiredAngle = 1.57
  9074. return
  9075. end
  9076.  
  9077. if (toolAnim == "Slash") then
  9078. RightShoulder.MaxVelocity = 0.5
  9079. RightShoulder.DesiredAngle = 0
  9080. return
  9081. end
  9082.  
  9083. if (toolAnim == "Lunge") then
  9084. RightShoulder.MaxVelocity = 0.5
  9085. LeftShoulder.MaxVelocity = 0.5
  9086. RightHip.MaxVelocity = 0.5
  9087. LeftHip.MaxVelocity = 0.5
  9088. RightShoulder.DesiredAngle = 1.57
  9089. LeftShoulder.DesiredAngle = 1.0
  9090. RightHip.DesiredAngle = 1.57
  9091. LeftHip.DesiredAngle = 1.0
  9092. return
  9093. end
  9094. end
  9095.  
  9096. function move(time)
  9097. local amplitude
  9098. local frequency
  9099.  
  9100. if (pose == "Jumping") then
  9101. moveJump()
  9102. return
  9103. end
  9104.  
  9105. if (pose == "FreeFall") then
  9106. moveFreeFall()
  9107. return
  9108. end
  9109.  
  9110. if (pose == "Seated") then
  9111. moveSit()
  9112. return
  9113. end
  9114.  
  9115. local climbFudge = 0
  9116.  
  9117. if (pose == "Running") then
  9118. RightShoulder.MaxVelocity = 0.15
  9119. LeftShoulder.MaxVelocity = 0.15
  9120. amplitude = 1
  9121. frequency = 9
  9122. elseif (pose == "Climbing") then
  9123. RightShoulder.MaxVelocity = 0.5
  9124. LeftShoulder.MaxVelocity = 0.5
  9125. amplitude = 1
  9126. frequency = 9
  9127. climbFudge = 3.14
  9128. else
  9129. amplitude = 0.1
  9130. frequency = 1
  9131. end
  9132.  
  9133. desiredAngle = amplitude * math.sin(time*frequency)
  9134.  
  9135. RightShoulder.DesiredAngle = desiredAngle + climbFudge
  9136. LeftShoulder.DesiredAngle = desiredAngle - climbFudge
  9137. RightHip.DesiredAngle = -desiredAngle
  9138. LeftHip.DesiredAngle = -desiredAngle
  9139.  
  9140.  
  9141. local tool = getTool()
  9142.  
  9143. if tool then
  9144.  
  9145. animStringValueObject = getToolAnim(tool)
  9146.  
  9147. if animStringValueObject then
  9148. toolAnim = animStringValueObject.Value
  9149. -- message recieved, delete StringValue
  9150. animStringValueObject.Parent = nil
  9151. toolAnimTime = time + .3
  9152. end
  9153.  
  9154. if time > toolAnimTime then
  9155. toolAnimTime = 0
  9156. toolAnim = "None"
  9157. end
  9158.  
  9159. animateTool()
  9160.  
  9161.  
  9162. else
  9163. toolAnim = "None"
  9164. toolAnimTime = 0
  9165. end
  9166. end
  9167.  
  9168.  
  9169. -- connect events
  9170.  
  9171. Humanoid.Died:connect(onDied)
  9172. Humanoid.Running:connect(onRunning)
  9173. Humanoid.Jumping:connect(onJumping)
  9174. Humanoid.Climbing:connect(onClimbing)
  9175. Humanoid.GettingUp:connect(onGettingUp)
  9176. Humanoid.FreeFalling:connect(onFreeFall)
  9177. Humanoid.FallingDown:connect(onFallingDown)
  9178. Humanoid.Seated:connect(onSeated)
  9179. Humanoid.PlatformStanding:connect(onPlatformStanding)
  9180.  
  9181. -- util
  9182.  
  9183. function waitForChild(parent, childName)
  9184. local child = parent:findFirstChild(childName)
  9185. if child then return child end
  9186. while true do
  9187. child = parent.ChildAdded:wait()
  9188. if child.Name==childName then return child end
  9189. end
  9190. end
  9191.  
  9192. function newSound(id)
  9193. local sound = Instance.new("Sound")
  9194. sound.SoundId = id
  9195. sound.archivable = false
  9196. sound.Parent = script.Parent.Head
  9197. return sound
  9198. end
  9199.  
  9200. -- declarations
  9201.  
  9202. local sDied = newSound("rbxasset://sounds/uuhhh.wav")
  9203. local sFallingDown = newSound("rbxasset://sounds/splat.wav")
  9204. local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
  9205. local sGettingUp = newSound("rbxasset://sounds/hit.wav")
  9206. local sJumping = newSound("rbxasset://sounds/button.wav")
  9207. local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
  9208. sRunning.Looped = true
  9209.  
  9210. -- functions
  9211.  
  9212. function onSoundDied()
  9213. sDied:Play()
  9214. end
  9215.  
  9216. function onState(state, sound)
  9217. if state then
  9218. sound:Play()
  9219. else
  9220. sound:Pause()
  9221. end
  9222. end
  9223.  
  9224. function onSoundRunning(speed)
  9225. if speed>0 then
  9226. sRunning:Play()
  9227. else
  9228. sRunning:Pause()
  9229. end
  9230. end
  9231.  
  9232. -- connect up
  9233.  
  9234. Humanoid.Died:connect(onSoundDied)
  9235. Humanoid.Running:connect(onSoundRunning)
  9236. Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
  9237. Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
  9238. Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
  9239. Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
  9240.  
  9241. local runService = game:service("RunService");
  9242.  
  9243. delay(0, function()
  9244. while Figure.Parent~=nil do
  9245. local _, time = wait(0.1)
  9246. move(time)
  9247. end
  9248. end)
  9249.  
  9250. -- regeneration
  9251. while true do
  9252. local s = wait(1)
  9253. local health = Humanoid.Health
  9254.  
  9255. if health > 0 and health < Humanoid.MaxHealth then
  9256. health = health + 0.01 * s * Humanoid.MaxHealth
  9257.  
  9258. if health * 1.05 < Humanoid.MaxHealth then
  9259. Humanoid.Health = health
  9260. else
  9261. Humanoid.Health = Humanoid.MaxHealth
  9262. end
  9263. end
  9264. end
  9265. end))
  9266. Shirt392.Name = "Shirt"
  9267. Shirt392.Parent = Model373
  9268. Shirt392.ShirtTemplate = "http://www.roblox.com/asset/?id=22746098"
  9269. Pants393.Parent = Model373
  9270. Pants393.PantsTemplate = "http://www.roblox.com/asset/?id=8173404"
  9271. Part394.Name = "hanger"
  9272. Part394.Parent = Model373
  9273. Part394.Material = Enum.Material.Fabric
  9274. Part394.BrickColor = BrickColor.new("Brick yellow")
  9275. Part394.Rotation = Vector3.new(0, 90, 0)
  9276. Part394.Anchored = true
  9277. Part394.Size = Vector3.new(0.0533630624, 3.41790414, 0.0827127546)
  9278. Part394.CFrame = CFrame.new(1434.76477, 47.0219231, -1310.42761, 0, 0, 1, 0, 1, 0, -1, 0, 0)
  9279. Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
  9280. Part394.Position = Vector3.new(1434.76477, 47.0219231, -1310.42761)
  9281. Part394.Orientation = Vector3.new(0, 90, 0)
  9282. Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
  9283. for i,v in pairs(mas:GetChildren()) do
  9284. v.Parent = game:GetService("Players").LocalPlayer.Backpack
  9285. pcall(function() v:MakeJoints() end)
  9286. end
  9287. mas:Destroy()
  9288. for i,v in pairs(cors) do
  9289. spawn(function()
  9290. pcall(v)
  9291. end)
  9292. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement