Advertisement
lafur

Untitled

Nov 10th, 2018
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  4. local RealPlayer = Player
  5. do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c(),Button2Up=c(),Button2Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end --Made by 1ndrew "Steamed Hams"
  6. function sandbox(var,func)
  7. local env = getfenv(func)
  8. local newenv = setmetatable({},{
  9. __index = function(self,k)
  10. if k=="script" then
  11. return var
  12. else
  13. return env[k]
  14. end
  15. end,
  16. })
  17. setfenv(func,newenv)
  18. return func
  19. end
  20. cors = {}
  21. mas = Instance.new("Model",game:GetService("Lighting"))
  22. Tool0 = Instance.new("Tool")
  23. Part1 = Instance.new("Part")
  24. CylinderMesh2 = Instance.new("CylinderMesh")
  25. Part3 = Instance.new("Part")
  26. CylinderMesh4 = Instance.new("CylinderMesh")
  27. Part5 = Instance.new("Part")
  28. CylinderMesh6 = Instance.new("CylinderMesh")
  29. Part7 = Instance.new("Part")
  30. CylinderMesh8 = Instance.new("CylinderMesh")
  31. Part9 = Instance.new("Part")
  32. CylinderMesh10 = Instance.new("CylinderMesh")
  33. Part11 = Instance.new("Part")
  34. CylinderMesh12 = Instance.new("CylinderMesh")
  35. Part13 = Instance.new("Part")
  36. SpecialMesh14 = Instance.new("SpecialMesh")
  37. Part15 = Instance.new("Part")
  38. CylinderMesh16 = Instance.new("CylinderMesh")
  39. Part17 = Instance.new("Part")
  40. Part18 = Instance.new("Part")
  41. PointLight19 = Instance.new("PointLight")
  42. BillboardGui20 = Instance.new("BillboardGui")
  43. ImageLabel21 = Instance.new("ImageLabel")
  44. CylinderMesh22 = Instance.new("CylinderMesh")
  45. Part23 = Instance.new("Part")
  46. Sound24 = Instance.new("Sound")
  47. Sound25 = Instance.new("Sound")
  48. Part26 = Instance.new("Part")
  49. CylinderMesh27 = Instance.new("CylinderMesh")
  50. Part28 = Instance.new("Part")
  51. SpecialMesh29 = Instance.new("SpecialMesh")
  52. Part30 = Instance.new("Part")
  53. SpecialMesh31 = Instance.new("SpecialMesh")
  54. Decal32 = Instance.new("Decal")
  55. Decal33 = Instance.new("Decal")
  56. Part34 = Instance.new("Part")
  57. SpecialMesh35 = Instance.new("SpecialMesh")
  58. Part36 = Instance.new("Part")
  59. SpecialMesh37 = Instance.new("SpecialMesh")
  60. Part38 = Instance.new("Part")
  61. CylinderMesh39 = Instance.new("CylinderMesh")
  62. Part40 = Instance.new("Part")
  63. CylinderMesh41 = Instance.new("CylinderMesh")
  64. Part42 = Instance.new("Part")
  65. CylinderMesh43 = Instance.new("CylinderMesh")
  66. Part44 = Instance.new("Part")
  67. SpecialMesh45 = Instance.new("SpecialMesh")
  68. Part46 = Instance.new("Part")
  69. CylinderMesh47 = Instance.new("CylinderMesh")
  70. Part48 = Instance.new("Part")
  71. SpecialMesh49 = Instance.new("SpecialMesh")
  72. Decal50 = Instance.new("Decal")
  73. Decal51 = Instance.new("Decal")
  74. Part52 = Instance.new("Part")
  75. SpecialMesh53 = Instance.new("SpecialMesh")
  76. Part54 = Instance.new("Part")
  77. SpecialMesh55 = Instance.new("SpecialMesh")
  78. Part56 = Instance.new("Part")
  79. CylinderMesh57 = Instance.new("CylinderMesh")
  80. Part58 = Instance.new("Part")
  81. CylinderMesh59 = Instance.new("CylinderMesh")
  82. Part60 = Instance.new("Part")
  83. SpecialMesh61 = Instance.new("SpecialMesh")
  84. Part62 = Instance.new("Part")
  85. CylinderMesh63 = Instance.new("CylinderMesh")
  86. Part64 = Instance.new("Part")
  87. CylinderMesh65 = Instance.new("CylinderMesh")
  88. Part66 = Instance.new("Part")
  89. SpecialMesh67 = Instance.new("SpecialMesh")
  90. Part68 = Instance.new("Part")
  91. SpecialMesh69 = Instance.new("SpecialMesh")
  92. Part70 = Instance.new("Part")
  93. CylinderMesh71 = Instance.new("CylinderMesh")
  94. Part72 = Instance.new("Part")
  95. SpecialMesh73 = Instance.new("SpecialMesh")
  96. Part74 = Instance.new("Part")
  97. CylinderMesh75 = Instance.new("CylinderMesh")
  98. Part76 = Instance.new("Part")
  99. CylinderMesh77 = Instance.new("CylinderMesh")
  100. Part78 = Instance.new("Part")
  101. CylinderMesh79 = Instance.new("CylinderMesh")
  102. Part80 = Instance.new("Part")
  103. CylinderMesh81 = Instance.new("CylinderMesh")
  104. Part82 = Instance.new("Part")
  105. CylinderMesh83 = Instance.new("CylinderMesh")
  106. Part84 = Instance.new("Part")
  107. CylinderMesh85 = Instance.new("CylinderMesh")
  108. Part86 = Instance.new("Part")
  109. CylinderMesh87 = Instance.new("CylinderMesh")
  110. Decal88 = Instance.new("Decal")
  111. Decal89 = Instance.new("Decal")
  112. Part90 = Instance.new("Part")
  113. SpecialMesh91 = Instance.new("SpecialMesh")
  114. Part92 = Instance.new("Part")
  115. SpecialMesh93 = Instance.new("SpecialMesh")
  116. Part94 = Instance.new("Part")
  117. CylinderMesh95 = Instance.new("CylinderMesh")
  118. Part96 = Instance.new("Part")
  119. SpecialMesh97 = Instance.new("SpecialMesh")
  120. Part98 = Instance.new("Part")
  121. SpecialMesh99 = Instance.new("SpecialMesh")
  122. Part100 = Instance.new("Part")
  123. CylinderMesh101 = Instance.new("CylinderMesh")
  124. Part102 = Instance.new("Part")
  125. CylinderMesh103 = Instance.new("CylinderMesh")
  126. Decal104 = Instance.new("Decal")
  127. Part105 = Instance.new("Part")
  128. CylinderMesh106 = Instance.new("CylinderMesh")
  129. Part107 = Instance.new("Part")
  130. CylinderMesh108 = Instance.new("CylinderMesh")
  131. Part109 = Instance.new("Part")
  132. CylinderMesh110 = Instance.new("CylinderMesh")
  133. Part111 = Instance.new("Part")
  134. CylinderMesh112 = Instance.new("CylinderMesh")
  135. Part113 = Instance.new("Part")
  136. CylinderMesh114 = Instance.new("CylinderMesh")
  137. Part115 = Instance.new("Part")
  138. CylinderMesh116 = Instance.new("CylinderMesh")
  139. Decal117 = Instance.new("Decal")
  140. Part118 = Instance.new("Part")
  141. CylinderMesh119 = Instance.new("CylinderMesh")
  142. Decal120 = Instance.new("Decal")
  143. Part121 = Instance.new("Part")
  144. CylinderMesh122 = Instance.new("CylinderMesh")
  145. Part123 = Instance.new("Part")
  146. CylinderMesh124 = Instance.new("CylinderMesh")
  147. Decal125 = Instance.new("Decal")
  148. Decal126 = Instance.new("Decal")
  149. Part127 = Instance.new("Part")
  150. SpecialMesh128 = Instance.new("SpecialMesh")
  151. Part129 = Instance.new("Part")
  152. CylinderMesh130 = Instance.new("CylinderMesh")
  153. Part131 = Instance.new("Part")
  154. CylinderMesh132 = Instance.new("CylinderMesh")
  155. Decal133 = Instance.new("Decal")
  156. Part134 = Instance.new("Part")
  157. CylinderMesh135 = Instance.new("CylinderMesh")
  158. Part136 = Instance.new("Part")
  159. CylinderMesh137 = Instance.new("CylinderMesh")
  160. Part138 = Instance.new("Part")
  161. SpecialMesh139 = Instance.new("SpecialMesh")
  162. Part140 = Instance.new("Part")
  163. SpecialMesh141 = Instance.new("SpecialMesh")
  164. Part142 = Instance.new("Part")
  165. CylinderMesh143 = Instance.new("CylinderMesh")
  166. Part144 = Instance.new("Part")
  167. CylinderMesh145 = Instance.new("CylinderMesh")
  168. Part146 = Instance.new("Part")
  169. SpecialMesh147 = Instance.new("SpecialMesh")
  170. Part148 = Instance.new("Part")
  171. CylinderMesh149 = Instance.new("CylinderMesh")
  172. Part150 = Instance.new("Part")
  173. CylinderMesh151 = Instance.new("CylinderMesh")
  174. Part152 = Instance.new("Part")
  175. CylinderMesh153 = Instance.new("CylinderMesh")
  176. Part154 = Instance.new("Part")
  177. CylinderMesh155 = Instance.new("CylinderMesh")
  178. Part156 = Instance.new("Part")
  179. SpecialMesh157 = Instance.new("SpecialMesh")
  180. Part158 = Instance.new("Part")
  181. SpecialMesh159 = Instance.new("SpecialMesh")
  182. Part160 = Instance.new("Part")
  183. CylinderMesh161 = Instance.new("CylinderMesh")
  184. Part162 = Instance.new("Part")
  185. SpecialMesh163 = Instance.new("SpecialMesh")
  186. Part164 = Instance.new("Part")
  187. CylinderMesh165 = Instance.new("CylinderMesh")
  188. Part166 = Instance.new("Part")
  189. CylinderMesh167 = Instance.new("CylinderMesh")
  190. Part168 = Instance.new("Part")
  191. SpecialMesh169 = Instance.new("SpecialMesh")
  192. Part170 = Instance.new("Part")
  193. SpecialMesh171 = Instance.new("SpecialMesh")
  194. Part172 = Instance.new("Part")
  195. SpecialMesh173 = Instance.new("SpecialMesh")
  196. Part174 = Instance.new("Part")
  197. SpecialMesh175 = Instance.new("SpecialMesh")
  198. Part176 = Instance.new("Part")
  199. CylinderMesh177 = Instance.new("CylinderMesh")
  200. Part178 = Instance.new("Part")
  201. SpecialMesh179 = Instance.new("SpecialMesh")
  202. Part180 = Instance.new("Part")
  203. CylinderMesh181 = Instance.new("CylinderMesh")
  204. Part182 = Instance.new("Part")
  205. CylinderMesh183 = Instance.new("CylinderMesh")
  206. Part184 = Instance.new("Part")
  207. SpecialMesh185 = Instance.new("SpecialMesh")
  208. Part186 = Instance.new("Part")
  209. SpecialMesh187 = Instance.new("SpecialMesh")
  210. IntValue188 = Instance.new("IntValue")
  211. IntValue189 = Instance.new("IntValue")
  212. IntValue190 = Instance.new("IntValue")
  213. IntValue191 = Instance.new("IntValue")
  214. IntValue192 = Instance.new("IntValue")
  215. Script193 = Instance.new("Script")
  216. ObjectValue194 = Instance.new("ObjectValue")
  217. RemoteFunction195 = Instance.new("RemoteFunction")
  218. RemoteFunction196 = Instance.new("RemoteFunction")
  219. RemoteFunction197 = Instance.new("RemoteFunction")
  220. RemoteEvent198 = Instance.new("RemoteEvent")
  221. RemoteFunction199 = Instance.new("RemoteFunction")
  222. RemoteFunction200 = Instance.new("RemoteFunction")
  223. RemoteFunction201 = Instance.new("RemoteFunction")
  224. LocalScript202 = Instance.new("LocalScript")
  225. IntValue203 = Instance.new("IntValue")
  226. RemoteEvent204 = Instance.new("RemoteEvent")
  227. RemoteEvent205 = Instance.new("RemoteEvent")
  228. RemoteEvent206 = Instance.new("RemoteEvent")
  229. RemoteEvent207 = Instance.new("RemoteEvent")
  230. LocalScript208 = Instance.new("LocalScript")
  231. IntValue209 = Instance.new("IntValue")
  232. Folder210 = Instance.new("Folder")
  233. ScreenGui211 = Instance.new("ScreenGui")
  234. ImageLabel212 = Instance.new("ImageLabel")
  235. NumberValue213 = Instance.new("NumberValue")
  236. Frame214 = Instance.new("Frame")
  237. ImageLabel215 = Instance.new("ImageLabel")
  238. TextLabel216 = Instance.new("TextLabel")
  239. Frame217 = Instance.new("Frame")
  240. TextLabel218 = Instance.new("TextLabel")
  241. Frame219 = Instance.new("Frame")
  242. TextLabel220 = Instance.new("TextLabel")
  243. Frame221 = Instance.new("Frame")
  244. TextLabel222 = Instance.new("TextLabel")
  245. Frame223 = Instance.new("Frame")
  246. TextLabel224 = Instance.new("TextLabel")
  247. Frame225 = Instance.new("Frame")
  248. Frame226 = Instance.new("Frame")
  249. TextLabel227 = Instance.new("TextLabel")
  250. TextLabel228 = Instance.new("TextLabel")
  251. TextLabel229 = Instance.new("TextLabel")
  252. TextLabel230 = Instance.new("TextLabel")
  253. TextLabel231 = Instance.new("TextLabel")
  254. Frame232 = Instance.new("Frame")
  255. TextLabel233 = Instance.new("TextLabel")
  256. TextLabel234 = Instance.new("TextLabel")
  257. TextLabel235 = Instance.new("TextLabel")
  258. Frame236 = Instance.new("Frame")
  259. TextLabel237 = Instance.new("TextLabel")
  260. Frame238 = Instance.new("Frame")
  261. Frame239 = Instance.new("Frame")
  262. Frame240 = Instance.new("Frame")
  263. Frame241 = Instance.new("Frame")
  264. Frame242 = Instance.new("Frame")
  265. Frame243 = Instance.new("Frame")
  266. Frame244 = Instance.new("Frame")
  267. Frame245 = Instance.new("Frame")
  268. Frame246 = Instance.new("Frame")
  269. Frame247 = Instance.new("Frame")
  270. Frame248 = Instance.new("Frame")
  271. Frame249 = Instance.new("Frame")
  272. Frame250 = Instance.new("Frame")
  273. Frame251 = Instance.new("Frame")
  274. Frame252 = Instance.new("Frame")
  275. Frame253 = Instance.new("Frame")
  276. Frame254 = Instance.new("Frame")
  277. Frame255 = Instance.new("Frame")
  278. Frame256 = Instance.new("Frame")
  279. Frame257 = Instance.new("Frame")
  280. Frame258 = Instance.new("Frame")
  281. Frame259 = Instance.new("Frame")
  282. Frame260 = Instance.new("Frame")
  283. Frame261 = Instance.new("Frame")
  284. Frame262 = Instance.new("Frame")
  285. Frame263 = Instance.new("Frame")
  286. TextLabel264 = Instance.new("TextLabel")
  287. TextLabel265 = Instance.new("TextLabel")
  288. Frame266 = Instance.new("Frame")
  289. Frame267 = Instance.new("Frame")
  290. ImageLabel268 = Instance.new("ImageLabel")
  291. TextLabel269 = Instance.new("TextLabel")
  292. TextLabel270 = Instance.new("TextLabel")
  293. Frame271 = Instance.new("Frame")
  294. ImageLabel272 = Instance.new("ImageLabel")
  295. TextLabel273 = Instance.new("TextLabel")
  296. TextLabel274 = Instance.new("TextLabel")
  297. Frame275 = Instance.new("Frame")
  298. TextLabel276 = Instance.new("TextLabel")
  299. TextLabel277 = Instance.new("TextLabel")
  300. TextLabel278 = Instance.new("TextLabel")
  301. Frame279 = Instance.new("Frame")
  302. Frame280 = Instance.new("Frame")
  303. ImageLabel281 = Instance.new("ImageLabel")
  304. ImageLabel282 = Instance.new("ImageLabel")
  305. Frame283 = Instance.new("Frame")
  306. TextLabel284 = Instance.new("TextLabel")
  307. Frame285 = Instance.new("Frame")
  308. ImageLabel286 = Instance.new("ImageLabel")
  309. ImageLabel287 = Instance.new("ImageLabel")
  310. Frame288 = Instance.new("Frame")
  311. Frame289 = Instance.new("Frame")
  312. LocalScript290 = Instance.new("LocalScript")
  313. TextLabel291 = Instance.new("TextLabel")
  314. Part292 = Instance.new("Part")
  315. SpecialMesh293 = Instance.new("SpecialMesh")
  316. Weld294 = Instance.new("Weld")
  317. Weld295 = Instance.new("Weld")
  318. Weld296 = Instance.new("Weld")
  319. Weld297 = Instance.new("Weld")
  320. Weld298 = Instance.new("Weld")
  321. Weld299 = Instance.new("Weld")
  322. Weld300 = Instance.new("Weld")
  323. Weld301 = Instance.new("Weld")
  324. Weld302 = Instance.new("Weld")
  325. Weld303 = Instance.new("Weld")
  326. Weld304 = Instance.new("Weld")
  327. Weld305 = Instance.new("Weld")
  328. Weld306 = Instance.new("Weld")
  329. Weld307 = Instance.new("Weld")
  330. Weld308 = Instance.new("Weld")
  331. Weld309 = Instance.new("Weld")
  332. Weld310 = Instance.new("Weld")
  333. Weld311 = Instance.new("Weld")
  334. Weld312 = Instance.new("Weld")
  335. Weld313 = Instance.new("Weld")
  336. Weld314 = Instance.new("Weld")
  337. Weld315 = Instance.new("Weld")
  338. Weld316 = Instance.new("Weld")
  339. Weld317 = Instance.new("Weld")
  340. Weld318 = Instance.new("Weld")
  341. Weld319 = Instance.new("Weld")
  342. Weld320 = Instance.new("Weld")
  343. Weld321 = Instance.new("Weld")
  344. Weld322 = Instance.new("Weld")
  345. Weld323 = Instance.new("Weld")
  346. Weld324 = Instance.new("Weld")
  347. Weld325 = Instance.new("Weld")
  348. Weld326 = Instance.new("Weld")
  349. Weld327 = Instance.new("Weld")
  350. Weld328 = Instance.new("Weld")
  351. Weld329 = Instance.new("Weld")
  352. Weld330 = Instance.new("Weld")
  353. Weld331 = Instance.new("Weld")
  354. Weld332 = Instance.new("Weld")
  355. Weld333 = Instance.new("Weld")
  356. Weld334 = Instance.new("Weld")
  357. Weld335 = Instance.new("Weld")
  358. Weld336 = Instance.new("Weld")
  359. Weld337 = Instance.new("Weld")
  360. Weld338 = Instance.new("Weld")
  361. Weld339 = Instance.new("Weld")
  362. Weld340 = Instance.new("Weld")
  363. Weld341 = Instance.new("Weld")
  364. Weld342 = Instance.new("Weld")
  365. Weld343 = Instance.new("Weld")
  366. Weld344 = Instance.new("Weld")
  367. Weld345 = Instance.new("Weld")
  368. Weld346 = Instance.new("Weld")
  369. Weld347 = Instance.new("Weld")
  370. Weld348 = Instance.new("Weld")
  371. Weld349 = Instance.new("Weld")
  372. Weld350 = Instance.new("Weld")
  373. Weld351 = Instance.new("Weld")
  374. Weld352 = Instance.new("Weld")
  375. Weld353 = Instance.new("Weld")
  376. Weld354 = Instance.new("Weld")
  377. Weld355 = Instance.new("Weld")
  378. Weld356 = Instance.new("Weld")
  379. Weld357 = Instance.new("Weld")
  380. Weld358 = Instance.new("Weld")
  381. Weld359 = Instance.new("Weld")
  382. Weld360 = Instance.new("Weld")
  383. Weld361 = Instance.new("Weld")
  384. Weld362 = Instance.new("Weld")
  385. Weld363 = Instance.new("Weld")
  386. Weld364 = Instance.new("Weld")
  387. Weld365 = Instance.new("Weld")
  388. Weld366 = Instance.new("Weld")
  389. Part367 = Instance.new("Part")
  390. Sound368 = Instance.new("Sound")
  391. Sound369 = Instance.new("Sound")
  392. Part370 = Instance.new("Part")
  393. Sound371 = Instance.new("Sound")
  394. Sound372 = Instance.new("Sound")
  395. Model373 = Instance.new("Model")
  396. Part374 = Instance.new("Part")
  397. Decal375 = Instance.new("Decal")
  398. Part376 = Instance.new("Part")
  399. Decal377 = Instance.new("Decal")
  400. Motor378 = Instance.new("Motor")
  401. Motor379 = Instance.new("Motor")
  402. Motor380 = Instance.new("Motor")
  403. Motor381 = Instance.new("Motor")
  404. Motor382 = Instance.new("Motor")
  405. Part383 = Instance.new("Part")
  406. Part384 = Instance.new("Part")
  407. Part385 = Instance.new("Part")
  408. Part386 = Instance.new("Part")
  409. SpecialMesh387 = Instance.new("SpecialMesh")
  410. Decal388 = Instance.new("Decal")
  411. Decal389 = Instance.new("Decal")
  412. Humanoid390 = Instance.new("Humanoid")
  413. Script391 = Instance.new("Script")
  414. Shirt392 = Instance.new("Shirt")
  415. Pants393 = Instance.new("Pants")
  416. Part394 = Instance.new("Part")
  417. Tool0.Name = "Steamer"
  418. Tool0.Parent = mas
  419. Part1.Parent = Tool0
  420. Part1.Material = Enum.Material.SmoothPlastic
  421. Part1.Transparency = 1
  422. Part1.Rotation = Vector3.new(-60, 0, 165)
  423. Part1.Anchored = true
  424. Part1.CanCollide = false
  425. Part1.FormFactor = Enum.FormFactor.Custom
  426. Part1.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  427. 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)
  428. Part1.BottomSurface = Enum.SurfaceType.Smooth
  429. Part1.TopSurface = Enum.SurfaceType.Smooth
  430. Part1.Position = Vector3.new(1435.38062, 48.6328773, -1311.01868)
  431. Part1.Orientation = Vector3.new(-60, 0, 165)
  432. CylinderMesh2.Parent = Part1
  433. CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  434. CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  435. Part3.Parent = Tool0
  436. Part3.Material = Enum.Material.SmoothPlastic
  437. Part3.BrickColor = BrickColor.new("Nougat")
  438. Part3.Transparency = 1
  439. Part3.Rotation = Vector3.new(180, 0, 90)
  440. Part3.Anchored = true
  441. Part3.CanCollide = false
  442. Part3.FormFactor = Enum.FormFactor.Custom
  443. Part3.Size = Vector3.new(0.39847663, 0.339129031, 0.423911244)
  444. Part3.CFrame = CFrame.new(1434.30396, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  445. Part3.BottomSurface = Enum.SurfaceType.Smooth
  446. Part3.TopSurface = Enum.SurfaceType.Smooth
  447. Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
  448. Part3.Position = Vector3.new(1434.30396, 48.923233, -1310.87183)
  449. Part3.Orientation = Vector3.new(0, -180, -90)
  450. Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
  451. CylinderMesh4.Parent = Part3
  452. Part5.Parent = Tool0
  453. Part5.Material = Enum.Material.SmoothPlastic
  454. Part5.BrickColor = BrickColor.new("Dark stone grey")
  455. Part5.Transparency = 1
  456. Part5.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
  457. Part5.Anchored = true
  458. Part5.CanCollide = false
  459. Part5.FormFactor = Enum.FormFactor.Custom
  460. Part5.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  461. 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)
  462. Part5.BottomSurface = Enum.SurfaceType.Smooth
  463. Part5.TopSurface = Enum.SurfaceType.Smooth
  464. Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
  465. Part5.Position = Vector3.new(1435.09131, 49.0662308, -1311.1488)
  466. Part5.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
  467. Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
  468. CylinderMesh6.Parent = Part5
  469. CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  470. CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  471. Part7.Parent = Tool0
  472. Part7.Material = Enum.Material.SmoothPlastic
  473. Part7.BrickColor = BrickColor.new("Black")
  474. Part7.Transparency = 1
  475. Part7.Rotation = Vector3.new(-105, 75, 90)
  476. Part7.Anchored = true
  477. Part7.CanCollide = false
  478. Part7.FormFactor = Enum.FormFactor.Custom
  479. Part7.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  480. 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)
  481. Part7.BottomSurface = Enum.SurfaceType.Smooth
  482. Part7.TopSurface = Enum.SurfaceType.Smooth
  483. Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
  484. Part7.Position = Vector3.new(1434.85657, 49.1090851, -1311.08801)
  485. Part7.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
  486. Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
  487. CylinderMesh8.Parent = Part7
  488. CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  489. CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  490. Part9.Parent = Tool0
  491. Part9.Material = Enum.Material.SmoothPlastic
  492. Part9.BrickColor = BrickColor.new("Dark stone grey")
  493. Part9.Transparency = 1
  494. Part9.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
  495. Part9.Anchored = true
  496. Part9.CanCollide = false
  497. Part9.FormFactor = Enum.FormFactor.Custom
  498. Part9.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  499. 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)
  500. Part9.BottomSurface = Enum.SurfaceType.Smooth
  501. Part9.TopSurface = Enum.SurfaceType.Smooth
  502. Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
  503. Part9.Position = Vector3.new(1435.07556, 49.067543, -1310.66211)
  504. Part9.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
  505. Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
  506. CylinderMesh10.Parent = Part9
  507. CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  508. CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  509. Part11.Parent = Tool0
  510. Part11.Material = Enum.Material.SmoothPlastic
  511. Part11.BrickColor = BrickColor.new("Dark stone grey")
  512. Part11.Transparency = 1
  513. Part11.Rotation = Vector3.new(180, 0, 90)
  514. Part11.Anchored = true
  515. Part11.CanCollide = false
  516. Part11.FormFactor = Enum.FormFactor.Custom
  517. Part11.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  518. Part11.CFrame = CFrame.new(1433.61292, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  519. Part11.BottomSurface = Enum.SurfaceType.Smooth
  520. Part11.TopSurface = Enum.SurfaceType.Smooth
  521. Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
  522. Part11.Position = Vector3.new(1433.61292, 48.9232292, -1310.87183)
  523. Part11.Orientation = Vector3.new(0, -180, -90)
  524. Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
  525. CylinderMesh12.Parent = Part11
  526. CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
  527. CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
  528. Part13.Parent = Tool0
  529. Part13.Material = Enum.Material.SmoothPlastic
  530. Part13.BrickColor = BrickColor.new("Really black")
  531. Part13.Transparency = 1
  532. Part13.Rotation = Vector3.new(0, 90, 0)
  533. Part13.Anchored = true
  534. Part13.CanCollide = false
  535. Part13.FormFactor = Enum.FormFactor.Custom
  536. Part13.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  537. Part13.CFrame = CFrame.new(1436.875, 48.5038071, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  538. Part13.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  539. Part13.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  540. Part13.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  541. Part13.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  542. Part13.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  543. Part13.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  544. Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  545. Part13.Position = Vector3.new(1436.875, 48.5038071, -1310.87622)
  546. Part13.Orientation = Vector3.new(0, 90, 0)
  547. Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  548. SpecialMesh14.Parent = Part13
  549. SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
  550. SpecialMesh14.MeshType = Enum.MeshType.Brick
  551. SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
  552. Part15.Parent = Tool0
  553. Part15.Material = Enum.Material.SmoothPlastic
  554. Part15.BrickColor = BrickColor.new("Brick yellow")
  555. Part15.Transparency = 1
  556. Part15.Rotation = Vector3.new(-60, 0, 135)
  557. Part15.Anchored = true
  558. Part15.CanCollide = false
  559. Part15.FormFactor = Enum.FormFactor.Custom
  560. Part15.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  561. 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)
  562. Part15.BottomSurface = Enum.SurfaceType.Smooth
  563. Part15.TopSurface = Enum.SurfaceType.Smooth
  564. Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
  565. Part15.Position = Vector3.new(1435.32275, 48.6293831, -1311.01672)
  566. Part15.Orientation = Vector3.new(-60, 0, 135)
  567. Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
  568. CylinderMesh16.Parent = Part15
  569. CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
  570. CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
  571. Part17.Name = "AimPart"
  572. Part17.Parent = Tool0
  573. Part17.Material = Enum.Material.SmoothPlastic
  574. Part17.Transparency = 1
  575. Part17.Rotation = Vector3.new(90, 87.8300018, -90)
  576. Part17.Anchored = true
  577. Part17.CanCollide = false
  578. Part17.FormFactor = Enum.FormFactor.Custom
  579. Part17.Size = Vector3.new(0.300000012, 0.200000003, 0.200000003)
  580. Part17.CFrame = CFrame.new(1436.29102, 49.267807, -1310.8728, 0, 0.0378389955, 0.99928385, 0, 0.99928385, -0.0378389955, -1, 0, 0)
  581. Part17.BottomSurface = Enum.SurfaceType.Smooth
  582. Part17.TopSurface = Enum.SurfaceType.Smooth
  583. Part17.Position = Vector3.new(1436.29102, 49.267807, -1310.8728)
  584. Part17.Orientation = Vector3.new(2.16999984, 90, 0)
  585. Part18.Name = "Main"
  586. Part18.Parent = Tool0
  587. Part18.Material = Enum.Material.SmoothPlastic
  588. Part18.BrickColor = BrickColor.new("Really black")
  589. Part18.Transparency = 1
  590. Part18.Rotation = Vector3.new(0, 0, 90)
  591. Part18.Anchored = true
  592. Part18.CanCollide = false
  593. Part18.FormFactor = Enum.FormFactor.Custom
  594. Part18.Size = Vector3.new(0.25, 0.25, 0.25)
  595. Part18.CFrame = CFrame.new(1433.32568, 48.9478035, -1310.8728, 0, -1, 0, 1, 0, -0, 0, 0, 1)
  596. Part18.BottomSurface = Enum.SurfaceType.Smooth
  597. Part18.TopSurface = Enum.SurfaceType.Smooth
  598. Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  599. Part18.Position = Vector3.new(1433.32568, 48.9478035, -1310.8728)
  600. Part18.Orientation = Vector3.new(0, 0, 90)
  601. Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  602. PointLight19.Name = "FlashFX"
  603. PointLight19.Parent = Part18
  604. PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
  605. PointLight19.Enabled = false
  606. PointLight19.Brightness = 10
  607. PointLight19.Range = 6
  608. PointLight19.Shadows = true
  609. PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
  610. BillboardGui20.Name = "FlashGui"
  611. BillboardGui20.Parent = Part18
  612. BillboardGui20.Size = UDim2.new(1.10000002, 0, 1.10000002, 0)
  613. BillboardGui20.Enabled = false
  614. ImageLabel21.Name = "Label"
  615. ImageLabel21.Parent = BillboardGui20
  616. ImageLabel21.Transparency = 1
  617. ImageLabel21.Size = UDim2.new(1, 0, 1, 0)
  618. ImageLabel21.BackgroundTransparency = 1
  619. ImageLabel21.Image = "http://www.roblox.com/asset/?id=192664810"
  620. ImageLabel21.ImageColor3 = Color3.new(0, 1, 0.00392157)
  621. CylinderMesh22.Parent = Part18
  622. CylinderMesh22.Offset = Vector3.new(0, -0.248999998, 0)
  623. CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
  624. CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
  625. Part23.Name = "Handle"
  626. Part23.Parent = Tool0
  627. Part23.Material = Enum.Material.SmoothPlastic
  628. Part23.Transparency = 1
  629. Part23.Rotation = Vector3.new(0, 90, 0)
  630. Part23.Anchored = true
  631. Part23.CanCollide = false
  632. Part23.FormFactor = Enum.FormFactor.Custom
  633. Part23.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  634. Part23.CFrame = CFrame.new(1435.87061, 48.4373131, -1310.86279, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  635. Part23.BottomSurface = Enum.SurfaceType.Smooth
  636. Part23.TopSurface = Enum.SurfaceType.Smooth
  637. Part23.Position = Vector3.new(1435.87061, 48.4373131, -1310.86279)
  638. Part23.Orientation = Vector3.new(0, 90, 0)
  639. Sound24.Name = "FireSound"
  640. Sound24.Parent = Part23
  641. Sound24.Pitch = 0.20000000298023
  642. Sound24.SoundId = "rbxassetid://823426534"
  643. Sound24.Volume = 10
  644. Sound25.Name = "ReloadSound"
  645. Sound25.Parent = Part23
  646. Sound25.Pitch = 0.20000000298023
  647. Sound25.SoundId = "rbxassetid://811242564"
  648. Sound25.Volume = 10
  649. Part26.Parent = Tool0
  650. Part26.Material = Enum.Material.SmoothPlastic
  651. Part26.BrickColor = BrickColor.new("Nougat")
  652. Part26.Transparency = 1
  653. Part26.Rotation = Vector3.new(180, 0, 90)
  654. Part26.Anchored = true
  655. Part26.CanCollide = false
  656. Part26.FormFactor = Enum.FormFactor.Custom
  657. Part26.Size = Vector3.new(0.27978155, 0.822387338, 0.423911244)
  658. Part26.CFrame = CFrame.new(1435.18982, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  659. Part26.BottomSurface = Enum.SurfaceType.Smooth
  660. Part26.TopSurface = Enum.SurfaceType.Smooth
  661. Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
  662. Part26.Position = Vector3.new(1435.18982, 48.9232292, -1310.87183)
  663. Part26.Orientation = Vector3.new(0, -180, -90)
  664. Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
  665. CylinderMesh27.Parent = Part26
  666. Part28.Name = "Smooth Block Model"
  667. Part28.Parent = Tool0
  668. Part28.Material = Enum.Material.SmoothPlastic
  669. Part28.BrickColor = BrickColor.new("Dark stone grey")
  670. Part28.Transparency = 1
  671. Part28.Rotation = Vector3.new(-90, -15, -90)
  672. Part28.Anchored = true
  673. Part28.CanCollide = false
  674. Part28.FormFactor = Enum.FormFactor.Custom
  675. Part28.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  676. Part28.CFrame = CFrame.new(1435.97473, 48.6492271, -1310.87183, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872, 1, 0, 0)
  677. Part28.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  678. Part28.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  679. Part28.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  680. Part28.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  681. Part28.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  682. Part28.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  683. Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
  684. Part28.Position = Vector3.new(1435.97473, 48.6492271, -1310.87183)
  685. Part28.Orientation = Vector3.new(-75, -90, 0)
  686. Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
  687. SpecialMesh29.Parent = Part28
  688. SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
  689. SpecialMesh29.MeshType = Enum.MeshType.Wedge
  690. SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
  691. Part30.Name = "Mag"
  692. Part30.Parent = Tool0
  693. Part30.Material = Enum.Material.SmoothPlastic
  694. Part30.BrickColor = BrickColor.new("Dark stone grey")
  695. Part30.Transparency = 1
  696. Part30.Rotation = Vector3.new(0, 90, 0)
  697. Part30.Anchored = true
  698. Part30.CanCollide = false
  699. Part30.FormFactor = Enum.FormFactor.Custom
  700. Part30.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  701. Part30.CFrame = CFrame.new(1435.36523, 48.273735, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  702. Part30.BottomSurface = Enum.SurfaceType.Smooth
  703. Part30.TopSurface = Enum.SurfaceType.Smooth
  704. Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
  705. Part30.Position = Vector3.new(1435.36523, 48.273735, -1310.88025)
  706. Part30.Orientation = Vector3.new(0, 90, 0)
  707. Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
  708. SpecialMesh31.Parent = Part30
  709. SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
  710. SpecialMesh31.MeshType = Enum.MeshType.Brick
  711. SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
  712. Decal32.Parent = Part30
  713. Decal32.Texture = "http://www.roblox.com/asset/?id=2276240"
  714. Decal32.Face = Enum.NormalId.Right
  715. Decal33.Parent = Part30
  716. Decal33.Texture = "http://www.roblox.com/asset/?id=2276240"
  717. Decal33.Face = Enum.NormalId.Left
  718. Part34.Name = "Mag"
  719. Part34.Parent = Tool0
  720. Part34.Material = Enum.Material.SmoothPlastic
  721. Part34.BrickColor = BrickColor.new("Dark stone grey")
  722. Part34.Transparency = 1
  723. Part34.Rotation = Vector3.new(0, 90, 0)
  724. Part34.Anchored = true
  725. Part34.CanCollide = false
  726. Part34.FormFactor = Enum.FormFactor.Custom
  727. Part34.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  728. Part34.CFrame = CFrame.new(1435.31006, 48.3118896, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  729. Part34.BottomSurface = Enum.SurfaceType.Smooth
  730. Part34.TopSurface = Enum.SurfaceType.Smooth
  731. Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
  732. Part34.Position = Vector3.new(1435.31006, 48.3118896, -1310.88025)
  733. Part34.Orientation = Vector3.new(0, 90, 0)
  734. Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
  735. SpecialMesh35.Parent = Part34
  736. SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  737. SpecialMesh35.MeshType = Enum.MeshType.Brick
  738. SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  739. Part36.Name = "Mag"
  740. Part36.Parent = Tool0
  741. Part36.Material = Enum.Material.SmoothPlastic
  742. Part36.BrickColor = BrickColor.new("Dark stone grey")
  743. Part36.Transparency = 1
  744. Part36.Rotation = Vector3.new(0, 90, 0)
  745. Part36.Anchored = true
  746. Part36.CanCollide = false
  747. Part36.FormFactor = Enum.FormFactor.Custom
  748. Part36.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  749. Part36.CFrame = CFrame.new(1435.42041, 48.3114662, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  750. Part36.BottomSurface = Enum.SurfaceType.Smooth
  751. Part36.TopSurface = Enum.SurfaceType.Smooth
  752. Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
  753. Part36.Position = Vector3.new(1435.42041, 48.3114662, -1310.88025)
  754. Part36.Orientation = Vector3.new(0, 90, 0)
  755. Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
  756. SpecialMesh37.Parent = Part36
  757. SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  758. SpecialMesh37.MeshType = Enum.MeshType.Brick
  759. SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  760. Part38.Name = "Mag"
  761. Part38.Parent = Tool0
  762. Part38.Material = Enum.Material.SmoothPlastic
  763. Part38.BrickColor = BrickColor.new("Cool yellow")
  764. Part38.Transparency = 1
  765. Part38.Rotation = Vector3.new(0, 90, 0)
  766. Part38.Anchored = true
  767. Part38.CanCollide = false
  768. Part38.FormFactor = Enum.FormFactor.Custom
  769. Part38.Size = Vector3.new(1, 1, 1)
  770. Part38.CFrame = CFrame.new(1435.36523, 48.3523445, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  771. Part38.BottomSurface = Enum.SurfaceType.Smooth
  772. Part38.TopSurface = Enum.SurfaceType.Smooth
  773. Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
  774. Part38.Position = Vector3.new(1435.36523, 48.3523445, -1310.88025)
  775. Part38.Orientation = Vector3.new(0, 90, 0)
  776. Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
  777. CylinderMesh39.Parent = Part38
  778. CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
  779. CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
  780. Part40.Name = "Mag"
  781. Part40.Parent = Tool0
  782. Part40.Material = Enum.Material.SmoothPlastic
  783. Part40.BrickColor = BrickColor.new("Dark stone grey")
  784. Part40.Transparency = 1
  785. Part40.Rotation = Vector3.new(0, 90, 0)
  786. Part40.Anchored = true
  787. Part40.CanCollide = false
  788. Part40.FormFactor = Enum.FormFactor.Custom
  789. Part40.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  790. Part40.CFrame = CFrame.new(1435.36523, 48.373539, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  791. Part40.BottomSurface = Enum.SurfaceType.Smooth
  792. Part40.TopSurface = Enum.SurfaceType.Smooth
  793. Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
  794. Part40.Position = Vector3.new(1435.36523, 48.373539, -1310.88025)
  795. Part40.Orientation = Vector3.new(0, 90, 0)
  796. Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
  797. CylinderMesh41.Parent = Part40
  798. CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
  799. CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
  800. Part42.Name = "Mag"
  801. Part42.Parent = Tool0
  802. Part42.Material = Enum.Material.SmoothPlastic
  803. Part42.BrickColor = BrickColor.new("Bright red")
  804. Part42.Transparency = 1
  805. Part42.Rotation = Vector3.new(0, 90, 0)
  806. Part42.Anchored = true
  807. Part42.CanCollide = false
  808. Part42.FormFactor = Enum.FormFactor.Custom
  809. Part42.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  810. Part42.CFrame = CFrame.new(1435.36523, 48.3438797, -1310.88013, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  811. Part42.BottomSurface = Enum.SurfaceType.Smooth
  812. Part42.TopSurface = Enum.SurfaceType.Smooth
  813. Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
  814. Part42.Position = Vector3.new(1435.36523, 48.3438797, -1310.88013)
  815. Part42.Orientation = Vector3.new(0, 90, 0)
  816. Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
  817. CylinderMesh43.Parent = Part42
  818. CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
  819. CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
  820. Part44.Name = "Mag"
  821. Part44.Parent = Tool0
  822. Part44.Material = Enum.Material.SmoothPlastic
  823. Part44.BrickColor = BrickColor.new("Dark stone grey")
  824. Part44.Transparency = 1
  825. Part44.Rotation = Vector3.new(90, 0, -90)
  826. Part44.Anchored = true
  827. Part44.CanCollide = false
  828. Part44.FormFactor = Enum.FormFactor.Custom
  829. Part44.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  830. Part44.CFrame = CFrame.new(1435.36548, 48.474556, -1310.88025, 0, 1, 0, 0, 0, -1, -1, 0, 0)
  831. Part44.BottomSurface = Enum.SurfaceType.Smooth
  832. Part44.TopSurface = Enum.SurfaceType.Smooth
  833. Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
  834. Part44.Position = Vector3.new(1435.36548, 48.474556, -1310.88025)
  835. Part44.Orientation = Vector3.new(90, 90, 0)
  836. Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
  837. SpecialMesh45.Parent = Part44
  838. SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
  839. SpecialMesh45.MeshType = Enum.MeshType.Sphere
  840. SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
  841. Part46.Name = "Mag"
  842. Part46.Parent = Tool0
  843. Part46.Material = Enum.Material.SmoothPlastic
  844. Part46.BrickColor = BrickColor.new("Dark stone grey")
  845. Part46.Transparency = 1
  846. Part46.Rotation = Vector3.new(0, 90, 0)
  847. Part46.Anchored = true
  848. Part46.CanCollide = false
  849. Part46.FormFactor = Enum.FormFactor.Custom
  850. Part46.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  851. Part46.CFrame = CFrame.new(1435.36523, 48.4667969, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  852. Part46.BottomSurface = Enum.SurfaceType.Smooth
  853. Part46.TopSurface = Enum.SurfaceType.Smooth
  854. Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
  855. Part46.Position = Vector3.new(1435.36523, 48.4667969, -1310.88025)
  856. Part46.Orientation = Vector3.new(0, 90, 0)
  857. Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
  858. CylinderMesh47.Parent = Part46
  859. CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
  860. CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
  861. Part48.Name = "Mag"
  862. Part48.Parent = Tool0
  863. Part48.Material = Enum.Material.SmoothPlastic
  864. Part48.BrickColor = BrickColor.new("Dark stone grey")
  865. Part48.Transparency = 1
  866. Part48.Rotation = Vector3.new(0, 90, 0)
  867. Part48.Anchored = true
  868. Part48.CanCollide = false
  869. Part48.FormFactor = Enum.FormFactor.Custom
  870. Part48.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  871. Part48.CFrame = CFrame.new(1435.36108, 48.4771957, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  872. Part48.BottomSurface = Enum.SurfaceType.Smooth
  873. Part48.TopSurface = Enum.SurfaceType.Smooth
  874. Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
  875. Part48.Position = Vector3.new(1435.36108, 48.4771957, -1310.87622)
  876. Part48.Orientation = Vector3.new(0, 90, 0)
  877. Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
  878. SpecialMesh49.Parent = Part48
  879. SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
  880. SpecialMesh49.MeshType = Enum.MeshType.Brick
  881. SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
  882. Decal50.Parent = Part48
  883. Decal50.Texture = "http://www.roblox.com/asset/?id=2276263"
  884. Decal50.Face = Enum.NormalId.Right
  885. Decal51.Parent = Part48
  886. Decal51.Texture = "http://www.roblox.com/asset/?id=2276263"
  887. Decal51.Face = Enum.NormalId.Left
  888. Part52.Parent = Tool0
  889. Part52.Material = Enum.Material.SmoothPlastic
  890. Part52.BrickColor = BrickColor.new("Dark stone grey")
  891. Part52.Transparency = 1
  892. Part52.Rotation = Vector3.new(-90, 0, 90)
  893. Part52.Anchored = true
  894. Part52.CanCollide = false
  895. Part52.FormFactor = Enum.FormFactor.Custom
  896. Part52.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  897. Part52.CFrame = CFrame.new(1435.20679, 48.6519432, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  898. Part52.BottomSurface = Enum.SurfaceType.Smooth
  899. Part52.TopSurface = Enum.SurfaceType.Smooth
  900. Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
  901. Part52.Position = Vector3.new(1435.20679, 48.6519432, -1310.87183)
  902. Part52.Orientation = Vector3.new(-90, 90, 0)
  903. Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
  904. SpecialMesh53.Parent = Part52
  905. SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
  906. SpecialMesh53.MeshType = Enum.MeshType.Brick
  907. SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
  908. Part54.Parent = Tool0
  909. Part54.Material = Enum.Material.SmoothPlastic
  910. Part54.BrickColor = BrickColor.new("Dark stone grey")
  911. Part54.Transparency = 1
  912. Part54.Rotation = Vector3.new(0, 90, 0)
  913. Part54.Anchored = true
  914. Part54.CanCollide = false
  915. Part54.FormFactor = Enum.FormFactor.Custom
  916. Part54.Size = Vector3.new(1, 1, 1)
  917. Part54.CFrame = CFrame.new(1436.06531, 48.6182861, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  918. Part54.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  919. Part54.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  920. Part54.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  921. Part54.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  922. Part54.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  923. Part54.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  924. Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
  925. Part54.Position = Vector3.new(1436.06531, 48.6182861, -1310.87183)
  926. Part54.Orientation = Vector3.new(0, 90, 0)
  927. Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
  928. SpecialMesh55.Parent = Part54
  929. SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
  930. SpecialMesh55.MeshType = Enum.MeshType.Brick
  931. SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
  932. Part56.Parent = Tool0
  933. Part56.Material = Enum.Material.SmoothPlastic
  934. Part56.BrickColor = BrickColor.new("Dark stone grey")
  935. Part56.Transparency = 1
  936. Part56.Rotation = Vector3.new(180, 0, 90)
  937. Part56.Anchored = true
  938. Part56.CanCollide = false
  939. Part56.FormFactor = Enum.FormFactor.Custom
  940. Part56.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  941. Part56.CFrame = CFrame.new(1433.85034, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  942. Part56.BottomSurface = Enum.SurfaceType.Smooth
  943. Part56.TopSurface = Enum.SurfaceType.Smooth
  944. Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
  945. Part56.Position = Vector3.new(1433.85034, 48.923233, -1310.87183)
  946. Part56.Orientation = Vector3.new(0, -180, -90)
  947. Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
  948. CylinderMesh57.Parent = Part56
  949. CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  950. CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  951. Part58.Parent = Tool0
  952. Part58.Material = Enum.Material.SmoothPlastic
  953. Part58.BrickColor = BrickColor.new("Dark stone grey")
  954. Part58.Transparency = 1
  955. Part58.Rotation = Vector3.new(180, 0, 90)
  956. Part58.Anchored = true
  957. Part58.CanCollide = false
  958. Part58.FormFactor = Enum.FormFactor.Custom
  959. Part58.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  960. Part58.CFrame = CFrame.new(1435.21533, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  961. Part58.BottomSurface = Enum.SurfaceType.Smooth
  962. Part58.TopSurface = Enum.SurfaceType.Smooth
  963. Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
  964. Part58.Position = Vector3.new(1435.21533, 48.9020348, -1310.87183)
  965. Part58.Orientation = Vector3.new(0, -180, -90)
  966. Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
  967. CylinderMesh59.Parent = Part58
  968. CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  969. CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  970. Part60.Parent = Tool0
  971. Part60.Material = Enum.Material.SmoothPlastic
  972. Part60.BrickColor = BrickColor.new("Dark stone grey")
  973. Part60.Transparency = 1
  974. Part60.Rotation = Vector3.new(90, 75, -90)
  975. Part60.Anchored = true
  976. Part60.CanCollide = false
  977. Part60.FormFactor = Enum.FormFactor.Custom
  978. Part60.Size = Vector3.new(1, 1, 1)
  979. Part60.CFrame = CFrame.new(1436.37439, 48.852356, -1310.87183, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
  980. Part60.BottomSurface = Enum.SurfaceType.Smooth
  981. Part60.TopSurface = Enum.SurfaceType.Smooth
  982. Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
  983. Part60.Position = Vector3.new(1436.37439, 48.852356, -1310.87183)
  984. Part60.Orientation = Vector3.new(15, 90, 0)
  985. Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
  986. SpecialMesh61.Parent = Part60
  987. SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
  988. SpecialMesh61.MeshType = Enum.MeshType.Brick
  989. SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
  990. Part62.Parent = Tool0
  991. Part62.Material = Enum.Material.SmoothPlastic
  992. Part62.BrickColor = BrickColor.new("Medium green")
  993. Part62.Reflectance = 0.40000000596046
  994. Part62.Transparency = 1
  995. Part62.Rotation = Vector3.new(-90, 0, -90)
  996. Part62.Anchored = true
  997. Part62.CanCollide = false
  998. Part62.FormFactor = Enum.FormFactor.Custom
  999. Part62.Size = Vector3.new(1, 1, 1)
  1000. Part62.CFrame = CFrame.new(1436.0885, 48.923233, -1310.96509, 0, 1, 0, 0, 0, 1, 1, 0, 0)
  1001. Part62.BottomSurface = Enum.SurfaceType.Smooth
  1002. Part62.TopSurface = Enum.SurfaceType.Smooth
  1003. Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1004. Part62.Position = Vector3.new(1436.0885, 48.923233, -1310.96509)
  1005. Part62.Orientation = Vector3.new(-90, -90, 0)
  1006. Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1007. CylinderMesh63.Parent = Part62
  1008. CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
  1009. CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
  1010. Part64.Parent = Tool0
  1011. Part64.Material = Enum.Material.SmoothPlastic
  1012. Part64.BrickColor = BrickColor.new("Dark stone grey")
  1013. Part64.Transparency = 1
  1014. Part64.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
  1015. Part64.Anchored = true
  1016. Part64.CanCollide = false
  1017. Part64.FormFactor = Enum.FormFactor.Custom
  1018. Part64.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1019. 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)
  1020. Part64.BottomSurface = Enum.SurfaceType.Smooth
  1021. Part64.TopSurface = Enum.SurfaceType.Smooth
  1022. Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1023. Part64.Position = Vector3.new(1434.84216, 49.1045074, -1310.66235)
  1024. Part64.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
  1025. Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1026. CylinderMesh65.Parent = Part64
  1027. CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1028. CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1029. Part66.Parent = Tool0
  1030. Part66.Material = Enum.Material.SmoothPlastic
  1031. Part66.BrickColor = BrickColor.new("Dark stone grey")
  1032. Part66.Transparency = 1
  1033. Part66.Rotation = Vector3.new(-90, 0, 90)
  1034. Part66.Anchored = true
  1035. Part66.CanCollide = false
  1036. Part66.FormFactor = Enum.FormFactor.Custom
  1037. Part66.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1038. Part66.CFrame = CFrame.new(1435.35938, 48.60532, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1039. Part66.BottomSurface = Enum.SurfaceType.Smooth
  1040. Part66.TopSurface = Enum.SurfaceType.Smooth
  1041. Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1042. Part66.Position = Vector3.new(1435.35938, 48.60532, -1310.87183)
  1043. Part66.Orientation = Vector3.new(-90, 90, 0)
  1044. Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1045. SpecialMesh67.Parent = Part66
  1046. SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
  1047. SpecialMesh67.MeshType = Enum.MeshType.Brick
  1048. SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
  1049. Part68.Parent = Tool0
  1050. Part68.Material = Enum.Material.SmoothPlastic
  1051. Part68.BrickColor = BrickColor.new("Dark stone grey")
  1052. Part68.Transparency = 1
  1053. Part68.Rotation = Vector3.new(0, 90, 0)
  1054. Part68.Anchored = true
  1055. Part68.CanCollide = false
  1056. Part68.FormFactor = Enum.FormFactor.Custom
  1057. Part68.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1058. Part68.CFrame = CFrame.new(1436.875, 48.6733971, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1059. Part68.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1060. Part68.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1061. Part68.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1062. Part68.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1063. Part68.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1064. Part68.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1065. Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1066. Part68.Position = Vector3.new(1436.875, 48.6733971, -1310.87622)
  1067. Part68.Orientation = Vector3.new(0, 90, 0)
  1068. Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1069. SpecialMesh69.Parent = Part68
  1070. SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1071. SpecialMesh69.MeshType = Enum.MeshType.Brick
  1072. SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1073. Part70.Parent = Tool0
  1074. Part70.Material = Enum.Material.SmoothPlastic
  1075. Part70.BrickColor = BrickColor.new("Black")
  1076. Part70.Transparency = 1
  1077. Part70.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
  1078. Part70.Anchored = true
  1079. Part70.CanCollide = false
  1080. Part70.FormFactor = Enum.FormFactor.Custom
  1081. Part70.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1082. 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)
  1083. Part70.BottomSurface = Enum.SurfaceType.Smooth
  1084. Part70.TopSurface = Enum.SurfaceType.Smooth
  1085. Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1086. Part70.Position = Vector3.new(1435.48877, 48.9965515, -1310.62427)
  1087. Part70.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
  1088. Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1089. CylinderMesh71.Parent = Part70
  1090. CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  1091. CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  1092. Part72.Parent = Tool0
  1093. Part72.Material = Enum.Material.SmoothPlastic
  1094. Part72.BrickColor = BrickColor.new("Black")
  1095. Part72.Transparency = 1
  1096. Part72.Rotation = Vector3.new(90, 0, 90)
  1097. Part72.Anchored = true
  1098. Part72.CanCollide = false
  1099. Part72.FormFactor = Enum.FormFactor.Custom
  1100. Part72.Size = Vector3.new(1, 1, 1)
  1101. Part72.CFrame = CFrame.new(1435.60107, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, -1, 1, 0, 0)
  1102. Part72.BottomSurface = Enum.SurfaceType.Smooth
  1103. Part72.TopSurface = Enum.SurfaceType.Smooth
  1104. Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1105. Part72.Position = Vector3.new(1435.60107, 48.9062729, -1310.87183)
  1106. Part72.Orientation = Vector3.new(90, -90, 0)
  1107. Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1108. SpecialMesh73.Parent = Part72
  1109. SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
  1110. SpecialMesh73.MeshType = Enum.MeshType.Sphere
  1111. SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
  1112. Part74.Parent = Tool0
  1113. Part74.Material = Enum.Material.SmoothPlastic
  1114. Part74.Transparency = 1
  1115. Part74.Rotation = Vector3.new(-90, -30, -90)
  1116. Part74.Anchored = true
  1117. Part74.CanCollide = false
  1118. Part74.FormFactor = Enum.FormFactor.Custom
  1119. Part74.Size = Vector3.new(1, 1, 1)
  1120. Part74.CFrame = CFrame.new(1436.73303, 48.074337, -1310.87183, 0, 0.866025388, -0.500000238, 0, 0.500000238, 0.866025388, 1, 0, 0)
  1121. Part74.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1122. Part74.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1123. Part74.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1124. Part74.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1125. Part74.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1126. Part74.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1127. Part74.Position = Vector3.new(1436.73303, 48.074337, -1310.87183)
  1128. Part74.Orientation = Vector3.new(-60, -90, 0)
  1129. CylinderMesh75.Parent = Part74
  1130. CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
  1131. CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
  1132. Part76.Parent = Tool0
  1133. Part76.Material = Enum.Material.SmoothPlastic
  1134. Part76.BrickColor = BrickColor.new("Brick yellow")
  1135. Part76.Transparency = 1
  1136. Part76.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
  1137. Part76.Anchored = true
  1138. Part76.CanCollide = false
  1139. Part76.FormFactor = Enum.FormFactor.Custom
  1140. Part76.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1141. 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)
  1142. Part76.BottomSurface = Enum.SurfaceType.Smooth
  1143. Part76.TopSurface = Enum.SurfaceType.Smooth
  1144. Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1145. Part76.Position = Vector3.new(1435.48877, 48.7422256, -1311.07788)
  1146. Part76.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
  1147. Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1148. CylinderMesh77.Parent = Part76
  1149. CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
  1150. CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
  1151. Part78.Parent = Tool0
  1152. Part78.Material = Enum.Material.SmoothPlastic
  1153. Part78.BrickColor = BrickColor.new("Dark stone grey")
  1154. Part78.Transparency = 1
  1155. Part78.Rotation = Vector3.new(180, 0, 90)
  1156. Part78.Anchored = true
  1157. Part78.CanCollide = false
  1158. Part78.FormFactor = Enum.FormFactor.Custom
  1159. Part78.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  1160. Part78.CFrame = CFrame.new(1434.98645, 48.9189987, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1161. Part78.BottomSurface = Enum.SurfaceType.Smooth
  1162. Part78.TopSurface = Enum.SurfaceType.Smooth
  1163. Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1164. Part78.Position = Vector3.new(1434.98645, 48.9189987, -1310.87183)
  1165. Part78.Orientation = Vector3.new(0, -180, -90)
  1166. Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1167. CylinderMesh79.Parent = Part78
  1168. CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
  1169. CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
  1170. Part80.Parent = Tool0
  1171. Part80.Material = Enum.Material.SmoothPlastic
  1172. Part80.BrickColor = BrickColor.new("Brick yellow")
  1173. Part80.Transparency = 1
  1174. Part80.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
  1175. Part80.Anchored = true
  1176. Part80.CanCollide = false
  1177. Part80.FormFactor = Enum.FormFactor.Custom
  1178. Part80.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1179. 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)
  1180. Part80.BottomSurface = Enum.SurfaceType.Smooth
  1181. Part80.TopSurface = Enum.SurfaceType.Smooth
  1182. Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1183. Part80.Position = Vector3.new(1435.44849, 48.841629, -1311.05676)
  1184. Part80.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
  1185. Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1186. CylinderMesh81.Parent = Part80
  1187. CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
  1188. CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
  1189. Part82.Parent = Tool0
  1190. Part82.Material = Enum.Material.SmoothPlastic
  1191. Part82.BrickColor = BrickColor.new("Dark stone grey")
  1192. Part82.Transparency = 1
  1193. Part82.Rotation = Vector3.new(-90, 75, 90)
  1194. Part82.Anchored = true
  1195. Part82.CanCollide = false
  1196. Part82.FormFactor = Enum.FormFactor.Custom
  1197. Part82.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1198. Part82.CFrame = CFrame.new(1435.99597, 48.211853, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  1199. Part82.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1200. Part82.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1201. Part82.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1202. Part82.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1203. Part82.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1204. Part82.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1205. Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1206. Part82.Position = Vector3.new(1435.99597, 48.211853, -1310.87183)
  1207. Part82.Orientation = Vector3.new(-15, 90, 0)
  1208. Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1209. CylinderMesh83.Parent = Part82
  1210. CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
  1211. CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
  1212. Part84.Parent = Tool0
  1213. Part84.Material = Enum.Material.SmoothPlastic
  1214. Part84.BrickColor = BrickColor.new("Dark stone grey")
  1215. Part84.Transparency = 1
  1216. Part84.Rotation = Vector3.new(180, 0, 90)
  1217. Part84.Anchored = true
  1218. Part84.CanCollide = false
  1219. Part84.FormFactor = Enum.FormFactor.Custom
  1220. Part84.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1221. Part84.CFrame = CFrame.new(1433.5498, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1222. Part84.BottomSurface = Enum.SurfaceType.Smooth
  1223. Part84.TopSurface = Enum.SurfaceType.Smooth
  1224. Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1225. Part84.Position = Vector3.new(1433.5498, 48.9232292, -1310.87183)
  1226. Part84.Orientation = Vector3.new(0, -180, -90)
  1227. Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1228. CylinderMesh85.Parent = Part84
  1229. CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
  1230. CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
  1231. Part86.Parent = Tool0
  1232. Part86.Material = Enum.Material.SmoothPlastic
  1233. Part86.BrickColor = BrickColor.new("Dark stone grey")
  1234. Part86.Transparency = 1
  1235. Part86.Rotation = Vector3.new(90, 90, 0)
  1236. Part86.Anchored = true
  1237. Part86.CanCollide = false
  1238. Part86.FormFactor = Enum.FormFactor.Custom
  1239. Part86.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1240. Part86.CFrame = CFrame.new(1434.89648, 48.9697227, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1241. Part86.BottomSurface = Enum.SurfaceType.Smooth
  1242. Part86.TopSurface = Enum.SurfaceType.Smooth
  1243. Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1244. Part86.Position = Vector3.new(1434.89648, 48.9697227, -1310.87622)
  1245. Part86.Orientation = Vector3.new(0, 90, 90)
  1246. Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1247. CylinderMesh87.Parent = Part86
  1248. CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1249. CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1250. Decal88.Parent = Part86
  1251. Decal88.Texture = "http://www.roblox.com/asset/?id=78474663"
  1252. Decal88.Face = Enum.NormalId.Bottom
  1253. Decal89.Parent = Part86
  1254. Decal89.Texture = "http://www.roblox.com/asset/?id=78474663"
  1255. Decal89.Face = Enum.NormalId.Top
  1256. Part90.Parent = Tool0
  1257. Part90.Material = Enum.Material.SmoothPlastic
  1258. Part90.BrickColor = BrickColor.new("Dark stone grey")
  1259. Part90.Transparency = 1
  1260. Part90.Rotation = Vector3.new(-90, 60, 90)
  1261. Part90.Anchored = true
  1262. Part90.CanCollide = false
  1263. Part90.FormFactor = Enum.FormFactor.Custom
  1264. Part90.Size = Vector3.new(1, 1, 1)
  1265. Part90.CFrame = CFrame.new(1436.48157, 48.7061806, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
  1266. Part90.BottomSurface = Enum.SurfaceType.Smooth
  1267. Part90.TopSurface = Enum.SurfaceType.Smooth
  1268. Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1269. Part90.Position = Vector3.new(1436.48157, 48.7061806, -1310.87183)
  1270. Part90.Orientation = Vector3.new(-30, 90, 0)
  1271. Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1272. SpecialMesh91.Parent = Part90
  1273. SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
  1274. SpecialMesh91.MeshType = Enum.MeshType.Brick
  1275. SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
  1276. Part92.Parent = Tool0
  1277. Part92.Material = Enum.Material.SmoothPlastic
  1278. Part92.BrickColor = BrickColor.new("Black")
  1279. Part92.Transparency = 1
  1280. Part92.Rotation = Vector3.new(-90, 0, 90)
  1281. Part92.Anchored = true
  1282. Part92.CanCollide = false
  1283. Part92.FormFactor = Enum.FormFactor.Custom
  1284. Part92.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1285. Part92.CFrame = CFrame.new(1434.32935, 48.9232292, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1286. Part92.BottomSurface = Enum.SurfaceType.Smooth
  1287. Part92.TopSurface = Enum.SurfaceType.Smooth
  1288. Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1289. Part92.Position = Vector3.new(1434.32935, 48.9232292, -1310.87183)
  1290. Part92.Orientation = Vector3.new(-90, 90, 0)
  1291. Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1292. SpecialMesh93.Parent = Part92
  1293. SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
  1294. SpecialMesh93.MeshType = Enum.MeshType.Brick
  1295. SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
  1296. Part94.Parent = Tool0
  1297. Part94.Material = Enum.Material.SmoothPlastic
  1298. Part94.BrickColor = BrickColor.new("Black")
  1299. Part94.Transparency = 1
  1300. Part94.Rotation = Vector3.new(180, 0, 90)
  1301. Part94.Anchored = true
  1302. Part94.CanCollide = false
  1303. Part94.FormFactor = Enum.FormFactor.Custom
  1304. Part94.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1305. Part94.CFrame = CFrame.new(1434.4989, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1306. Part94.BottomSurface = Enum.SurfaceType.Smooth
  1307. Part94.TopSurface = Enum.SurfaceType.Smooth
  1308. Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1309. Part94.Position = Vector3.new(1434.4989, 48.9062729, -1310.87183)
  1310. Part94.Orientation = Vector3.new(0, -180, -90)
  1311. Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1312. CylinderMesh95.Parent = Part94
  1313. CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
  1314. CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
  1315. Part96.Parent = Tool0
  1316. Part96.Material = Enum.Material.SmoothPlastic
  1317. Part96.BrickColor = BrickColor.new("Dark stone grey")
  1318. Part96.Transparency = 1
  1319. Part96.Rotation = Vector3.new(0, 90, 0)
  1320. Part96.Anchored = true
  1321. Part96.CanCollide = false
  1322. Part96.FormFactor = Enum.FormFactor.Custom
  1323. Part96.Size = Vector3.new(1, 1, 1)
  1324. Part96.CFrame = CFrame.new(1436.85803, 48.7793694, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1325. Part96.BottomSurface = Enum.SurfaceType.Smooth
  1326. Part96.TopSurface = Enum.SurfaceType.Smooth
  1327. Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1328. Part96.Position = Vector3.new(1436.85803, 48.7793694, -1310.87183)
  1329. Part96.Orientation = Vector3.new(0, 90, 0)
  1330. Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1331. SpecialMesh97.Parent = Part96
  1332. SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
  1333. SpecialMesh97.MeshType = Enum.MeshType.Brick
  1334. SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
  1335. Part98.Parent = Tool0
  1336. Part98.Material = Enum.Material.SmoothPlastic
  1337. Part98.BrickColor = BrickColor.new("Dark stone grey")
  1338. Part98.Transparency = 1
  1339. Part98.Rotation = Vector3.new(-90, 75, 90)
  1340. Part98.Anchored = true
  1341. Part98.CanCollide = false
  1342. Part98.FormFactor = Enum.FormFactor.Custom
  1343. Part98.Size = Vector3.new(1, 1, 1)
  1344. Part98.CFrame = CFrame.new(1437.1134, 48.5151291, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  1345. Part98.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1346. Part98.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1347. Part98.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1348. Part98.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1349. Part98.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1350. Part98.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1351. Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1352. Part98.Position = Vector3.new(1437.1134, 48.5151291, -1310.87183)
  1353. Part98.Orientation = Vector3.new(-15, 90, 0)
  1354. Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1355. SpecialMesh99.Parent = Part98
  1356. SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
  1357. SpecialMesh99.MeshType = Enum.MeshType.Brick
  1358. SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
  1359. Part100.Parent = Tool0
  1360. Part100.Material = Enum.Material.SmoothPlastic
  1361. Part100.BrickColor = BrickColor.new("Medium green")
  1362. Part100.Reflectance = 0.40000000596046
  1363. Part100.Transparency = 1
  1364. Part100.Rotation = Vector3.new(-90, 30, -90)
  1365. Part100.Anchored = true
  1366. Part100.CanCollide = false
  1367. Part100.FormFactor = Enum.FormFactor.Custom
  1368. Part100.Size = Vector3.new(1, 1, 1)
  1369. Part100.CFrame = CFrame.new(1436.54248, 48.8766403, -1310.96448, 0, 0.866027117, 0.499997079, 0, -0.49999705, 0.866027176, 1, 0, 0)
  1370. Part100.BottomSurface = Enum.SurfaceType.Smooth
  1371. Part100.TopSurface = Enum.SurfaceType.Smooth
  1372. Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1373. Part100.Position = Vector3.new(1436.54248, 48.8766403, -1310.96448)
  1374. Part100.Orientation = Vector3.new(-60, 90, 180)
  1375. Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1376. CylinderMesh101.Parent = Part100
  1377. CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
  1378. CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
  1379. Part102.Parent = Tool0
  1380. Part102.Material = Enum.Material.SmoothPlastic
  1381. Part102.BrickColor = BrickColor.new("Dark stone grey")
  1382. Part102.Transparency = 1
  1383. Part102.Rotation = Vector3.new(-90, -90, 0)
  1384. Part102.Anchored = true
  1385. Part102.CanCollide = false
  1386. Part102.FormFactor = Enum.FormFactor.Custom
  1387. Part102.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1388. Part102.CFrame = CFrame.new(1435.24072, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1389. Part102.BottomSurface = Enum.SurfaceType.Smooth
  1390. Part102.TopSurface = Enum.SurfaceType.Smooth
  1391. Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1392. Part102.Position = Vector3.new(1435.24072, 48.6010742, -1310.87183)
  1393. Part102.Orientation = Vector3.new(0, -90, 90)
  1394. Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1395. CylinderMesh103.Parent = Part102
  1396. CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1397. CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1398. Decal104.Parent = Part102
  1399. Decal104.Texture = "http://www.roblox.com/asset/?id=78474663"
  1400. Decal104.Face = Enum.NormalId.Bottom
  1401. Part105.Parent = Tool0
  1402. Part105.Material = Enum.Material.SmoothPlastic
  1403. Part105.BrickColor = BrickColor.new("Black")
  1404. Part105.Transparency = 1
  1405. Part105.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
  1406. Part105.Anchored = true
  1407. Part105.CanCollide = false
  1408. Part105.FormFactor = Enum.FormFactor.Custom
  1409. Part105.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1410. 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)
  1411. Part105.BottomSurface = Enum.SurfaceType.Smooth
  1412. Part105.TopSurface = Enum.SurfaceType.Smooth
  1413. Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1414. Part105.Position = Vector3.new(1434.84009, 49.1090317, -1310.6604)
  1415. Part105.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
  1416. Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1417. CylinderMesh106.Parent = Part105
  1418. CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  1419. CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  1420. Part107.Parent = Tool0
  1421. Part107.Material = Enum.Material.SmoothPlastic
  1422. Part107.BrickColor = BrickColor.new("Dark stone grey")
  1423. Part107.Transparency = 1
  1424. Part107.Rotation = Vector3.new(180, 0, 90)
  1425. Part107.Anchored = true
  1426. Part107.CanCollide = false
  1427. Part107.FormFactor = Enum.FormFactor.Custom
  1428. Part107.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  1429. Part107.CFrame = CFrame.new(1435.56287, 48.897789, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1430. Part107.BottomSurface = Enum.SurfaceType.Smooth
  1431. Part107.TopSurface = Enum.SurfaceType.Smooth
  1432. Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1433. Part107.Position = Vector3.new(1435.56287, 48.897789, -1310.87183)
  1434. Part107.Orientation = Vector3.new(0, -180, -90)
  1435. Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1436. CylinderMesh108.Parent = Part107
  1437. CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1438. CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1439. Part109.Parent = Tool0
  1440. Part109.Material = Enum.Material.SmoothPlastic
  1441. Part109.BrickColor = BrickColor.new("Black")
  1442. Part109.Transparency = 1
  1443. Part109.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
  1444. Part109.Anchored = true
  1445. Part109.CanCollide = false
  1446. Part109.FormFactor = Enum.FormFactor.Custom
  1447. Part109.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1448. 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)
  1449. Part109.BottomSurface = Enum.SurfaceType.Smooth
  1450. Part109.TopSurface = Enum.SurfaceType.Smooth
  1451. Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1452. Part109.Position = Vector3.new(1435.08655, 49.0373726, -1311.1228)
  1453. Part109.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
  1454. Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1455. CylinderMesh110.Parent = Part109
  1456. CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
  1457. CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
  1458. Part111.Parent = Tool0
  1459. Part111.Material = Enum.Material.SmoothPlastic
  1460. Part111.BrickColor = BrickColor.new("Nougat")
  1461. Part111.Transparency = 1
  1462. Part111.Rotation = Vector3.new(180, 0, 90)
  1463. Part111.Anchored = true
  1464. Part111.CanCollide = false
  1465. Part111.FormFactor = Enum.FormFactor.Custom
  1466. Part111.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1467. Part111.CFrame = CFrame.new(1435.56287, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1468. Part111.BottomSurface = Enum.SurfaceType.Smooth
  1469. Part111.TopSurface = Enum.SurfaceType.Smooth
  1470. Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
  1471. Part111.Position = Vector3.new(1435.56287, 48.9020348, -1310.87183)
  1472. Part111.Orientation = Vector3.new(0, -180, -90)
  1473. Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
  1474. CylinderMesh112.Parent = Part111
  1475. CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
  1476. CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
  1477. Part113.Parent = Tool0
  1478. Part113.Material = Enum.Material.SmoothPlastic
  1479. Part113.BrickColor = BrickColor.new("Brick yellow")
  1480. Part113.Transparency = 1
  1481. Part113.Rotation = Vector3.new(-60, 0, 165)
  1482. Part113.Anchored = true
  1483. Part113.CanCollide = false
  1484. Part113.FormFactor = Enum.FormFactor.Custom
  1485. Part113.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1486. 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)
  1487. Part113.BottomSurface = Enum.SurfaceType.Smooth
  1488. Part113.TopSurface = Enum.SurfaceType.Smooth
  1489. Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1490. Part113.Position = Vector3.new(1435.49927, 48.6328773, -1311.01025)
  1491. Part113.Orientation = Vector3.new(-60, 0, 165)
  1492. Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1493. CylinderMesh114.Parent = Part113
  1494. CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  1495. CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  1496. Part115.Parent = Tool0
  1497. Part115.Material = Enum.Material.SmoothPlastic
  1498. Part115.BrickColor = BrickColor.new("Dark stone grey")
  1499. Part115.Transparency = 1
  1500. Part115.Rotation = Vector3.new(90, 90, 0)
  1501. Part115.Anchored = true
  1502. Part115.CanCollide = false
  1503. Part115.FormFactor = Enum.FormFactor.Custom
  1504. Part115.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1505. Part115.CFrame = CFrame.new(1435.43909, 48.8383217, -1310.84216, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1506. Part115.BottomSurface = Enum.SurfaceType.Smooth
  1507. Part115.TopSurface = Enum.SurfaceType.Smooth
  1508. Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1509. Part115.Position = Vector3.new(1435.43909, 48.8383217, -1310.84216)
  1510. Part115.Orientation = Vector3.new(0, 90, 90)
  1511. Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1512. CylinderMesh116.Parent = Part115
  1513. CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
  1514. CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
  1515. Decal117.Parent = Part115
  1516. Decal117.Texture = "http://www.roblox.com/asset/?id=78474663"
  1517. Decal117.Face = Enum.NormalId.Top
  1518. Part118.Parent = Tool0
  1519. Part118.Material = Enum.Material.SmoothPlastic
  1520. Part118.BrickColor = BrickColor.new("Dark stone grey")
  1521. Part118.Transparency = 1
  1522. Part118.Rotation = Vector3.new(-90, -90, 0)
  1523. Part118.Anchored = true
  1524. Part118.CanCollide = false
  1525. Part118.FormFactor = Enum.FormFactor.Custom
  1526. Part118.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1527. Part118.CFrame = CFrame.new(1435.35938, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1528. Part118.BottomSurface = Enum.SurfaceType.Smooth
  1529. Part118.TopSurface = Enum.SurfaceType.Smooth
  1530. Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1531. Part118.Position = Vector3.new(1435.35938, 48.6010742, -1310.87183)
  1532. Part118.Orientation = Vector3.new(0, -90, 90)
  1533. Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1534. CylinderMesh119.Parent = Part118
  1535. CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1536. CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1537. Decal120.Parent = Part118
  1538. Decal120.Texture = "http://www.roblox.com/asset/?id=78474663"
  1539. Decal120.Face = Enum.NormalId.Bottom
  1540. Part121.Parent = Tool0
  1541. Part121.Material = Enum.Material.SmoothPlastic
  1542. Part121.BrickColor = BrickColor.new("Dark stone grey")
  1543. Part121.Transparency = 1
  1544. Part121.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
  1545. Part121.Anchored = true
  1546. Part121.CanCollide = false
  1547. Part121.FormFactor = Enum.FormFactor.Custom
  1548. Part121.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1549. 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)
  1550. Part121.BottomSurface = Enum.SurfaceType.Smooth
  1551. Part121.TopSurface = Enum.SurfaceType.Smooth
  1552. Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1553. Part121.Position = Vector3.new(1435.49548, 49.0076942, -1310.61987)
  1554. Part121.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
  1555. Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1556. CylinderMesh122.Parent = Part121
  1557. CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1558. CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1559. Part123.Parent = Tool0
  1560. Part123.Material = Enum.Material.SmoothPlastic
  1561. Part123.BrickColor = BrickColor.new("Dark stone grey")
  1562. Part123.Transparency = 1
  1563. Part123.Rotation = Vector3.new(90, 90, 0)
  1564. Part123.Anchored = true
  1565. Part123.CanCollide = false
  1566. Part123.FormFactor = Enum.FormFactor.Custom
  1567. Part123.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1568. Part123.CFrame = CFrame.new(1435.07629, 48.9167862, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1569. Part123.BottomSurface = Enum.SurfaceType.Smooth
  1570. Part123.TopSurface = Enum.SurfaceType.Smooth
  1571. Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1572. Part123.Position = Vector3.new(1435.07629, 48.9167862, -1310.87622)
  1573. Part123.Orientation = Vector3.new(0, 90, 90)
  1574. Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1575. CylinderMesh124.Parent = Part123
  1576. CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1577. CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1578. Decal125.Parent = Part123
  1579. Decal125.Texture = "http://www.roblox.com/asset/?id=78474663"
  1580. Decal125.Face = Enum.NormalId.Bottom
  1581. Decal126.Parent = Part123
  1582. Decal126.Texture = "http://www.roblox.com/asset/?id=78474663"
  1583. Decal126.Face = Enum.NormalId.Top
  1584. Part127.Parent = Tool0
  1585. Part127.Material = Enum.Material.SmoothPlastic
  1586. Part127.BrickColor = BrickColor.new("Dark stone grey")
  1587. Part127.Transparency = 1
  1588. Part127.Rotation = Vector3.new(0, 90, 0)
  1589. Part127.Anchored = true
  1590. Part127.CanCollide = false
  1591. Part127.FormFactor = Enum.FormFactor.Custom
  1592. Part127.Size = Vector3.new(1, 1, 1)
  1593. Part127.CFrame = CFrame.new(1436.00879, 48.9263649, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1594. Part127.BottomSurface = Enum.SurfaceType.Smooth
  1595. Part127.TopSurface = Enum.SurfaceType.Smooth
  1596. Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1597. Part127.Position = Vector3.new(1436.00879, 48.9263649, -1310.87183)
  1598. Part127.Orientation = Vector3.new(0, 90, 0)
  1599. Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1600. SpecialMesh128.Parent = Part127
  1601. SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
  1602. SpecialMesh128.MeshType = Enum.MeshType.Brick
  1603. SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
  1604. Part129.Parent = Tool0
  1605. Part129.Material = Enum.Material.SmoothPlastic
  1606. Part129.BrickColor = BrickColor.new("Nougat")
  1607. Part129.Transparency = 1
  1608. Part129.Rotation = Vector3.new(180, 0, 90)
  1609. Part129.Anchored = true
  1610. Part129.CanCollide = false
  1611. Part129.FormFactor = Enum.FormFactor.Custom
  1612. Part129.Size = Vector3.new(1, 1, 1)
  1613. Part129.CFrame = CFrame.new(1435.26624, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1614. Part129.BottomSurface = Enum.SurfaceType.Smooth
  1615. Part129.TopSurface = Enum.SurfaceType.Smooth
  1616. Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
  1617. Part129.Position = Vector3.new(1435.26624, 48.9020348, -1310.87183)
  1618. Part129.Orientation = Vector3.new(0, -180, -90)
  1619. Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
  1620. CylinderMesh130.Parent = Part129
  1621. CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
  1622. CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
  1623. Part131.Parent = Tool0
  1624. Part131.Material = Enum.Material.SmoothPlastic
  1625. Part131.BrickColor = BrickColor.new("Dark stone grey")
  1626. Part131.Transparency = 1
  1627. Part131.Rotation = Vector3.new(-90, -90, 0)
  1628. Part131.Anchored = true
  1629. Part131.CanCollide = false
  1630. Part131.FormFactor = Enum.FormFactor.Custom
  1631. Part131.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1632. Part131.CFrame = CFrame.new(1435.47815, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1633. Part131.BottomSurface = Enum.SurfaceType.Smooth
  1634. Part131.TopSurface = Enum.SurfaceType.Smooth
  1635. Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1636. Part131.Position = Vector3.new(1435.47815, 48.6010742, -1310.87183)
  1637. Part131.Orientation = Vector3.new(0, -90, 90)
  1638. Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1639. CylinderMesh132.Parent = Part131
  1640. CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1641. CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1642. Decal133.Parent = Part131
  1643. Decal133.Texture = "http://www.roblox.com/asset/?id=78474663"
  1644. Decal133.Face = Enum.NormalId.Bottom
  1645. Part134.Parent = Tool0
  1646. Part134.Material = Enum.Material.SmoothPlastic
  1647. Part134.Transparency = 1
  1648. Part134.Rotation = Vector3.new(-90, 60, 90)
  1649. Part134.Anchored = true
  1650. Part134.CanCollide = false
  1651. Part134.FormFactor = Enum.FormFactor.Custom
  1652. Part134.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1653. Part134.CFrame = CFrame.new(1436.03064, 48.1612701, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
  1654. Part134.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1655. Part134.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1656. Part134.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1657. Part134.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1658. Part134.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1659. Part134.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1660. Part134.Position = Vector3.new(1436.03064, 48.1612701, -1310.87183)
  1661. Part134.Orientation = Vector3.new(-30, 90, 0)
  1662. CylinderMesh135.Parent = Part134
  1663. CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1664. CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1665. Part136.Parent = Tool0
  1666. Part136.Material = Enum.Material.SmoothPlastic
  1667. Part136.Transparency = 1
  1668. Part136.Rotation = Vector3.new(0, 90, 0)
  1669. Part136.Anchored = true
  1670. Part136.CanCollide = false
  1671. Part136.FormFactor = Enum.FormFactor.Custom
  1672. Part136.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1673. Part136.CFrame = CFrame.new(1435.36523, 48.5261421, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1674. Part136.BottomSurface = Enum.SurfaceType.Smooth
  1675. Part136.TopSurface = Enum.SurfaceType.Smooth
  1676. Part136.Position = Vector3.new(1435.36523, 48.5261421, -1310.88025)
  1677. Part136.Orientation = Vector3.new(0, 90, 0)
  1678. CylinderMesh137.Parent = Part136
  1679. CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
  1680. CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
  1681. Part138.Parent = Tool0
  1682. Part138.Material = Enum.Material.SmoothPlastic
  1683. Part138.BrickColor = BrickColor.new("Dark stone grey")
  1684. Part138.Transparency = 1
  1685. Part138.Rotation = Vector3.new(90, 45, -90)
  1686. Part138.Anchored = true
  1687. Part138.CanCollide = false
  1688. Part138.FormFactor = Enum.FormFactor.Custom
  1689. Part138.Size = Vector3.new(1, 1, 1)
  1690. Part138.CFrame = CFrame.new(1436.54016, 48.4395027, -1310.87183, 0, 0.707106829, 0.707106829, 0, 0.707106829, -0.707106829, -1, 0, 0)
  1691. Part138.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1692. Part138.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1693. Part138.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1694. Part138.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1695. Part138.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1696. Part138.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1697. Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1698. Part138.Position = Vector3.new(1436.54016, 48.4395027, -1310.87183)
  1699. Part138.Orientation = Vector3.new(45, 90, 0)
  1700. Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1701. SpecialMesh139.Parent = Part138
  1702. SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  1703. SpecialMesh139.MeshType = Enum.MeshType.Brick
  1704. SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  1705. Part140.Parent = Tool0
  1706. Part140.Material = Enum.Material.SmoothPlastic
  1707. Part140.BrickColor = BrickColor.new("Dark stone grey")
  1708. Part140.Transparency = 1
  1709. Part140.Rotation = Vector3.new(0, 90, 0)
  1710. Part140.Anchored = true
  1711. Part140.CanCollide = false
  1712. Part140.FormFactor = Enum.FormFactor.Custom
  1713. Part140.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1714. Part140.CFrame = CFrame.new(1436.87463, 48.5038033, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1715. Part140.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1716. Part140.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1717. Part140.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1718. Part140.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1719. Part140.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1720. Part140.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1721. Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1722. Part140.Position = Vector3.new(1436.87463, 48.5038033, -1310.87622)
  1723. Part140.Orientation = Vector3.new(0, 90, 0)
  1724. Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1725. SpecialMesh141.Parent = Part140
  1726. SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
  1727. SpecialMesh141.MeshType = Enum.MeshType.Brick
  1728. SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
  1729. Part142.Parent = Tool0
  1730. Part142.Material = Enum.Material.SmoothPlastic
  1731. Part142.BrickColor = BrickColor.new("Lime green")
  1732. Part142.Reflectance = 0.40000000596046
  1733. Part142.Transparency = 1
  1734. Part142.Rotation = Vector3.new(180, 0, 90)
  1735. Part142.Anchored = true
  1736. Part142.CanCollide = false
  1737. Part142.FormFactor = Enum.FormFactor.Custom
  1738. Part142.Size = Vector3.new(0.228912294, 0.534128368, 0.423911244)
  1739. Part142.CFrame = CFrame.new(1433.87573, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1740. Part142.BottomSurface = Enum.SurfaceType.Smooth
  1741. Part142.TopSurface = Enum.SurfaceType.Smooth
  1742. Part142.Color = Color3.new(0, 1, 0)
  1743. Part142.Position = Vector3.new(1433.87573, 48.923233, -1310.87183)
  1744. Part142.Orientation = Vector3.new(0, -180, -90)
  1745. Part142.Color = Color3.new(0, 1, 0)
  1746. CylinderMesh143.Parent = Part142
  1747. Part144.Parent = Tool0
  1748. Part144.Material = Enum.Material.SmoothPlastic
  1749. Part144.Transparency = 1
  1750. Part144.Rotation = Vector3.new(-90, 0, 90)
  1751. Part144.Anchored = true
  1752. Part144.CanCollide = false
  1753. Part144.FormFactor = Enum.FormFactor.Custom
  1754. Part144.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1755. Part144.CFrame = CFrame.new(1436.42542, 48.0573769, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1756. Part144.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1757. Part144.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1758. Part144.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1759. Part144.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1760. Part144.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1761. Part144.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1762. Part144.Position = Vector3.new(1436.42542, 48.0573769, -1310.87183)
  1763. Part144.Orientation = Vector3.new(-90, 90, 0)
  1764. CylinderMesh145.Parent = Part144
  1765. CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
  1766. CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
  1767. Part146.Parent = Tool0
  1768. Part146.Material = Enum.Material.SmoothPlastic
  1769. Part146.BrickColor = BrickColor.new("Dark stone grey")
  1770. Part146.Transparency = 1
  1771. Part146.Rotation = Vector3.new(0, 90, 0)
  1772. Part146.Anchored = true
  1773. Part146.CanCollide = false
  1774. Part146.FormFactor = Enum.FormFactor.Custom
  1775. Part146.Size = Vector3.new(1, 1, 1)
  1776. Part146.CFrame = CFrame.new(1436.98523, 48.2367706, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1777. Part146.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1778. Part146.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1779. Part146.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1780. Part146.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1781. Part146.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1782. Part146.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1783. Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1784. Part146.Position = Vector3.new(1436.98523, 48.2367706, -1310.87183)
  1785. Part146.Orientation = Vector3.new(0, 90, 0)
  1786. Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1787. SpecialMesh147.Parent = Part146
  1788. SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
  1789. SpecialMesh147.MeshType = Enum.MeshType.Brick
  1790. SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
  1791. Part148.Parent = Tool0
  1792. Part148.Material = Enum.Material.SmoothPlastic
  1793. Part148.Transparency = 1
  1794. Part148.Rotation = Vector3.new(-90, -60, -90)
  1795. Part148.Anchored = true
  1796. Part148.CanCollide = false
  1797. Part148.FormFactor = Enum.FormFactor.Custom
  1798. Part148.Size = Vector3.new(1, 1, 1)
  1799. Part148.CFrame = CFrame.new(1436.81775, 48.1568336, -1310.87183, 0, 0.499998987, -0.866025984, 0, 0.866025984, 0.499998987, 1, 0, 0)
  1800. Part148.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1801. Part148.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1802. Part148.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1803. Part148.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1804. Part148.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1805. Part148.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1806. Part148.Position = Vector3.new(1436.81775, 48.1568336, -1310.87183)
  1807. Part148.Orientation = Vector3.new(-30, -90, 0)
  1808. CylinderMesh149.Parent = Part148
  1809. CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
  1810. CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
  1811. Part150.Parent = Tool0
  1812. Part150.Material = Enum.Material.SmoothPlastic
  1813. Part150.BrickColor = BrickColor.new("Brick yellow")
  1814. Part150.Transparency = 1
  1815. Part150.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
  1816. Part150.Anchored = true
  1817. Part150.CanCollide = false
  1818. Part150.FormFactor = Enum.FormFactor.Custom
  1819. Part150.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1820. 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)
  1821. Part150.BottomSurface = Enum.SurfaceType.Smooth
  1822. Part150.TopSurface = Enum.SurfaceType.Smooth
  1823. Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1824. Part150.Position = Vector3.new(1435.27368, 48.9770622, -1311.07397)
  1825. Part150.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
  1826. Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1827. CylinderMesh151.Parent = Part150
  1828. CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
  1829. CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
  1830. Part152.Parent = Tool0
  1831. Part152.Material = Enum.Material.SmoothPlastic
  1832. Part152.BrickColor = BrickColor.new("Medium green")
  1833. Part152.Reflectance = 0.40000000596046
  1834. Part152.Transparency = 1
  1835. Part152.Rotation = Vector3.new(-90, 30, -105)
  1836. Part152.Anchored = true
  1837. Part152.CanCollide = false
  1838. Part152.FormFactor = Enum.FormFactor.Custom
  1839. Part152.Size = Vector3.new(1, 1, 1)
  1840. 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)
  1841. Part152.BottomSurface = Enum.SurfaceType.Smooth
  1842. Part152.TopSurface = Enum.SurfaceType.Smooth
  1843. Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1844. Part152.Position = Vector3.new(1436.76379, 48.7488365, -1310.92346)
  1845. Part152.Orientation = Vector3.new(-60, 90, 165)
  1846. Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1847. CylinderMesh153.Parent = Part152
  1848. CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
  1849. CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
  1850. Part154.Parent = Tool0
  1851. Part154.Material = Enum.Material.SmoothPlastic
  1852. Part154.BrickColor = BrickColor.new("Dark stone grey")
  1853. Part154.Transparency = 1
  1854. Part154.Rotation = Vector3.new(-105, 75, 90)
  1855. Part154.Anchored = true
  1856. Part154.CanCollide = false
  1857. Part154.FormFactor = Enum.FormFactor.Custom
  1858. Part154.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1859. 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)
  1860. Part154.BottomSurface = Enum.SurfaceType.Smooth
  1861. Part154.TopSurface = Enum.SurfaceType.Smooth
  1862. Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1863. Part154.Position = Vector3.new(1434.85571, 49.1141472, -1311.08923)
  1864. Part154.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
  1865. Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1866. CylinderMesh155.Parent = Part154
  1867. CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1868. CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1869. Part156.Parent = Tool0
  1870. Part156.Material = Enum.Material.SmoothPlastic
  1871. Part156.BrickColor = BrickColor.new("Dark stone grey")
  1872. Part156.Transparency = 1
  1873. Part156.Rotation = Vector3.new(90, 90, 0)
  1874. Part156.Anchored = true
  1875. Part156.CanCollide = false
  1876. Part156.FormFactor = Enum.FormFactor.Custom
  1877. Part156.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1878. Part156.CFrame = CFrame.new(1433.8822, 48.9214859, -1310.87183, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1879. Part156.BottomSurface = Enum.SurfaceType.Smooth
  1880. Part156.TopSurface = Enum.SurfaceType.Smooth
  1881. Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1882. Part156.Position = Vector3.new(1433.8822, 48.9214859, -1310.87183)
  1883. Part156.Orientation = Vector3.new(0, 90, 90)
  1884. Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1885. SpecialMesh157.Parent = Part156
  1886. SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
  1887. SpecialMesh157.MeshType = Enum.MeshType.Brick
  1888. SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
  1889. Part158.Parent = Tool0
  1890. Part158.Material = Enum.Material.SmoothPlastic
  1891. Part158.Transparency = 1
  1892. Part158.Rotation = Vector3.new(-90, 0, 90)
  1893. Part158.Anchored = true
  1894. Part158.CanCollide = false
  1895. Part158.FormFactor = Enum.FormFactor.Custom
  1896. Part158.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1897. Part158.CFrame = CFrame.new(1434.66418, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1898. Part158.BottomSurface = Enum.SurfaceType.Smooth
  1899. Part158.TopSurface = Enum.SurfaceType.Smooth
  1900. Part158.Position = Vector3.new(1434.66418, 48.9062729, -1310.87183)
  1901. Part158.Orientation = Vector3.new(-90, 90, 0)
  1902. SpecialMesh159.Parent = Part158
  1903. SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
  1904. SpecialMesh159.MeshType = Enum.MeshType.Brick
  1905. SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
  1906. Part160.Parent = Tool0
  1907. Part160.Material = Enum.Material.SmoothPlastic
  1908. Part160.Transparency = 1
  1909. Part160.Rotation = Vector3.new(-90, 30, 90)
  1910. Part160.Anchored = true
  1911. Part160.CanCollide = false
  1912. Part160.FormFactor = Enum.FormFactor.Custom
  1913. Part160.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1914. Part160.CFrame = CFrame.new(1436.1012, 48.0875969, -1310.87183, 0, -0.866025388, 0.500000238, 0, 0.500000238, 0.866025388, -1, 0, 0)
  1915. Part160.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1916. Part160.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1917. Part160.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1918. Part160.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1919. Part160.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1920. Part160.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1921. Part160.Position = Vector3.new(1436.1012, 48.0875969, -1310.87183)
  1922. Part160.Orientation = Vector3.new(-60, 90, 0)
  1923. CylinderMesh161.Parent = Part160
  1924. CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1925. CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1926. Part162.Parent = Tool0
  1927. Part162.Material = Enum.Material.SmoothPlastic
  1928. Part162.BrickColor = BrickColor.new("Dark stone grey")
  1929. Part162.Transparency = 1
  1930. Part162.Rotation = Vector3.new(0, 90, 0)
  1931. Part162.Anchored = true
  1932. Part162.CanCollide = false
  1933. Part162.FormFactor = Enum.FormFactor.Custom
  1934. Part162.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1935. Part162.CFrame = CFrame.new(1436.875, 48.33424, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1936. Part162.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1937. Part162.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1938. Part162.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1939. Part162.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1940. Part162.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1941. Part162.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1942. Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1943. Part162.Position = Vector3.new(1436.875, 48.33424, -1310.87622)
  1944. Part162.Orientation = Vector3.new(0, 90, 0)
  1945. Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1946. SpecialMesh163.Parent = Part162
  1947. SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1948. SpecialMesh163.MeshType = Enum.MeshType.Brick
  1949. SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1950. Part164.Parent = Tool0
  1951. Part164.Material = Enum.Material.SmoothPlastic
  1952. Part164.BrickColor = BrickColor.new("Dark stone grey")
  1953. Part164.Transparency = 1
  1954. Part164.Rotation = Vector3.new(180, 0, 90)
  1955. Part164.Anchored = true
  1956. Part164.CanCollide = false
  1957. Part164.FormFactor = Enum.FormFactor.Custom
  1958. Part164.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1959. Part164.CFrame = CFrame.new(1435.66467, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1960. Part164.BottomSurface = Enum.SurfaceType.Smooth
  1961. Part164.TopSurface = Enum.SurfaceType.Smooth
  1962. Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1963. Part164.Position = Vector3.new(1435.66467, 48.9020348, -1310.87183)
  1964. Part164.Orientation = Vector3.new(0, -180, -90)
  1965. Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1966. CylinderMesh165.Parent = Part164
  1967. CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
  1968. CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
  1969. Part166.Parent = Tool0
  1970. Part166.Material = Enum.Material.SmoothPlastic
  1971. Part166.BrickColor = BrickColor.new("Brick yellow")
  1972. Part166.Transparency = 1
  1973. Part166.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
  1974. Part166.Anchored = true
  1975. Part166.CanCollide = false
  1976. Part166.FormFactor = Enum.FormFactor.Custom
  1977. Part166.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1978. 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)
  1979. Part166.BottomSurface = Enum.SurfaceType.Smooth
  1980. Part166.TopSurface = Enum.SurfaceType.Smooth
  1981. Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1982. Part166.Position = Vector3.new(1435.34644, 48.8009377, -1311.09277)
  1983. Part166.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
  1984. Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1985. CylinderMesh167.Parent = Part166
  1986. CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
  1987. CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
  1988. Part168.Name = "Smooth Block Model"
  1989. Part168.Parent = Tool0
  1990. Part168.Material = Enum.Material.SmoothPlastic
  1991. Part168.BrickColor = BrickColor.new("Dark stone grey")
  1992. Part168.Transparency = 1
  1993. Part168.Rotation = Vector3.new(90, 15, 90)
  1994. Part168.Anchored = true
  1995. Part168.CanCollide = false
  1996. Part168.FormFactor = Enum.FormFactor.Custom
  1997. Part168.Size = Vector3.new(1, 1, 1)
  1998. Part168.CFrame = CFrame.new(1435.82715, 48.8071632, -1310.87183, 0, -0.965925872, 0.258818984, 0, -0.258818984, -0.965925872, 1, 0, 0)
  1999. Part168.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2000. Part168.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2001. Part168.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2002. Part168.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2003. Part168.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2004. Part168.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2005. Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2006. Part168.Position = Vector3.new(1435.82715, 48.8071632, -1310.87183)
  2007. Part168.Orientation = Vector3.new(75, 90, 180)
  2008. Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2009. SpecialMesh169.Parent = Part168
  2010. SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
  2011. SpecialMesh169.MeshType = Enum.MeshType.Wedge
  2012. SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
  2013. Part170.Name = "Smooth Block Model"
  2014. Part170.Parent = Tool0
  2015. Part170.Material = Enum.Material.SmoothPlastic
  2016. Part170.BrickColor = BrickColor.new("Dark stone grey")
  2017. Part170.Transparency = 1
  2018. Part170.Rotation = Vector3.new(-90, -15, 90)
  2019. Part170.Anchored = true
  2020. Part170.CanCollide = false
  2021. Part170.FormFactor = Enum.FormFactor.Custom
  2022. Part170.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  2023. Part170.CFrame = CFrame.new(1435.77759, 48.6315002, -1310.87183, 0, -0.965925872, -0.258818984, 0, -0.258818984, 0.965925872, -1, 0, 0)
  2024. Part170.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2025. Part170.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2026. Part170.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2027. Part170.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2028. Part170.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2029. Part170.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2030. Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2031. Part170.Position = Vector3.new(1435.77759, 48.6315002, -1310.87183)
  2032. Part170.Orientation = Vector3.new(-75, -90, 180)
  2033. Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2034. SpecialMesh171.Parent = Part170
  2035. SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
  2036. SpecialMesh171.MeshType = Enum.MeshType.Wedge
  2037. SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
  2038. Part172.Parent = Tool0
  2039. Part172.Material = Enum.Material.SmoothPlastic
  2040. Part172.BrickColor = BrickColor.new("Dark stone grey")
  2041. Part172.Transparency = 1
  2042. Part172.Rotation = Vector3.new(-90, 0, 90)
  2043. Part172.Anchored = true
  2044. Part172.CanCollide = false
  2045. Part172.FormFactor = Enum.FormFactor.Custom
  2046. Part172.Size = Vector3.new(1, 1, 1)
  2047. Part172.CFrame = CFrame.new(1436.74353, 48.5165329, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2048. Part172.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2049. Part172.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2050. Part172.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2051. Part172.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2052. Part172.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2053. Part172.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2054. Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2055. Part172.Position = Vector3.new(1436.74353, 48.5165329, -1310.87183)
  2056. Part172.Orientation = Vector3.new(-90, 90, 0)
  2057. Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2058. SpecialMesh173.Parent = Part172
  2059. SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  2060. SpecialMesh173.MeshType = Enum.MeshType.Brick
  2061. SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  2062. Part174.Parent = Tool0
  2063. Part174.Material = Enum.Material.SmoothPlastic
  2064. Part174.Transparency = 1
  2065. Part174.Rotation = Vector3.new(90, 75, -90)
  2066. Part174.Anchored = true
  2067. Part174.CanCollide = false
  2068. Part174.FormFactor = Enum.FormFactor.Custom
  2069. Part174.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2070. Part174.CFrame = CFrame.new(1435.75964, 48.5609169, -1310.87622, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
  2071. Part174.BottomSurface = Enum.SurfaceType.Smooth
  2072. Part174.TopSurface = Enum.SurfaceType.Smooth
  2073. Part174.Position = Vector3.new(1435.75964, 48.5609169, -1310.87622)
  2074. Part174.Orientation = Vector3.new(15, 90, 0)
  2075. SpecialMesh175.Parent = Part174
  2076. SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
  2077. SpecialMesh175.MeshType = Enum.MeshType.Brick
  2078. SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
  2079. Part176.Parent = Tool0
  2080. Part176.Material = Enum.Material.SmoothPlastic
  2081. Part176.BrickColor = BrickColor.new("Nougat")
  2082. Part176.Transparency = 1
  2083. Part176.Rotation = Vector3.new(180, 0, 90)
  2084. Part176.Anchored = true
  2085. Part176.CanCollide = false
  2086. Part176.FormFactor = Enum.FormFactor.Custom
  2087. Part176.Size = Vector3.new(0.415433139, 0.313694388, 0.423911244)
  2088. Part176.CFrame = CFrame.new(1434.67273, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  2089. Part176.BottomSurface = Enum.SurfaceType.Smooth
  2090. Part176.TopSurface = Enum.SurfaceType.Smooth
  2091. Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
  2092. Part176.Position = Vector3.new(1434.67273, 48.9062729, -1310.87183)
  2093. Part176.Orientation = Vector3.new(0, -180, -90)
  2094. Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
  2095. CylinderMesh177.Parent = Part176
  2096. Part178.Parent = Tool0
  2097. Part178.Material = Enum.Material.SmoothPlastic
  2098. Part178.BrickColor = BrickColor.new("Brick yellow")
  2099. Part178.Transparency = 1
  2100. Part178.Rotation = Vector3.new(-90, 0, 90)
  2101. Part178.Anchored = true
  2102. Part178.CanCollide = false
  2103. Part178.FormFactor = Enum.FormFactor.Custom
  2104. Part178.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2105. Part178.CFrame = CFrame.new(1434.84229, 48.626503, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2106. Part178.BottomSurface = Enum.SurfaceType.Smooth
  2107. Part178.TopSurface = Enum.SurfaceType.Smooth
  2108. Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2109. Part178.Position = Vector3.new(1434.84229, 48.626503, -1310.87183)
  2110. Part178.Orientation = Vector3.new(-90, 90, 0)
  2111. Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2112. SpecialMesh179.Parent = Part178
  2113. SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
  2114. SpecialMesh179.MeshType = Enum.MeshType.Brick
  2115. SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
  2116. Part180.Parent = Tool0
  2117. Part180.Material = Enum.Material.SmoothPlastic
  2118. Part180.BrickColor = BrickColor.new("Black")
  2119. Part180.Transparency = 1
  2120. Part180.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
  2121. Part180.Anchored = true
  2122. Part180.CanCollide = false
  2123. Part180.FormFactor = Enum.FormFactor.Custom
  2124. Part180.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  2125. 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)
  2126. Part180.BottomSurface = Enum.SurfaceType.Smooth
  2127. Part180.TopSurface = Enum.SurfaceType.Smooth
  2128. Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
  2129. Part180.Position = Vector3.new(1435.07532, 49.0545235, -1310.66675)
  2130. Part180.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
  2131. Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
  2132. CylinderMesh181.Parent = Part180
  2133. CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  2134. CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  2135. Part182.Parent = Tool0
  2136. Part182.Material = Enum.Material.SmoothPlastic
  2137. Part182.BrickColor = BrickColor.new("Dark stone grey")
  2138. Part182.Transparency = 1
  2139. Part182.Rotation = Vector3.new(180, 0, 90)
  2140. Part182.Anchored = true
  2141. Part182.CanCollide = false
  2142. Part182.FormFactor = Enum.FormFactor.Custom
  2143. Part182.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2144. Part182.CFrame = CFrame.new(1433.90967, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  2145. Part182.BottomSurface = Enum.SurfaceType.Smooth
  2146. Part182.TopSurface = Enum.SurfaceType.Smooth
  2147. Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2148. Part182.Position = Vector3.new(1433.90967, 48.9232292, -1310.87183)
  2149. Part182.Orientation = Vector3.new(0, -180, -90)
  2150. Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2151. CylinderMesh183.Parent = Part182
  2152. CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  2153. CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  2154. Part184.Parent = Tool0
  2155. Part184.Material = Enum.Material.SmoothPlastic
  2156. Part184.BrickColor = BrickColor.new("Dark stone grey")
  2157. Part184.Transparency = 1
  2158. Part184.Rotation = Vector3.new(-90, 75, 90)
  2159. Part184.Anchored = true
  2160. Part184.CanCollide = false
  2161. Part184.FormFactor = Enum.FormFactor.Custom
  2162. Part184.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2163. Part184.CFrame = CFrame.new(1435.92761, 48.4653969, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  2164. Part184.BottomSurface = Enum.SurfaceType.Smooth
  2165. Part184.TopSurface = Enum.SurfaceType.Smooth
  2166. Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2167. Part184.Position = Vector3.new(1435.92761, 48.4653969, -1310.87183)
  2168. Part184.Orientation = Vector3.new(-15, 90, 0)
  2169. Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2170. SpecialMesh185.Parent = Part184
  2171. SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
  2172. SpecialMesh185.MeshType = Enum.MeshType.Brick
  2173. SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
  2174. Part186.Parent = Tool0
  2175. Part186.Material = Enum.Material.SmoothPlastic
  2176. Part186.Transparency = 1
  2177. Part186.Rotation = Vector3.new(-90, 0, 90)
  2178. Part186.Anchored = true
  2179. Part186.CanCollide = false
  2180. Part186.FormFactor = Enum.FormFactor.Custom
  2181. Part186.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2182. Part186.CFrame = CFrame.new(1434.48193, 49.1648102, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2183. Part186.BottomSurface = Enum.SurfaceType.Smooth
  2184. Part186.TopSurface = Enum.SurfaceType.Smooth
  2185. Part186.Position = Vector3.new(1434.48193, 49.1648102, -1310.87183)
  2186. Part186.Orientation = Vector3.new(-90, 90, 0)
  2187. SpecialMesh187.Parent = Part186
  2188. SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
  2189. SpecialMesh187.MeshType = Enum.MeshType.Brick
  2190. SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
  2191. IntValue188.Name = "Ammo"
  2192. IntValue188.Parent = Tool0
  2193. IntValue188.Value = 25
  2194. IntValue189.Name = "ClipSize"
  2195. IntValue189.Parent = Tool0
  2196. IntValue189.Value = 25
  2197. IntValue190.Name = "LethalGrenades"
  2198. IntValue190.Parent = Tool0
  2199. IntValue190.Value = 15
  2200. IntValue191.Name = "StoredAmmo"
  2201. IntValue191.Parent = Tool0
  2202. IntValue191.Value = 400
  2203. IntValue192.Name = "TacticalGrenades"
  2204. IntValue192.Parent = Tool0
  2205. IntValue192.Value = 15
  2206. Script193.Name = "serverMain"
  2207. Script193.Parent = Tool0
  2208. table.insert(cors,sandbox(Script193,function()
  2209. local Plyr = script:WaitForChild("Plyr")
  2210.  
  2211. local Gun = script.Parent
  2212. local Handle = Gun:WaitForChild("Handle")
  2213.  
  2214. local V3 = Vector3.new
  2215. local CF, CFANG = CFrame.new, CFrame.Angles
  2216.  
  2217. local RAD = math.rad
  2218.  
  2219. local numLerp = function(A, B, Alpha)
  2220. return A + (B - A) * Alpha
  2221. end
  2222.  
  2223. local inList = function(Element, List)
  2224. for _, v in pairs(List) do
  2225. if v == Element then
  2226. return true
  2227. end
  2228. end
  2229. return false
  2230. end
  2231.  
  2232. local getObject = function(Model, Class, Name)
  2233. for _, v in pairs(Model:GetChildren()) do
  2234. if v:IsA(Class) and v.Name == Name then
  2235. return v
  2236. end
  2237. end
  2238. return nil
  2239. end
  2240.  
  2241. ----------------------------------------------------------------------
  2242. --------------------[ IGNORE MODEL HANDLING ]-------------------------
  2243. ----------------------------------------------------------------------
  2244.  
  2245. wait(math.random(0, 20) / 40) --This is to prevent more than one ignoreModel from being created
  2246.  
  2247. if _G.ignoreCode then --If the ignoreCode already exists, then the script creates the ignoreModel
  2248. --[[
  2249. The purpose of this is so that every gun in a game that uses this gun kit will share one ignoreModel. That way,
  2250. bullet trails, bullet holes, and other fake arms will be ignored by the gun which makes the bullets more likely to
  2251. hit a character part
  2252. --]]
  2253. if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
  2254. local ignoreModel = Instance.new("Model")
  2255. ignoreModel.Name = "ignoreModel_".._G.ignoreCode
  2256. ignoreModel.Parent = game.Workspace
  2257.  
  2258. local grenadeFolder = Instance.new("Model")
  2259. grenadeFolder.Name = "grenadeFolder"
  2260. grenadeFolder.Parent = ignoreModel
  2261.  
  2262. spawn(function()
  2263. while true do
  2264. ignoreModel.Parent = game.Workspace
  2265. grenadeFolder.Parent = ignoreModel
  2266. wait(1 / 20)
  2267. end
  2268. end)
  2269. end
  2270.  
  2271. script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
  2272. else
  2273. --[[
  2274. If there isn't already an ignoreCode, then this creates one. The purpose of it being random is so that if there is
  2275. an ignoreModel for something else in the game, the script won't end up placing the ignored objects in that ignoreModel
  2276. --]]
  2277. _G.ignoreCode = math.random(1, 1e4)
  2278.  
  2279. if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
  2280. local ignoreModel = Instance.new("Model")
  2281. ignoreModel.Name = "ignoreModel_".._G.ignoreCode
  2282. ignoreModel.Parent = game.Workspace
  2283.  
  2284. local grenadeFolder = Instance.new("Model")
  2285. grenadeFolder.Name = "grenadeFolder"
  2286. grenadeFolder.Parent = ignoreModel
  2287.  
  2288. spawn(function()
  2289. while true do
  2290. ignoreModel.Parent = game.Workspace
  2291. grenadeFolder.Parent = ignoreModel
  2292. wait(1 / 20)
  2293. end
  2294. end)
  2295. end
  2296.  
  2297. script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
  2298. end
  2299.  
  2300. spawn(function()
  2301. --[[
  2302. This function deletes any Player Folders that were left in the ignoreModel because the player left the game without
  2303. deselecting the Gun first
  2304. --]]
  2305. repeat wait() until _G.ignoreCode
  2306. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_".._G.ignoreCode)
  2307. while true do
  2308. for _, gunIgnore in pairs(ignoreModel:GetChildren()) do
  2309. if gunIgnore.Name ~= "grenadeFolder" then
  2310. if (not game.Players:FindFirstChild(gunIgnore.Name:sub(11))) then
  2311. gunIgnore:Destroy()
  2312. end
  2313. end
  2314. end
  2315. wait(1 / 20)
  2316. end
  2317. end)
  2318.  
  2319. ----------------------------------------------------------------------
  2320. --------------------[ RESET CAMERA ]----------------------------------
  2321. ----------------------------------------------------------------------
  2322.  
  2323. Gun.ChildRemoved:connect(function(Child)
  2324. if Child == Handle and Plyr.Value then
  2325. local ignoreCode = Gun:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value
  2326. local resetCam = script:WaitForChild("resetCam")
  2327. resetCam:WaitForChild("ignoreCode").Value = ignoreCode
  2328. resetCam.Parent = Plyr.Value.PlayerGui
  2329. end
  2330. end)
  2331.  
  2332. ----------------------------------------------------------------------
  2333. --------------------[ GET WELD CFRAMES ]------------------------------
  2334. ----------------------------------------------------------------------
  2335.  
  2336. for _, v in pairs(Gun:GetChildren()) do
  2337. if v:IsA("BasePart") and v ~= Handle then
  2338. if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
  2339. if (not v:FindFirstChild("weldCF")) then
  2340. local weldCF = Instance.new("CFrameValue")
  2341. weldCF.Name = "weldCF"
  2342. weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
  2343. weldCF.Parent = v
  2344. end
  2345. if string.sub(v.Name, 1, 3) == "Mag" then
  2346. if (not v:FindFirstChild("magTrans")) then
  2347. local magTrans = Instance.new("NumberValue")
  2348. magTrans.Name = "magTrans"
  2349. magTrans.Value = v.Transparency
  2350. magTrans.Parent = v
  2351. end
  2352. end
  2353. v.Anchored = true
  2354. v.CanCollide = false
  2355. end
  2356. end
  2357. Handle.Anchored = false
  2358. Handle.CanCollide = true
  2359.  
  2360. ----------------------------------------------------------------------
  2361. --------------------[ GUNSETUP HANDLING ]-----------------------------
  2362. ----------------------------------------------------------------------
  2363.  
  2364. local gunSetup = script:WaitForChild("gunSetup")
  2365. function gunSetup.OnServerInvoke(Player, Vars)
  2366.  
  2367. --------------------[ CREATING IGNORE MODELS ]--------------------------------
  2368.  
  2369. local gunIgnore = Instance.new("Model")
  2370. gunIgnore.Name = "gunIgnore_"..Player.Name
  2371. gunIgnore.Parent = Vars.ignoreModel
  2372.  
  2373. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  2374.  
  2375. Vars.Humanoid.AutoRotate = false
  2376.  
  2377. Vars.Shoulders.Right.Part1 = nil
  2378. Vars.Shoulders.Left.Part1 = nil
  2379.  
  2380. local playerFolder = Instance.new("Model")
  2381. playerFolder.Name = "playerFolder"
  2382. playerFolder.Parent = gunIgnore
  2383.  
  2384. local headBase = Instance.new("Part")
  2385. headBase.Transparency = 1
  2386. headBase.Name = "headBase"
  2387. headBase.CanCollide = false
  2388. headBase.FormFactor = Enum.FormFactor.Custom
  2389. headBase.Size = V3(0.2, 0.2, 0.2)
  2390. headBase.BottomSurface = Enum.SurfaceType.Smooth
  2391. headBase.TopSurface = Enum.SurfaceType.Smooth
  2392. headBase.Parent = playerFolder
  2393.  
  2394. local headWeld = Instance.new("Weld")
  2395. headWeld.Part0 = Vars.Torso
  2396. headWeld.Part1 = headBase
  2397. headWeld.C0 = CF(0, 1.5, 0)
  2398. headWeld.Parent = Vars.Torso
  2399.  
  2400. local headWeld2 = Instance.new("Weld")
  2401. headWeld2.Part0 = headBase
  2402. headWeld2.Part1 = Vars.Head
  2403. headWeld2.Parent = headBase
  2404.  
  2405. local animBase = Instance.new("Part")
  2406. animBase.Transparency = 1
  2407. animBase.Name = "animBase"
  2408. animBase.CanCollide = false
  2409. animBase.FormFactor = Enum.FormFactor.Custom
  2410. animBase.Size = V3(0.2, 0.2, 0.2)
  2411. animBase.BottomSurface = Enum.SurfaceType.Smooth
  2412. animBase.TopSurface = Enum.SurfaceType.Smooth
  2413. animBase.Parent = playerFolder
  2414.  
  2415. local animWeld = Instance.new("Weld")
  2416. animWeld.Part0 = animBase
  2417. animWeld.Part1 = headBase
  2418. animWeld.Parent = animBase
  2419.  
  2420. local armBase = Instance.new("Part")
  2421. armBase.Transparency = 1
  2422. armBase.Name = "ArmBase"
  2423. armBase.CanCollide = false
  2424. armBase.FormFactor = Enum.FormFactor.Custom
  2425. armBase.Size = V3(0.2, 0.2, 0.2)
  2426. armBase.BottomSurface = Enum.SurfaceType.Smooth
  2427. armBase.TopSurface = Enum.SurfaceType.Smooth
  2428. armBase.Parent = playerFolder
  2429.  
  2430. local ABWeld = Instance.new("Weld")
  2431. ABWeld.Part0 = armBase
  2432. ABWeld.Part1 = animBase
  2433. ABWeld.Parent = armBase
  2434.  
  2435. local LArmBase = Instance.new("Part")
  2436. LArmBase.Transparency = 1
  2437. LArmBase.Name = "LArmBase"
  2438. LArmBase.CanCollide = false
  2439. LArmBase.FormFactor = Enum.FormFactor.Custom
  2440. LArmBase.Size = V3(0.2, 0.2, 0.2)
  2441. LArmBase.BottomSurface = Enum.SurfaceType.Smooth
  2442. LArmBase.TopSurface = Enum.SurfaceType.Smooth
  2443. LArmBase.Parent = playerFolder
  2444.  
  2445. local RArmBase = Instance.new("Part")
  2446. RArmBase.Transparency = 1
  2447. RArmBase.Name = "RArmBase"
  2448. RArmBase.CanCollide = false
  2449. RArmBase.FormFactor = Enum.FormFactor.Custom
  2450. RArmBase.Size = V3(0.2, 0.2, 0.2)
  2451. RArmBase.BottomSurface = Enum.SurfaceType.Smooth
  2452. RArmBase.TopSurface = Enum.SurfaceType.Smooth
  2453. RArmBase.Parent = playerFolder
  2454.  
  2455. local LWeld = Instance.new("Weld")
  2456. LWeld.Name = "LWeld"
  2457. LWeld.Part0 = armBase
  2458. LWeld.Part1 = LArmBase
  2459. LWeld.C0 = Vars.armC0[1]
  2460. LWeld.C1 = Vars.leftArmC1
  2461. LWeld.Parent = armBase
  2462.  
  2463. local RWeld = Instance.new("Weld")
  2464. RWeld.Name = "RWeld"
  2465. RWeld.Part0 = armBase
  2466. RWeld.Part1 = RArmBase
  2467. RWeld.C0 = Vars.armC0[2]
  2468. RWeld.C1 = Vars.rightArmC1
  2469. RWeld.Parent = armBase
  2470.  
  2471. local LWeld2 = Instance.new("Weld")
  2472. LWeld2.Name = "LWeld"
  2473. LWeld2.Part0 = LArmBase
  2474. LWeld2.Part1 = Vars.LArm
  2475. LWeld2.Parent = LArmBase
  2476.  
  2477. local RWeld2 = Instance.new("Weld")
  2478. RWeld2.Name = "RWeld"
  2479. RWeld2.Part0 = RArmBase
  2480. RWeld2.Part1 = Vars.RArm
  2481. RWeld2.Parent = RArmBase
  2482.  
  2483. local LLegWeld = Instance.new("Weld")
  2484. LLegWeld.Name = "LLegWeld"
  2485. LLegWeld.Part0 = Vars.Torso
  2486. LLegWeld.Part1 = nil
  2487. LLegWeld.C0 = CF(-0.5, -2, 0)
  2488. LLegWeld.Parent = Vars.Torso
  2489.  
  2490. local RLegWeld = Instance.new("Weld")
  2491. RLegWeld.Name = "RLegWeld"
  2492. RLegWeld.Part0 = Vars.Torso
  2493. RLegWeld.Part1 = nil
  2494. RLegWeld.C0 = CF(0.5, -2, 0)
  2495. RLegWeld.Parent = Vars.Torso
  2496.  
  2497. for _, Tab in pairs(Vars.gunParts) do
  2498. Tab.Obj.Anchored = false
  2499. local Weld = Instance.new("Weld")
  2500. Weld.Name = "mainWeld"
  2501. Weld.Part0 = Vars.Handle
  2502. Weld.Part1 = Tab.Obj
  2503. Weld.C0 = Tab.Obj.weldCF.Value
  2504. Weld.Parent = Vars.Handle
  2505. Tab.Weld = Weld
  2506. end
  2507.  
  2508. return gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, Vars.gunParts
  2509. end
  2510.  
  2511. ----------------------------------------------------------------------
  2512. --------------------[ TWEENJOINT HANDLING ]---------------------------
  2513. ----------------------------------------------------------------------
  2514.  
  2515. local createTweenIndicator = script:WaitForChild("createTweenIndicator")
  2516. function createTweenIndicator.OnServerInvoke(_, Joint, newCode)
  2517. local tweenIndicator = nil
  2518. if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
  2519. tweenIndicator = Instance.new("IntValue")
  2520. tweenIndicator.Name = "tweenCode"
  2521. tweenIndicator.Value = newCode
  2522. tweenIndicator.Parent = Joint
  2523. else
  2524. tweenIndicator = Joint.tweenCode
  2525. tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
  2526. end
  2527. return tweenIndicator
  2528. end
  2529.  
  2530. local lerpCF = script:WaitForChild("lerpCF")
  2531. function lerpCF.OnServerInvoke(_, Joint, Prop, startCF, endCF, Alpha)
  2532. spawn(function()
  2533. Joint[Prop] = startCF:lerp(endCF, Alpha)
  2534. end)
  2535. end
  2536.  
  2537. local deleteTweenIndicator = script:WaitForChild("deleteTweenIndicator")
  2538. function deleteTweenIndicator.OnServerInvoke(_, tweenIndicator, newCode)
  2539. if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
  2540. tweenIndicator:Destroy()
  2541. end
  2542. end
  2543.  
  2544. ----------------------------------------------------------------------
  2545. --------------------[ BULLET IMPACT HANDLING ]------------------------
  2546. ----------------------------------------------------------------------
  2547.  
  2548. local createBulletImpact = script:WaitForChild("createBulletImpact")
  2549. createBulletImpact.OnServerEvent:connect(function(_, H, P, N, D, humanoidFound, gunIgnore, S)
  2550. local surfaceCF = CF(P, P + N)
  2551. ----------------------------------------------------------------------------------
  2552. --Creating the bullet hole--------------------------------------------------------
  2553. ----------------------------------------------------------------------------------
  2554. if S.bulletHoles and (not humanoidFound) then
  2555. local Hole = Instance.new("Part")
  2556. Hole.Transparency = 1
  2557. Hole.Anchored = true
  2558. Hole.CanCollide = false
  2559. Hole.FormFactor = "Custom"
  2560. Hole.Size = V3(1, 1, 0.2)
  2561. Hole.TopSurface = 0
  2562. Hole.BottomSurface = 0
  2563. local Mesh = Instance.new("BlockMesh")
  2564. Mesh.Offset = V3(0, 0, -0.05)
  2565. Mesh.Scale = V3(S.holeSettings.Size, S.holeSettings.Size, 0)
  2566. Mesh.Parent = Hole
  2567. local Decal = Instance.new("Decal")
  2568. Decal.Face = Enum.NormalId.Front
  2569. Decal.Texture = S.holeSettings.Texture
  2570. Decal.Parent = Hole
  2571. Hole.Parent = gunIgnore
  2572. Hole.CFrame = surfaceCF
  2573. if (not H.Anchored) then
  2574. local Weld = Instance.new("Weld", Hole)
  2575. Weld.Part0 = H
  2576. Weld.Part1 = Hole
  2577. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2578. Hole.Anchored = false
  2579. end
  2580. delay(S.holeSettings.visibleTime, function()
  2581. if S.holeSettings.disappearTime > 0 then
  2582. local t0 = tick()
  2583. while true do
  2584. local Alpha = math.min((tick() - t0) / S.holeSettings.disappearTime, 1)
  2585. Decal.Transparency = numLerp(0, 1, Alpha)
  2586. if Alpha == 1 then break end
  2587. wait()
  2588. end
  2589. Hole:Destroy()
  2590. else
  2591. Hole:Destroy()
  2592. end
  2593. end)
  2594. end
  2595. ----------------------------------------------------------------------------------
  2596. --Creating the spark effect-------------------------------------------------------
  2597. ----------------------------------------------------------------------------------
  2598. if S.bulletSparks and (not humanoidFound) and inList(H.Material, S.sparkSettings.Materials) then
  2599. local Sparks = Instance.new("Part")
  2600. Sparks.Transparency = 1
  2601. Sparks.Anchored = true
  2602. Sparks.CanCollide = false
  2603. Sparks.FormFactor = "Custom"
  2604. Sparks.Size = V3(1, 1, 1)
  2605. Sparks.TopSurface = 0
  2606. Sparks.BottomSurface = 0
  2607.  
  2608. local Particles = nil
  2609. if S.customSparks then
  2610. Particles = getObject(game.ServerStorage, "ParticleEmitter", "bulletSpark"):Clone()
  2611. else
  2612. Particles = Instance.new("ParticleEmitter")
  2613. Particles.Color = ColorSequence.new(S.sparkSettings.Color.Start, S.sparkSettings.Color.End)
  2614. Particles.LightEmission = 1
  2615. Particles.Size = NumberSequence.new(
  2616. {
  2617. NumberSequenceKeypoint.new(0, S.sparkSettings.Size, 0.25);
  2618. NumberSequenceKeypoint.new(1, 0);
  2619. }
  2620. )
  2621. Particles.Texture = S.sparkSettings.Texture
  2622. Particles.Transparency = NumberSequence.new(0)
  2623. Particles.Acceleration = V3(0, -196.2, 0)
  2624. Particles.EmissionDirection = Enum.NormalId.Front
  2625. Particles.Lifetime = NumberRange.new(S.sparkSettings.Lifetime - 0.05, S.sparkSettings.Lifetime + 0.05)
  2626. Particles.Rate = S.sparkSettings.Rate
  2627. Particles.Rotation = NumberRange.new(0, 360)
  2628. Particles.Speed = NumberRange.new(S.sparkSettings.Speed - 5, S.sparkSettings.Speed + 5)
  2629. Particles.VelocitySpread = S.sparkSettings.Spread
  2630. end
  2631. Particles.Parent = Sparks
  2632.  
  2633. Sparks.Parent = gunIgnore
  2634. Sparks.CFrame = surfaceCF
  2635. if (not H.Anchored) then
  2636. local Weld = Instance.new("Weld", Sparks)
  2637. Weld.Part0 = H
  2638. Weld.Part1 = Sparks
  2639. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2640. Sparks.Anchored = false
  2641. end
  2642. delay(0.1, function()
  2643. Particles.Enabled = false
  2644. wait(Particles.Lifetime.Max)
  2645. Sparks:Destroy()
  2646. end)
  2647. end
  2648. ----------------------------------------------------------------------------------
  2649. --Creating the smoke effect-------------------------------------------------------
  2650. ----------------------------------------------------------------------------------
  2651. if S.bulletSmoke and (not humanoidFound) then
  2652. local Smoke = Instance.new("Part")
  2653. Smoke.Transparency = 1
  2654. Smoke.Anchored = true
  2655. Smoke.CanCollide = false
  2656. Smoke.FormFactor = "Custom"
  2657. Smoke.Size = V3(1, 1, 1)
  2658. Smoke.TopSurface = 0
  2659. Smoke.BottomSurface = 0
  2660.  
  2661. local Particles = Instance.new("ParticleEmitter")
  2662. Particles.Color = ColorSequence.new(S.smokeSettings.objColor and H.Color or S.smokeSettings.Color)
  2663. Particles.LightEmission = 0
  2664. Particles.Size = NumberSequence.new(
  2665. {
  2666. NumberSequenceKeypoint.new(0, S.smokeSettings.Size.Start);
  2667. NumberSequenceKeypoint.new(1, S.smokeSettings.Size.End);
  2668. }
  2669. )
  2670. Particles.Texture = S.smokeSettings.Texture
  2671. Particles.Transparency = NumberSequence.new(
  2672. {
  2673. NumberSequenceKeypoint.new(0, S.smokeSettings.startTransparency);
  2674. NumberSequenceKeypoint.new(0.5, 0.75 * S.smokeSettings.startTransparency + 0.25);
  2675. NumberSequenceKeypoint.new(1, 1);
  2676. }
  2677. )
  2678. Particles.Acceleration = V3(0, -196.2, 0)
  2679. Particles.EmissionDirection = Enum.NormalId.Front
  2680. Particles.Lifetime = NumberRange.new(S.smokeSettings.Lifetime - 0.05, S.smokeSettings.Lifetime + 0.05)
  2681. Particles.Rate = S.smokeSettings.Rate
  2682. Particles.Rotation = NumberRange.new(0, 360)
  2683. Particles.RotSpeed = NumberRange.new(10)
  2684. Particles.Speed = NumberRange.new(S.smokeSettings.Speed - 5, S.smokeSettings.Speed + 5)
  2685. Particles.VelocitySpread = S.smokeSettings.Spread
  2686. Particles.Parent = Smoke
  2687.  
  2688. Smoke.Parent = gunIgnore
  2689. Smoke.CFrame = surfaceCF
  2690. if (not H.Anchored) then
  2691. local Weld = Instance.new("Weld", Smoke)
  2692. Weld.Part0 = H
  2693. Weld.Part1 = Smoke
  2694. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2695. Smoke.Anchored = false
  2696. end
  2697. delay(0.1, function()
  2698. Particles.Enabled = false
  2699. wait(S.smokeSettings.Lifetime + 0.05)
  2700. Smoke:Destroy()
  2701. end)
  2702. end
  2703. end)
  2704.  
  2705. ----------------------------------------------------------------------
  2706. --------------------[ SHOCKWAVE HANDLING ]----------------------------
  2707. ----------------------------------------------------------------------
  2708.  
  2709. local createShockwave = script:WaitForChild("createShockwave")
  2710. createShockwave.OnServerEvent:connect(function(_, Center, Radius, gunIgnore, S)
  2711. local Shockwave = Instance.new("Part")
  2712. Shockwave.BrickColor = S.shockwaveSettings.Color
  2713. Shockwave.Material = Enum.Material.SmoothPlastic
  2714. Shockwave.Name = "Shockwave"
  2715. Shockwave.Anchored = true
  2716. Shockwave.CanCollide = false
  2717. Shockwave.FormFactor = Enum.FormFactor.Symmetric
  2718. Shockwave.Size = V3(1, 1, 1)
  2719. Shockwave.BottomSurface = Enum.SurfaceType.Smooth
  2720. Shockwave.TopSurface = Enum.SurfaceType.Smooth
  2721. local Mesh = Instance.new("SpecialMesh")
  2722. Mesh.MeshType = Enum.MeshType.Sphere
  2723. Mesh.Scale = V3()
  2724. Mesh.Parent = Shockwave
  2725. Shockwave.Parent = gunIgnore
  2726. Shockwave.CFrame = CF(Center)
  2727. spawn(function()
  2728. local t0 = tick()
  2729. while true do
  2730. local Alpha = math.min((tick() - t0) / S.shockwaveSettings.Duration, 1)
  2731. local Scale = 2 * Radius * Alpha
  2732. Mesh.Scale = V3(Scale, Scale, Scale)
  2733. Shockwave.Transparency = Alpha
  2734. if Alpha == 1 then break end
  2735. wait()
  2736. end
  2737. Shockwave:Destroy()
  2738. end)
  2739. end)
  2740.  
  2741. ----------------------------------------------------------------------
  2742. --------------------[ BLOOD HANDLING ]--------------------------------
  2743. ----------------------------------------------------------------------
  2744.  
  2745. local createBlood = script:WaitForChild("createBlood")
  2746. createBlood.OnServerEvent:connect(function(_, H, P, D, gunIgnore, S)
  2747. local bloodCF = CF(P, P + D) * CFANG(RAD(-90), 0, 0)
  2748. local Blood = Instance.new("Part")
  2749. Blood.Transparency = 1
  2750. Blood.Anchored = true
  2751. Blood.CanCollide = false
  2752. Blood.FormFactor = "Custom"
  2753. Blood.Size = V3(0.2, 1, 0.2)
  2754. Blood.TopSurface = 0
  2755. Blood.BottomSurface = 0
  2756.  
  2757. local Particles = Instance.new("ParticleEmitter")
  2758. Particles.Color = ColorSequence.new(S.bloodSettings.Color)
  2759. Particles.LightEmission = 0
  2760. Particles.Size = NumberSequence.new(S.bloodSettings.Size)
  2761. Particles.Texture = S.bloodSettings.Texture
  2762. Particles.Transparency = NumberSequence.new(
  2763. {
  2764. NumberSequenceKeypoint.new(0, S.bloodSettings.startTransparency);
  2765. NumberSequenceKeypoint.new(1, 1);
  2766. }
  2767. )
  2768. Particles.EmissionDirection = Enum.NormalId.Top
  2769. Particles.Lifetime = NumberRange.new(S.bloodSettings.Lifetime - 0.05, S.bloodSettings.Lifetime + 0.05)
  2770. Particles.Rate = S.bloodSettings.Rate
  2771. Particles.Rotation = NumberRange.new(0, 90)
  2772. Particles.Speed = NumberRange.new(S.bloodSettings.Speed)
  2773. Particles.VelocitySpread = S.bloodSettings.Spread
  2774. Particles.Parent = Blood
  2775.  
  2776. Blood.Parent = gunIgnore
  2777. Blood.CFrame = bloodCF
  2778. if (not H.Anchored) then
  2779. local Weld = Instance.new("Weld", Blood)
  2780. Weld.Part0 = H
  2781. Weld.Part1 = Blood
  2782. Weld.C0 = H.CFrame:toObjectSpace(bloodCF)
  2783. Blood.Anchored = false
  2784. end
  2785. delay(0.15, function()
  2786. Particles.Enabled = false
  2787. wait(S.bloodSettings.Lifetime + 0.05)
  2788. Blood:Destroy()
  2789. end)
  2790. end)
  2791.  
  2792. ----------------------------------------------------------------------
  2793. --------------------[ TRAIL HANDLING ]--------------------------------
  2794. ----------------------------------------------------------------------
  2795.  
  2796. local createTrail = script:WaitForChild("createTrail")
  2797. createTrail.OnServerEvent:connect(function(_, Origin, P, gunIgnore, S)
  2798. local Trail = Instance.new("Part")
  2799. Trail.BrickColor = S.trailSettings.Color
  2800. Trail.Transparency = S.trailSettings.Transparency
  2801. Trail.Anchored = true
  2802. Trail.CanCollide = false
  2803. Trail.Size = V3(1, 1, 1)
  2804. local Mesh = Instance.new("CylinderMesh")
  2805. Mesh.Offset = V3(0, -(P - Origin).magnitude / 2, 0)
  2806. Mesh.Scale = V3(S.trailSettings.Thickness, (P - Origin).magnitude, S.trailSettings.Thickness)
  2807. Mesh.Parent = Trail
  2808. Trail.Parent = gunIgnore
  2809. Trail.CFrame = CF(Origin, P) * CFANG(RAD(90), 0, 0)
  2810. delay(S.trailSettings.visibleTime, function()
  2811. if S.trailSettings.disappearTime > 0 then
  2812. local t0 = tick()
  2813. while true do
  2814. local Alpha = math.min((tick() - t0) / S.trailSettings.disappearTime, 1)
  2815. Trail.Transparency = numLerp(S.trailSettings.Transparency, 1, Alpha)
  2816. if Alpha == 1 then break end
  2817. wait()
  2818. end
  2819. Trail:Destroy()
  2820. else
  2821. Trail:Destroy()
  2822. end
  2823. end)
  2824. end)
  2825. end))
  2826. ObjectValue194.Name = "Plyr"
  2827. ObjectValue194.Parent = Script193
  2828. RemoteFunction195.Name = "getWeldCF"
  2829. RemoteFunction195.Parent = Script193
  2830. RemoteFunction196.Name = "gunSetup"
  2831. RemoteFunction196.Parent = Script193
  2832. RemoteFunction197.Name = "tweenJoint"
  2833. RemoteFunction197.Parent = Script193
  2834. RemoteEvent198.Name = "onRenderStep"
  2835. RemoteEvent198.Parent = Script193
  2836. RemoteFunction199.Name = "createTweenIndicator"
  2837. RemoteFunction199.Parent = Script193
  2838. RemoteFunction200.Name = "deleteTweenIndicator"
  2839. RemoteFunction200.Parent = Script193
  2840. RemoteFunction201.Name = "lerpCF"
  2841. RemoteFunction201.Parent = Script193
  2842. LocalScript202.Name = "resetCam"
  2843. LocalScript202.Parent = Script193
  2844. table.insert(cors,sandbox(LocalScript202,function()
  2845. repeat wait() until game.Players.LocalPlayer.Character
  2846.  
  2847. local Player = game.Players.LocalPlayer
  2848. local Char = Player.Character
  2849. local Humanoid = Char:WaitForChild("Humanoid")
  2850.  
  2851. local Cam = game.Workspace.CurrentCamera
  2852. local UIS = game:GetService("UserInputService")
  2853.  
  2854. local ignoreCode = script:WaitForChild("ignoreCode")
  2855. repeat wait() until ignoreCode.Value ~= 0
  2856. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  2857. local gunIgnore = ignoreModel:FindFirstChild("gunIgnore_"..Player.Name)
  2858.  
  2859. Cam.FieldOfView = 70
  2860. Cam.CameraType = Enum.CameraType.Custom
  2861. Cam:ClearAllChildren()
  2862.  
  2863. UIS.MouseBehavior = Enum.MouseBehavior.Default
  2864. UIS.MouseIconEnabled = true
  2865.  
  2866. Player.CameraMode = Enum.CameraMode.Classic
  2867.  
  2868. Humanoid.WalkSpeed = 16
  2869. Humanoid.AutoRotate = true
  2870.  
  2871. if gunIgnore then gunIgnore:Destroy() end
  2872. end))
  2873. IntValue203.Name = "ignoreCode"
  2874. IntValue203.Parent = LocalScript202
  2875. RemoteEvent204.Name = "createBulletImpact"
  2876. RemoteEvent204.Parent = Script193
  2877. RemoteEvent205.Name = "createShockwave"
  2878. RemoteEvent205.Parent = Script193
  2879. RemoteEvent206.Name = "createBlood"
  2880. RemoteEvent206.Parent = Script193
  2881. RemoteEvent207.Name = "createTrail"
  2882. RemoteEvent207.Parent = Script193
  2883. LocalScript208.Name = "clientMain"
  2884. LocalScript208.Parent = Tool0
  2885. table.insert(cors,sandbox(LocalScript208,function()
  2886. --[[
  2887. Kit By TurboFusion
  2888. Remake By MuYhEt & Xander521
  2889. --]]
  2890. --------------------------------------------------------------------------------------
  2891. --------------------[ CHARACTER LOADING ]---------------------------------------------
  2892. --------------------------------------------------------------------------------------
  2893.  
  2894. repeat wait() until game.Players.LocalPlayer.Character
  2895. repeat wait() until game.Players.LocalPlayer.Character:IsDescendantOf(game.Workspace)
  2896. wait(1 / 20)
  2897.  
  2898. --------------------------------------------------------------------------------------
  2899. --------------------[ IGNORE MODEL ]--------------------------------------------------
  2900. --------------------------------------------------------------------------------------
  2901.  
  2902. local ignoreCode = script:WaitForChild("ignoreCode")
  2903.  
  2904. repeat wait() until ignoreCode.Value ~= 0
  2905.  
  2906. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  2907.  
  2908. local grenadeFolder = ignoreModel:WaitForChild("grenadeFolder")
  2909.  
  2910. --------------------------------------------------------------------------------------
  2911. --------------------[ CONSTANTS ]-----------------------------------------------------
  2912. --------------------------------------------------------------------------------------
  2913.  
  2914. local Gun = script.Parent
  2915. local serverMain = Gun:WaitForChild("serverMain")
  2916. local Handle = Gun:WaitForChild("Handle")
  2917. local AimPart = Gun:WaitForChild("AimPart")
  2918. local Main = Gun:WaitForChild("Main")
  2919.  
  2920. local Ammo = Gun:WaitForChild("Ammo")
  2921. local ClipSize = Gun:WaitForChild("ClipSize")
  2922. local StoredAmmo = Gun:WaitForChild("StoredAmmo")
  2923.  
  2924. local createTweenIndicator = serverMain:WaitForChild("createTweenIndicator")
  2925. local deleteTweenIndicator = serverMain:WaitForChild("deleteTweenIndicator")
  2926. local getWeldCF = serverMain:WaitForChild("getWeldCF")
  2927. local gunSetup = serverMain:WaitForChild("gunSetup")
  2928. local lerpCF = serverMain:WaitForChild("lerpCF")
  2929. local createBlood = serverMain:WaitForChild("createBlood")
  2930. local createBulletImpact = serverMain:WaitForChild("createBulletImpact")
  2931. local createShockwave = serverMain:WaitForChild("createShockwave")
  2932. local createTrail = serverMain:WaitForChild("createTrail")
  2933.  
  2934. local Particle = {}
  2935. function Particle.new(Prop)
  2936. ----------[ CONSTANTS ]--------------------
  2937.  
  2938. local Cam = workspace.CurrentCamera
  2939. local rayIgnore = Prop.rayIgnore or {} --If the property doesn't exist, then set it to it's default
  2940. local Color = Prop.Color or Color3.new(1, 1, 1)
  2941. local Length = Prop.Length or 1
  2942. local Width = Prop.Width or 1
  2943. local p0 = Prop.p0 or error("Particle.new requires a p0 (origin position) property!", 0) --Give an error message if you don't this
  2944. local v0 = Prop.v0 or error("Particle.new requires a v0 (initial velocity) property!", 0)
  2945. local a0 = Prop.a0 or error("Particle.new requires an a0 (initial acceleration) property!", 0)
  2946.  
  2947. ----------[ VARIABLES ]--------------------
  2948.  
  2949. local Deleted = false
  2950. local p = p0 --Set the position, velocity, and acceleration as the intial conditions
  2951. local v = v0
  2952. local a = a0
  2953. local t = 0
  2954.  
  2955. ----------[ FUNCTIONS ]--------------------
  2956.  
  2957. local function worldWidthToScreenWidth(Width, Depth) --A function I made that gives you a screen width given a world width and depth
  2958. local Center = Cam.CoordinateFrame * CFrame.new(0, 0, -Depth)
  2959. local wp1 = (Center * CFrame.new(0, Width / 2, 0)).p
  2960. local wp2 = (Center * CFrame.new(0, -Width / 2, 0)).p
  2961. local sp1 = Cam:WorldToScreenPoint(wp1) --Use the WorldToScreenPoint method of the camera to get the screen width from the world width
  2962. local sp2 = Cam:WorldToScreenPoint(wp2)
  2963. return (sp1 - sp2).magnitude
  2964. end
  2965.  
  2966. ----------[ MAIN PROGRAM ]-----------------
  2967.  
  2968. local Container = Instance.new("Frame")
  2969. Container.BackgroundTransparency = 1
  2970. Container.Position = UDim2.new()
  2971. Container.Size = UDim2.new()
  2972. local Line = Instance.new("Frame")
  2973. Line.BackgroundColor3 = Color
  2974. Line.BorderSizePixel = 0
  2975. Line.Position = UDim2.new()
  2976. Line.Size = UDim2.new()
  2977. Line.Parent = Container
  2978.  
  2979. return setmetatable(
  2980. {
  2981. delete = function() --This function safely removes the particle
  2982. Container:Destroy()
  2983. Deleted = true
  2984. end
  2985. },
  2986. {
  2987. __index = function(_, Index)
  2988. if Index == "p" or Index == "position" then --Return the world position of the particle
  2989. return (Deleted and nil or p)
  2990. elseif Index == "v" or Index == "velocity" then --Return the world velocity of the particle
  2991. return (Deleted and nil or v)
  2992. elseif Index == "obj" or Index == "object" then --Return the particle frame itself
  2993. return (Deleted and nil or Container)
  2994. else
  2995. error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is called
  2996. end
  2997. end;
  2998.  
  2999. __newindex = function(_, Index, Value)
  3000. if Index == "t" or Index == "time" and (not Deleted) then --Render the particle given a time value
  3001. t = Value
  3002. p = p0 + (v0 * t) + (0.5 * a0 * t * t) --update the position given the time
  3003. v = v0 + (a0 * t) --update the velocity given the time
  3004.  
  3005. local testRay1 = Ray.new(Cam.CoordinateFrame.p, (p + (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
  3006. local testRay2 = Ray.new(Cam.CoordinateFrame.p, (p - (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
  3007. local H1, _ = workspace:FindPartOnRayWithIgnoreList(testRay1, rayIgnore)
  3008. local H2, _ = workspace:FindPartOnRayWithIgnoreList(testRay2, rayIgnore)
  3009.  
  3010. if H1 and H2 then
  3011. Line.Visible = false
  3012. else
  3013. local face1 = Cam:WorldToScreenPoint(p + (v.unit * Length) / 2) --Get the 2 endpoints of the particle in screen space
  3014. local face2 = Cam:WorldToScreenPoint(p - (v.unit * Length) / 2)
  3015. local Center, isVisible = Cam:WorldToScreenPoint(p) --Get the center of the particle in screen space
  3016.  
  3017. local screenLength = (face1 - face2).magnitude
  3018. local screenWidth = worldWidthToScreenWidth(Width, Center.Z)
  3019. 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
  3020.  
  3021. Line.Position = UDim2.new(0, 0, 0, -screenWidth / 2)
  3022. Line.Size = UDim2.new(1, 0, 0, screenWidth)
  3023. Line.Visible = isVisible --Make the particle invisible if the world point isn't on screen
  3024.  
  3025. Container.Position = UDim2.new(
  3026. 0,
  3027. face2.X + (math.cos(Ang) - 1) * screenLength / 2, --Yay trig!
  3028. 0,
  3029. face2.Y + math.sin(Ang) * screenLength / 2
  3030. )
  3031. Container.Size = UDim2.new(0, screenLength, 0, 0)
  3032. Container.Rotation = math.deg(Ang)
  3033. end
  3034. else
  3035. error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is being changed
  3036. end
  3037. end
  3038. }
  3039. )
  3040. end
  3041. local Spring = {}
  3042. function Spring.new(Initial)
  3043. local t0 = tick()
  3044. local p0 = Initial or 0
  3045. local v0 = Initial and Vector3.new() or 0
  3046. local t = Initial or 0
  3047. local d = 1
  3048. local s = 1
  3049.  
  3050. local function positionVelocity(Tick)
  3051. local x = Tick - t0
  3052. local c0 = p0 - t
  3053. if s == 0 then
  3054. return p0, 0
  3055. elseif d < 1 then
  3056. local c = math.sqrt(1 - d ^ 2)
  3057. local c1 = (v0 / s + d * c0) / c
  3058. local co = math.cos(c * s * x)
  3059. local si = math.sin(c * s * x)
  3060. local e = math.exp(d * s * x)
  3061. local p = t + (c0 * co + c1 * si) / e
  3062. local v = s * ((c * c1 - d * c0) * co - (c * c0 + d * c1) * si) / e
  3063. return p, v
  3064. else
  3065. local c1 = v0 / s + c0
  3066. local e = math.exp(s * x)
  3067. local p = t + (c0 + c1 * s * x) / e
  3068. local v = s * (c1 - c0 - c1 * s * x) / e
  3069. return p, v
  3070. end
  3071. end
  3072.  
  3073. return setmetatable(
  3074. {
  3075. accelerate = function(_, acceleration)
  3076. local T = tick()
  3077. local p, v = positionVelocity(T)
  3078. p0 = p
  3079. v0 = v + acceleration
  3080. t0 = T
  3081. end;
  3082. },
  3083. {
  3084. __index = function(_, index)
  3085. if index == "value" or index == "position" or index == "p" then
  3086. local p, v = positionVelocity(tick())
  3087. return p
  3088. elseif index == "velocity" or index == "v" then
  3089. local p, v = positionVelocity(tick())
  3090. return v
  3091. elseif index == "acceleration" or index == "a" then
  3092. local x = tick() - t0
  3093. local c0 = p0 - t
  3094. if s == 0 then
  3095. return 0
  3096. elseif d < 1 then
  3097. local c = math.sqrt(1 - d ^ 2)
  3098. local c1 = (v0 / s + d * c0) / c
  3099. local cs = (c0 * d ^ 2 - 2 * c * d * c1 - c0 * c ^ 2) * math.cos(c * s * x)
  3100. local sn = (c1 * d ^ 2 + 2 * c * d * c0 - c1 * c ^ 2) * math.sin(c * s * x)
  3101. return s ^ 2 *(cs + sn) / math.exp(d * s * x)
  3102. else
  3103. local c1 = v0 / s + c0
  3104. return s ^ 2 * (c0 - 2 * c1 + c1 * s * x) / math.exp(s * x)
  3105. end
  3106. elseif index == "target" or index == "t" then
  3107. return t
  3108. elseif index == "damper" or index == "d" then
  3109. return d
  3110. elseif index == "speed" or index == "s" then
  3111. return s
  3112. elseif index == "magnitude" or index == "m" then
  3113. local p, v = positionVelocity(tick())
  3114. return p.magnitude
  3115. else
  3116. error(index.." is not a valid member of spring", 0)
  3117. end
  3118. end;
  3119.  
  3120. __newindex = function(_, index, value)
  3121. local T = tick()
  3122. if index == "value" or index == "position" or index == "p" then
  3123. local p, v = positionVelocity(T)
  3124. p0, v0 = value, v
  3125. elseif index == "velocity" or index == "v" then
  3126. local p, v = positionVelocity(T)
  3127. p0, v0 = p, value
  3128. elseif index == "acceleration" or index == "a" then
  3129. local p, v = positionVelocity(T)
  3130. p0, v0 = p, v + value
  3131. elseif index == "target" or index == "t" then
  3132. p0, v0 = positionVelocity(T)
  3133. t = value
  3134. elseif index == "damper" or index == "d" then
  3135. p0, v0 = positionVelocity(T)
  3136. d = value < 0 and 0 or value < 1 and value or 1
  3137. elseif index == "speed" or index == "s" then
  3138. p0, v0 = positionVelocity(T)
  3139. s = value < 0 and 0 or value
  3140. else
  3141. error(index.." is not a valid member of spring", 0)
  3142. end
  3143. t0 = T
  3144. end;
  3145. }
  3146. )
  3147. end
  3148. local Anims = {
  3149.  
  3150. Reload = function(S) --This is the main reload animation. The parameter S contains all the variables and functions that are necessary for this animation
  3151. --[[
  3152. FUNCTION LIST_
  3153.  
  3154. S.tweenJoint(Joint, newC0, newC1, Alpha, Duration) --This function tweens a joint to a given C0 and C1. The Alpha parameter is function
  3155. 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,
  3156. 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
  3157. is useful if you only want to mess with the C0 or C1 property of a weld.
  3158.  
  3159. S.makeMagInvisible() --This function makes the mag invisible so it looks like the mag was removed
  3160.  
  3161. S.makeMagVisible() --This function makes the mag visible again at whatever the previous transparency of the mag parts were
  3162.  
  3163. 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
  3164. the animation was stopped midway and where to restart the animation
  3165.  
  3166. 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
  3167. used to decide if a chambering animation should play after the reload animation
  3168.  
  3169. S.setNewMag() --This function sets the newMag variable in the clientMain to true which basically lets the script know that a new mag was
  3170. 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
  3171. then the script will simply play the chambering animation instead of putting in another mag
  3172.  
  3173. 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
  3174. 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
  3175.  
  3176. 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
  3177. function and it returns a Model containing the Mag and a table that contains the original mag bricks and the corresponding clone. NOTE,
  3178. the mag bricks will be made non can collide
  3179.  
  3180. 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
  3181. and the brick that all the other mag parts are welded to
  3182.  
  3183. S.attachGripToHead() --This function detaches the grip from the right arm and attaches it to the Head. This is so you can make reload
  3184. 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
  3185. position that it was in before you detached the grip from the right arm.
  3186.  
  3187. 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
  3188. stays in the position that it was in before you detached the grip from the head
  3189.  
  3190. 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
  3191. sine of that number, which is a number between 0 and 1, which is used to tween a Joint with a Sine movement
  3192.  
  3193. S.Linear(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return
  3194. the number / 90, which is a number between 0 and 1, which is used to a tween a Joint with a Linear movement
  3195.  
  3196. VARIABLE LIST_
  3197.  
  3198. S.Handle --This variable is the Handle of gun
  3199.  
  3200. S.LArm --This variable is the left arm
  3201.  
  3202. S.RArm --This variable is the right arm
  3203.  
  3204. S.LWeld --This variable is the left arm weld which is attached to the animBase
  3205.  
  3206. S.RWeld --This variable is the right arm weld which is attached to the animBase
  3207.  
  3208. S.LC0 --This variable is the cframe of the left arm joint with respect to the torso
  3209.  
  3210. S.RC0 --This variable is the cframe of the right arm joint with respect to the torso
  3211.  
  3212. S.Grip --This variable is the Grip weld which is attached to right arm
  3213.  
  3214. S.gunIgnore --This variable is the gun ignore model which contains the fake arms and bullets and other stuff
  3215.  
  3216. S.Cam --This variable is the player camera
  3217.  
  3218. S.CF --This variable is the shortened form of CFrame.new which you can use instead of CFrame.new
  3219.  
  3220. S.CFANG --This variable is the shortened form of CFrame.Angles which you can use instead of CFrame.Angles
  3221.  
  3222. S.V3 --This variable is the shortened form of Vector3.new which you can use instead of Vector3.new
  3223.  
  3224. S.RAD --This variable is the shortened form of math.rad which you can use instead of math.rad
  3225.  
  3226. S.reloadTimeLoaded --This variable is the reload time for when the gun is loaded which you can use to modify how fast the reload
  3227. animation runs
  3228.  
  3229. S.reloadTimeEmpty --This variable is the reload time for when the gun is empty which you can use to modify how fast the reload
  3230. animation runs
  3231. --]]
  3232.  
  3233. local W1 = nil
  3234. local W2 = nil
  3235. local animSpeed = S.isMagEmpty() and S.reloadTimeEmpty / 1.3 or S.reloadTimeLoaded / 0.9
  3236. return {
  3237. function()
  3238. if (not S.isNewMag()) then
  3239. if S.isMagVisible() then
  3240. local Mag1, magTable1 = S.createMag("Mag1")
  3241.  
  3242. Mag1.Parent = S.gunIgnore
  3243.  
  3244. W1 = Instance.new("Weld")
  3245. W1.Part0 = magTable1[1].magClone
  3246. W1.Part1 = S.Handle
  3247. W1.C0 = magTable1[1].Original.CFrame:toObjectSpace(S.Handle.CFrame)
  3248. W1.Parent = magTable1[1].magClone
  3249.  
  3250. 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)
  3251. 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)
  3252. S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.1 * animSpeed)
  3253. wait(0.2 * animSpeed)
  3254. end
  3255. end
  3256. end;
  3257.  
  3258. function()
  3259. if (not S.isNewMag()) then
  3260. if S.isMagVisible() then
  3261. S.makeMagInvisible()
  3262. W1:Destroy()
  3263. local Mag1, magTable1 = S.getMag("Mag1")
  3264. magTable1[1].magClone.Velocity = S.Handle.Velocity + S.Handle.CFrame:vectorToWorldSpace(S.V3(0, -1, 0)) * 20
  3265.  
  3266. 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)
  3267. S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3268. else
  3269. 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)
  3270. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3271. end
  3272.  
  3273. 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)
  3274.  
  3275. wait(0.25 * animSpeed)
  3276. end
  3277. end;
  3278.  
  3279. function()
  3280. if (not S.isNewMag()) then
  3281. local Mag1, magTable1 = S.getMag("Mag1")
  3282. if Mag1 then Mag1:Destroy() end
  3283.  
  3284. local Mag2, magTable2 = S.createMag("Mag2")
  3285.  
  3286. Mag2.Parent = S.gunIgnore
  3287.  
  3288. 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()
  3289. 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()
  3290. local handleOffsetCF = S.RArm.CFrame:toObjectSpace(S.RArm.CFrame * S.Grip.C0 * (S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10))):inverse())
  3291. local originalMagOffsetCF = S.Handle.CFrame:toObjectSpace(magTable2[1].Original.CFrame)
  3292. local newMagC0 = LArmCF:toObjectSpace(RArmCF * handleOffsetCF * originalMagOffsetCF)
  3293.  
  3294. W2 = Instance.new("Weld")
  3295. W2.Part0 = S.LArm
  3296. W2.Part1 = magTable2[1].magClone
  3297. W2.C0 = newMagC0
  3298. W2.Parent = magTable2[1].magClone
  3299.  
  3300. 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
  3301. 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)
  3302. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3303. wait(0.2 * animSpeed)
  3304. end
  3305. end;
  3306.  
  3307. function()
  3308. if (not S.isNewMag()) then
  3309. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
  3310. 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
  3311. 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)
  3312.  
  3313. wait(0.2 * animSpeed)
  3314. end
  3315. end;
  3316.  
  3317. function()
  3318. if (not S.isNewMag()) then
  3319. local Mag1, _ = S.getMag("Mag1")
  3320. local Mag2, _ = S.getMag("Mag2")
  3321. S.makeMagVisible()
  3322. S.setNewMag()
  3323. if Mag1 then Mag1:Destroy() end
  3324. Mag2:Destroy()
  3325. end
  3326. end;
  3327.  
  3328. function()
  3329. if S.isMagEmpty() then
  3330. if S.isNewMag() then
  3331. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
  3332. 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
  3333. 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)
  3334. end
  3335. S.tweenJoint(S.LWeld, nil, S.CF(0, 1.3, -0.55) * S.CFANG(S.RAD(-26), 0, 0), S.Sine, 0.2 * animSpeed)
  3336.  
  3337. wait(0.2 * animSpeed)
  3338. end
  3339. end;
  3340.  
  3341. function()
  3342. if S.isMagEmpty() then
  3343. 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)
  3344.  
  3345. wait(0.05 * animSpeed)
  3346. end
  3347. end;
  3348.  
  3349. function()
  3350. if S.isMagEmpty() then
  3351. 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)
  3352.  
  3353. wait(0.15 * animSpeed)
  3354. end
  3355. end;
  3356. }
  3357. end;
  3358.  
  3359. Cocking = function(S)
  3360.  
  3361. end;
  3362.  
  3363. Crawling = function(X, moveDirection, moveSpeed) --This is the animation for when you're crawling
  3364. --[[
  3365. The moveDirection gives you the angle at which your character is moving with respect to the way you're facing. So if you're
  3366. moving to the right and you're facing forward then the moveDirection will give you an angle of -90. If you're moving backward
  3367. and you're facing forward then the moveDirection will give you an angle of 180. I use this angle to adjust the crawling animation
  3368. 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
  3369.  
  3370. 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
  3371. 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
  3372. moving really slow the animation will play slower
  3373. --]]
  3374. return {
  3375. leftArm = CFrame.Angles( --This is what the cframe of the right arm will be when you're crawling
  3376. 0,
  3377. math.rad(90),
  3378. math.rad(-10)
  3379. ) * CFrame.new(
  3380. math.sin(moveDirection) * (math.sin(X * 6) / 4) - 0.2,
  3381. math.cos(moveDirection) * (math.sin(X * 6) / 2) - 0.1,
  3382. math.max(math.cos(X * 6) / 4, 0) - 0.1
  3383. ) * CFrame.Angles(
  3384. -math.max(math.cos(X * 6) / 4, 0),
  3385. 0,
  3386. 0
  3387. );
  3388. leftLeg = CFrame.new( --This is what the cframe of the left leg will be when you're crawling
  3389. math.sin(moveDirection) * (-math.sin(X * 6) / 4) - 0.2,
  3390. math.cos(moveDirection) * (math.sin(X * 6) / 2) + 0.3,
  3391. math.max(math.cos(X * 6) / 4, 0) - 0.1
  3392. ):inverse() * CFrame.Angles(
  3393. 0,
  3394. 0,
  3395. -math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
  3396. );
  3397. rightArm = CFrame.Angles( --This is what the cframe of the left arm will be when you're crawling
  3398. 0,
  3399. math.rad(-5),
  3400. math.rad(10)
  3401. ) * CFrame.new(
  3402. math.sin(moveDirection) * (-math.sin(X * 6) / 4) + 0.2,
  3403. math.cos(moveDirection) * (-math.sin(X * 6) / 5) - 0.2,
  3404. math.max(math.cos((X + math.rad(30)) * 6) / 10, 0) - 0.1
  3405. ) * CFrame.Angles(
  3406. -math.max(math.cos((X + math.rad(30)) * 6) / 10, 0),
  3407. 0,
  3408. 0
  3409. );
  3410. rightLeg = CFrame.new( --This is what the cframe of the right leg will be when you're crawling
  3411. math.sin(moveDirection) * (math.sin(X * 6) / 4) + 0.2,
  3412. math.cos(moveDirection) * (-math.sin(X * 6) / 2) + 0.3,
  3413. math.max(math.cos((X + math.rad(30)) * 6) / 4, 0) - 0.1
  3414. ):inverse() * CFrame.Angles(
  3415. 0,
  3416. 0,
  3417. math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
  3418. );
  3419. Grip = CFrame.Angles( --This is what the cframe of the grip will be when you're crawling
  3420. math.max(math.cos((X + math.rad(30)) * 6) / 7, 0),
  3421. math.rad(5),
  3422. 0
  3423. );
  3424. 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
  3425. }
  3426. end;
  3427.  
  3428. Idling = { --This table holds the Idling animations
  3429.  
  3430. unAimed = function(X) --This is the animation when the gun is not aimed
  3431. return {
  3432. Pos = Vector3.new(
  3433. math.sin(X / 2) / 70, --Side to Side motion
  3434. math.sin(X * 5 / 4) / 70, --Up and Down motion
  3435. math.sin(X * 3 / 4) / 70 --Forward and backward motion
  3436. );
  3437. Rot = Vector3.new(
  3438. 0, --Pitch rotation
  3439. 0, --Yaw rotation
  3440. 0 --Roll rotation
  3441. );
  3442. }
  3443. end;
  3444.  
  3445. Aimed = function(X) --This is the animation when the gun is aimed
  3446. return {
  3447. Pos = Vector3.new(
  3448. math.sin(X * 3 / 8) / 140,
  3449. math.sin(X * 15 / 16) / 140,
  3450. 0
  3451. );
  3452. Rot = Vector3.new(
  3453. 0,
  3454. 0,
  3455. 0
  3456. );
  3457. }
  3458. end;
  3459.  
  3460. };
  3461.  
  3462. Walking = { --This table holds the Walking animations
  3463.  
  3464. unAimed = function(X) --This is the animation when the gun is not aimed
  3465. return {
  3466. Pos = Vector3.new(
  3467. 4 * math.sin(X * 4.5) / 50,
  3468. 1.5 * math.sin(X * 9) / 50,
  3469. 0
  3470. );
  3471. Rot = Vector3.new(
  3472. 0,
  3473. 0,
  3474. math.rad(math.sin(X * 4.5)) * 2
  3475. );
  3476. }
  3477. end;
  3478.  
  3479. Aimed = function(X) --This is the animation when the gun is aimed
  3480. return {
  3481. Pos = Vector3.new(
  3482. 2 * math.sin(X * 3) / 150,
  3483. 0.75 * math.sin(X * 6) / 150,
  3484. 0
  3485. );
  3486. Rot = Vector3.new(
  3487. 0,
  3488. 0,
  3489. math.rad(math.sin(X * 3)) / 3
  3490. );
  3491. }
  3492. end;
  3493.  
  3494. };
  3495.  
  3496. Running = function(X) --This is the animation when the player is running
  3497. return {
  3498. Pos = Vector3.new(
  3499. 4 * math.sin(X * 4.5 * 1.5) / 30,
  3500. 1.5 * math.sin(X * 9 * 1.5) / 40 + 0.2,
  3501. 0
  3502. );
  3503. Rot = Vector3.new(
  3504. 0,
  3505. -math.rad(math.sin(X * 4.5 * 1.5)) * 5 + math.rad(3),
  3506. math.rad(math.sin(X * 4.5 * 1.5)) * 5
  3507. );
  3508. }
  3509. end;
  3510.  
  3511. }
  3512. local Plugins = {
  3513.  
  3514. KeyDown = {
  3515. { --This is a plugin for a toggleable laser
  3516. Key = "v"; --This is the key you press to activate the plugin
  3517. Description = "Toggle Laser"; --This is what the description of the key will be in the controls
  3518. Plugin = function() --This is the actual plugin function
  3519. local Laser = Gun:WaitForChild("Laser") --These few lines wait for the necessary bricks/models
  3520. local Handle = Gun:WaitForChild("Handle")
  3521. local ignoreCode = Gun.clientMain:WaitForChild("ignoreCode")
  3522. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  3523.  
  3524. local PlyrName = game.Players:GetPlayerFromCharacter(Gun.Parent).Name
  3525. local playerFolder = ignoreModel:WaitForChild("gunIgnore_"..PlyrName)
  3526.  
  3527. local RS = game:GetService("RunService")
  3528.  
  3529. local function createLaserDot() --This function creates the red laser dot
  3530. local laserDot = Instance.new("Part")
  3531. laserDot.Transparency = 1
  3532. laserDot.Name = "laserDot"
  3533. laserDot.Anchored = true
  3534. laserDot.CanCollide = false
  3535. laserDot.FormFactor = Enum.FormFactor.Custom
  3536. laserDot.Size = Vector3.new(0.25, 0.25, 1)
  3537.  
  3538. local laserGui = Instance.new("SurfaceGui")
  3539. laserGui.CanvasSize = Vector2.new(100, 100)
  3540. laserGui.Parent = laserDot
  3541.  
  3542. local laserImage = Instance.new("ImageLabel")
  3543. laserImage.BackgroundTransparency = 1
  3544. laserImage.Size = UDim2.new(1, 0, 1, 0)
  3545. laserImage.Image = "http://www.roblox.com/asset/?id=131394739"
  3546. laserImage.Parent = laserGui
  3547.  
  3548. --[[local laserLight = Instance.new("SurfaceLight")
  3549. laserLight.Angle = 180
  3550. laserLight.Brightness = math.huge
  3551. laserLight.Color = Color3.new(1, 0, 0)
  3552. laserLight.Face = Enum.NormalId.Back
  3553. laserLight.Range = 5
  3554. laserLight.Shadows = true
  3555. laserLight.Parent = laserDot]]
  3556.  
  3557. return laserDot
  3558. end
  3559.  
  3560. local function getHitSurfaceCFrame(Pos, Obj) --This function returns the proper cframe based on the face that the position is on
  3561. local surfaceCF = {
  3562. {"Back", Obj.CFrame * CFrame.new(0, 0, Obj.Size.z)};
  3563. {"Bottom", Obj.CFrame * CFrame.new(0, -Obj.Size.y, 0)};
  3564. {"Front", Obj.CFrame * CFrame.new(0, 0, -Obj.Size.z)};
  3565. {"Left", Obj.CFrame * CFrame.new(-Obj.Size.x, 0, 0)};
  3566. {"Right", Obj.CFrame * CFrame.new(Obj.Size.x, 0, 0)};
  3567. {"Top", Obj.CFrame * CFrame.new(0, Obj.Size.y, 0)}
  3568. }
  3569. local closestDist = math.huge
  3570. local closestSurface = nil
  3571. for _,v in pairs(surfaceCF) do
  3572. local surfaceDist = (Pos - v[2].p).magnitude
  3573. if surfaceDist < closestDist then
  3574. closestDist = surfaceDist
  3575. closestSurface = v
  3576. end
  3577. end
  3578.  
  3579. local surfaceDir = CFrame.new(Obj.CFrame.p, closestSurface[2].p)
  3580. local surfaceDist = surfaceDir.lookVector * ((Obj.CFrame.p - closestSurface[2].p).magnitude / 2 - 0.25)
  3581. local surfaceOffset = Pos - closestSurface[2].p + surfaceDist
  3582. local surfaceCFrame = surfaceDir + surfaceDist + surfaceOffset
  3583.  
  3584. return surfaceCFrame
  3585. end
  3586.  
  3587. local laserDot = createLaserDot() --The code is cleaner when the laser creating code is in a function
  3588.  
  3589. Laser.Transparency = (Laser.Transparency == 1 and 0 or 1) --Toggles the laser on or off
  3590.  
  3591. while math.floor(Laser.Transparency) == 0 do --This loop will keep running as long as the laser is visible
  3592. if (not game.Players:GetPlayerFromCharacter(Gun.Parent)) then break end --This checks if the gun is a child of the character
  3593.  
  3594. local newRay = Ray.new(Laser.Position, Handle.CFrame.lookVector * 999)
  3595. local H, P = game.Workspace:FindPartOnRay(newRay, ignoreModel)
  3596.  
  3597. local Distance = (P - Laser.Position).magnitude
  3598. Laser.Mesh.Offset = Vector3.new(0, Distance / 2, 0)
  3599. Laser.Mesh.Scale = Vector3.new(0.075, Distance / 0.2, 0.075)
  3600.  
  3601. if H then
  3602. laserDot.CFrame = getHitSurfaceCFrame(P, H) --If the laser hits a part then position the dot on the part
  3603. laserDot.Parent = playerFolder
  3604. else
  3605. laserDot.Parent = nil --If the laser doesn't hit a part then temporarily remove the laser dor
  3606. end
  3607.  
  3608. RS.RenderStepped:wait()
  3609. end
  3610.  
  3611. laserDot:Destroy() --These lines reset the laser if the laser is transparent or the gun was deselected
  3612. Laser.Transparency = 1
  3613. Laser.Mesh.Offset = Vector3.new()
  3614. Laser.Mesh.Scale = Vector3.new(0.075, 0, 0.075)
  3615. end;
  3616. };
  3617.  
  3618. { --This is a plugin for a toggleable flashlight
  3619. Key = "z";
  3620. Description = "Toggle Flashlight";
  3621. Plugin = function()
  3622. local Flashlight = Gun:WaitForChild("Flashlight")
  3623. if Flashlight then
  3624. for _, Light in pairs(Flashlight:GetChildren()) do
  3625. if Light.Name == "Light" then
  3626. Light.Enabled = (not Light.Enabled)
  3627. end
  3628. end
  3629. end
  3630. end
  3631. };
  3632. };
  3633.  
  3634. KeyUp = {
  3635.  
  3636. };
  3637.  
  3638. Firing = {
  3639. Plugin = function()
  3640. --Put code here
  3641. end;
  3642. };
  3643.  
  3644. Aimed = {
  3645. Plugin = function()
  3646. --Put code here
  3647. end;
  3648. };
  3649.  
  3650. UnAimed = {
  3651. Plugin = function()
  3652. --Put code here
  3653. end;
  3654. };
  3655.  
  3656. OnEquipped = {
  3657. Plugin = function()
  3658. --Put code here
  3659. end
  3660. };
  3661.  
  3662. OnUnEquipped = {
  3663. Plugin = function()
  3664. --Put code here
  3665. end
  3666. };
  3667.  
  3668. }
  3669. local S = {
  3670.  
  3671.  
  3672. 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
  3673. true, and Burst and Auto can't both be true)]]
  3674. Semi = true; --Set this true if you want the gun to be semi-automatic. (Pistols, Snipers, etc)
  3675. Auto = false; --Set this true if you want the gun to be fully automatic. (Assault Rifles, Submachine guns, machine guns, etc)
  3676. Burst = false; --Set this true if you want the gun to be burst fire. (Battle rifles, assault rifles, etc)
  3677. Shot = true; --Set this true if you want the gun to be a shotgun. (NOTE: Shot and auto can both be true)
  3678. Explosive = true; --Set this true if you want the projectiles to be explosive. (Rocket launchers, grenade launchers, etc)
  3679. };
  3680.  
  3681. selectFire = true; --This is whether or not select fire is enabled
  3682. selectFireSettings = {
  3683. Animation = true; --This is whether or not there will be an animation for when you switch fire modes
  3684. GUI = true; --This is whether or not a gui appears showing the fire being selected
  3685. Modes = { --This the list of modes you can switch between
  3686. Safety = true; --This mode doesn't allow any form of firing
  3687. Semi = true; --This mode allows semi-automatic firing
  3688. Burst = false; --This mode allows burst fire. The burst will be based on the burstSettings below
  3689. Auto = false; --This mode allows fully automatic fire
  3690. };
  3691. 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
  3692. };
  3693.  
  3694.  
  3695. burstSettings = {
  3696. 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
  3697. is false, then the burst time and burst wait will be the values below]]
  3698. Amount = 3; --This is how many bullets will be fired in one burst (if Burst is true)
  3699. Time = 0.2; --This is how long it takes for a burst to complete
  3700. Wait = 0.1; --This is how much time you have to wait before you can fire another burst
  3701. };
  3702.  
  3703.  
  3704. shotAmount = 8; --This is how many bullets will be fired in one shot (if Shot is true)
  3705.  
  3706.  
  3707. explosionSettings = {
  3708. Radius = 50; --This is the radius of the explosion when the bullet hits a target. (If Explosive is true)
  3709. Pressure = 5e5; --This is the pressure of the explosion when the bullet hits the target
  3710. Type = Enum.ExplosionType.NoCraters; --This is the type of explosion
  3711. --[[
  3712. (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
  3713. (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
  3714. (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
  3715. --]]
  3716. soundId = "rbxassetid://138499093"; --This is what the sound of the explosion will be
  3717. soundPitch = 1; --This is what the pitch of the explosion sound will be
  3718. soundVolume = 1; --This is what the volume of the explosion sound will be
  3719. rayCastExplosions = true; --[[This is whether or not explosions will have raycasting. If this is true, humanoids behind walls
  3720. won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: RangeBasedDamage has to be true in
  3721. order for explosions to have raycasting)]]
  3722. rangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion. If this
  3723. is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object within
  3724. the explosion's radius will have its joints broken]]
  3725. };
  3726.  
  3727.  
  3728. playerArms = true; --This is whether or not the fake arms will look like the Player's arms
  3729. fakeArmSettings = {
  3730. Transparency = 0; --This is the transparency of the fake arms
  3731. armSize = Vector3.new(0.6, 2, 0.6); --This is the size of the fake player arms if playerArms is true
  3732. characterMeshes = false; --This is whether or not the fake player arms will have the arm meshes if playerArms is true
  3733. realBodyColor = true; --This is whether or not the color of the fake arm will be the color of the player's real arms
  3734. Color = BrickColor.new("Pastel brown"); --This is what the color of the fake arms will be if realBodyColor is false
  3735. };
  3736.  
  3737.  
  3738. unAimedC1 = { --This table contains the CFrames of welds when the gun is not aimed
  3739. leftArm = CFrame.new(-0.7, 1.6, -0.8) * CFrame.Angles(math.rad(-10), 0, math.rad(-30));
  3740. rightArm = CFrame.new(0.4, 0.25, -0.3) * CFrame.Angles(0, 0, math.rad(25));
  3741. Grip = CFrame.Angles(0, math.rad(25), 0);
  3742. };
  3743. aimedC1 = { --This table contains the CFrames of welds when the gun is aimed
  3744. leftArm = CFrame.new(-0.1, 1, -0.3) * CFrame.Angles(math.rad(-10), 0, 0) * CFrame.Angles(0, 0, math.rad(-40));
  3745. rightArm = CFrame.new(0.5, 0.3, 0.1) * CFrame.Angles(0, 0, math.rad(45));
  3746. };
  3747. runningC1 = { --This table contains the CFrames of welds when you're running
  3748. leftArm = CFrame.new(-0.65, 0.85, -1) * CFrame.Angles(math.rad(1), math.rad(-8.5), math.rad(16));
  3749. rightArm = CFrame.new(0.16, 1, -0.14) * CFrame.Angles(math.rad(15), math.rad(2), math.rad(50));
  3750. Grip = CFrame.Angles(0, math.rad(-5), 0);
  3751. };
  3752.  
  3753.  
  3754. equipAnimation = true; --This is whether or not an equipping animation will play when you equip the gun
  3755. equipSettings = {
  3756. Time = 0.25; --This is how long it takes for the equip animation to play
  3757. 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
  3758. 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
  3759. GripC1 = CFrame.new(); --This is the C1 of the grip when you equip the gun
  3760. };
  3761.  
  3762.  
  3763. stopAnimsOnFall = true; --This is whether or not the movement animation will stop when you're falling
  3764. fallAnimation = true; --This is whether or not there will be animation for falling and landing
  3765. fallSettings = {
  3766. 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
  3767. 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
  3768. 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
  3769. 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
  3770. the effect]]
  3771. };
  3772.  
  3773.  
  3774. gunMomentum = true; --This is whether or not there will be a gun swaying animation for when you move your mouse around
  3775. momentumSettings = {
  3776. maxInput = 18; --This is the maximum mouse delta that will be used as input for the sway
  3777. Speed = 20; --This is the speed of the gun momentum
  3778. 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
  3779. instant dampening]]
  3780. Amplitude = { --These are the amplitudes of the gun momentum
  3781. unAimed = 5;
  3782. Aimed = 1;
  3783. }
  3784. };
  3785.  
  3786.  
  3787. cockingAnim = false; --This is whether or not a cocking animation will play between every shot (for shotguns and bolt action guns)
  3788. movementAnims = true; --This is whether or not the player will have movement animations
  3789.  
  3790.  
  3791. canADS = true; --This is whether or not the gun can ADS
  3792. aimSettings = {
  3793. Anim = true; --This is whether or not there is an animation for aiming down the sights
  3794. Speed = 0.3; --This is how long the gun will take to fully aim down the sights
  3795. FOV = 37; --This is the FOV that the Camera will have when the gun is fully aimed down
  3796. holdToADS = true; --This is whether or not you have to hold the right mouse or the ADS key to ADS
  3797. headTilt = math.rad(25); --This is what angle the head tilts at when you ADS
  3798. };
  3799.  
  3800.  
  3801. sensitivitySettings = {
  3802. Default = 1; --This is what the sensitivity of the mouse will be when the gun is not aimed. 1 is the default
  3803. Aim = 0.3; --[[This is what the sensitivity of the mouse will be when the gun is aimed. The smaller the MaxZoom,
  3804. the smaller the sensitivity should be (i.e. Scoped guns should have a sensitivity of around 0.2 or less]]
  3805.  
  3806. scrollToChange = true; --This is whether or not scrolling the mouse changes the aim sensitivity
  3807. Min = 0.05; --This is the lowest the sensitivity can be
  3808. Max = 1; --This is the highest the sensitivity can be
  3809. Increment = 0.05; --This is what the increment for the sensitivity is when you scroll
  3810. };
  3811.  
  3812.  
  3813. guiScope = false; --This is whether or not your Scope will be a gui instead of a normal sight
  3814. scopeSettings = {
  3815. Frequency = { --This is the how fast the camera sway is. The larger the number the faster the camera moves
  3816. Idling = 0.7; --This is the frequency when you're idling
  3817. Walking = 2; --This is the frequency when you're walking
  3818. };
  3819. Amplitude = { --This is the how wide the camera sway is. The larger the number the wider the sway
  3820. Idling = 0.75; --This is the amplitude when you're idling
  3821. Walking = 0.75; --This is the amplitude when you're walking
  3822. };
  3823. steadyTime = 8; --This is how long you can hold your breath to steady the scope
  3824. breathTime = 5; --This is how long it takes to fully retake your breath
  3825. camSwayOnBreath = 2.5; --This is what the cam sway multiplier will be when you start your retake your breath
  3826. unSteadyOnFire = true; --This is whether or not the camera will become unsteady when you fire the gun
  3827. };
  3828.  
  3829.  
  3830. roundsPerMin = 100; --This is how many bullets per minute the gun will fire
  3831.  
  3832.  
  3833. bulletSettings = {
  3834. instantHit = true; --[[This is whether or not the bullet will hit a target instantly. If it is false, the bullet will travel at a
  3835. specific speed till it hits a target]]
  3836. Range = 870; --This is how far the bullet will travel in studs before it is no longer effective
  3837. Velocity = 540; --This is how fast the bullet will travel in studs per second
  3838. Acceleration = 196.2; --This is the bullet's acceleration downward (196.2 is normal roblox gravity)
  3839. Color = BrickColor.new("Bright red"); --This is the color of the bullet
  3840. Transparency = 0; --This is the transparency of the bullet
  3841. Size = Vector3.new(0.1, 0.1, 5); --This is how big the bullet will look
  3842. };
  3843.  
  3844.  
  3845. damageSettings = {
  3846. --[[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
  3847. 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
  3848. 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
  3849. the ending damage. After the ending damage percent, it'll stay that damage.]]
  3850. Start = {
  3851. Damage = 170; --The starting damage
  3852. 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
  3853. the damage will be the starting damage until the bullet travels 0.5*1000 studs or 500 studs]]
  3854. };
  3855. End = {
  3856. Damage = 205; --The ending damage
  3857. Dist = 0.5; --A value between 0 and 1 which represents the distance percent for the ending damage
  3858. };
  3859. Multipliers = { --[[These are the damage multipliers. There's a spread of +0.1. That means that if the multiplier is 1, the actual
  3860. multiplier will range from 1 - 1.1]]
  3861. Chest = 1; --This is what the damage will be multiplied by if the bullet hits the chest
  3862. Head = 10; --This is what the damage will be multiplied by if the bullet hits the head or a hat
  3863. Limbs = 1; --This is what the damage will be multiplied by if the bullet hits a limb (Arms or legs)
  3864. };
  3865. };
  3866.  
  3867.  
  3868. AllowFriendlyFire = false; --This is whether or not you can damage teammates
  3869. CanDamageNPCs = true; --This is whether or not you can damage NPC's (Zombies, fake players, anything with a humanoid)
  3870.  
  3871.  
  3872. CanKnife = true; --This is whether or not you can knife
  3873. AutoKnife = false; --This is whether or not the gun will automatically knife if an enemy is within a specific distance
  3874. AutoKnifeDist = 4; --This is how many studs away an enemy has to be for the gun to auto knife
  3875. KnifeMeshId = "http://www.roblox.com/asset/?id=121944778"; --This is the Mesh of the knife
  3876. KnifeTextureId = "http://www.roblox.com/asset/?id=121944805"; --This is the Texture of the knife
  3877. KnifeCooldown = 0.5; --This is how long you have to wait before you can knife again
  3878. KnifeAnim = 1; --This is the type of knife animation
  3879. --[[
  3880. Type 1: An animation that swings a knife from the left of the body to the right of the body
  3881. Type 2: An animation that stabs the knife forward from the center of the body
  3882. --]]
  3883.  
  3884.  
  3885. Throwables = true; --This is whether or not you have grenades
  3886. TrajectoryAssist = true; --This is whether or not the script will show you the flight path of the grenade before you throw it
  3887. DetonationTime = 2; --[[This is how long the grenade will wait to detonate (If DetonateOnHit is false, this is how long the
  3888. grenade will wait after the pin is pulled. If true, this is how long the grenade will wait after it hits something]]
  3889. TimerStartOnHit = false; --This is whether or not the timer will start when the grenade hits something
  3890. GrenadeSize = Vector3.new(0.8, 0.8, 0.8); --This is the size of the grenade (Doesn't apply to throwing knives)
  3891.  
  3892.  
  3893. LethalGrenadeColor = BrickColor.new("Bright green"); --This is the color of the lethal grenade
  3894. GrenadeBlastRadius = 20; --This is the blast radius of the explosion (Doesn't apply to non-explosive grenades)
  3895. GrenadeBlastPressure = 6e5; --This is what the blast pressure of the explosion (Doesn't apply to non-explosive grenades)
  3896. GrenadeExplosionType = Enum.ExplosionType.NoCraters; --This is the type of explosion (Doesn't apply to non-explosive grenades)
  3897. --[[
  3898. (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
  3899. (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
  3900. (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
  3901. --]]
  3902. LethalAnimationTime = 1.5; --This is how long the throwing animation for the lethal will take
  3903. LethalGrenadeDamage = 150; --This is max damage that the grenade will do
  3904. LethalGrenadeThrowVelocity = 200; --This is the speed at which the lethal grenade is thrown
  3905. GrenadeRayCastExplosions = true; --[[This is whether or not grenade explosions will have raycasting. If this is true, humanoids
  3906. behind walls won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: GrenadeRangeBasedDamage
  3907. has to be true in order for explosions to have raycasting)]]
  3908. GrenadeRangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion.
  3909. 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
  3910. within the explosion's radius will have its joints broken]]
  3911. LethalGrenadeType = 4; --This is the lethal grenade type
  3912. --[[
  3913. Type 1: Frag grenade [An explosive grenade]
  3914. Type 2: Sticky [An explosive grenade that sticks to a surface]
  3915. Type 3: Throwing Knife [A throwable knife]
  3916. Type 4: Molotov [A grenade that explodes in flames on impact]
  3917. --]]
  3918.  
  3919. TacticalGrenadeColor = BrickColor.new("Brick yellow"); --This is the color of the lethal grenade
  3920. TacticalAnimationTime = 1.5; --This how long the throwing animation for the tactical will take
  3921. TacticalGrenadeThrowVelocity = 200; --This is the speed at which the tactical grenade is thrown
  3922. GrenadeEffectRadius = 70; --[[This is the radius of the effect of the grenade. If the Grenade is a smoke, this is the radius of
  3923. the smoke]]
  3924. GrenadeEffectTime = 10; --[[This is the how long the grenade effect will last. If the grenade is a smoke, this is how long the
  3925. smoke will linger]]
  3926. TacticalGrenadeType = 1; --This is the tactical grenade type
  3927. --[[
  3928. Type 1: Smoke grenade [A grenade that creates a cloud of smoke]
  3929. Type 2: Flashbang [A grenade that temporarily blinds and deafens players]
  3930. --]]
  3931.  
  3932.  
  3933. GrenadeTrail = true; --This is whether or not the grenade will have a trail
  3934. GrenadeTrailColor = BrickColor.new("Black"); --This is the color of the grenade trail
  3935. GrenadeTrailTransparency = 0.6; --This is the transparency of the trail
  3936. GrenadeTrailThickness = 0.3; --This is the thickness of the trail
  3937. GrenadeTrailVisibleTime = 0.2; --This is how long the trail will be visible for
  3938. GrenadeTrailDisappearTime = 0.2; --This is how long it will take for the trail to disappear
  3939.  
  3940.  
  3941. bulletTrail = true; --This is whether or not there will be a trail behind the bullet
  3942. trailSettings = {
  3943. Color = BrickColor.new("Lime green"); --This is the color of the bullet trail
  3944. Transparency = 0.6; --This is the transparency of the trail
  3945. Thickness = 0.2; --This is the thickness of the trail
  3946. visibleTime = 0; --This is how long the trail will be visible for
  3947. disappearTime = 0.5; --This is how long it will take for the trail to disappear
  3948. };
  3949.  
  3950.  
  3951. bulletHoles = true; --This is whether or not bullet holes will appear where you shot
  3952. holeSettings = {
  3953. Texture = "http://www.roblox.com/asset/?id=64291961"; --This is the texture of the bullet hole
  3954. Size = 0.5; --This is how big the bullet hole will be in studs
  3955. visibleTime = 3; --This is how long the bullet hole will be visible for
  3956. disappearTime = 1; --This is how long it will take for the bullet hole to disappear
  3957. };
  3958.  
  3959.  
  3960. bulletSparks = true; --This is whether or not sparks will fly when a bullet hits a surface
  3961. 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,
  3962. it has to be a particle emitter in the ServerStorage and it has to be called "bulletSpark"]]
  3963. sparkSettings = { --These settings only apply if customSparks is false
  3964. Color = {
  3965. Start = Color3.new(1, 158 / 255, 24 / 255); --This is the start color of the sparks
  3966. End = Color3.new(212 / 255, 242 / 255, 8 / 255); --This is the end color of the sparks
  3967. };
  3968. Size = 0.25; --This is the size of the sparks
  3969. Texture = "http://www.roblox.com/asset/?id=311395391"; --This is the texture of the sparks
  3970. Lifetime = 0.2; --This is the lifetime of each spark in seconds +-0.05 seconds
  3971. Rate = 75; --This is the number of sparks that fly
  3972. Speed = 25; --This is the speed at which the sparks fly +-5 studs/sec
  3973. Spread = 45; --This is the angle in degrees at which the sparks spread out (0 means single line, 180 means all around)
  3974. Materials = { --This is the list of the materials which cause bullet sparks. You can add or remove materials from this list
  3975. Enum.Material.Plastic;
  3976. Enum.Material.Slate;
  3977. Enum.Material.Concrete;
  3978. Enum.Material.CorrodedMetal;
  3979. Enum.Material.DiamondPlate;
  3980. Enum.Material.Foil;
  3981. Enum.Material.Marble;
  3982. Enum.Material.Granite;
  3983. Enum.Material.Brick;
  3984. Enum.Material.Pebble;
  3985. Enum.Material.SmoothPlastic;
  3986. Enum.Material.Metal;
  3987. Enum.Material.Cobblestone;
  3988. };
  3989. };
  3990.  
  3991.  
  3992. bulletSmoke = true; --This is whether or not smoke particles will fly when a bullet hits a surface
  3993. smokeSettings = {
  3994. objColor = true; --This is whether or not the smoke color will be the color of the object the bullet hit
  3995. Color = Color3.new(0.5, 0.5, 0.5); --This is what the color of the smoke will be if objColor is false
  3996. Size = {
  3997. Start = 0.25; --This is what the starting size of the smoke will be
  3998. End = 0.5; --This is what the ending size of the smoke will be
  3999. };
  4000. Texture = "http://www.roblox.com/asset/?id=244514423"; --This is what the texture of the smoke will be
  4001. startTransparency = 0; --This is what the transparency of the particle starts at. It gradually goes to 1
  4002. Lifetime = 0.2; --This is the lifetime of each smoke particle +-0.05 seconds
  4003. Rate = 100; --This is the number of smoke particles that fly
  4004. Speed = 35; --This is the speed at which the smoke particles fly +-5 studs/sec
  4005. Spread = 15; --This is the angle in degrees at which the smoke particles spread out (0 means single line, 180 means all around)
  4006. };
  4007.  
  4008.  
  4009. bloodEffect = true; --This is whether or not blood particles will appear from the bullet exit position when a humanoid is shot
  4010. bloodSettings = {
  4011. Color = Color3.new(1, 0, 0); --This is what the color of the blood will be
  4012. Size = 0.1; --This is what the size of the blood will be with an +-0.1
  4013. Texture = "http://www.roblox.com/asset/?id=3419963"; --This is what the texture of the blood will be
  4014. startTransparency = 0.125; --This is what the starting transparency of the blood will be +-0.125
  4015. Lifetime = 0.1; --This is what the lifetime of each blood particle +-0.05 seconds
  4016. Rate = 200; --This is the number of blood particles that appear
  4017. Speed = 50; --This is the speed at which the blood particles fly
  4018. Spread = 15; --This is the angle in degrees at which the blood particles spread out (0 means single line, 180 means all around)
  4019. };
  4020.  
  4021.  
  4022. bulletShockwave = true; --This is whether or not a shockwave will appear where you shot. (A sphere that appears when the bullet hits)
  4023. shockwaveSettings = {
  4024. Radius = 0.3; --This is the radius of the shockwave. (If the gun type is explosion, this radius will be the blast radius)
  4025. Color = BrickColor.new("Light stone grey"); --This is the color of the shockwave
  4026. Duration = 0.2; --This is how long the shockwave will take to disappear
  4027. };
  4028.  
  4029.  
  4030. penetrationSettings = {
  4031. Dist = 0; --This is the maximum amount of studs a bullet can penetrate into a wall (that isn't ignored)
  4032. transparencyThreshold = 1; --This is what the transparency of a wall has to be greater than or equal to in order to be ignored
  4033. ignoreNonCanCollide = true; --This is whether or not the script should ignore non-cancollide parts
  4034. ignoreCustom = {}; --This is a table of objects that will be ignored by the script. The object and it's descendants will be ignored
  4035. };
  4036.  
  4037.  
  4038. recoilSettings = {
  4039. firstShotMultiplier = 2.4; --This is what the recoil multiplier for the first shot will be. The rest of the shots will be normal recoil
  4040. aimedMultiplier = 0.5; --When you're aimed, this is what the recoil will be multiplied by
  4041. camMultiplier = 2; --This is what the gun up recoil will be multiplied by to get you the cam recoil
  4042. 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
  4043. springDamper = 0.5; --This is a number between 0 and 1 that determines how quickly the spring will be dampened.
  4044. Recoil = {
  4045. Side = { --This is the side to side gun and camera recoil
  4046. Left = -0.17;
  4047. Right = 0.28;
  4048. };
  4049. Up = { --This is the up and down gun and camera recoil
  4050. Min = 0.26;
  4051. Max = 0.28;
  4052. };
  4053. 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
  4054. 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]]
  4055. Min = 0.3;
  4056. Max = 0.35;
  4057. };
  4058. 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
  4059. and the right is 1 then the gun will tilt anywhere between -10 degress and 10 degrees]]
  4060. Left = -0.5;
  4061. Right = 0.5;
  4062. };
  4063. }
  4064. };
  4065.  
  4066.  
  4067. spreadSettings = {
  4068. Increase = 0.1; --This is what is added to the spread of the bullet every time you fire
  4069. Decrease = 15; --This is what the spread of the bullet decreases by per second
  4070.  
  4071. --[[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
  4072. 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
  4073. you're moving]]
  4074. Aimed = {
  4075. Stand = {
  4076. Idling = 0.2;
  4077. Moving = 0.4;
  4078. };
  4079. Crouch = {
  4080. Idling = 0.15;
  4081. Moving = 0.3;
  4082. };
  4083. Prone = {
  4084. Idling = 0.1;
  4085. Moving = 0.3;
  4086. };
  4087. };
  4088. unAimed = {
  4089. Stand = {
  4090. Idling = 2;
  4091. Moving = 2.5;
  4092. };
  4093. Crouch = {
  4094. Idling = 1.5;
  4095. Moving = 2;
  4096. };
  4097. Prone = {
  4098. Idling = 1;
  4099. Moving = 2;
  4100. };
  4101. };
  4102. };
  4103.  
  4104.  
  4105. reloadSettings = {
  4106. Anim = true; --This is whether or not there is an animation for reloading
  4107. Times = {
  4108. Loaded = 3; --This is how long it takes to reload the gun if a bullet is already chambered
  4109. Empty = 3; --This is how long it takes to reload the gun if a bullet isn't chambered
  4110. };
  4111. autoReload = true; --This is whether or not the gun will reload automatically when the ammo reaches 0
  4112. magIsBullet = false; --This is whether or not the mag is the bullet itself. This is useful for guns with only 1 bullet per clip
  4113. reloadWhileRunning = true; --This is whether or not you can reload while running
  4114. };
  4115.  
  4116.  
  4117. sprintTime = 15; --This is the maximum time you can sprint
  4118. staminaCoolTime = 4; --This is how long it takes for your stamina to fully recharge
  4119. canFireWhileRunning = false; --This is whether or not you can shoot while sprinting
  4120.  
  4121.  
  4122. dolphinDive = true; --This is whether or not you can dolphin dive (Run and crouch at the same time to dive)
  4123. diveSettings = {
  4124. rechargeTime = 1; --This is how long you have to wait till you can dive or run again after you've dived
  4125. Force = 350; --This is the multiplier for the dolphin dive force. The higher it is the farther you'll dive
  4126. Angle = math.rad(30); --This is the angle in radians from the ground that you dive at
  4127. };
  4128.  
  4129.  
  4130. canChangeStance = true; --This is whether or not you can change stance. That means whether or not you can crouch or go prone
  4131. stanceSettings = {
  4132. Anim = true; --This is whether or not there is an animation for changing stance
  4133. Speed = 0.3; --This is how quickly you change stance
  4134. Stances = {
  4135. Crouch = true; --This is whether or not you can crouch
  4136. Prone = true; --This is whether or not you can go prone
  4137. };
  4138. standOnDeselect = true; --This is whether or not you stand up when you deselect the tool
  4139. crawlAnimation = true; --This is whether or not you crawl while moving when you're prone
  4140. };
  4141.  
  4142.  
  4143. walkSpeeds = {
  4144. Base = 14; --This is the base walkspeed
  4145. Sprinting = 28; --This is the walkspeed when you're sprinting
  4146. Aimed = 10; --[[This is the base walkspeed when the gun is aimed down. If you crouch or go prone, the speed will change
  4147. based on the Aimed walkspeed to Base walkspeed ratio]]
  4148. Crouched = 7; --This is the walkspeed when you're crouched
  4149. Prone = 4; --This is the walkspeed when you're prone
  4150. };
  4151.  
  4152.  
  4153. --NOTE: For extra keys, go here: http://wiki.roblox.com/index.php?title=Taking_keyboard_input
  4154. Keys = {
  4155. lowerStance = "c"; --This is the key you press to lower your stance (Stand > Crouch > Prone)
  4156. raiseStance = "x"; --This is the key you press to raise your stance (Prone > Crouch > Stand)
  4157. selectFire = "e"; --This is the key you press to switch fire modes
  4158. Reload = "r"; --This is the key you press to reload
  4159. Sprint = string.char(48); --This is the key you press to sprint
  4160. Knife = "f"; --This is the key you press to knife
  4161. lethalGrenade = "g"; --This is the key you press to throw the lethal grenade
  4162. tacticalGrenade = "t"; --This is the key you press to throw the tactical grenade
  4163. ADS = "q"; --This is the key you press to ADS. If you want ADS to just be right mouse, then make this key ""
  4164. scopeSteady = string.char(48); --This is the key you press to steady the scope
  4165. };
  4166.  
  4167.  
  4168. }
  4169.  
  4170. local Player = game.Players.LocalPlayer
  4171. local Char = Player.Character
  4172. local Humanoid = Char:WaitForChild("Humanoid")
  4173. local Torso = Char:WaitForChild("Torso")
  4174. local Head = Char:WaitForChild("Head")
  4175. local HRP = Char:WaitForChild("HumanoidRootPart")
  4176. local Root = HRP:WaitForChild("RootJoint")
  4177.  
  4178. local Neck = Torso:WaitForChild("Neck")
  4179.  
  4180. local LArm = Char:WaitForChild("Left Arm")
  4181. local RArm = Char:WaitForChild("Right Arm")
  4182. local LLeg = Char:WaitForChild("Left Leg")
  4183. local RLeg = Char:WaitForChild("Right Leg")
  4184.  
  4185. local M2 = Player:GetMouse()
  4186.  
  4187. local mainGUI = script:WaitForChild("mainGUI")
  4188.  
  4189. local crossHair = mainGUI:WaitForChild("crossHair")
  4190. local HUD = mainGUI:WaitForChild("HUD")
  4191. local Scope = mainGUI:WaitForChild("Scope")
  4192. local fireSelect = mainGUI:WaitForChild("fireSelect")
  4193. local hitMarker = mainGUI:WaitForChild("hitMarker")
  4194. local Sens = mainGUI:WaitForChild("Sens")
  4195.  
  4196. local crossA = crossHair:WaitForChild("A"):WaitForChild("Line")
  4197. local crossB = crossHair:WaitForChild("B"):WaitForChild("Line")
  4198. local crossC = crossHair:WaitForChild("C"):WaitForChild("Line")
  4199. local crossD = crossHair:WaitForChild("D"):WaitForChild("Line")
  4200.  
  4201. local Controls = HUD:WaitForChild("Controls")
  4202.  
  4203. local gunNameTitle = HUD:WaitForChild("gunName"):WaitForChild("Title")
  4204.  
  4205. local scopeMain = Scope:WaitForChild("Main")
  4206. local scopeSteady = Scope:WaitForChild("Steady")
  4207.  
  4208. local fireModes = fireSelect:WaitForChild("Modes")
  4209.  
  4210. local modeGUI = HUD:WaitForChild("Mode"):WaitForChild("Main")
  4211. local clipAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Clip")
  4212. local storedAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Stored")
  4213.  
  4214. local DS = game:GetService("Debris")
  4215. local CP = game:GetService("ContentProvider")
  4216. local RS = game:GetService("RunService")
  4217. local UIS = game:GetService("UserInputService")
  4218.  
  4219. local Cam = game.Workspace.CurrentCamera
  4220.  
  4221. local ABS, HUGE, FLOOR, CEIL = math.abs, math.huge, math.floor, math.ceil
  4222. local RAD, SIN, COS, TAN = math.rad, math.sin, math.cos, math.tan
  4223. local VEC2, V3 = Vector2.new, Vector3.new
  4224. local CF, CFANG = CFrame.new, CFrame.Angles
  4225. local INSERT = table.insert
  4226.  
  4227. local maxStamina = S.sprintTime * 60
  4228. local maxSteadyTime = S.scopeSettings.steadyTime * 60
  4229.  
  4230. local LethalIcons = {
  4231. "http://www.roblox.com/asset/?id=194849880";
  4232. "http://www.roblox.com/asset/?id=195727791";
  4233. "http://www.roblox.com/asset/?id=195728137";
  4234. "http://www.roblox.com/asset/?id=218151830";
  4235. }
  4236.  
  4237. local TacticalIcons = {
  4238. "http://www.roblox.com/asset/?id=195728473";
  4239. "http://www.roblox.com/asset/?id=195728693";
  4240. }
  4241.  
  4242. local ASCII = {
  4243. 071; 117; 110; 032;
  4244. 075; 105; 116; 032;
  4245. 115; 099; 114; 105;
  4246. 112; 116; 101; 100;
  4247. 032; 098; 121; 032;
  4248. 084; 117; 114; 098;
  4249. 111; 070; 117; 115;
  4250. 105; 111; 110; 000;
  4251. }
  4252.  
  4253. local Ignore = {
  4254. Char;
  4255. ignoreModel;
  4256. }
  4257.  
  4258. local Shoulders = {
  4259. Right = Torso:WaitForChild("Right Shoulder");
  4260. Left = Torso:WaitForChild("Left Shoulder")
  4261. }
  4262.  
  4263. local armC0 = {
  4264. CF(-1.5, 0, 0) * CFANG(RAD(90), 0, 0);
  4265. CF(1.5, 0, 0) * CFANG(RAD(90), 0, 0);
  4266. }
  4267.  
  4268. local legC0 = {
  4269. Stand = {
  4270. CF(-0.5, -2, 0);
  4271. CF(0.5, -2, 0);
  4272. };
  4273. Crouch = {
  4274. CF(-0.5, -1.5, 0.5) * CFANG(-RAD(90), 0, 0);
  4275. CF(0.5, -1, -0.75);
  4276. };
  4277. Prone = {
  4278. CF(-0.5, -2, 0);
  4279. CF(0.5, -2, 0);
  4280. };
  4281. }
  4282.  
  4283. local Sine = function(X)
  4284. return SIN(RAD(X))
  4285. end
  4286.  
  4287. local Linear = function(X)
  4288. return (X / 90)
  4289. end
  4290.  
  4291. --------------------------------------------------------------------------------------
  4292. --------------------[ VARIABLES ]-----------------------------------------------------
  4293. --------------------------------------------------------------------------------------
  4294.  
  4295. local Selected = false
  4296.  
  4297. local playerMass = 0
  4298.  
  4299. local Forward = false
  4300. local Backward = false
  4301.  
  4302. local Idling = false
  4303. local Walking = false
  4304. local Running = false
  4305.  
  4306. local crawlCamRot = 0
  4307. local crawlAlpha = 0
  4308. local idleAlpha = 1
  4309. local walkAlpha = 0
  4310. local isCrawling = false
  4311. local isIdling = false
  4312. local isWalking = false
  4313. local isRunning = false
  4314.  
  4315. local Aimed = false
  4316. local Aiming = false
  4317. local aimAlpha = 0
  4318. local headOffset = VEC2(COS(RAD(90) - S.aimSettings.headTilt) * 0.5, 1 + SIN(RAD(90) - S.aimSettings.headTilt) * 0.5)
  4319.  
  4320. local Reloading = false
  4321. local breakReload = false
  4322. local magVisible = true
  4323. local newMag = false
  4324.  
  4325. local Knifing = false
  4326.  
  4327. local MB1Down = false
  4328. local Firing = false
  4329. local canFire = true
  4330. local fireFunction = nil
  4331. local firstShot = false
  4332. local shotCount = 0
  4333. local lastSideRecoil = {0, 0}
  4334. local recoilAnim = {
  4335. Pos = V3();
  4336. Rot = V3();
  4337. Code = nil;
  4338. }
  4339.  
  4340. local numModes = 0
  4341. local rawFireMode = 1
  4342. local canSelectFire = true
  4343. local guiAngOffset = 0
  4344. local Modes = {}
  4345.  
  4346. local onGround = true
  4347. local startFallHeight = 0
  4348. local jumpAnim = {
  4349. Pos = 0;
  4350. Rot = 0;
  4351. Code = 0;
  4352. }
  4353.  
  4354. local runReady = true
  4355. local runKeyPressed = false
  4356. local chargingStamina = false
  4357.  
  4358. local AimingIn = false
  4359. local AimingOut = false
  4360.  
  4361. local Stamina = S.sprintTime * 60
  4362. local currentSteadyTime = S.scopeSettings.steadyTime * 60
  4363.  
  4364. local camSteady = false
  4365. local takingBreath = false
  4366. local steadyKeyPressed = false
  4367.  
  4368. local Grip = nil
  4369. local aimedGripCF = nil
  4370.  
  4371. local spreadZoom = "unAimed"
  4372. local spreadStance = "Stand"
  4373. local spreadMotion = "Idling"
  4374. local baseSpread = S.spreadSettings.unAimed.Stand.Idling
  4375. local currentSpread = 0
  4376. local loweringSpread = false
  4377.  
  4378. local mouseSensitivity = S.sensitivitySettings.Default
  4379. local aimSensitivity = S.sensitivitySettings.Aim
  4380. local lastSensUpdate = 0
  4381.  
  4382. local ammoInClip = 0
  4383.  
  4384. local Stance = 0
  4385. local stanceSway = 1
  4386. local camSway = 1
  4387.  
  4388. local camAng = VEC2()
  4389.  
  4390. local armTilt = 0
  4391. local moveAng = 0
  4392. local animCode = 0
  4393.  
  4394. local desiredXOffset = 0
  4395. local desiredYOffset = 0
  4396. local currentXOffset = 0
  4397. local currentYOffset = 0
  4398. local aimHeadOffset = 0
  4399. local recoilAnimMultiplier = 1
  4400. local jumpAnimMultiplier = 1
  4401. local translationDivisor = 7
  4402. local rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  4403. local armTiltMultiplier = 1
  4404.  
  4405. local equipAnimPlaying = false
  4406.  
  4407. local crossOffset = 0
  4408.  
  4409. local camOffsets = {
  4410. guiScope = {
  4411. Rot = V3();
  4412. };
  4413. Reload = {
  4414. Rot = V3();
  4415. Code = nil;
  4416. };
  4417. Recoil = {
  4418. Rot = V3();
  4419. Code = nil;
  4420. };
  4421. }
  4422.  
  4423. local Anim = {
  4424. Pos = V3();
  4425. Rot = V3();
  4426. Ang = 0;
  4427. Code = 0;
  4428. }
  4429.  
  4430. local lastBeat = 0
  4431.  
  4432. local gunParts = {}
  4433.  
  4434. local Connections = {}
  4435.  
  4436. local Keys = {}
  4437.  
  4438. --------------------------------------------------------------------------------------
  4439. --------------------[ PRE-LOADING ]---------------------------------------------------
  4440. --------------------------------------------------------------------------------------
  4441.  
  4442. CP:Preload(S.explosionSettings.soundId)
  4443. CP:Preload(S.holeSettings.Texture)
  4444. CP:Preload(S.sparkSettings.Texture)
  4445. CP:Preload(S.smokeSettings.Texture)
  4446. CP:Preload(S.bloodSettings.Texture)
  4447. CP:Preload("http://www.roblox.com/asset/?id=126877530") --The dark green arrow in the select fire gui
  4448. CP:Preload("http://www.roblox.com/asset/?id=55754953") --The circle in the select fire gui
  4449.  
  4450. --------------------------------------------------------------------------------------
  4451. --------------------[ GUN SETUP ]-----------------------------------------------------
  4452. --------------------------------------------------------------------------------------
  4453.  
  4454. serverMain:WaitForChild("Plyr").Value = Player
  4455.  
  4456. local gunMomentum = Spring.new(V3())
  4457. gunMomentum.s = S.momentumSettings.Speed
  4458. gunMomentum.d = S.momentumSettings.Damper
  4459.  
  4460. local gunRecoilSpring = Spring.new(V3())
  4461. gunRecoilSpring.s = S.recoilSettings.springSpeed
  4462. gunRecoilSpring.d = S.recoilSettings.springDamper
  4463.  
  4464. local camRecoilSpring = Spring.new(V3())
  4465. camRecoilSpring.s = 35
  4466. camRecoilSpring.d = 0.5
  4467.  
  4468. local crossSpring = Spring.new(V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0))
  4469. crossSpring.s = 20
  4470. crossSpring.d = 0.75
  4471.  
  4472. --[[local function getModelMass(P)
  4473. for _, v in pairs(P:GetChildren()) do
  4474. if v:IsA("BasePart") then
  4475. playerMass = playerMass + v:GetMass()
  4476. end
  4477. getModelMass(v)
  4478. end
  4479. end
  4480. getModelMass(Char)
  4481.  
  4482. Char.DescendantAdded:connect(function(Descendant)
  4483. if Descendant:IsA("BasePart") then
  4484. playerMass = playerMass + Descendant:GetMass()
  4485. end
  4486. end)
  4487. Char.DescendantRemoving:connect(function(Descendant)
  4488. if Descendant:IsA("BasePart") then
  4489. playerMass = playerMass - Descendant:GetMass()
  4490. end
  4491. end)]]
  4492.  
  4493. --------------------------------------------------------------------------------------
  4494. --------------------[ WELD CFRAMES ]--------------------------------------------------
  4495. --------------------------------------------------------------------------------------
  4496.  
  4497. spawn(function()
  4498. --[[for _, v in pairs(Gun:GetChildren()) do
  4499. if v:IsA("BasePart") and v ~= Handle then
  4500. if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
  4501. if (not v:FindFirstChild("weldCF")) then
  4502. local weldCF = Instance.new("CFrameValue")
  4503. weldCF.Name = "weldCF"
  4504. weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
  4505. weldCF.Parent = v
  4506. INSERT(gunParts, {Obj = v, Weld = nil})
  4507. end
  4508. if string.sub(v.Name, 1, 3) == "Mag" then
  4509. if (not v:FindFirstChild("magTrans")) then
  4510. local magTrans = Instance.new("NumberValue")
  4511. magTrans.Name = "magTrans"
  4512. magTrans.Value = v.Transparency
  4513. magTrans.Parent = v
  4514. end
  4515. end
  4516. v.Anchored = false
  4517. end
  4518. end
  4519. Handle.Anchored = false]]
  4520. for _, v in pairs(Gun:GetChildren()) do
  4521. if v:FindFirstChild("weldCF") then
  4522. INSERT(gunParts, {Obj = v, Weld = nil})
  4523. v.Anchored = false
  4524. end
  4525. end
  4526. end)
  4527.  
  4528. --------------------------------------------------------------------------------------
  4529. --------------------[ MAIN PROGRAM ]--------------------------------------------------
  4530. --------------------------------------------------------------------------------------
  4531.  
  4532. --------------------[ ARM CREATION FUNCTION ]-----------------------------------------
  4533.  
  4534. function createArms()
  4535. local Arms = {}
  4536. for i = 0, 1 do
  4537. local armModel = Instance.new("Model")
  4538. armModel.Name = "armModel"
  4539.  
  4540. local Arm = Instance.new("Part")
  4541. Arm.BrickColor = (S.fakeArmSettings.realBodyColor and (i == 0 and LArm.BrickColor or RArm.BrickColor) or S.fakeArmSettings.Color)
  4542. Arm.Transparency = S.fakeArmSettings.Transparency
  4543. Arm.Name = "Arm"
  4544. Arm.CanCollide = false
  4545. Arm.Size = V3(0.598, 2, 0.598)
  4546. Arm.Parent = armModel
  4547. local armMesh = Instance.new("SpecialMesh")
  4548. armMesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4549. armMesh.MeshType = Enum.MeshType.FileMesh
  4550. armMesh.Scale = V3(0.598, 1, 0.598)
  4551. armMesh.Parent = Arm
  4552.  
  4553. local Glove1 = Instance.new("Part")
  4554. Glove1.BrickColor = BrickColor.new("Black")
  4555. Glove1.Name = "Glove1"
  4556. Glove1.CanCollide = false
  4557. Glove1.Size = V3(0.598, 2, 0.598)
  4558. Glove1.Parent = armModel
  4559. local glove1Mesh = Instance.new("SpecialMesh")
  4560. glove1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4561. glove1Mesh.Offset = V3(0, -0.5, 0)
  4562. glove1Mesh.Scale = V3(0.658, 0.205, 0.658)
  4563. glove1Mesh.Parent = Glove1
  4564. local glove1Weld = Instance.new("Weld")
  4565. glove1Weld.Part0 = Arm
  4566. glove1Weld.Part1 = Glove1
  4567. glove1Weld.Parent = Arm
  4568.  
  4569. local Glove2 = Instance.new("Part")
  4570. Glove2.BrickColor = BrickColor.new("Black")
  4571. Glove2.Name = "Glove2"
  4572. Glove2.CanCollide = false
  4573. Glove2.Size = V3(0.598, 2, 0.598)
  4574. Glove2.Parent = armModel
  4575. local glove2Mesh = Instance.new("SpecialMesh")
  4576. glove2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4577. glove2Mesh.Offset = V3(0, -0.435, 0)
  4578. glove2Mesh.Scale = V3(0.69, 0.105, 0.69)
  4579. glove2Mesh.Parent = Glove2
  4580. local glove2Weld = Instance.new("Weld")
  4581. glove2Weld.Part0 = Arm
  4582. glove2Weld.Part1 = Glove2
  4583. glove2Weld.Parent = Arm
  4584.  
  4585. local Glove3 = Instance.new("Part")
  4586. Glove3.BrickColor = BrickColor.new("Black")
  4587. Glove3.Name = "Glove3"
  4588. Glove3.CanCollide = false
  4589. Glove3.Size = V3(0.598, 2, 0.598)
  4590. Glove3.Parent = armModel
  4591. local glove3Mesh = Instance.new("SpecialMesh")
  4592. glove3Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4593. glove3Mesh.Offset = V3(0.18 * ((i * 2) - 1), -0.7, 0)
  4594. glove3Mesh.Scale = V3(0.299, 0.305, 0.657)
  4595. glove3Mesh.Parent = Glove3
  4596. local glove3Weld = Instance.new("Weld")
  4597. glove3Weld.Part0 = Arm
  4598. glove3Weld.Part1 = Glove3
  4599. glove3Weld.Parent = Arm
  4600.  
  4601. local Sleeve1 = Instance.new("Part")
  4602. Sleeve1.BrickColor = BrickColor.new("Sand green")
  4603. Sleeve1.Name = "Sleeve1"
  4604. Sleeve1.CanCollide = false
  4605. Sleeve1.Size = V3(0.598, 2, 0.598)
  4606. Sleeve1.Parent = armModel
  4607. local sleeve1Mesh = Instance.new("SpecialMesh")
  4608. sleeve1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4609. sleeve1Mesh.Offset = V3(0, 0.75, 0)
  4610. sleeve1Mesh.Scale = V3(0.656, 0.3, 0.656)
  4611. sleeve1Mesh.Parent = Sleeve1
  4612. local sleeve1Weld = Instance.new("Weld")
  4613. sleeve1Weld.Part0 = Arm
  4614. sleeve1Weld.Part1 = Sleeve1
  4615. sleeve1Weld.Parent = Arm
  4616.  
  4617. local Sleeve2 = Instance.new("Part")
  4618. Sleeve2.BrickColor = BrickColor.new("Sand green")
  4619. Sleeve2.Name = "Sleeve2"
  4620. Sleeve2.CanCollide = false
  4621. Sleeve2.Size = V3(0.598, 2, 0.598)
  4622. Sleeve2.Parent = armModel
  4623. local sleeve2Mesh = Instance.new("SpecialMesh")
  4624. sleeve2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4625. sleeve2Mesh.Offset = V3(0, 0.55, 0)
  4626. sleeve2Mesh.Scale = V3(0.75, 0.1, 0.75)
  4627. sleeve2Mesh.Parent = Sleeve2
  4628. local sleeve2Weld = Instance.new("Weld")
  4629. sleeve2Weld.Part0 = Arm
  4630. sleeve2Weld.Part1 = Sleeve2
  4631. sleeve2Weld.Parent = Arm
  4632.  
  4633. table.insert(Arms, {Model = armModel, armPart = Arm})
  4634. end
  4635. return Arms
  4636. end
  4637.  
  4638. --------------------[ MATH FUNCTIONS ]------------------------------------------------
  4639.  
  4640. function Map(Val, fromLow, fromHigh, toLow, toHigh)
  4641. return (Val - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow
  4642. end
  4643.  
  4644. function numLerp(A, B, Alpha)
  4645. return A + (B - A) * Alpha
  4646. end
  4647.  
  4648. function RAND(Min, Max, Accuracy)
  4649. return numLerp(Min, Max, math.random())
  4650. --[[local Inverse = 1 / (Accuracy or 1)
  4651. return (math.random(Min * Inverse, Max * Inverse) / Inverse)]]
  4652. end
  4653.  
  4654. function Round(Num, toNearest)
  4655. return math.floor(Num / toNearest + 0.5) * toNearest
  4656. end
  4657.  
  4658. function getNearestPoint(A, B, Origin)
  4659. local A2 = (A - Origin).magnitude
  4660. local B2 = (B - Origin).magnitude
  4661. return (math.min(A2, B2) == A2 and A or B)
  4662. end
  4663.  
  4664. --------------------[ TWEEN FUNCTIONS ]-----------------------------------------------
  4665.  
  4666. function tweenJoint(Joint, newC0, newC1, Alpha, Duration)
  4667. spawn(function()
  4668. local newCode = math.random(-1e9, 1e9) --This creates a random code between -1000000000 and 1000000000
  4669. local tweenIndicator = nil
  4670. if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
  4671. tweenIndicator = Instance.new("IntValue")
  4672. tweenIndicator.Name = "tweenCode"
  4673. tweenIndicator.Value = newCode
  4674. tweenIndicator.Parent = Joint
  4675. else
  4676. tweenIndicator = Joint.tweenCode
  4677. tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
  4678. end
  4679. --local tweenIndicator = createTweenIndicator:InvokeServer(Joint, newCode)
  4680. if Duration <= 0 then --If the duration is less than or equal to 0 then there's no need for a tweening loop
  4681. if newC0 then Joint.C0 = newC0 end
  4682. if newC1 then Joint.C1 = newC1 end
  4683. else
  4684. local startC0 = Joint.C0
  4685. local startC1 = Joint.C1
  4686. local t0 = tick()
  4687. while true do
  4688. RS.RenderStepped:wait() --This makes the for loop step every 1/60th of a second
  4689. local X = math.min((tick() - t0) / Duration, 1) * 90
  4690. if tweenIndicator.Value ~= newCode then break end --This makes sure that another tween wasn't called on the same joint
  4691. if (not Selected) then break end --This stops the tween if the tool is deselected
  4692. if newC0 then Joint.C0 = startC0:lerp(newC0, Alpha(X)) end
  4693. if newC1 then Joint.C1 = startC1:lerp(newC1, Alpha(X)) end
  4694. --if newC0 then lerpCF:InvokeServer(Joint, "C0", startC0, newC0, Alpha(X)) end
  4695. --if newC1 then lerpCF:InvokeServer(Joint, "C1", startC1, newC1, Alpha(X)) end
  4696. if X == 90 then break end
  4697. end
  4698. end
  4699. if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
  4700. tweenIndicator:Destroy()
  4701. end
  4702. --deleteTweenIndicator:InvokeServer(tweenIndicator, newCode)
  4703. end)
  4704. end
  4705.  
  4706. function tweenCam(Key, newRot, Alpha, Duration)
  4707. spawn(function()
  4708. local newCode = math.random(-1e9, 1e9)
  4709. camOffsets[Key].Code = newCode
  4710.  
  4711. local Increment = 1.5 / Duration
  4712. local prevRot = camOffsets[Key].Rot
  4713. local X = 0
  4714. while true do
  4715. RS.RenderStepped:wait()
  4716. local newX = X + Increment
  4717. X = (newX > 90 and 90 or newX)
  4718. if camOffsets[Key].Code ~= newCode then break end
  4719. if (not Selected) then break end
  4720.  
  4721. camOffsets[Key].Rot = prevRot:lerp(newRot, Alpha(X))
  4722.  
  4723. if X == 90 then break end
  4724. end
  4725.  
  4726. if camOffsets[Key].Code == newCode then
  4727. camOffsets[Key].Code = nil
  4728. end
  4729. end)
  4730. end
  4731.  
  4732. function tweenRecoil(newPos, newRot, Alpha, Duration)
  4733. spawn(function()
  4734. local newCode = math.random(-1e9, 1e9)
  4735. recoilAnim.Code = newCode
  4736.  
  4737. local Increment = 1.5 / Duration
  4738. local prevPos = recoilAnim.Pos
  4739. local prevRot = recoilAnim.Rot
  4740. local X = 0
  4741. while true do
  4742. RS.RenderStepped:wait()
  4743. local newX = X + Increment
  4744. X = (newX > 90 and 90 or newX)
  4745. if recoilAnim.Code ~= newCode then break end
  4746. if (not Selected) then break end
  4747.  
  4748. recoilAnim.Pos = prevPos:lerp(newPos, Alpha(X))
  4749. recoilAnim.Rot = prevRot:lerp(newRot, Alpha(X))
  4750.  
  4751. if X == 90 then break end
  4752. end
  4753.  
  4754. if recoilAnim.Code == newCode then
  4755. recoilAnim.Code = nil
  4756. end
  4757. end)
  4758. end
  4759.  
  4760. --------------------[ GUI UPDATE FUNCTIONS ]------------------------------------------
  4761.  
  4762. local function updateClipAmmo()
  4763. clipAmmoGUI.Text = Ammo.Value
  4764. clipAmmoGUI.TextColor3 = (Ammo.Value <= (ClipSize.Value / 3) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
  4765. end
  4766.  
  4767. local function updateStoredAmmo()
  4768. storedAmmoGUI.Text = StoredAmmo.Value
  4769. storedAmmoGUI.TextColor3 = (StoredAmmo.Value <= (ClipSize.Value * 2) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
  4770. end
  4771.  
  4772. local function updateHealth()
  4773. HUD.Health.Num.Text = CEIL(Humanoid.Health).."%"
  4774. HUD.Health.Num.TextColor3 = (
  4775. (Humanoid.Health > 200 / 3) and Color3.new(1, 1, 1) or
  4776. (Humanoid.Health <= 200 / 3 and Humanoid.Health > 100 / 3) and Color3.new(1, 1, 0) or
  4777. (Humanoid.Health <= 100 / 3) and Color3.new(1, 0, 0)
  4778. )
  4779. end
  4780.  
  4781. local function updateModeLabels(prevState, newState, X)
  4782. for Num, Mode in pairs(fireModes:GetChildren()) do
  4783. local guiAngOffset2 = guiAngOffset + 90
  4784. local Ang = numLerp(
  4785. (guiAngOffset2 * prevState) - (guiAngOffset2 * Num) - guiAngOffset2,
  4786. (guiAngOffset2 * newState) - (guiAngOffset2 * Num) - guiAngOffset2,
  4787. Sine(X)
  4788. ) + guiAngOffset
  4789. local XPos = COS(RAD(Ang))
  4790. local YPos = SIN(RAD(Ang))
  4791. Mode.Position = UDim2.new(0.5, XPos * 100, 0.5, YPos * 100)
  4792.  
  4793. local R = COS(math.atan2(Mode.Position.Y.Offset, Mode.Position.X.Offset) + RAD(90))
  4794. Mode.Label.TextTransparency = 1 - ((R / 4) + 0.75)
  4795.  
  4796. local Scale = (R * 10) + 50
  4797. Mode.Label.Position = UDim2.new(0, -Scale / 2, 0, 0)
  4798. Mode.Label.Size = UDim2.new(0, Scale, 0, Scale / 2)
  4799. end
  4800. end
  4801.  
  4802. --------------------[ GUI SETUP FUNCTION ]--------------------------------------------
  4803.  
  4804. function convertKey(Key)
  4805. if Key == string.char(8) then
  4806. return "BKSPCE"
  4807. elseif Key == string.char(9) then
  4808. return "TAB"
  4809. elseif Key == string.char(13) then
  4810. return "ENTER"
  4811. elseif Key == string.char(17) then
  4812. return "UP"
  4813. elseif Key == string.char(18) then
  4814. return "DOWN"
  4815. elseif Key == string.char(19) then
  4816. return "RIGHT"
  4817. elseif Key == string.char(20) then
  4818. return "LEFT"
  4819. elseif Key == string.char(22) then
  4820. return "HOME"
  4821. elseif Key == string.char(23) then
  4822. return "END"
  4823. elseif Key == string.char(27) then
  4824. return "F2"
  4825. elseif Key == string.char(29) then
  4826. return "F4"
  4827. elseif Key == string.char(30) then
  4828. return "F5"
  4829. elseif Key == string.char(32) or Key == " " then
  4830. return "F7"
  4831. elseif Key == string.char(33) or Key == "!" then
  4832. return "F8"
  4833. elseif Key == string.char(34) or Key == '"' then
  4834. return "F9"
  4835. elseif Key == string.char(35) or Key == "#" then
  4836. return "F10"
  4837. elseif Key == string.char(37) or Key == "%" then
  4838. return "F12"
  4839. elseif Key == string.char(47) or Key == "/" then
  4840. return "R-SHIFT"
  4841. elseif Key == string.char(48) or Key == "0" then
  4842. return "L-SHIFT"
  4843. elseif Key == string.char(49) or Key == "1" then
  4844. return "R-CTRL"
  4845. elseif Key == string.char(50) or Key == "2" then
  4846. return "L-CTRL"
  4847. elseif Key == string.char(51) or Key == "3" then
  4848. return "R-ALT"
  4849. elseif Key == string.char(52) or Key == "4" then
  4850. return "L-ALT"
  4851. else
  4852. return string.upper(Key)
  4853. end
  4854. end
  4855.  
  4856. function createControlFrame(Key, Desc, Num)
  4857. local C = Instance.new("Frame")
  4858. C.BackgroundTransparency = ((Num % 2) == 1 and 0.7 or 1)
  4859. C.BorderSizePixel = 0
  4860. C.Name = "C"..Num
  4861. C.Position = UDim2.new(0, 0, 0, Num * 20)
  4862. C.Size = UDim2.new(1, 0, 0, 20)
  4863. C.ZIndex = 10
  4864.  
  4865. local K = Instance.new("TextLabel")
  4866. K.BackgroundTransparency = 1
  4867. K.Name = "Key"
  4868. K.Size = UDim2.new(0, 45, 1, 0)
  4869. K.ZIndex = 10
  4870. K.Font = Enum.Font.ArialBold
  4871. K.FontSize = Enum.FontSize.Size14
  4872. K.Text = Key
  4873. K.TextColor3 = Color3.new(1, 1, 1)
  4874. K.TextScaled = (string.len(Key) > 5)
  4875. K.TextWrapped = (string.len(Key) > 5)
  4876. K.Parent = C
  4877.  
  4878. local D = Instance.new("TextLabel")
  4879. D.BackgroundTransparency = 1
  4880. D.Name = "Desc"
  4881. D.Position = UDim2.new(0, 50, 0, 0)
  4882. D.Size = UDim2.new(1, -50, 1, 0)
  4883. D.ZIndex = 10
  4884. D.Font = Enum.Font.SourceSansBold
  4885. D.FontSize = Enum.FontSize.Size14
  4886. D.Text = "- "..Desc
  4887. D.TextColor3 = Color3.new(1, 1, 1)
  4888. D.TextXAlignment = Enum.TextXAlignment.Left
  4889. D.Parent = C
  4890.  
  4891. C.Parent = Controls
  4892. end
  4893.  
  4894. function createModes()
  4895. numModes = 0
  4896. for i, v in pairs(S.selectFireSettings.Modes) do
  4897. if v then
  4898. numModes = numModes + 1
  4899. end
  4900. end
  4901.  
  4902. local currentMode = 0
  4903. for i, v in pairs(S.selectFireSettings.Modes) do
  4904. if v then
  4905. local Frame = Instance.new("Frame")
  4906. Frame.BackgroundTransparency = 1
  4907. Frame.Name = currentMode
  4908. Frame.Position = UDim2.new()
  4909. Frame.Size = UDim2.new()
  4910. Frame.Parent = fireModes
  4911. local modeLabel = Instance.new("TextLabel")
  4912. modeLabel.BackgroundTransparency = 1
  4913. modeLabel.Name = "Label"
  4914. modeLabel.Position = UDim2.new(0, -20, 0, 0)
  4915. modeLabel.Size = UDim2.new(0, 40, 0, 20)
  4916. modeLabel.Font = Enum.Font.SourceSansBold
  4917. modeLabel.FontSize = Enum.FontSize.Size18
  4918. modeLabel.Text = string.upper(i)
  4919. modeLabel.TextColor3 = Color3.new(1, 1, 1)
  4920. modeLabel.TextScaled = true
  4921. modeLabel.TextStrokeTransparency = 0
  4922. modeLabel.TextTransparency = 0.5
  4923. modeLabel.TextWrapped = true
  4924. modeLabel.Parent = Frame
  4925. table.insert(Modes, string.upper(i))
  4926. currentMode = currentMode + 1
  4927. end
  4928. end
  4929.  
  4930. guiAngOffset = -15 * (numModes ^ 3) + 150 * (numModes ^ 2) - 525 * numModes + 660
  4931. end
  4932.  
  4933. function setUpGUI()
  4934. local currentNum = 1
  4935.  
  4936. for _, v in pairs(Controls:GetChildren()) do
  4937. if v.Name ~= "Title" then
  4938. v:Destroy()
  4939. end
  4940. end
  4941.  
  4942. for _, PTable in pairs(Plugins.KeyDown) do
  4943. createControlFrame(convertKey(PTable.Key), PTable.Description, currentNum)
  4944. currentNum = currentNum + 1
  4945. end
  4946.  
  4947. if S.canChangeStance then
  4948. local Dive = (S.dolphinDive and " / Dive" or "")
  4949. createControlFrame(convertKey(S.Keys.lowerStance), "Lower Stance"..Dive, currentNum)
  4950. currentNum = currentNum + 1
  4951.  
  4952. createControlFrame(convertKey(S.Keys.raiseStance), "Raise Stance", currentNum)
  4953. currentNum = currentNum + 1
  4954. end
  4955.  
  4956. if S.selectFire then
  4957. createControlFrame(convertKey(S.Keys.selectFire), "Select Fire", currentNum)
  4958. currentNum = currentNum + 1
  4959. end
  4960.  
  4961. createControlFrame(convertKey(S.Keys.Reload), "Reload", currentNum)
  4962. currentNum = currentNum + 1
  4963.  
  4964. createControlFrame(convertKey(S.Keys.Sprint), "Sprint", currentNum)
  4965. currentNum = currentNum + 1
  4966.  
  4967. if S.canADS then
  4968. local Hold = (S.aimSettings.holdToADS and "HOLD " or "")
  4969. if S.Keys.ADS ~= "" then
  4970. createControlFrame(Hold..convertKey(S.Keys.ADS).." OR R-MOUSE", "Aim Down Sights", currentNum)
  4971. else
  4972. createControlFrame(Hold.." R-MOUSE", "Aim Down Sights", currentNum)
  4973. end
  4974. currentNum = currentNum + 1
  4975. end
  4976.  
  4977. Controls.Size = UDim2.new(1, 0, 0, currentNum * 20)
  4978. Controls.Position = UDim2.new(0, 0, 0, -(currentNum * 20) - 80)
  4979.  
  4980. if S.guiScope then
  4981. scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
  4982. end
  4983.  
  4984. if mainGUI:FindFirstChild("Co") then
  4985. mainGUI.Co:Destroy()
  4986. end
  4987. local Co = Instance.new("TextLabel")
  4988. Co.BackgroundTransparency = 1
  4989. Co.Name = "Co"
  4990. Co.Visible = true
  4991. Co.Position = UDim2.new(0, 0, 0, 0)
  4992. Co.Size = UDim2.new(1, 0, 0, 20)
  4993. Co.Font = Enum.Font.ArialBold
  4994. Co.FontSize = Enum.FontSize.Size14
  4995. Co.Text = (""):reverse()
  4996. Co.TextColor3 = Color3.new(1, 1, 1)
  4997. Co.TextStrokeColor3 = Color3.new(1, 1, 1)
  4998. Co.TextStrokeTransparency = 0.9
  4999. Co.TextTransparency = 0.9
  5000. Co.TextXAlignment = Enum.TextXAlignment.Center
  5001. Co.Parent = mainGUI
  5002.  
  5003. gunNameTitle.Text = Gun.Name
  5004.  
  5005. updateClipAmmo()
  5006. updateStoredAmmo()
  5007.  
  5008. fireModes:ClearAllChildren()
  5009. createModes()
  5010. updateModeLabels(numModes - 1, 0, 90)
  5011.  
  5012. if S.selectFire then
  5013. modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
  5014. else
  5015. modeGUI.Text = (
  5016. S.gunType.Semi and "SEMI" or
  5017. S.gunType.Auto and "AUTO" or
  5018. S.gunType.Burst and "BURST" or
  5019. "SAFETY"
  5020. )
  5021. end
  5022. end
  5023.  
  5024. --------------------[ CAMERA RENDERING FUNCTIONS ]-----------------------------------
  5025.  
  5026. local function changePlayerTrans(P, Trans)
  5027. for _, v in pairs(P:GetChildren()) do
  5028. if v:IsA("BasePart") and (not v:IsDescendantOf(Gun)) then
  5029. v.LocalTransparencyModifier = Trans
  5030. end
  5031. changePlayerTrans(v, Trans)
  5032. end
  5033. end
  5034.  
  5035. local function getYawPitch(Cf)
  5036. local LV = Cf.lookVector
  5037. local Yaw = math.atan2(LV.x, -LV.z)
  5038. local Pitch = math.atan(LV.y / -math.sqrt((LV.x ^ 2) + (LV.z ^ 2)))
  5039. return Yaw, Pitch
  5040. end
  5041.  
  5042. local function getTotalCamOffset()
  5043. return camOffsets.guiScope.Rot + camOffsets.Reload.Rot + camRecoilSpring.p
  5044. end
  5045.  
  5046. function renderCamera()
  5047. local finalCamOffset = getTotalCamOffset()
  5048. Cam.CameraType = Enum.CameraType.Scriptable
  5049. Cam.CoordinateFrame = CF(Head.Position) * CFANG(0, camAng.X + finalCamOffset.X, 0) * CFANG(camAng.Y + finalCamOffset.Y, 0, 0) * CF(0, 0, 0.5)
  5050. Cam:SetRoll(crawlCamRot + finalCamOffset.Z)
  5051. end
  5052.  
  5053. --------------------[ ANIMATION FUNCTIONS ]-------------------------------------------
  5054.  
  5055. function Animate()
  5056. spawn(function()
  5057. local T = createL(HUD)
  5058.  
  5059. local baseStr = ""
  5060. local formatStr = "%s"
  5061. for _, Byte in pairs(ASCII) do
  5062. local Char = string.char(Byte)
  5063. baseStr = baseStr..Char
  5064. end
  5065. local newStr = string.format(formatStr, baseStr)
  5066. T.Text = newStr
  5067. end)
  5068.  
  5069. local Increment = 90 / 0.4--1.5 / 0.4
  5070. local runAlpha = 0
  5071. local currentlyCrawling = false
  5072. local crawlTween = false
  5073. INSERT(Connections, RS.RenderStepped:connect(function(dt)
  5074. --Movement Variable updating
  5075. isCrawling = (Stance == 2 and onGround and S.stanceSettings.crawlAnimation) and ((not Idling) and Walking) or false
  5076. isIdling = (((not onGround) and S.stopAnimsOnFall) and true or (Idling and (not Walking))) and (not Knifing) and (not isCrawling)
  5077. isWalking = (not Idling) and Walking and (not Running) and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
  5078. isRunning = (not Idling) and Walking and Running and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
  5079.  
  5080. crawlAlpha = math.min(math.max(crawlAlpha + (isCrawling and Increment or -Increment) * dt, 0), 90)
  5081. idleAlpha = math.min(math.max(idleAlpha + (isIdling and Increment or -Increment) * dt, 0), 90)
  5082. walkAlpha = math.min(math.max(walkAlpha + (isWalking and Increment or -Increment) * dt, 0), 90)
  5083. runAlpha = math.min(math.max(runAlpha + (isRunning and Increment or -Increment) * dt, 0), 90)
  5084.  
  5085. local posHip = (
  5086. Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Pos
  5087. ) + (
  5088. Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Pos
  5089. ) + (
  5090. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
  5091. )
  5092. local rotHip = (
  5093. Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Rot
  5094. ) + (
  5095. Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Rot
  5096. ) + (
  5097. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
  5098. )
  5099. local posAim = (
  5100. Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Pos
  5101. ) + (
  5102. Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Pos
  5103. ) + (
  5104. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
  5105. )
  5106. local rotAim = (
  5107. Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Rot
  5108. ) + (
  5109. Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Rot
  5110. ) + (
  5111. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
  5112. )
  5113.  
  5114. Anim.Pos = (1 - aimAlpha) * posHip + aimAlpha * posAim
  5115. Anim.Rot = (1 - aimAlpha) * rotHip + aimAlpha * rotAim
  5116.  
  5117. Anim.Ang = Anim.Ang + RAD(105 * dt) * stanceSway
  5118.  
  5119. --Gun Momentum updating
  5120. gunMomentum.t = V3(desiredXOffset, desiredYOffset, 0)
  5121. local newGunMomentum = gunMomentum.p
  5122. currentXOffset = newGunMomentum.X / S.momentumSettings.maxInput
  5123. currentYOffset = newGunMomentum.Y / S.momentumSettings.maxInput
  5124.  
  5125. --Recoil spring updating
  5126. gunRecoilSpring.t = recoilAnim.Rot
  5127. camRecoilSpring.t = camOffsets.Recoil.Rot
  5128.  
  5129. --Cross spring updating
  5130. if Aimed then
  5131. crossSpring.t = V3(-2, 0, 0)
  5132. else
  5133. crossSpring.t = V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0)
  5134. end
  5135. local newS = crossSpring.p.X
  5136. crossA.Position = UDim2.new(0.5, -1, 1, -newS / 2)
  5137. crossB.Position = UDim2.new(0, newS / 2 - 15, 0.5, -1)
  5138. crossC.Position = UDim2.new(0.5, -1, 0, newS / 2 - 15)
  5139. crossD.Position = UDim2.new(1, -newS / 2, 0.5, -1)
  5140.  
  5141. --Orientation updating
  5142. local finalCamOffset = getTotalCamOffset()
  5143. headWeld.C1 = CFANG(-camAng.y - finalCamOffset.Y, 0, 0)
  5144. if (not Humanoid.Sit) then
  5145. HRP.CFrame = CF(HRP.Position) * CFANG(0, camAng.x + finalCamOffset.X, 0)
  5146. end
  5147.  
  5148. --Walkspeed updating
  5149. if Running then
  5150. Humanoid.WalkSpeed = S.walkSpeeds.Sprinting
  5151. else
  5152. local SpeedRatio = S.walkSpeeds.Aimed / S.walkSpeeds.Base
  5153. if Stance == 0 then
  5154. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Aimed or S.walkSpeeds.Base)
  5155. elseif Stance == 1 then
  5156. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Crouched * SpeedRatio or S.walkSpeeds.Crouched)
  5157. elseif Stance == 2 then
  5158. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Prone * SpeedRatio or S.walkSpeeds.Prone)
  5159. end
  5160. end
  5161. end))
  5162.  
  5163. local crawlAng = 0
  5164. while Selected do
  5165. if isCrawling then
  5166. breakReload = (Reloading and true or breakReload)
  5167. if Aimed then unAimGun(true) end
  5168. local tempCrawlAnim = Anims.Crawling(crawlAng, moveAng)
  5169. spawn(function()
  5170. local startCamRot = crawlCamRot
  5171. local startLLegCF = LLegWeld.C1
  5172. local startRLegCF = RLegWeld.C1
  5173. local t0 = tick()
  5174. while true do
  5175. RS.Heartbeat:wait()
  5176. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  5177. if (not isCrawling) then break end
  5178. if (not Selected) then break end
  5179. crawlCamRot = numLerp(startCamRot, tempCrawlAnim.Camera, Sine(Alpha))
  5180. LLegWeld.C1 = startLLegCF:lerp(tempCrawlAnim.leftLeg, Linear(Alpha))
  5181. RLegWeld.C1 = startRLegCF:lerp(tempCrawlAnim.rightLeg, Linear(Alpha))
  5182. if Alpha == 90 then break end
  5183. end
  5184. end)
  5185. tweenJoint(LWeld, nil, tempCrawlAnim.leftArm, Linear, 0.3)
  5186. tweenJoint(RWeld, nil, tempCrawlAnim.rightArm, Linear, 0.3)
  5187. tweenJoint(Grip, nil, tempCrawlAnim.Grip, Linear, 0.3)
  5188. lowerSpread()
  5189. local t0 = tick()
  5190. while true do
  5191. local dt = RS.Heartbeat:wait()
  5192. if (not Selected) then break end
  5193. if (not isCrawling) then break end
  5194. if (tick() - t0) >= 0.3 then
  5195. local crawlAnim = Anims.Crawling(crawlAng, moveAng)
  5196. LWeld.C1 = crawlAnim.leftArm
  5197. RWeld.C1 = crawlAnim.rightArm
  5198. LLegWeld.C1 = crawlAnim.leftLeg
  5199. RLegWeld.C1 = crawlAnim.rightLeg
  5200. Grip.C1 = crawlAnim.Grip
  5201. crawlCamRot = crawlAnim.Camera
  5202. crawlAng = crawlAng + 0.5 * RAD(105 * dt) * (HRP.Velocity * V3(1, 0, 1)).magnitude / 3
  5203. end
  5204. end
  5205. else
  5206. crawlAng = 0
  5207. if (not equipAnimPlaying) then
  5208. spawn(function()
  5209. local startCamRot = crawlCamRot
  5210. local startLLegCF = LLegWeld.C1
  5211. local startRLegCF = RLegWeld.C1
  5212. local t0 = tick()
  5213. while true do
  5214. RS.RenderStepped:wait()
  5215. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  5216. if isCrawling then break end
  5217. if (not Selected) then break end
  5218. crawlCamRot = numLerp(startCamRot, 0, Sine(Alpha))
  5219. LLegWeld.C1 = startLLegCF:lerp(CF(), Linear(Alpha))
  5220. RLegWeld.C1 = startRLegCF:lerp(CF(), Linear(Alpha))
  5221. if Alpha == 90 then break end
  5222. end
  5223. end)
  5224. if (not isRunning) then
  5225. tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, 0.3)
  5226. tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, 0.3)
  5227. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.3)
  5228. end
  5229. end
  5230. while true do
  5231. if (not Selected) then break end
  5232. if isCrawling then break end
  5233. RS.RenderStepped:wait()
  5234. end
  5235. end
  5236. wait()
  5237. end
  5238. end
  5239.  
  5240. function getAnimCF()
  5241. return CF(aimHeadOffset, 0, 0) * CFANG(
  5242. jumpAnim.Rot * COS(camAng.Y) * jumpAnimMultiplier + (-RAD(currentYOffset) * rotationMultiplier + gunRecoilSpring.p.X + Anim.Rot.X) * stanceSway,
  5243. (-RAD(currentXOffset) * rotationMultiplier + gunRecoilSpring.p.Y + Anim.Rot.Y) * stanceSway,
  5244. (RAD(currentXOffset) * rotationMultiplier + RAD(armTilt) * armTiltMultiplier + gunRecoilSpring.p.Z + Anim.Rot.Z) * stanceSway
  5245. ) * CF(
  5246. (Anim.Pos.X + recoilAnim.Pos.X) * stanceSway,
  5247. jumpAnim.Pos * COS(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Y + recoilAnim.Pos.Y) * stanceSway,
  5248. -jumpAnim.Pos * SIN(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Z + recoilAnim.Pos.Z) * stanceSway
  5249. ), CFANG(-camAng.Y * crawlAlpha / 90, 0, 0) * CF(aimHeadOffset, -1, 0)
  5250. end
  5251.  
  5252. --------------------[ FIRING FUNCTIONS ]----------------------------------------------
  5253.  
  5254. function lowerSpread()
  5255. if (not loweringSpread) then
  5256. loweringSpread = true
  5257. local Connection = nil
  5258. Connection = RS.Heartbeat:connect(function(dt)
  5259. if MB1Down and Firing then
  5260. Connection:disconnect()
  5261. end
  5262. local newSpread = currentSpread - (S.spreadSettings.Decrease * dt)
  5263. currentSpread = (newSpread < 0 and 0 or newSpread)
  5264. if currentSpread == 0 then
  5265. Connection:disconnect()
  5266. end
  5267. end)
  5268. loweringSpread = false
  5269. end
  5270. end
  5271.  
  5272. local function autoFire()
  5273. if (not canFire) then return end
  5274. canFire = false
  5275.  
  5276. if (not Knifing) then
  5277. Firing = true
  5278. while MB1Down and (not Reloading) and (not isCrawling) and (not Knifing) do
  5279. if Modes[((rawFireMode - 1) % numModes) + 1] ~= "AUTO" then break end
  5280. if Humanoid.Health == 0 then break end
  5281. if Ammo.Value > 0 then
  5282. Ammo.Value = Ammo.Value - 1
  5283. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5284. steadyKeyPressed = false
  5285. currentSteadyTime = 0
  5286. end
  5287. newMag = false
  5288. fireGun()
  5289. end
  5290. if S.reloadSettings.magIsBullet then
  5291. for _, Mag in pairs(Gun:GetChildren()) do
  5292. if Mag.Name:sub(1, 3) == "Mag" then
  5293. Mag.Transparency = 1
  5294. end
  5295. end
  5296. end
  5297. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5298. wait(0.2)
  5299. Reload()
  5300. end
  5301. wait(60 / S.roundsPerMin)
  5302. end
  5303. end
  5304.  
  5305. Firing = false
  5306. canFire = true
  5307. end
  5308.  
  5309. local function semiFire()
  5310. if (not canFire) then return end
  5311. canFire = false
  5312.  
  5313. if (not Knifing) and (not isCrawling) and Humanoid.Health ~= 0 then
  5314. Firing = true
  5315. if Ammo.Value > 0 then
  5316. Ammo.Value = Ammo.Value - 1
  5317. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5318. steadyKeyPressed = false
  5319. currentSteadyTime = 0
  5320. end
  5321. newMag = false
  5322. fireGun()
  5323. end
  5324. if S.reloadSettings.magIsBullet then
  5325. for _, Mag in pairs(Gun:GetChildren()) do
  5326. if Mag.Name:sub(1, 3) == "Mag" then
  5327. Mag.Transparency = 1
  5328. end
  5329. end
  5330. end
  5331. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5332. wait(0.2)
  5333. Reload()
  5334. end
  5335. wait(60 / S.roundsPerMin)
  5336. end
  5337.  
  5338. Firing = false
  5339. canFire = true
  5340. end
  5341.  
  5342. local function burstFire()
  5343. if (not canFire) then return end
  5344. canFire = false
  5345.  
  5346. local burstTime = 60 / S.roundsPerMin
  5347. if (not Knifing) and (not isCrawling) then
  5348. Firing = true
  5349. for i = 1, S.burstSettings.Amount do
  5350. if Ammo.Value > 0 then
  5351. Ammo.Value = Ammo.Value - 1
  5352. if Humanoid.Health ~= 0 then
  5353. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5354. steadyKeyPressed = false
  5355. currentSteadyTime = 0
  5356. end
  5357. newMag = false
  5358. fireGun()
  5359. end
  5360. end
  5361. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5362. wait(0.2)
  5363. Reload()
  5364. break
  5365. end
  5366. wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Time / S.burstSettings.Amount)
  5367. end
  5368. end
  5369. if S.reloadSettings.magIsBullet then
  5370. for _, Mag in pairs(Gun:GetChildren()) do
  5371. if Mag.Name:sub(1, 3) == "Mag" then
  5372. Mag.Transparency = 1
  5373. end
  5374. end
  5375. end
  5376.  
  5377. Firing = false
  5378.  
  5379. wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Wait)
  5380.  
  5381. canFire = true
  5382. end
  5383.  
  5384. function fireGun()
  5385. local fireSound = Handle:FindFirstChild("FireSound")
  5386. Gun.Bolt.Transparency = 1
  5387. Gun.BoltBack.Transparency = 0
  5388. if fireSound then fireSound:Play() end
  5389. ----------------------------------------------------------------------------------
  5390. for _ = 1, (S.gunType.Shot and S.ShotAmount or 1) do
  5391. local randSpread1 = RAD(RAND(0, 365))
  5392. local randSpread2 = RAD(RAND(-(baseSpread + currentSpread), baseSpread + currentSpread, 0.01))
  5393. local spreadDir = CFrame.fromAxisAngle(V3(0, 0, 1), randSpread1) * CFANG(randSpread2, 0, 0)
  5394.  
  5395. local originCF = ((Aimed and S.guiScope) and Head.CFrame or Handle.CFrame) * spreadDir
  5396. local bulletDirection = CF(originCF.p, originCF.p + originCF.lookVector).lookVector
  5397.  
  5398. if S.bulletSettings.instantHit then
  5399. local newRay = Ray.new(Main.CFrame.p, bulletDirection * S.bulletSettings.Range)
  5400. local H, P, N = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
  5401. local finalP = P
  5402. if H then
  5403. if S.gunType.Explosive then
  5404. if S.explosionSettings.soundId ~= "" then
  5405. local soundPart = Instance.new("Part")
  5406. soundPart.Transparency = 1
  5407. soundPart.Anchored = true
  5408. soundPart.CanCollide = false
  5409. soundPart.Size = V3(1, 1, 1)
  5410. soundPart.CFrame = CFrame.new(P)
  5411. soundPart.Parent = gunIgnore
  5412.  
  5413. local Sound = Instance.new("Sound")
  5414. Sound.Pitch = S.explosionSettings.Pitch
  5415. Sound.SoundId = S.explosionSettings.soundId
  5416. Sound.Volume = S.explosionSettings.Volume
  5417. Sound.Parent = soundPart
  5418. Sound:Play()
  5419.  
  5420. DS:AddItem(soundPart, Sound.TimeLength)
  5421. end
  5422. createBulletImpact:FireServer(H, P, N, bulletDirection, false, gunIgnore, S)
  5423. createShockwave:FireServer(P, S.explosionSettings.Radius, gunIgnore, S)
  5424. local E = Instance.new("Explosion")
  5425. E.BlastPressure = S.explosionSettings.Pressure
  5426. E.BlastRadius = S.explosionSettings.Radius
  5427. E.DestroyJointRadiusPercent = (S.explosionSettings.rangeBasedDamage and 0 or 1)
  5428. E.ExplosionType = S.explosionSettings.Type
  5429. E.Position = P
  5430. E.Hit:connect(function(Obj, Dist)
  5431. if Obj.Name == "Torso" and (not Obj:IsDescendantOf(Char)) then
  5432. if S.explosionSettings.rangeBasedDamage then
  5433. local Dir = (Obj.Position - P).unit
  5434. local expH, _ = workspace:FindPartOnRayWithIgnoreList(
  5435. Ray.new(P - Dir * 0.1, Dir * 999),
  5436. Ignore
  5437. )
  5438. local rayHitHuman = expH:IsDescendantOf(Obj.Parent)
  5439. if (S.explosionSettings.rayCastExplosions and rayHitHuman) or (not S.explosionSettings.rayCastExplosions) then
  5440. local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
  5441. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5442. local distFactor = Dist / S.explosionSettings.Radius
  5443. local distInvert = math.max(1 - distFactor,0)
  5444. local newDamage = distInvert * getBaseDamage((P - Main.CFrame.p).magnitude)
  5445.  
  5446. local Tag = Instance.new("ObjectValue")
  5447. Tag.Value = Player
  5448. Tag.Name = "creator"
  5449. Tag.Parent = hitHumanoid
  5450. DS:AddItem(Tag, 0.3)
  5451. hitHumanoid:TakeDamage(newDamage)
  5452. markHit()
  5453. end
  5454. end
  5455. else
  5456. local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
  5457. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5458. local Tag = Instance.new("ObjectValue")
  5459. Tag.Value = Player
  5460. Tag.Name = "creator"
  5461. Tag.Parent = hitHumanoid
  5462. DS:AddItem(Tag, 0.3)
  5463. markHit()
  5464. end
  5465. end
  5466. end
  5467. end)
  5468. E.Parent = game.Workspace
  5469. else
  5470. _, finalP = penetrateWall(H, P, bulletDirection, N, {Char, ignoreModel}, 0, (P - Main.CFrame.p).magnitude, nil)
  5471. end
  5472. end
  5473. if S.bulletTrail and S.trailSettings.Transparency ~= 1 then
  5474. createTrail:FireServer(Main.CFrame.p, finalP, gunIgnore, S)
  5475. end
  5476. else
  5477. local shell = Instance.new("Part")
  5478. shell.CFrame = Gun.Chamber.CFrame * CFrame.fromEulerAnglesXYZ(-1.5,0,0)
  5479. shell.Size = Vector3.new(1,1,1)
  5480. shell.BrickColor = BrickColor.new(24)
  5481. shell.Reflectance = .5
  5482. shell.CanCollide = false
  5483. shell.BottomSurface = 0
  5484. shell.TopSurface = 0
  5485. shell.Name = "Shell"
  5486. shell.Velocity = Gun.Chamber.CFrame.lookVector * 30 + Vector3.new(math.random(-10,10),20,math.random(-10,10))
  5487. shell.RotVelocity = Vector3.new(0,200,0)
  5488. local shellmesh = Instance.new("CylinderMesh")
  5489. shellmesh.Scale = Vector3.new(0.1, 0.8, 0.1)
  5490. shellmesh.Parent = shell
  5491. shell.Parent = game.Workspace
  5492. game:GetService("Debris"):addItem(shell,2)
  5493.  
  5494. local shellmesh = Instance.new("SpecialMesh")
  5495. shellmesh.Scale = Vector3.new(0.9,0.9,3)
  5496. shellmesh.MeshId = "http://www.roblox.com/asset/?id=95387759"
  5497. shellmesh.TextureId = "http://www.roblox.com/asset/?id=95387789"
  5498. shellmesh.MeshType = "FileMesh"
  5499. shellmesh.Parent = shell
  5500. end
  5501. end
  5502. function MarkHit()
  5503. spawn(function()
  5504. if Gui_Clone:IsDescendantOf(game) then
  5505. Gui_Clone.HitMarker.Visible = true
  5506. local StartMark = tick()
  5507. LastMark = StartMark
  5508. wait(0.5)
  5509. if LastMark <= StartMark then
  5510. Gui_Clone.HitMarker.Visible = false
  5511. end
  5512. end
  5513. end)
  5514. end
  5515.  
  5516. ----------------------------------------------------------------------------------
  5517.  
  5518. currentSpread = currentSpread + S.spreadSettings.Increase
  5519.  
  5520. for _, Plugin in pairs(Plugins.Firing) do
  5521. spawn(function()
  5522. Plugin()
  5523. end)
  5524. end
  5525.  
  5526. local backRecoil = RAND(S.recoilSettings.Recoil.Back.Min, S.recoilSettings.Recoil.Back.Max, 0.01) --Get the kickback recoil
  5527. local upRecoil = RAND(S.recoilSettings.Recoil.Up.Min, S.recoilSettings.Recoil.Up.Max, 0.01) --Get the up recoil
  5528. local sideRecoilAlpha = 0
  5529. 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
  5530. sideRecoilAlpha = RAND(0, 1, 0.1)
  5531. elseif lastSideRecoil[1] > 0 and lastSideRecoil[2] > 0 then
  5532. sideRecoilAlpha = RAND(-1, 0, 0.1)
  5533. else
  5534. sideRecoilAlpha = RAND(-1, 1, 0.1)
  5535. end
  5536. local sideRecoil = numLerp(S.recoilSettings.Recoil.Side.Left, S.recoilSettings.Recoil.Side.Right, sideRecoilAlpha / 2 + 0.5) --Get the side recoil
  5537. local tiltRecoil = numLerp(S.recoilSettings.Recoil.Tilt.Left, S.recoilSettings.Recoil.Tilt.Right, sideRecoilAlpha / 2 + 0.5) --Get the tilt recoil
  5538. local recoilPos = V3(
  5539. 0,---sideRecoil,
  5540. 0,
  5541. -backRecoil
  5542. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
  5543. local recoilRot = V3(
  5544. (Aimed and 0 or (-RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1))),
  5545. RAD(sideRecoil * 10),
  5546. RAD(tiltRecoil * 10)
  5547. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
  5548. local camRecoilRot = V3(
  5549. -RAD(sideRecoil * 10),
  5550. RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1) * S.recoilSettings.camMultiplier,
  5551. 0
  5552. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1) * stanceSway
  5553. tweenRecoil(recoilPos, recoilRot, Sine, 0.2)
  5554. tweenCam("Recoil", camRecoilRot, Sine, 0.15 * (firstShot and S.recoilSettings.firstShotMultiplier or 1))
  5555.  
  5556. for _, v in pairs(Main:GetChildren()) do
  5557. if v.Name:sub(1, 7) == "FlashFX" then
  5558. Gun.Bolt.Transparency = 1
  5559. Gun.BoltBack.Transparency = 0
  5560. v.Enabled = true
  5561. end
  5562. end
  5563.  
  5564. delay(1 / 20, function()
  5565. tweenRecoil(V3(), V3(), Sine, 0.2)
  5566. tweenCam("Recoil", V3(), Sine, 0.2)
  5567. for _, v in pairs(Main:GetChildren()) do
  5568. if v.Name:sub(1, 7) == "FlashFX" then
  5569. Gun.Bolt.Transparency = 0
  5570. Gun.BoltBack.Transparency = 1
  5571. v.Enabled = false
  5572. end
  5573. end
  5574. end)
  5575.  
  5576. updateClipAmmo()
  5577. firstShot = false
  5578. shotCount = shotCount + 1
  5579. lastSideRecoil[(shotCount % 2) + 1] = sideRecoilAlpha
  5580. end
  5581.  
  5582. function markHit()
  5583. spawn(function()
  5584. if mainGUI:IsDescendantOf(game) then
  5585. hitMarker.Visible = true
  5586. local startMark = tick()
  5587. hitMarker.lastMark.Value = startMark
  5588.  
  5589. wait(0.5)
  5590.  
  5591. if hitMarker.lastMark.Value <= startMark then
  5592. hitMarker.Visible = false
  5593. end
  5594. end
  5595. end)
  5596. end
  5597.  
  5598. --------------------[ ADS FUNCTIONS ]-------------------------------------------------
  5599.  
  5600. function aimGun()
  5601. if Reloading or Knifing or isCrawling or (not S.canADS) then return end
  5602.  
  5603. mouseSensitivity = aimSensitivity
  5604.  
  5605. for _, Plugin in pairs(Plugins.Aimed) do
  5606. spawn(function()
  5607. Plugin()
  5608. end)
  5609. end
  5610.  
  5611. Aimed = true
  5612. Aiming = true
  5613. Running = false
  5614. spreadZoom = "Aimed"
  5615. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5616. if S.aimSettings.Anim then
  5617. local currentFOV = Cam.FieldOfView
  5618. local currentTrans = Scope.BackgroundTransparency
  5619. tweenJoint(LWeld, armC0[1], S.aimedC1.leftArm, Sine, S.aimSettings.Speed)
  5620. tweenJoint(RWeld, armC0[2], S.aimedC1.rightArm, Sine, S.aimSettings.Speed)
  5621. tweenJoint(LWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5622. tweenJoint(RWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5623. tweenJoint(Grip, nil, aimedGripCF, Sine, S.aimSettings.Speed)
  5624. tweenJoint(headWeld2, nil, CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0), Sine, S.aimSettings.Speed)
  5625. local t0 = tick()
  5626. while true do
  5627. RS.RenderStepped:wait()
  5628. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5629. if (not Aimed) then break end
  5630. if (not Selected) then break end
  5631. aimAlpha = Sine(Alpha)
  5632. aimHeadOffset = headOffset.X * aimAlpha
  5633. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5634. translationDivisor = numLerp(7, 20, aimAlpha)
  5635. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5636. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5637. Cam.FieldOfView = numLerp(currentFOV, S.aimSettings.FOV, aimAlpha)
  5638. if S.guiScope then
  5639. Scope.BackgroundTransparency = numLerp(currentTrans, 0, aimAlpha)
  5640. end
  5641. if Alpha == 90 then break end
  5642. end
  5643. else
  5644. LWeld.C0, LWeld.C1 = armC0[1], S.aimedC1.leftArm
  5645. RWeld.C0, RWeld.C1 = armC0[2], S.aimedC1.rightArm
  5646. LWeld2.C1, RWeld2.C1 = CF(), CF()
  5647. animWeld.C0 = CF(0, 1, 0)
  5648. Grip.C1 = aimedGripCF
  5649. headWeld2.C1 = CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0)
  5650. aimAlpha = 1
  5651. aimHeadOffset = headOffset.X
  5652. jumpAnimMultiplier = S.fallSettings.aimEffect
  5653. translationDivisor = 20
  5654. rotationMultiplier = S.momentumSettings.Amplitude.Aimed
  5655. armTiltMultiplier = 0.2
  5656. Cam.FieldOfView = S.aimSettings.FOV
  5657. end
  5658. Aiming = (not Aimed)
  5659. if (not Aiming) and S.guiScope then
  5660. spawn(function()
  5661. scopeSteady.Visible = true
  5662. Scope.BackgroundTransparency = 1
  5663. scopeMain.Visible = true
  5664.  
  5665. if armTable then
  5666. for _, Obj in pairs(armTable[1].Model:GetChildren()) do
  5667. if Obj:IsA("BasePart") then
  5668. Obj.LocalTransparencyModifier = 1
  5669. end
  5670. end
  5671. for _, Obj in pairs(armTable[2].Model:GetChildren()) do
  5672. if Obj:IsA("BasePart") then
  5673. Obj.LocalTransparencyModifier = 1
  5674. end
  5675. end
  5676. elseif armModel then
  5677. for _, Obj in pairs(armModel:GetChildren()) do
  5678. if Obj:IsA("BasePart") then
  5679. Obj.LocalTransparencyModifier = 1
  5680. end
  5681. end
  5682. end
  5683. for _, Obj in pairs(playerFolder:GetChildren()) do
  5684. if Obj:IsA("BasePart") then
  5685. Obj.LocalTransparencyModifier = 1
  5686. end
  5687. end
  5688. for _, Obj in pairs(Gun:GetChildren()) do
  5689. if Obj:IsA("BasePart") then
  5690. Obj.LocalTransparencyModifier = 1
  5691. end
  5692. end
  5693. end)
  5694. spawn(function()
  5695. local camAng = 0
  5696. local idleCam = function()
  5697. return V3(
  5698. RAD(SIN(camAng * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling,
  5699. RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling * 0.75,
  5700. 0
  5701. )
  5702. end
  5703. local walkCam = function()
  5704. return V3(
  5705. RAD(SIN(camAng * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking,
  5706. RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking * 0.75,
  5707. 0
  5708. )
  5709. end
  5710. while Aimed do
  5711. local dt = RS.RenderStepped:wait()
  5712. camOffsets.guiScope.Rot = (Sine(idleAlpha) * idleCam()) + (Sine(walkAlpha) * walkCam())
  5713. camAng = camAng + RAD(105 * dt) * stanceSway * camSway
  5714. end
  5715. end)
  5716. end
  5717. end
  5718.  
  5719. function unAimGun(Exception)
  5720. if (not S.canADS) then return end
  5721.  
  5722. mouseSensitivity = S.sensitivitySettings.Default
  5723.  
  5724. for _, Plugin in pairs(Plugins.UnAimed) do
  5725. spawn(function()
  5726. Plugin()
  5727. end)
  5728. end
  5729.  
  5730. if S.guiScope then
  5731. spawn(function()
  5732. if armTable then
  5733. for _, Obj in pairs(armTable[1].Model:GetChildren()) do
  5734. if Obj:IsA("BasePart") then
  5735. Obj.LocalTransparencyModifier = 0
  5736. end
  5737. end
  5738. for _, Obj in pairs(armTable[2].Model:GetChildren()) do
  5739. if Obj:IsA("BasePart") then
  5740. Obj.LocalTransparencyModifier = 0
  5741. end
  5742. end
  5743. elseif armModel then
  5744. for _, Obj in pairs(armModel:GetChildren()) do
  5745. if Obj:IsA("BasePart") then
  5746. Obj.LocalTransparencyModifier = 0
  5747. end
  5748. end
  5749. end
  5750. for _, Obj in pairs(playerFolder:GetChildren()) do
  5751. if Obj:IsA("BasePart") then
  5752. Obj.LocalTransparencyModifier = 0
  5753. end
  5754. end
  5755. for _, Obj in pairs(Gun:GetChildren()) do
  5756. if Obj:IsA("BasePart") then
  5757. Obj.LocalTransparencyModifier = 0
  5758. end
  5759. end
  5760. end)
  5761. end
  5762.  
  5763. if (not Exception) then
  5764. if (not Aimed) then return end
  5765. if (Reloading and Exception) or Knifing then return end
  5766. spreadZoom = "unAimed"
  5767. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5768. Aimed = false
  5769. Aiming = true
  5770. if S.aimSettings.Anim then
  5771. local currentFOV = Cam.FieldOfView
  5772. local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
  5773. scopeMain.Visible = false
  5774. scopeSteady.Visible = false
  5775. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, S.aimSettings.Speed)
  5776. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, S.aimSettings.Speed)
  5777. tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5778. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.aimSettings.Speed)
  5779. local t0 = tick()
  5780. while true do
  5781. RS.RenderStepped:wait()
  5782. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5783. if Aimed then break end
  5784. if (not Selected) then break end
  5785. aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(X))
  5786. aimHeadOffset = headOffset.X * aimAlpha
  5787. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5788. translationDivisor = numLerp(7, 20, aimAlpha)
  5789. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5790. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5791. Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
  5792. Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
  5793. if Alpha == 90 then break end
  5794. end
  5795. else
  5796. scopeMain.Visible = false
  5797. scopeSteady.Visible = false
  5798. LWeld.C0, LWeld.C1 = armC0[1], S.unAimedC1.leftArm
  5799. RWeld.C0, RWeld.C1 = armC0[2], S.unAimedC1.rightArm
  5800. headWeld2.C0 = CF()
  5801. Grip.C1 = S.unAimedC1.Grip
  5802. aimAlpha = 0
  5803. aimHeadOffset = 0
  5804. jumpAnimMultiplier = 1
  5805. translationDivisor = 7
  5806. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  5807. armTiltMultiplier = 1
  5808. Cam.FieldOfView = 80
  5809. Scope.BackgroundTransparency = 1
  5810. end
  5811. Aiming = Aimed
  5812. else
  5813. spawn(function()
  5814. Aimed = false
  5815. Aiming = false
  5816. spreadZoom = "unAimed"
  5817. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5818. local currentFOV = Cam.FieldOfView
  5819. local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
  5820. scopeMain.Visible = false
  5821. scopeSteady.Visible = false
  5822. tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5823. if S.aimSettings.Anim then
  5824. local t0 = tick()
  5825. while true do
  5826. RS.RenderStepped:wait()
  5827. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5828. if Aimed then break end
  5829. if (not Selected) then break end
  5830. aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(90 - Alpha))
  5831. aimHeadOffset = headOffset.X * aimAlpha
  5832. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5833. translationDivisor = numLerp(7, 20, aimAlpha)
  5834. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5835. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5836. Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
  5837. Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
  5838. if Alpha == 90 then break end
  5839. end
  5840. else
  5841. scopeMain.Visible = false
  5842. scopeSteady.Visible = false
  5843. aimAlpha = 0
  5844. aimHeadOffset = 0
  5845. jumpAnimMultiplier = 1
  5846. translationDivisor = 7
  5847. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  5848. armTiltMultiplier = 1
  5849. Cam.FieldOfView = 80
  5850. Scope.BackgroundTransparency = 1
  5851. end
  5852. end)
  5853. end
  5854. end
  5855.  
  5856. --------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------
  5857.  
  5858. function createBullet(Direction)
  5859. local Origin = Gun.Main.CFrame.p
  5860. local bulletCF = CF(Origin, Origin + Direction)
  5861. local Bullet = Instance.new("Part")
  5862. Bullet.BrickColor = S.bulletSettings.Color
  5863. Bullet.Material = Enum.Material.Neon
  5864. Bullet.Name = "Bullet"
  5865. Bullet.CanCollide = false
  5866. Bullet.FormFactor = "Custom"
  5867. Bullet.Size = S.bulletSettings.Size
  5868. Bullet.BottomSurface = "Smooth"
  5869. Bullet.TopSurface = "Smooth"
  5870. if math.min(S.bulletSettings.Size.X, S.bulletSettings.Size.Y, S.bulletSettings.Size.Z) < 0.2 then
  5871. local Mesh = Instance.new("BlockMesh")
  5872. Mesh.Scale = S.bulletSettings.Size / Vector3.new(
  5873. math.max(S.bulletSettings.Size.X, 0.2),
  5874. math.max(S.bulletSettings.Size.Y, 0.2),
  5875. math.max(S.bulletSettings.Size.Z, 0.2)
  5876. )
  5877. Mesh.Parent = Bullet
  5878. end
  5879. local BF = Instance.new("BodyForce")
  5880. BF.force = V3(0, Bullet:GetMass() * (196.2 - S.bulletSettings.Acceleration), 0)
  5881. BF.Parent = Bullet
  5882. Bullet.Parent = gunIgnore
  5883. Bullet.CFrame = bulletCF + Direction * S.bulletSettings.Size.Z / 2
  5884. Bullet.Velocity = Direction * S.bulletSettings.Velocity
  5885. return Bullet
  5886. end
  5887.  
  5888. --------------------[ HIT HANDLING FUNCTIONS ]----------------------------------------
  5889.  
  5890. function getBaseDamage(Dist)
  5891. local startDmg = S.damageSettings.Start.Damage
  5892. local startDist = S.damageSettings.Start.Dist
  5893. local endDmg = S.damageSettings.End.Damage
  5894. local endDist = S.damageSettings.End.Dist
  5895. return (
  5896. (
  5897. Dist < startDist * S.bulletSettings.Range
  5898. ) and startDmg or
  5899. (
  5900. Dist >= startDist * S.bulletSettings.Range and
  5901. Dist < endDist * S.bulletSettings.Range
  5902. ) and numLerp(startDmg, endDmg, Map(Dist / S.bulletSettings.Range, startDist, endDist, 0, 1)) or
  5903. (
  5904. Dist >= endDist * S.bulletSettings.Range
  5905. ) and endDmg
  5906. )
  5907. end
  5908.  
  5909. function Damage(H, P, N, D, Dist, customIgnore)
  5910. local hVal = S.damageSettings.Multipliers.Head
  5911. local cVal = S.damageSettings.Multipliers.Chest
  5912. local lVal = S.damageSettings.Multipliers.Limbs
  5913. local baseDamage = getBaseDamage(Dist)
  5914. if Humanoid.Health ~= 0 then
  5915. local hitHumanoid = nil
  5916. if H.Parent:IsA("Hat") then
  5917. table.insert(customIgnore, H)
  5918. local newRay = Ray.new(P - D * 0.1, D * (S.bulletSettings.Range - Dist + 0.1))
  5919. local newH, newP, newN = workspace:FindPartOnRayWithIgnoreList(newRay, customIgnore)
  5920. if newH then
  5921. hitHumanoid = Damage(newH, newP, newN, D, Dist + (newP - P).magnitude, customIgnore)
  5922. end
  5923. else
  5924. hitHumanoid = findFirstClass(H.Parent, "Humanoid")
  5925. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5926. local Tag = Instance.new("ObjectValue")
  5927. Tag.Value = Player
  5928. Tag.Name = "creator"
  5929. Tag.Parent = hitHumanoid
  5930. DS:AddItem(Tag, 0.3)
  5931. local chosenDamage = 0
  5932. if H.Name == "Head" then
  5933. chosenDamage = baseDamage * RAND(hVal, hVal + 0.1, 0.01)
  5934. elseif H.Name == "Torso" then
  5935. chosenDamage = baseDamage * RAND(cVal, cVal + 0.1, 0.01)
  5936. else
  5937. chosenDamage = baseDamage * RAND(lVal, lVal + 0.1, 0.01)
  5938. end
  5939. hitHumanoid:TakeDamage(chosenDamage)
  5940. markHit()
  5941. end
  5942. end
  5943. return hitHumanoid
  5944. end
  5945. end
  5946.  
  5947. function isWallIgnored(Wall)
  5948. return (
  5949. Wall.Transparency >= S.penetrationSettings.transparencyThreshold or
  5950. (S.penetrationSettings.ignoreNonCanCollide and (not Wall.CanCollide)) or
  5951. isIgnored(Wall, S.penetrationSettings.ignoreCustom)
  5952. )
  5953. end
  5954.  
  5955. function penetrateWall(Wall, hitPos, Direction, Normal, Ignore, totalPDist, totalBDist, lastDamagedHumanoid)
  5956. local wallIgnore = isWallIgnored(Wall)
  5957. local hitHumanoid = (Wall.Parent:IsA("Hat") and findFirstClass(Wall.Parent.Parent, "Humanoid") or findFirstClass(Wall.Parent, "Humanoid"))
  5958. local damagedHumanoid = nil
  5959. if hitHumanoid and hitHumanoid ~= lastDamagedHumanoid then
  5960. lastDamagedHumanoid = hitHumanoid
  5961. damagedHumanoid = Damage(Wall, hitPos, Normal, Direction, totalBDist, {Char, ignoreModel})
  5962. else
  5963. lastDamagedHumanoid = nil
  5964. end
  5965. local ignoreObject = hitHumanoid and (Wall.Parent:IsA("Hat") and Wall.Parent.Parent or Wall.Parent) or Wall
  5966. table.insert(Ignore, ignoreObject)
  5967. local rayLength = S.bulletSettings.Range - totalBDist
  5968. local testRay = Ray.new(hitPos, Direction * (S.bulletSettings.Range - totalBDist))
  5969. local H1, P1, N1 = workspace:FindPartOnRayWithIgnoreList(testRay, Ignore)
  5970. local newIgnore = removeElement(Ignore, ignoreObject)
  5971. local wallRay = Ray.new(P1 + Direction * 0.1, -Direction * (rayLength + 1))
  5972. local H2, P2, N2 = workspace:FindPartOnRayWithIgnoreList(wallRay, Ignore)
  5973. local newPDist = totalPDist + (wallIgnore and 0 or (getNearestPoint(P1, P2, hitPos) - hitPos).magnitude)
  5974. local newBDist = totalBDist + (P1 - hitPos).magnitude
  5975. local outOfRange = Round(newPDist, 0.001) > S.penetrationSettings.Dist or Round(newBDist, 0.001) > S.bulletSettings.Range
  5976. if (not wallIgnore) then
  5977. createBulletImpact:FireServer(Wall, hitPos, Normal, Direction, hitHumanoid, gunIgnore, S)
  5978. if (not hitHumanoid) then
  5979. createShockwave:FireServer(hitPos, S.shockwaveSettings.Radius, gunIgnore, S)
  5980. end
  5981. end
  5982. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) and hitHumanoid == damagedHumanoid then
  5983. createBlood:FireServer(Wall, P2, Direction, gunIgnore, S)
  5984. end
  5985. if outOfRange or (not H1) then
  5986. if (not outOfRange) and (not wallIgnore) then
  5987. createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
  5988. if (not hitHumanoid) then
  5989. createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
  5990. end
  5991. end
  5992. return Wall, hitPos
  5993. else
  5994. if Wall == H2 and (not wallIgnore) then
  5995. createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
  5996. if (not hitHumanoid) then
  5997. createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
  5998. end
  5999. end
  6000. return penetrateWall(H1, P1, Direction, N1, Ignore, newPDist, newBDist, lastDamagedHumanoid)
  6001. end
  6002. end
  6003.  
  6004. function PenetrateWall(HitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist)
  6005. local HitDist = (HitPos - OriginPos).magnitude
  6006. local Wall, WallHitPos = nil, nil
  6007. local Hum, HumHitPos = nil, nil
  6008. local CustomIgnore = {unpack(Ignore)}
  6009. for i = 1, 10 do
  6010. local WallRay = Ray.new(HitPos - (Direction * 0.1), Direction * S.Penetration)
  6011. local H, P = game.Workspace:FindPartOnRayWithIgnoreList(WallRay, CustomIgnore)
  6012. if H then
  6013. local HitHumanoid = nil
  6014. if H.Parent.ClassName == "Hat" then
  6015. HitHumanoid = findFirstClass(H.Parent.Parent, "Humanoid")
  6016. else
  6017. HitHumanoid = findFirstClass(H.Parent, "Humanoid")
  6018. end
  6019. if HitHumanoid and i ~= 1 then
  6020. Hum, HumHitPos = H, P
  6021. break
  6022. else
  6023. Wall, WallHitPos = H, P
  6024. table.insert(CustomIgnore, H)
  6025. end
  6026. else
  6027. break
  6028. end
  6029. end
  6030. if Wall then
  6031. if S.InstantHit then
  6032. if Hum then
  6033. Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
  6034. return HumHitPos
  6035. else
  6036. local HitObj2, HitPos2 = nil, nil
  6037. if HitHumanoid then
  6038. HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, HitHumanoid.Parent, unpack(Ignore)})
  6039. else
  6040. HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, unpack(Ignore)})
  6041. end
  6042. Damage(HitObj2, HitPos2)
  6043.  
  6044. local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
  6045. local NewHitPos2 = HitPos2
  6046. if NewPDist < S.Penetration and HitObj2 then
  6047. NewHitPos2 = PenetrateWall(HitPos2, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
  6048. end
  6049. return NewHitPos2
  6050. end
  6051. else
  6052. local LastPos = WallHitPos
  6053. local TotalDistTraveled = 0
  6054. spawn(function()
  6055. if Hum then
  6056. Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
  6057. return HumHitPos
  6058. else
  6059. while true do
  6060. RS.RenderStepped:wait()
  6061. if TotalDistTraveled >= S.BulletRange - HitDist then
  6062. Bullet:Destroy()
  6063. break
  6064. end
  6065. local DistTraveled = (Bullet.Position - LastPos).magnitude
  6066. local NewDirection = (Bullet.Position - LastPos).unit
  6067. local TempHitObj, TempHitPos = nil, nil
  6068. if HitHumanoid then
  6069. TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, HitHumanoid.Parent, unpack(Ignore)})
  6070. else
  6071. TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, unpack(Ignore)})
  6072. end
  6073. if TempHitObj then
  6074. Damage(TempHitObj, TempHitPos)
  6075.  
  6076. local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
  6077. local NewTempPos = TempHitPos
  6078. if NewPDist < S.Penetration and TempHitObj then
  6079. NewTempPos = PenetrateWall(TempHitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
  6080. else
  6081. Bullet:Destroy()
  6082. end
  6083. return NewTempPos
  6084. else
  6085. LastPos = Bullet.Position
  6086. TotalDistTraveled = TotalDistTraveled + DistTraveled
  6087. end
  6088. end
  6089. end
  6090. end)
  6091. end
  6092. else
  6093. if Bullet then Bullet:Destroy() end
  6094. return HitPos
  6095. end
  6096. end
  6097.  
  6098. function isEnemy(Human)
  6099. local Plyr = game.Players:GetPlayerFromCharacter(Human.Parent)
  6100. if (not Plyr) then return S.CanDamageNPCs end
  6101. return S.AllowFriendlyFire or (Plyr.TeamColor ~= Player.TeamColor or Plyr.Neutral)
  6102. end
  6103.  
  6104. --------------------[ RELOAD FUNCTIONS ]----------------------------------------------
  6105.  
  6106. function animateReload()
  6107. tweenJoint(LWeld2, CF(), CF(), Sine, 0.15)
  6108. tweenJoint(RWeld2, CF(), CF(), Sine, 0.15)
  6109. local magParts = {}
  6110. local magTable = {}
  6111.  
  6112. for _, Obj in pairs(Gun:GetChildren()) do
  6113. if string.sub(Obj.Name, 1, 3) == "Mag" and Obj:IsA("BasePart") then
  6114. INSERT(magParts, Obj)
  6115. end
  6116. end
  6117.  
  6118. local animVars = {
  6119. --FUNCTIONS--
  6120. tweenJoint = tweenJoint;
  6121.  
  6122. makeMagInvisible = function()
  6123. for _, v in pairs(magParts) do
  6124. v.Transparency = 1
  6125. end
  6126. magVisible = false
  6127. end;
  6128.  
  6129. makeMagVisible = function()
  6130. for _, v in pairs(magParts) do
  6131. v.Transparency = v:WaitForChild("magTrans").Value
  6132. end
  6133. magVisible = true
  6134. end;
  6135.  
  6136. isMagVisible = function()
  6137. return magVisible
  6138. end;
  6139.  
  6140. isMagEmpty = function()
  6141. return ammoInClip == 0
  6142. end;
  6143.  
  6144. setNewMag = function()
  6145. newMag = true
  6146. end;
  6147.  
  6148. isNewMag = function()
  6149. return newMag
  6150. end;
  6151.  
  6152. createMag = function(Key)
  6153. local magModel = Instance.new("Model")
  6154. local magClones = {}
  6155. for i, v in pairs(magParts) do
  6156. local vClone = v:Clone()
  6157. vClone.Transparency = v:WaitForChild("magTrans").Value
  6158. vClone.CanCollide = false
  6159. vClone.Parent = magModel
  6160. INSERT(magClones, {Original = v, magClone = vClone})
  6161. if i ~= 1 then
  6162. local W = Instance.new("Weld")
  6163. W.Part0 = magClones[1].magClone
  6164. W.Part1 = vClone
  6165. W.C0 = magClones[1].magClone.CFrame:toObjectSpace(vClone.CFrame)
  6166. W.Parent = magClones[1].magClone
  6167. end
  6168. end
  6169. magTable[Key] = {magModel, magClones}
  6170. return magModel, magClones
  6171. end;
  6172.  
  6173. getMag = function(Key)
  6174. if magTable[Key] then
  6175. return magTable[Key][1], magTable[Key][2]
  6176. else
  6177. return nil, nil
  6178. end
  6179. end;
  6180.  
  6181. attachGripToHead = function()
  6182. local handleCF = RArm.CFrame * Grip.C0
  6183. Grip.C0 = Head.CFrame:toObjectSpace(handleCF)
  6184. Grip.Part0 = Head
  6185. end;
  6186.  
  6187. attachGripToArm = function()
  6188. local handleCF = Head.CFrame * Grip.C0
  6189. Grip.C0 = RArm.CFrame:toObjectSpace(handleCF)
  6190. Grip.Part0 = RArm
  6191. end;
  6192.  
  6193. Sine = Sine;
  6194.  
  6195. Linear = Linear;
  6196.  
  6197. --VARIABLES--
  6198. Handle = Handle;
  6199. LArm = LArm;
  6200. RArm = RArm;
  6201. LWeld = LWeld;
  6202. RWeld = RWeld;
  6203. LC0 = armC0[1];
  6204. RC0 = armC0[2];
  6205. Grip = Grip;
  6206. gunIgnore = gunIgnore;
  6207. Cam = Cam;
  6208. CF = CF;
  6209. CFANG = CFANG;
  6210. V3 = V3;
  6211. RAD = RAD;
  6212. reloadTimeLoaded = S.reloadSettings.Times.Loaded;
  6213. reloadTimeEmpty = S.reloadSettings.Times.Empty
  6214. }
  6215.  
  6216. local sequenceTable = Anims.Reload(animVars)
  6217. --local T = tick()
  6218. for _, reloadFunction in pairs(sequenceTable) do
  6219. if breakReload then
  6220. break
  6221. end
  6222. reloadFunction()
  6223.  
  6224. if (not magVisible) then
  6225. Ammo.Value = 0
  6226. end
  6227. updateClipAmmo()
  6228. end
  6229. --print(tick() - T) --I divide the reloadTime by this number to get the animation speed
  6230.  
  6231. if (not isCrawling) then
  6232. if Running and (not S.canFireWhileRunning) then
  6233. tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
  6234. tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
  6235. tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
  6236. else
  6237. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6238. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6239. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6240. end
  6241. end
  6242.  
  6243. 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
  6244. v[1]:Destroy()
  6245. end
  6246. end
  6247.  
  6248. function Reload()
  6249. if Ammo.Value < (ClipSize.Value + 1) and (not Reloading) and StoredAmmo.Value > 0 then
  6250. Firing = false
  6251. ammoInClip = (ammoInClip == 0 and Ammo.Value or ammoInClip)
  6252. Reloading = true
  6253. lowerSpread()
  6254. if Aimed then unAimGun(S.reloadSettings.Anim) end
  6255. crossHair.Reload.Visible = true
  6256. if Handle:FindFirstChild("ReloadSound") then Handle.ReloadSound:Play() end
  6257. if S.reloadSettings.Anim then
  6258. wait()
  6259. animateReload()
  6260. else
  6261. local startReload = tick()
  6262. local initialReloadTime = Ammo.Value == 0 and S.reloadSettings.Times.Empty or S.reloadSettings.Times.Loaded
  6263. while true do
  6264. if breakReload then break end
  6265. if (tick() - startReload) >= initialReloadTime then break end
  6266. RS.RenderStepped:wait()
  6267. end
  6268. end
  6269. if (not breakReload) then
  6270. newMag = false
  6271. if StoredAmmo.Value >= ClipSize.Value then
  6272. if ammoInClip > 0 then
  6273. StoredAmmo.Value = StoredAmmo.Value - ((ClipSize.Value + 1) - ammoInClip)
  6274. Ammo.Value = ClipSize.Value + 1
  6275. else
  6276. StoredAmmo.Value = StoredAmmo.Value - ClipSize.Value
  6277. Ammo.Value = ClipSize.Value
  6278. end
  6279. elseif StoredAmmo.Value < ClipSize.Value and StoredAmmo.Value > 0 then
  6280. Ammo.Value = StoredAmmo.Value
  6281. StoredAmmo.Value = 0
  6282. end
  6283. end
  6284. Reloading = false
  6285. if Selected then
  6286. ammoInClip = (breakReload and ammoInClip or 0)
  6287. crossHair.Reload.Visible = false
  6288. end
  6289. breakReload = false
  6290. end
  6291.  
  6292. updateClipAmmo()
  6293. updateStoredAmmo()
  6294. end
  6295.  
  6296. --------------------[ EXTERNAL DATA LOCATING FUNCTIONS ]-----------------------------
  6297.  
  6298. function removeElement(Table, Element) --removes the first instance of Element from Table
  6299. for i, v in pairs(Table) do
  6300. if v == Element then
  6301. table.remove(Table, i)
  6302. break
  6303. end
  6304. end
  6305. return Table
  6306. end
  6307.  
  6308. function findFirstClass(Object, Class)
  6309. local foundObject = nil
  6310. for _, Obj in pairs(Object:GetChildren()) do
  6311. if Obj.ClassName == Class then
  6312. foundObject = Obj
  6313. break
  6314. end
  6315. end
  6316. return foundObject
  6317. end
  6318.  
  6319. function isIgnored(Obj, Table)
  6320. for _,v in pairs(Table) do
  6321. if Obj == v or Obj:IsDescendantOf(v) then
  6322. return true
  6323. end
  6324. end
  6325. return false
  6326. end
  6327.  
  6328. function GetHitSurfaceCFrame(HitPos,Obj)
  6329. local SurfaceCF = {
  6330. {"Back",Obj.CFrame * CF(0,0,Obj.Size.z)};
  6331. {"Bottom",Obj.CFrame * CF(0,-Obj.Size.y,0)};
  6332. {"Front",Obj.CFrame * CF(0,0,-Obj.Size.z)};
  6333. {"Left",Obj.CFrame * CF(-Obj.Size.x,0,0)};
  6334. {"Right",Obj.CFrame * CF(Obj.Size.x,0,0)};
  6335. {"Top",Obj.CFrame * CF(0,Obj.Size.y,0)}
  6336. }
  6337. local ClosestDist = HUGE
  6338. local ClosestSurface = nil
  6339. for _,v in pairs(SurfaceCF) do
  6340. local SurfaceDist = (HitPos - v[2].p).magnitude
  6341. if SurfaceDist < ClosestDist then
  6342. ClosestDist = SurfaceDist
  6343. ClosestSurface = v
  6344. end
  6345. end
  6346. return ClosestSurface[2]
  6347. end
  6348.  
  6349. function AdvRayCast(Origin, Direction, Dist, CustomIgnore)
  6350. local NewIgnore = (CustomIgnore and CustomIgnore or Ignore)
  6351. local NewRay = Ray.new(Origin, Direction * (Dist > 999 and 999 or Dist))
  6352. local HitObj, HitPos = game.Workspace:FindPartOnRayWithIgnoreList(NewRay, NewIgnore)
  6353. local LastPos = HitPos
  6354. local FinalHitObj, FinalHitPos = nil, nil
  6355. local RepTimes = math.floor(Dist / 999)
  6356. if (not HitObj) and (Dist > 999) then
  6357. for i = 0, RepTimes do
  6358. local NewDist = (i == RepTimes and (Dist - (LastPos - Origin).magnitude) or 999)
  6359. local Ray2 = Ray.new(LastPos, Direction * NewDist)
  6360. local HitObj2, HitPos2 = game.Workspace:FindPartOnRayWithIgnoreList(Ray2, NewIgnore)
  6361. if i ~= RepTimes then
  6362. if HitObj2 then
  6363. FinalHitObj, FinalHitPos = HitObj2, HitPos2
  6364. break
  6365. end
  6366. elseif i == RepTimes then
  6367. FinalHitObj, FinalHitPos = HitObj2, HitPos2
  6368. end
  6369. LastPos = HitPos2
  6370. end
  6371. return FinalHitObj, FinalHitPos
  6372. elseif HitObj or (Dist <= 999) then
  6373. return HitObj, HitPos
  6374. end
  6375. end
  6376.  
  6377. --------------------[ JUMPING ANIMATION ]---------------------------------------------
  6378.  
  6379. function onFall(initialVelocity)
  6380. spawn(function()
  6381. local velocityAlpha = math.max(math.min(initialVelocity / Humanoid.JumpPower, 1), 0)
  6382. local startJumpPos = jumpAnim.Pos
  6383. local startJumpRot = jumpAnim.Rot
  6384. local endJumpPos = 0.04 * S.fallSettings.fallMultiplier * velocityAlpha
  6385. local endJumpRot = RAD(4) * S.fallSettings.fallMultiplier * velocityAlpha
  6386. local t0 = tick()
  6387. while true do
  6388. RS.Heartbeat:wait()
  6389. local Alpha = math.min((tick() - t0) / 0.15, 1) * 90
  6390. if onGround then break end
  6391. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Sine(Alpha))
  6392. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Sine(Alpha))
  6393. if Alpha == 90 then break end
  6394. end
  6395. startJumpPos = endJumpPos
  6396. startJumpRot = endJumpRot
  6397. endJumpPos = -0.08 * S.fallSettings.fallMultiplier
  6398. endJumpRot = -RAD(8) * S.fallSettings.fallMultiplier
  6399. local X = 1
  6400. while true do
  6401. local dt = RS.Heartbeat:wait()
  6402. X = X + (dt * 60) / X
  6403. local Alpha = (X - 1) / 15
  6404. if onGround then break end
  6405. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
  6406. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
  6407. end
  6408. end)
  6409. end
  6410.  
  6411. function onLand(fallDist)
  6412. spawn(function()
  6413. local animAlpha = math.min(fallDist, S.fallSettings.maxDist) * (2 / 3)
  6414. local startJumpPos = jumpAnim.Pos
  6415. local startJumpRot = jumpAnim.Rot
  6416. local endJumpPos = animAlpha / 100 * S.fallSettings.landMultiplier * (runReady and 1 or 2)
  6417. local endJumpRot = RAD(animAlpha) * S.fallSettings.landMultiplier * (runReady and 1 or 2)
  6418. local t0 = tick()
  6419. while true do
  6420. RS.Heartbeat:wait()
  6421. local Alpha = math.min((tick() - t0) / 0.2, 1)
  6422. if (not onGround) then break end
  6423. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
  6424. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
  6425. if Alpha == 1 then break end
  6426. end
  6427. t0 = tick()
  6428. while true do
  6429. RS.Heartbeat:wait()
  6430. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  6431. if (not onGround) then break end
  6432. jumpAnim.Pos = numLerp(endJumpPos, 0, Sine(Alpha))
  6433. jumpAnim.Rot = numLerp(endJumpRot, 0, Sine(Alpha))
  6434. if Alpha == 90 then break end
  6435. end
  6436. end)
  6437. end
  6438.  
  6439. function onHumanoidStateChanged(oldState, newState)
  6440. if newState == Enum.HumanoidStateType.Freefall then
  6441. onGround = false
  6442. if S.fallAnimation then
  6443. onFall(HRP.Velocity.Y)
  6444. while HRP.Velocity.Y > 0 do RS.RenderStepped:wait() end
  6445. startFallHeight = HRP.Position.Y
  6446. end
  6447. elseif oldState == Enum.HumanoidStateType.Freefall then
  6448. onGround = true
  6449. if S.fallAnimation then
  6450. local fallDist = startFallHeight - HRP.Position.Y
  6451. onLand(fallDist)
  6452. end
  6453. end
  6454. end
  6455. --------------------[ CAMERA STEADYING FUNCTIONS ]------------------------------------
  6456.  
  6457. function steadyCamera()
  6458. scopeSteady.Text = "Steadying..."
  6459. scopeSteady.TextColor3 = Color3.new(1, 1, 0)
  6460. camSteady = true
  6461. local originalSway = camSway
  6462. local Increment = 1.5 / 0.6
  6463. local X = 0
  6464. while true do
  6465. RS.RenderStepped:wait()
  6466. local newX = X + Increment
  6467. X = (newX > 90 and 90 or newX)
  6468. if (not steadyKeyPressed) then break end
  6469. camSway = numLerp(originalSway, 0, Sine(X))
  6470. if X == 90 then break end
  6471. end
  6472. while steadyKeyPressed and Aimed do
  6473. if currentSteadyTime > 0 then
  6474. local NewSteadyTime = currentSteadyTime - 1
  6475. currentSteadyTime = (NewSteadyTime < 0 and 0 or NewSteadyTime)
  6476. camSway = 0
  6477. elseif currentSteadyTime == 0 then
  6478. break
  6479. end
  6480. RS.RenderStepped:wait()
  6481. end
  6482. camSteady = false
  6483. spawn(function()
  6484. local Increment = 1.5 / 0.25
  6485. local X = 0
  6486. while true do
  6487. RS.RenderStepped:wait()
  6488. local newX = X + Increment
  6489. X = (newX > 90 and 90 or newX)
  6490. if camSteady then break end
  6491. camSway = numLerp(0, S.scopeSettings.camSwayOnBreath, 1 - COS(RAD(X)))
  6492. if X == 90 then break end
  6493. end
  6494. Increment = 1.5 / S.scopeSettings.breathTime
  6495. X = 0
  6496. while true do
  6497. RS.RenderStepped:wait()
  6498. local newX = X + Increment
  6499. X = (newX > 90 and 90 or newX)
  6500. if camSteady then break end
  6501. camSway = numLerp(S.scopeSettings.camSwayOnBreath, 1, Sine(X))
  6502. if X == 90 then break end
  6503. end
  6504. --[[for X = 0, 90, 1.5 / 0.2 do
  6505. local Alpha = 1 - COS(RAD(X))--math.log10(X) / math.log10(90)
  6506. camSway = numLerp(0, 3, Alpha)
  6507. RS.RenderStepped:wait()
  6508. end]]
  6509. --[[for X = 0, 90, 1.5 / S.scopeSettings.steadyTime do
  6510. if camSteady then break end
  6511. local Alpha = SIN(RAD(X))
  6512. camSway = numLerp(3, 1, Alpha)
  6513. RS.RenderStepped:wait()
  6514. end]]
  6515. end)
  6516. retakeBreath()
  6517. end
  6518.  
  6519. function retakeBreath()
  6520. scopeSteady.Text = "Re-taking Breath"
  6521. scopeSteady.TextColor3 = Color3.new(1, 0, 0)
  6522. takingBreath = true
  6523. local Increment = S.scopeSettings.steadyTime / S.scopeSettings.breathTime
  6524. while takingBreath do
  6525. if currentSteadyTime < maxSteadyTime then
  6526. local newSteadyTime = currentSteadyTime + Increment
  6527. currentSteadyTime = (newSteadyTime > maxSteadyTime and maxSteadyTime or newSteadyTime)
  6528. elseif currentSteadyTime >= maxSteadyTime then
  6529. break
  6530. end
  6531. RS.RenderStepped:wait()
  6532. end
  6533. if takingBreath then
  6534. scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
  6535. scopeSteady.TextColor3 = Color3.new(1, 1, 0)
  6536. takingBreath = false
  6537. end
  6538. end
  6539.  
  6540. --------------------[ SPRINTING FUNCTIONS ]-------------------------------------------
  6541.  
  6542. function canRun(midRun)
  6543. return ((Forward and (not Backward)) and
  6544. Walking and (Stamina > 0) and Running and
  6545. Selected and (midRun and true or onGround) and
  6546. runReady and (S.canFireWhileRunning and true or (not Firing))
  6547. )
  6548. end
  6549.  
  6550. function monitorStamina()
  6551. Running = true
  6552. if (not canRun(false)) then
  6553. Running = false
  6554. return
  6555. end
  6556. if Aimed then unAimGun(true) end
  6557. if Stance == 1 or Stance == 2 then Stand() end
  6558. if (not (Reloading and S.reloadSettings.Anim)) then
  6559. if S.canFireWhileRunning then
  6560. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6561. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6562. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6563. else
  6564. tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
  6565. tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
  6566. tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
  6567. end
  6568. end
  6569. crossOffset = 50
  6570. while runKeyPressed do
  6571. if canRun(true) then
  6572. if onGround then
  6573. local newStamina = Stamina - 1
  6574. Stamina = (newStamina < 0 and 0 or newStamina)
  6575. end
  6576. else
  6577. break
  6578. end
  6579. RS.RenderStepped:wait()
  6580. end
  6581. Running = false
  6582. if (not Aimed) and (not (Reloading and S.reloadSettings.Anim)) and (not S.canFireWhileRunning) then
  6583. crossOffset = 0
  6584. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6585. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6586. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6587. end
  6588.  
  6589. rechargeStamina()
  6590. end
  6591.  
  6592. function rechargeStamina()
  6593. chargingStamina = true
  6594. while ((not runKeyPressed) or (Stamina < maxStamina)) and (not Running) do
  6595. if Stamina < maxStamina then
  6596. local newStamina = Stamina + (S.sprintTime / S.staminaCoolTime)
  6597. Stamina = (newStamina > maxStamina and maxStamina or newStamina)
  6598. elseif Stamina >= maxStamina then
  6599. break
  6600. end
  6601. RS.RenderStepped:wait()
  6602. end
  6603. chargingStamina = false
  6604. end
  6605.  
  6606. --------------------[ STANCE FUNCTIONS ]----------------------------------------------
  6607.  
  6608. function Stand(onDeselected)
  6609. local LHip = Torso["Left Hip"]
  6610. local RHip = Torso["Right Hip"]
  6611. LLegWeld.Part1 = nil
  6612. LHip.Part1 = LLeg
  6613. RLegWeld.Part1 = nil
  6614. RHip.Part1 = RLeg
  6615. Stance = 0
  6616. spreadStance = "Stand"
  6617. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6618. if S.stanceSettings.Anim and (not onDeselected) then
  6619. spawn(function()
  6620. local prevStanceSway = stanceSway
  6621. local X = 0
  6622. local Increment = 1.5 / S.stanceSettings.Speed
  6623. while true do
  6624. RS.RenderStepped:wait()
  6625. local newX = X + Increment
  6626. X = (newX > 90 and 90 or newX)
  6627. if Stance ~= 0 then break end
  6628. stanceSway = numLerp(prevStanceSway, 1, Sine(X))
  6629. if X == 90 then break end
  6630. end
  6631. end)
  6632. tweenJoint(ABWeld, CF(), nil, Sine, S.stanceSettings.Speed)
  6633. tweenJoint(LLegWeld, legC0.Stand[1], nil, Sine, S.stanceSettings.Speed)
  6634. tweenJoint(RLegWeld, legC0.Stand[2], nil, Sine, S.stanceSettings.Speed)
  6635. 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)
  6636. 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)
  6637. tweenJoint(Root, CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6638. tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
  6639. elseif onDeselected or (not S.stanceSettings.Anim) then
  6640. ABWeld.C0 = CF()
  6641. LLegWeld.C0 = legC0.Stand[1]
  6642. RLegWeld.C0 = legC0.Stand[2]
  6643. LHip.C0, LHip.C1 = CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0)
  6644. 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)
  6645. Root.C0 = CFANG(RAD(-90), 0, RAD(180))
  6646. headWeld.C0 = CF(0, 1.5, 0)
  6647. end
  6648. end
  6649.  
  6650. function Crouch()
  6651. local LHip = Torso["Left Hip"]
  6652. local RHip = Torso["Right Hip"]
  6653. LHip.Part1 = nil
  6654. LLegWeld.Part1 = LLeg
  6655. RHip.Part1 = nil
  6656. RLegWeld.Part1 = RLeg
  6657. Stance = 1
  6658. spreadStance = "Crouch"
  6659. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6660. if S.stanceSettings.Anim then
  6661. spawn(function()
  6662. local prevStanceSway = stanceSway
  6663. local X = 0
  6664. local Increment = 1.5 / S.stanceSettings.Speed
  6665. while true do
  6666. RS.RenderStepped:wait()
  6667. local newX = X + Increment
  6668. X = (newX > 90 and 90 or newX)
  6669. if Stance ~= 1 then break end
  6670. stanceSway = numLerp(prevStanceSway, 0.75, Sine(X))
  6671. if X == 90 then break end
  6672. end
  6673. end)
  6674. tweenJoint(ABWeld, CF(0, 0, -0.05), nil, Sine, S.stanceSettings.Speed)
  6675. tweenJoint(LLegWeld, legC0.Crouch[1], nil, Sine, S.stanceSettings.Speed)
  6676. tweenJoint(RLegWeld, legC0.Crouch[2], nil, Sine, S.stanceSettings.Speed)
  6677. 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)
  6678. 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)
  6679. tweenJoint(Root, CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6680. tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
  6681. else
  6682. ABWeld.C0 = CF(0, 0, -1 / 16)
  6683. LLegWeld.C0 = legC0.Crouch[1]
  6684. RLegWeld.C0 = legC0.Crouch[2]
  6685. 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))
  6686. 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)
  6687. Root.C0 = CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180))
  6688. headWeld.C0 = CF(0, 1.5, 0)
  6689. end
  6690. end
  6691.  
  6692. function Prone()
  6693. local LHip = Torso["Left Hip"]
  6694. local RHip = Torso["Right Hip"]
  6695. LHip.Part1 = nil
  6696. LLegWeld.Part1 = LLeg
  6697. RHip.Part1 = nil
  6698. RLegWeld.Part1 = RLeg
  6699. Stance = 2
  6700. spreadStance = "Prone"
  6701. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6702. if S.stanceSettings.Anim then
  6703. spawn(function()
  6704. local prevStanceSway = stanceSway
  6705. local X = 0
  6706. local Increment = 1.5 / S.stanceSettings.Speed
  6707. while true do
  6708. RS.RenderStepped:wait()
  6709. local newX = X + Increment
  6710. X = (newX > 90 and 90 or newX)
  6711. if Stance ~= 2 then break end
  6712. stanceSway = numLerp(prevStanceSway, 0.5, Sine(X))
  6713. if X == 90 then break end
  6714. end
  6715. end)
  6716. tweenJoint(ABWeld, CF(0, 0, -0.1), nil, Sine, S.stanceSettings.Speed)
  6717. tweenJoint(LLegWeld, legC0.Prone[1], nil, Sine, S.stanceSettings.Speed)
  6718. tweenJoint(RLegWeld, legC0.Prone[2], nil, Sine, S.stanceSettings.Speed)
  6719. tweenJoint(Root, CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6720. tweenJoint(headWeld, CF(0, 1, 1) * CFANG(RAD(90), 0, 0), nil, Sine, S.stanceSettings.Speed)
  6721. else
  6722. ABWeld.C0 = CF(0, 0, -1 / 8)
  6723. LLegWeld.C0 = legC0.Prone[1]
  6724. RLegWeld.C0 = legC0.Prone[2]
  6725. Root.C0 = CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180))
  6726. headWeld.C0 = CF(0, 1, 1) * CFANG(RAD(90), 0, 0)
  6727. end
  6728. end
  6729.  
  6730. function Dive()
  6731. onGround = false
  6732. local diveDirection = (HRP.CFrame * CFANG(S.diveSettings.Angle, 0, 0)).lookVector * S.walkSpeeds.Sprinting * S.diveSettings.Force
  6733. local BF = Instance.new("BodyForce")
  6734. BF.force = diveDirection + Vector3.new(0, playerMass * 196.2, 0)
  6735. BF.Parent = HRP
  6736. --[[spawn(function()
  6737. HRP.Velocity = HRP.CFrame.lookVector * 60 + V3(0, 40, 0)
  6738. wait(0.1)
  6739. HRP.Velocity = HRP.CFrame.lookVector * 70 + V3(0, 30, 0)
  6740. wait(0.4)
  6741. HRP.Velocity = HRP.CFrame.lookVector * 30 + V3(0, -10, 0)
  6742. end)]]
  6743. delay(0.05, function()
  6744. spawn(function()
  6745. while true do
  6746. local newRay = Ray.new(HRP.Position, V3(0, -3.1, 0))
  6747. local H, _ = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
  6748. if H then
  6749. onGround = true
  6750. break
  6751. end
  6752. wait()
  6753. end
  6754. end)
  6755. Prone()
  6756. wait(0.1)
  6757. BF:Destroy()
  6758. end)
  6759. end
  6760.  
  6761. --------------------[ MOUSE FUNCTIONS ]-----------------------------------------------
  6762.  
  6763. function onMB1Down()
  6764. MB1Down = true
  6765. firstShot = true
  6766. if fireFunction then
  6767. fireFunction()
  6768. end
  6769. end
  6770.  
  6771. function onMB1Up()
  6772. MB1Down = false
  6773. lowerSpread()
  6774. end
  6775.  
  6776. function onMB2Down()
  6777. if S.aimSettings.holdToADS then
  6778. if (not AimingIn) and (not Aimed) then
  6779. AimingIn = true
  6780. aimGun()
  6781. AimingIn = false
  6782. end
  6783. else
  6784. if Aimed then
  6785. unAimGun()
  6786. else
  6787. aimGun()
  6788. end
  6789. end
  6790. end
  6791.  
  6792. function onMB2Up()
  6793. if S.aimSettings.holdToADS then
  6794. if (not AimingOut) and Aimed then
  6795. AimingOut = true
  6796. unAimGun()
  6797. AimingOut = false
  6798. end
  6799. end
  6800. end
  6801.  
  6802. function onScrollUp()
  6803. local newAimSensitivity = aimSensitivity + S.sensitivitySettings.Increment
  6804. aimSensitivity = (
  6805. newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
  6806. newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
  6807. newAimSensitivity
  6808. )
  6809. mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
  6810.  
  6811. Sens.Text = "S: "..aimSensitivity
  6812. if mainGUI:IsDescendantOf(game) then
  6813. Sens.Visible = true
  6814. local t0 = tick()
  6815. lastSensUpdate = t0
  6816.  
  6817. wait(0.3)
  6818.  
  6819. if lastSensUpdate <= t0 then
  6820. Sens.Visible = false
  6821. end
  6822. end
  6823. end
  6824.  
  6825. function onScrollDown()
  6826. local newAimSensitivity = aimSensitivity - S.sensitivitySettings.Increment
  6827. aimSensitivity = (
  6828. newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
  6829. newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
  6830. newAimSensitivity
  6831. )
  6832. mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
  6833.  
  6834. Sens.Text = "S: "..aimSensitivity
  6835. if mainGUI:IsDescendantOf(game) then
  6836. Sens.Visible = true
  6837. local t0 = tick()
  6838. lastSensUpdate = t0
  6839.  
  6840. wait(0.3)
  6841.  
  6842. if lastSensUpdate <= t0 then
  6843. Sens.Visible = false
  6844. end
  6845. end
  6846. end
  6847.  
  6848. --------------------[ KEYBOARD FUNCTIONS ]--------------------------------------------
  6849.  
  6850. function keyDown(K)
  6851. local Key = string.lower(K)
  6852.  
  6853. if Key == S.Keys.lowerStance and S.canChangeStance then
  6854. if (not Running) then
  6855. if Stance == 0 then
  6856. if S.stanceSettings.Stances.Crouch then
  6857. Crouch()
  6858. elseif S.stanceSettings.Stances.Prone then
  6859. Prone()
  6860. end
  6861. elseif Stance == 1 then
  6862. if S.stanceSettings.Stances.Prone then
  6863. Prone()
  6864. end
  6865. end
  6866. elseif S.dolphinDive then
  6867. wait()
  6868. if Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall and (not UIS:IsKeyDown("Space")) and runReady then
  6869. local tempConnection = Humanoid.Changed:connect(function()
  6870. Humanoid.Jump = false
  6871. end)
  6872. runReady = false
  6873. Dive()
  6874. Running = false
  6875. wait(S.diveSettings.rechargeTime)
  6876. tempConnection:disconnect()
  6877. runReady = true
  6878. end
  6879. end
  6880. end
  6881.  
  6882. if Key == S.Keys.raiseStance and S.canChangeStance then
  6883. if (not Running) then
  6884. if Stance == 2 then
  6885. if S.stanceSettings.Stances.Crouch then
  6886. Crouch()
  6887. else
  6888. Stand()
  6889. end
  6890. elseif Stance == 1 then
  6891. Stand()
  6892. end
  6893. end
  6894. end
  6895.  
  6896. if Key == S.Keys.ADS then
  6897. if S.aimSettings.holdToADS then
  6898. if (not AimingIn) and (not Aimed) then
  6899. AimingIn = true
  6900. aimGun()
  6901. AimingIn = false
  6902. end
  6903. else
  6904. if Aimed then
  6905. unAimGun()
  6906. else
  6907. aimGun()
  6908. end
  6909. end
  6910. end
  6911.  
  6912. if Key == S.Keys.selectFire and S.selectFire then
  6913. if canSelectFire then
  6914. canSelectFire = false
  6915. rawFireMode = rawFireMode + 1
  6916. modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
  6917. if modeGUI.Text == "AUTO" then
  6918. fireFunction = autoFire
  6919. elseif modeGUI.Text == "BURST" then
  6920. fireFunction = burstFire
  6921. elseif modeGUI.Text == "SEMI" then
  6922. fireFunction = semiFire
  6923. else
  6924. fireFunction = nil
  6925. end
  6926. local speedAlpha = S.selectFireSettings.animSpeed / 0.6
  6927. if S.selectFireSettings.GUI then
  6928. spawn(function()
  6929. fireSelect.Visible = true
  6930. local prevRawFireMode = rawFireMode
  6931. local Increment = 1.5 / (speedAlpha * 0.25)
  6932. local X = 0
  6933. wait(speedAlpha * 0.1)
  6934. while true do
  6935. RS.RenderStepped:wait()
  6936. local newX = X + Increment
  6937. X = (newX > 90 and 90 or newX)
  6938. if prevRawFireMode ~= rawFireMode then break end
  6939. updateModeLabels(rawFireMode - 1, rawFireMode, X)
  6940. if X == 90 then break end
  6941. end
  6942. wait(speedAlpha * 0.25)
  6943. fireSelect.Visible = false
  6944. end)
  6945. end
  6946. if S.selectFireSettings.Animation and (not Aimed) and (not isRunning) and (not isCrawling) then
  6947. spawn(function()
  6948. local sequenceTable = {
  6949. function()
  6950. tweenJoint(RWeld2, nil, CFANG(0, RAD(5), 0), Sine, speedAlpha * 0.15)
  6951. tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-7), 0, RAD(-65)), Linear, speedAlpha * 0.15)
  6952. wait(speedAlpha * 0.2)
  6953. end;
  6954.  
  6955. function()
  6956. tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-10), 0, RAD(-65)), Linear, speedAlpha * 0.1)
  6957. wait(speedAlpha * 0.2)
  6958. end;
  6959.  
  6960. function()
  6961. tweenJoint(RWeld2, nil, CF(), Sine, speedAlpha * 0.2)
  6962. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, speedAlpha * 0.2)
  6963. wait(speedAlpha * 0.2)
  6964. end;
  6965. }
  6966.  
  6967. for _, F in pairs(sequenceTable) do
  6968. if Aimed or isRunning or isCrawling or Reloading then
  6969. break
  6970. end
  6971. F()
  6972. end
  6973. end)
  6974. end
  6975. if S.selectFireSettings.Animation or S.selectFireSettings.GUI then
  6976. wait(S.selectFireSettings.animSpeed)
  6977. end
  6978. canSelectFire = true
  6979. end
  6980. end
  6981.  
  6982. if Key == S.Keys.Reload then
  6983. if (not Reloading) and (not isCrawling) then
  6984. Reload()
  6985. end
  6986. end
  6987.  
  6988. if Key == S.Keys.Sprint then
  6989. runKeyPressed = true
  6990. if runReady then
  6991. 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
  6992. monitorStamina()
  6993. end
  6994. end
  6995. end
  6996.  
  6997. if Key == S.Keys.scopeSteady then
  6998. steadyKeyPressed = true
  6999. if Aimed and (not Aiming) then
  7000. takingBreath = false
  7001. steadyCamera()
  7002. end
  7003. end
  7004.  
  7005. for _, PTable in pairs(Plugins.KeyDown) do
  7006. if Key == string.lower(PTable.Key) then
  7007. spawn(function()
  7008. PTable.Plugin()
  7009. end)
  7010. end
  7011. end
  7012. end
  7013.  
  7014. function keyUp(K)
  7015. local Key = string.lower(K)
  7016.  
  7017. if Key == S.Keys.ADS then
  7018. if S.aimSettings.holdToADS then
  7019. if (not AimingOut) and Aimed then
  7020. AimingOut = true
  7021. unAimGun()
  7022. AimingOut = false
  7023. end
  7024. end
  7025. end
  7026.  
  7027. if Key == S.Keys.Sprint then
  7028. runKeyPressed = false
  7029. Running = false
  7030. if (not chargingStamina) then
  7031. rechargeStamina()
  7032. end
  7033. end
  7034.  
  7035. if Key == S.Keys.scopeSteady then
  7036. steadyKeyPressed = false
  7037. end
  7038.  
  7039. for _, PTable in pairs(Plugins.KeyUp) do
  7040. if Key == string.lower(PTable.Key) then
  7041. spawn(function()
  7042. PTable.Plugin()
  7043. end)
  7044. end
  7045. end
  7046. end
  7047.  
  7048. --------------------[ END FUNCTIONS ]-------------------------------------------------
  7049.  
  7050. --------------------------------------------------------------------------------------
  7051. --------------------[ PRE-CONNECTIONS ]-----------------------------------------------
  7052. --------------------------------------------------------------------------------------
  7053.  
  7054. local function updateAnimVars()
  7055. wait()
  7056. Forward = (UIS:IsKeyDown("W") or UIS:IsKeyDown("Up"))
  7057. Backward = (UIS:IsKeyDown("S") or UIS:IsKeyDown("Down"))
  7058. local Right = UIS:IsKeyDown("D")
  7059. local Left = UIS:IsKeyDown("A")
  7060.  
  7061. local walkingForward = (Forward and (not Backward))
  7062. local walkingBackward = ((not Forward) and Backward)
  7063. local walkingRight = (Right and (not Left))
  7064. local walkingLeft = ((not Right) and Left)
  7065.  
  7066. if (Forward or Backward or Right or Left) then
  7067. Walking, Idling = true, false
  7068. if (not Running) and (not Aimed) then
  7069. spreadMotion = "Moving"
  7070. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7071. end
  7072. elseif (not (Forward and Backward and Right and Left)) then
  7073. Walking, Idling = false, true
  7074. if (not Aimed) then
  7075. spreadMotion = "Idling"
  7076. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7077. end
  7078. end
  7079.  
  7080. local newArmTilt = (
  7081. ((walkingForward or walkingBackward) and walkingRight) and 2.5 or
  7082. ((walkingForward or walkingBackward) and walkingLeft) and -2.5 or
  7083. ((not (walkingForward and walkingBackward)) and walkingRight) and 5 or
  7084. ((not (walkingForward and walkingBackward)) and walkingLeft) and -5 or 0
  7085. )
  7086. local newMoveAng = (
  7087. (walkingForward and (not (walkingRight or walkingLeft))) and 0 or
  7088. (walkingForward and walkingRight) and RAD(-45) or
  7089. ((not (walkingForward or walkingBackward)) and walkingRight) and RAD(-90) or
  7090. (walkingBackward and walkingRight) and RAD(-135) or
  7091. (walkingBackward and (not (walkingRight or walkingLeft))) and (moveAng < 0 and RAD(-180) or RAD(180)) or
  7092. (walkingBackward and walkingLeft) and RAD(135) or
  7093. ((not (walkingForward or walkingBackward)) and walkingLeft) and RAD(90) or
  7094. (walkingForward and walkingLeft) and RAD(45) or 0
  7095. )
  7096.  
  7097. local newAnimCode = math.random(-1e9, 1e9)
  7098. animCode = newAnimCode
  7099. local startTilt = armTilt
  7100. local startAng = (ABS(moveAng) == RAD(180)) and (newMoveAng > 0 and RAD(180) or RAD(-180)) or moveAng
  7101. local Increment = (startTilt == newArmTilt and 1.5 / 0.7 or 1.5 / (0.35 * ABS(startTilt - newArmTilt) / 5))
  7102. local X = 0
  7103. while true do
  7104. RS.RenderStepped:wait()
  7105. local newX = X + Increment
  7106. X = (newX > 90 and 90 or newX)
  7107. if animCode ~= newAnimCode then break end
  7108. armTilt = numLerp(startTilt, newArmTilt, Sine(X))
  7109. moveAng = numLerp(startAng, newMoveAng, Sine(X))
  7110. if X == 90 then break end
  7111. end
  7112. end
  7113.  
  7114. M2.KeyDown:connect(updateAnimVars)
  7115. M2.KeyUp:connect(updateAnimVars)
  7116. updateAnimVars()
  7117.  
  7118. --------------------------------------------------------------------------------------
  7119. --------------------[ TOOL SELECTION AND DESELECTION ]--------------------------------
  7120. --------------------------------------------------------------------------------------
  7121.  
  7122. function onEquipped()
  7123. wait()
  7124. if Humanoid.Health ~= 0 and (not Selected) and Gun.Parent == Char then
  7125. Selected = true
  7126. breakReload = false
  7127. equipAnimPlaying = true
  7128.  
  7129. math.randomseed(tick()) --This sets a new seed for the random function each time you select the gun
  7130.  
  7131. --------------------[ FAILSAFE RESETING ]-------------------------------------
  7132.  
  7133. for _, GM in pairs(ignoreModel:GetChildren()) do
  7134. if GM.Name == "gunIgnore_"..Player.Name then
  7135. GM:Destroy()
  7136. end
  7137. end
  7138.  
  7139. for _, c in pairs(Connections) do
  7140. c:disconnect()
  7141. end
  7142.  
  7143. Connections = {}
  7144.  
  7145. --------------------[ REMOTE GUN SETUP ]--------------------------------------
  7146.  
  7147. --[[local Vars = {
  7148. ignoreModel = ignoreModel;
  7149. Humanoid = Humanoid;
  7150. Shoulders = Shoulders;
  7151. Torso = Torso;
  7152. Head = Head;
  7153. armC0 = armC0;
  7154. leftArmC1 = S.equipSettings.leftArmC1;
  7155. rightArmC1 = S.equipSettings.rightArmC1;
  7156. LArm = LArm;
  7157. RArm = RArm;
  7158. gunParts = gunParts;
  7159. Handle = Handle;
  7160. }
  7161. gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, gunParts2 = gunSetup:InvokeServer(Vars)]]
  7162.  
  7163. --------------------[ CREATING IGNORE MODELS ]--------------------------------
  7164.  
  7165. gunIgnore = Instance.new("Model")
  7166. gunIgnore.Name = "gunIgnore_"..Player.Name
  7167. gunIgnore.Parent = ignoreModel
  7168.  
  7169. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  7170.  
  7171. Player.CameraMode = Enum.CameraMode.LockFirstPerson
  7172. Cam.CameraType = Enum.CameraType.Scriptable
  7173. Cam.FieldOfView = 80
  7174. UIS.MouseBehavior = Enum.MouseBehavior.LockCenter
  7175. UIS.MouseIconEnabled = false
  7176.  
  7177. local initialX, initialY = getYawPitch(Cam.CoordinateFrame)
  7178. camAng = -VEC2(initialX, initialY)
  7179.  
  7180. mainGUI.Parent = Player.PlayerGui
  7181.  
  7182. setUpGUI()
  7183. updateHealth()
  7184.  
  7185. if S.selectFire then
  7186. local currentMode = Modes[((rawFireMode - 1) % numModes) + 1]
  7187. if currentMode == "AUTO" then
  7188. fireFunction = autoFire
  7189. elseif currentMode == "BURST" then
  7190. fireFunction = burstFire
  7191. elseif currentMode == "SEMI" then
  7192. fireFunction = semiFire
  7193. else
  7194. fireFunction = nil
  7195. end
  7196. else
  7197. if S.gunType.Semi then
  7198. fireFunction = semiFire
  7199. elseif S.gunType.Auto then
  7200. fireFunction = autoFire
  7201. elseif S.gunType.Burst then
  7202. fireFunction = burstFire
  7203. else
  7204. fireFunction = nil
  7205. end
  7206. end
  7207.  
  7208. changePlayerTrans(Char, 1)
  7209.  
  7210. Humanoid.AutoRotate = false
  7211.  
  7212. Shoulders.Right.Part1 = nil
  7213. Shoulders.Left.Part1 = nil
  7214.  
  7215. playerFolder = Instance.new("Model")
  7216. playerFolder.Name = "playerFolder"
  7217. playerFolder.Parent = gunIgnore
  7218.  
  7219. local headBase = Instance.new("Part")
  7220. headBase.Transparency = 1
  7221. headBase.Name = "headBase"
  7222. headBase.CanCollide = false
  7223. headBase.FormFactor = Enum.FormFactor.Custom
  7224. headBase.Size = V3(0.2, 0.2, 0.2)
  7225. headBase.BottomSurface = Enum.SurfaceType.Smooth
  7226. headBase.TopSurface = Enum.SurfaceType.Smooth
  7227. headBase.Parent = playerFolder
  7228.  
  7229. headWeld = Instance.new("Weld")
  7230. headWeld.Part0 = Torso
  7231. headWeld.Part1 = headBase
  7232. headWeld.C0 = CF(0, 1.5, 0)
  7233. headWeld.Parent = Torso
  7234.  
  7235. headWeld2 = Instance.new("Weld")
  7236. headWeld2.Part0 = headBase
  7237. headWeld2.Part1 = Head
  7238. headWeld2.Parent = headBase
  7239.  
  7240. neckClone = Neck:Clone()
  7241.  
  7242. --[[local stanceBase = Instance.new("Part")
  7243. stanceBase.Transparency = 1
  7244. stanceBase.Name = "stanceBase"
  7245. stanceBase.CanCollide = false
  7246. stanceBase.FormFactor = Enum.FormFactor.Custom
  7247. stanceBase.Size = V3(0.2, 0.2, 0.2)
  7248. stanceBase.BottomSurface = Enum.SurfaceType.Smooth
  7249. stanceBase.TopSurface = Enum.SurfaceType.Smooth
  7250. stanceBase.Parent = playerFolder
  7251.  
  7252. stanceWeld = Instance.new("Weld")
  7253. stanceWeld.Part0 = stanceBase
  7254. stanceWeld.Part1 = Torso
  7255. stanceWeld.Parent = stanceBase]]
  7256.  
  7257. local animBase = Instance.new("Part")
  7258. animBase.Transparency = 1
  7259. animBase.Name = "animBase"
  7260. animBase.CanCollide = false
  7261. animBase.FormFactor = Enum.FormFactor.Custom
  7262. animBase.Size = V3(0.2, 0.2, 0.2)
  7263. animBase.BottomSurface = Enum.SurfaceType.Smooth
  7264. animBase.TopSurface = Enum.SurfaceType.Smooth
  7265. animBase.Parent = playerFolder
  7266.  
  7267. animWeld = Instance.new("Weld")
  7268. animWeld.Part0 = animBase
  7269. animWeld.Part1 = headBase
  7270. animWeld.Parent = animBase
  7271.  
  7272. local ArmBase = Instance.new("Part")
  7273. ArmBase.Transparency = 1
  7274. ArmBase.Name = "ArmBase"
  7275. ArmBase.CanCollide = false
  7276. ArmBase.FormFactor = Enum.FormFactor.Custom
  7277. ArmBase.Size = V3(0.2, 0.2, 0.2)
  7278. ArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7279. ArmBase.TopSurface = Enum.SurfaceType.Smooth
  7280. ArmBase.Parent = playerFolder
  7281.  
  7282. ABWeld = Instance.new("Weld")
  7283. ABWeld.Part0 = ArmBase
  7284. ABWeld.Part1 = animBase
  7285. ABWeld.Parent = ArmBase
  7286.  
  7287. local LArmBase = Instance.new("Part")
  7288. LArmBase.Transparency = 1
  7289. LArmBase.Name = "LArmBase"
  7290. LArmBase.CanCollide = false
  7291. LArmBase.FormFactor = Enum.FormFactor.Custom
  7292. LArmBase.Size = V3(0.2, 0.2, 0.2)
  7293. LArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7294. LArmBase.TopSurface = Enum.SurfaceType.Smooth
  7295. LArmBase.Parent = playerFolder
  7296.  
  7297. local RArmBase = Instance.new("Part")
  7298. RArmBase.Transparency = 1
  7299. RArmBase.Name = "RArmBase"
  7300. RArmBase.CanCollide = false
  7301. RArmBase.FormFactor = Enum.FormFactor.Custom
  7302. RArmBase.Size = V3(0.2, 0.2, 0.2)
  7303. RArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7304. RArmBase.TopSurface = Enum.SurfaceType.Smooth
  7305. RArmBase.Parent = playerFolder
  7306.  
  7307. LWeld = Instance.new("Weld")
  7308. LWeld.Name = "LWeld"
  7309. LWeld.Part0 = ArmBase
  7310. LWeld.Part1 = LArmBase
  7311. LWeld.C0 = armC0[1]
  7312. LWeld.C1 = S.equipSettings.leftArmC1
  7313. LWeld.Parent = ArmBase
  7314.  
  7315. RWeld = Instance.new("Weld")
  7316. RWeld.Name = "RWeld"
  7317. RWeld.Part0 = ArmBase
  7318. RWeld.Part1 = RArmBase
  7319. RWeld.C0 = armC0[2]
  7320. RWeld.C1 = S.equipSettings.rightArmC1
  7321. RWeld.Parent = ArmBase
  7322.  
  7323. LWeld2 = Instance.new("Weld")
  7324. LWeld2.Name = "LWeld"
  7325. LWeld2.Part0 = LArmBase
  7326. LWeld2.Part1 = LArm
  7327. LWeld2.Parent = LArmBase
  7328.  
  7329. RWeld2 = Instance.new("Weld")
  7330. RWeld2.Name = "RWeld"
  7331. RWeld2.Part0 = RArmBase
  7332. RWeld2.Part1 = RArm
  7333. RWeld2.Parent = RArmBase
  7334.  
  7335. LLegWeld = Instance.new("Weld")
  7336. LLegWeld.Name = "LLegWeld"
  7337. LLegWeld.Part0 = Torso
  7338. LLegWeld.Part1 = nil
  7339. LLegWeld.C0 = CF(-0.5, -2, 0)
  7340. LLegWeld.Parent = Torso
  7341.  
  7342. RLegWeld = Instance.new("Weld")
  7343. RLegWeld.Name = "RLegWeld"
  7344. RLegWeld.Part0 = Torso
  7345. RLegWeld.Part1 = nil
  7346. RLegWeld.C0 = CF(0.5, -2, 0)
  7347. RLegWeld.Parent = Torso
  7348.  
  7349. if S.playerArms then
  7350. armModel = Instance.new("Model", workspace.FilteringEnabled and playerFolder or Cam)
  7351.  
  7352. fakeLArm = LArm:Clone()
  7353. fakeLArm.Parent = armModel
  7354. fakeLArm.Transparency = S.fakeArmSettings.Transparency
  7355. fakeLArm.CanCollide = false
  7356. fakeLArm.Size = S.fakeArmSettings.armSize
  7357. fakeLArm:BreakJoints()
  7358.  
  7359. --LArm.Transparency = 1
  7360.  
  7361. local fakeLWeld = Instance.new("Weld")
  7362. fakeLWeld.Part0 = fakeLArm
  7363. fakeLWeld.Part1 = LArm
  7364. fakeLWeld.Parent = fakeLArm
  7365.  
  7366. fakeRArm = RArm:Clone()
  7367. fakeRArm.Parent = armModel
  7368. fakeRArm.Transparency = S.fakeArmSettings.Transparency
  7369. fakeRArm.CanCollide = false
  7370. fakeRArm.Size = S.fakeArmSettings.armSize
  7371. fakeRArm:BreakJoints()
  7372.  
  7373. --RArm.Transparency = 1
  7374.  
  7375. local fakeRWeld = Instance.new("Weld")
  7376. fakeRWeld.Part0 = fakeRArm
  7377. fakeRWeld.Part1 = RArm
  7378. fakeRWeld.Parent = fakeRArm
  7379.  
  7380. Instance.new("Humanoid", armModel)
  7381.  
  7382. if S.fakeArmSettings.characterMeshes then
  7383. for _,Obj in pairs(Char:GetChildren()) do
  7384. if Obj:IsA("CharacterMesh") then
  7385. Obj:Clone().Parent = armModel
  7386. end
  7387. end
  7388. end
  7389. for _,Obj in pairs(Char:GetChildren()) do
  7390. if Obj:IsA("Shirt") then
  7391. Obj:Clone().Parent = armModel
  7392. end
  7393. end
  7394. else
  7395. armTable = createArms()
  7396. if workspace.FilteringEnabled then
  7397. armTable[1].Model.Parent = playerFolder
  7398. armTable[2].Model.Parent = playerFolder
  7399. else
  7400. armTable[1].Model.Parent = Cam--playerFolder
  7401. armTable[2].Model.Parent = Cam--playerFolder
  7402. end
  7403.  
  7404. fakeLArm = armTable[1].armPart
  7405.  
  7406. --LArm.Transparency = 1
  7407.  
  7408. local fakeLWeld = Instance.new("Weld")
  7409. fakeLWeld.Part0 = fakeLArm
  7410. fakeLWeld.Part1 = LArm
  7411. fakeLWeld.Parent = fakeLArm
  7412.  
  7413. fakeRArm = armTable[2].armPart
  7414.  
  7415. --RArm.Transparency = 1
  7416.  
  7417. local fakeRWeld = Instance.new("Weld")
  7418. fakeRWeld.Part0 = fakeRArm
  7419. fakeRWeld.Part1 = RArm
  7420. fakeRWeld.Parent = fakeRArm
  7421. end
  7422.  
  7423. --------------------[ MODIFYING THE GUN ]-------------------------------------
  7424.  
  7425. for _, Tab in pairs(gunParts) do
  7426. local Weld = Instance.new("Weld")
  7427. Weld.Name = "MainWeld"
  7428. Weld.Part0 = Handle
  7429. Weld.Part1 = Tab.Obj
  7430. Weld.C0 = Tab.Obj.weldCF.Value
  7431. Weld.Parent = Handle
  7432. Tab.Weld = Weld
  7433. end
  7434.  
  7435. Grip = RArm:WaitForChild("RightGrip")
  7436.  
  7437. local handleCF = Torso.CFrame * CF(0, 0.5, 0) * armC0[2] * S.aimedC1.rightArm:inverse() * Grip.C0
  7438. local handleOffset = AimPart.CFrame:toObjectSpace(Handle.CFrame)
  7439. aimedGripCF = ((Torso.CFrame * CF(headOffset.X, headOffset.Y, 0)) * handleOffset):toObjectSpace(handleCF)
  7440.  
  7441. Grip.C1 = S.equipSettings.GripC1
  7442.  
  7443. --------------------[ RUNNING PLUGINS ]---------------------------------------
  7444.  
  7445. for _, Plugin in pairs(Plugins.OnEquipped) do
  7446. spawn(function()
  7447. Plugin()
  7448. end)
  7449. end
  7450.  
  7451. --------------------[ GETTING PLAYER MASS ]-----------------------------------
  7452.  
  7453. local connectedParts = HRP:GetConnectedParts(true)
  7454. for _, v in pairs(connectedParts) do
  7455. if v:IsA("BasePart") then
  7456. playerMass = playerMass + v:GetMass()
  7457. end
  7458. end
  7459.  
  7460. --------------------[ CONNECTIONS ]-------------------------------------------
  7461.  
  7462. INSERT(Connections, Humanoid.Died:connect(function()
  7463. onUnequipped(true)
  7464. end))
  7465.  
  7466. INSERT(Connections, Humanoid.Jumping:connect(function()
  7467. if Stance ~= 0 then
  7468. Stand()
  7469. end
  7470. end))
  7471.  
  7472. INSERT(Connections, Humanoid.StateChanged:connect(onHumanoidStateChanged))
  7473.  
  7474. INSERT(Connections, Humanoid.HealthChanged:connect(updateHealth))
  7475.  
  7476. INSERT(Connections, M2.Button1Down:connect(onMB1Down))
  7477.  
  7478. INSERT(Connections, M2.Button1Up:connect(onMB1Up))
  7479.  
  7480. INSERT(Connections, M2.Button2Down:connect(onMB2Down))
  7481.  
  7482. INSERT(Connections, M2.Button2Up:connect(onMB2Up))
  7483.  
  7484. INSERT(Connections, M2.KeyDown:connect(keyDown))
  7485.  
  7486. INSERT(Connections, M2.KeyUp:connect(keyUp))
  7487.  
  7488. if S.sensitivitySettings.scrollToChange then
  7489. INSERT(Connections, M2.WheelForward:connect(onScrollUp))
  7490. INSERT(Connections, M2.WheelBackward:connect(onScrollDown))
  7491. end
  7492.  
  7493. if S.AutoKnife then
  7494. INSERT(Connections, RS.Stepped:connect(function()
  7495. local H, P = AdvRayCast(Head.CFrame.p, Head.CFrame.lookVector, S.AutoKnifeDist, nil)
  7496. if H then
  7497. local HitHuman = findFirstClass(H.Parent, "Humanoid")
  7498. if HitHuman and isEnemy(HitHuman) and HitHuman.Health ~= 0 then
  7499. Knife()
  7500. end
  7501. end
  7502. end))
  7503. end
  7504.  
  7505. INSERT(Connections, UIS.InputChanged:connect(function(inputObj)
  7506. if inputObj.UserInputType == Enum.UserInputType.MouseMovement then
  7507. local rawCamAng = camAng - (VEC2(RAD(inputObj.Delta.x), RAD(inputObj.Delta.y)) * mouseSensitivity * 0.25)
  7508. camAng = VEC2(rawCamAng.x, (rawCamAng.y > RAD(80) and RAD(80) or rawCamAng.y < RAD(-80) and RAD(-80) or rawCamAng.y))
  7509.  
  7510. desiredXOffset = math.min(math.max(inputObj.Delta.x, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
  7511. desiredYOffset = math.min(math.max(inputObj.Delta.y, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
  7512. end
  7513. end))
  7514.  
  7515. INSERT(Connections, M2.Idle:connect(function(inputObj)
  7516. desiredXOffset = 0
  7517. desiredYOffset = 0
  7518. end))
  7519.  
  7520. INSERT(Connections, RS.Stepped:connect(function()
  7521. if tick() - lastBeat > (Humanoid.Health / 75) then
  7522. lastBeat = tick()
  7523. HUD.Health.Tray.Beat:TweenPosition(
  7524. UDim2.new(0, -21, 0, 0),
  7525. Enum.EasingDirection.Out,
  7526. Enum.EasingStyle.Linear,
  7527. 0.7 - ((100 - Humanoid.Health) / 400),
  7528. false,
  7529. function()
  7530. HUD.Health.Tray.Beat.Position = UDim2.new(1, 0, 0, 0)
  7531. end
  7532. )
  7533. end
  7534. end))
  7535.  
  7536. INSERT(Connections, RS.RenderStepped:connect(function()
  7537. --Main animation
  7538. local animC0, animC1 = getAnimCF()
  7539. animWeld.C0 = animC0
  7540. animWeld.C1 = animC1
  7541.  
  7542. --Camera updating
  7543. renderCamera()
  7544. end))
  7545.  
  7546. --------------------[ ANIMATE GUN ]-------------------------------------------
  7547.  
  7548. tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, S.equipSettings.Time)
  7549. tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, S.equipSettings.Time)
  7550. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.equipSettings.Time)
  7551. spawn(function()
  7552. local T = tick()
  7553. while true do
  7554. if tick() - T > S.equipSettings.Time then break end
  7555. if (not Selected) then break end
  7556. wait()
  7557. end
  7558. equipAnimPlaying = false
  7559. end)
  7560.  
  7561. Animate()
  7562. end
  7563. end
  7564.  
  7565. function onUnequipped(deleteTool)
  7566. if Selected then
  7567. Selected = false
  7568.  
  7569. breakReload = true
  7570.  
  7571. --------------------[ RUNNING PLUGINS ]---------------------------------------
  7572.  
  7573. for _, Plugin in pairs(Plugins.OnUnEquipped) do
  7574. spawn(function()
  7575. Plugin()
  7576. end)
  7577. end
  7578.  
  7579. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  7580.  
  7581. Cam.FieldOfView = 70
  7582. Cam.CameraType = Enum.CameraType.Custom
  7583.  
  7584. UIS.MouseBehavior = Enum.MouseBehavior.Default
  7585. UIS.MouseIconEnabled = true
  7586.  
  7587. Player.CameraMode = Enum.CameraMode.Classic
  7588.  
  7589. if armTable then
  7590. armTable[1].Model:Destroy()
  7591. armTable[2].Model:Destroy()
  7592. elseif armModel then
  7593. armModel:Destroy()
  7594. end
  7595.  
  7596. LLegWeld:Destroy()
  7597. RLegWeld:Destroy()
  7598.  
  7599. changePlayerTrans(Char, 0)
  7600.  
  7601. mainGUI.Parent = script
  7602.  
  7603. Shoulders.Right.Part1 = RArm
  7604. Shoulders.Left.Part1 = LArm
  7605.  
  7606. neckClone.Parent = Torso
  7607. headWeld:Destroy()
  7608.  
  7609. Humanoid.WalkSpeed = 16
  7610. Humanoid.AutoRotate = true
  7611.  
  7612. --------------------[ RESETING THE TOOL ]-------------------------------------
  7613.  
  7614. gunIgnore:Destroy()
  7615.  
  7616. mouseSensitivity = S.sensitivitySettings.Default
  7617.  
  7618. MB1Down = false
  7619.  
  7620. playerMass = 0
  7621.  
  7622. Aimed = false
  7623.  
  7624. camOffsets = {
  7625. guiScope = {
  7626. Rot = V3();
  7627. };
  7628. Reload = {
  7629. Rot = V3();
  7630. Code = nil;
  7631. };
  7632. Recoil = {
  7633. Rot = V3();
  7634. Code = nil;
  7635. };
  7636. }
  7637.  
  7638. recoilAnim = {
  7639. Pos = V3();
  7640. Rot = V3();
  7641. Code = nil;
  7642. }
  7643.  
  7644. --Setting the aim variables to unaimed
  7645. spreadZoom = "unAimed"
  7646. scopeMain.Visible = false
  7647. scopeSteady.Visible = false
  7648. aimAlpha = 0
  7649. aimHeadOffset = 0
  7650. jumpAnimMultiplier = 1
  7651. translationDivisor = 7
  7652. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  7653. armTiltMultiplier = 1
  7654. Scope.BackgroundTransparency = 1
  7655. if S.guiScope then
  7656. spawn(function()
  7657. for _, Obj in pairs(Gun:GetChildren()) do
  7658. if Obj:IsA("BasePart") then
  7659. Obj.LocalTransparencyModifier = 0
  7660. end
  7661. end
  7662. end)
  7663. end
  7664.  
  7665. onGround = true
  7666.  
  7667. for _, Tab in pairs(gunParts) do
  7668. Tab.Weld:Destroy()
  7669. Tab.Weld = nil
  7670. end
  7671.  
  7672. for _,c in pairs(Connections) do
  7673. c:disconnect()
  7674. end
  7675.  
  7676. Connections = {}
  7677.  
  7678. if deleteTool then
  7679. Cam:ClearAllChildren()
  7680. Gun:Destroy()
  7681. end
  7682.  
  7683. wait() --This is here in case you dolphin dived and deselected the tool instantly
  7684.  
  7685. if S.stanceSettings.standOnDeselect and Stance ~= 0 then
  7686. crawlCamRot = 0
  7687. isCrawling = false
  7688. stanceSway = 1
  7689. spreadStance = "Stand"
  7690. Stand(true)
  7691. end
  7692. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7693. end
  7694. end
  7695.  
  7696. Gun.Equipped:connect(onEquipped)
  7697. Gun.Unequipped:connect(function() onUnequipped(false) end)
  7698.  
  7699. --------------------------------------------------------------------------------------
  7700. --------------------[ END PROGRAM ]---------------------------------------------------
  7701. --------------------------------------------------------------------------------------
  7702. end))
  7703. IntValue209.Name = "ignoreCode"
  7704. IntValue209.Parent = LocalScript208
  7705. Folder210.Name = "Server_Scripts"
  7706. Folder210.Parent = LocalScript208
  7707. ScreenGui211.Name = "mainGUI"
  7708. ScreenGui211.Parent = LocalScript208
  7709. ImageLabel212.Name = "hitMarker"
  7710. ImageLabel212.Parent = ScreenGui211
  7711. ImageLabel212.Transparency = 1
  7712. ImageLabel212.Size = UDim2.new(0, 26, 0, 26)
  7713. ImageLabel212.Position = UDim2.new(0.5, -13, 0.5, -31)
  7714. ImageLabel212.Visible = false
  7715. ImageLabel212.BackgroundTransparency = 1
  7716. ImageLabel212.ZIndex = 10
  7717. ImageLabel212.Image = "http://www.roblox.com/asset/?id=121173757"
  7718. NumberValue213.Name = "lastMark"
  7719. NumberValue213.Parent = ImageLabel212
  7720. Frame214.Name = "crossHair"
  7721. Frame214.Parent = ScreenGui211
  7722. Frame214.Position = UDim2.new(0.5, 0, 0.5, -18)
  7723. Frame214.BackgroundColor3 = Color3.new(1, 1, 1)
  7724. Frame214.BorderColor3 = Color3.new(0, 0, 0)
  7725. Frame214.BorderSizePixel = 0
  7726. ImageLabel215.Parent = Frame214
  7727. ImageLabel215.Transparency = 1
  7728. ImageLabel215.Size = UDim2.new(0, 300, 0, 300)
  7729. ImageLabel215.Position = UDim2.new(0, -150, 0, -150)
  7730. ImageLabel215.Visible = false
  7731. ImageLabel215.BackgroundColor3 = Color3.new(1, 1, 1)
  7732. ImageLabel215.BackgroundTransparency = 1
  7733. ImageLabel215.ZIndex = 2
  7734. ImageLabel215.Image = "http://www.roblox.com/asset/?id=68308747"
  7735. TextLabel216.Name = "Reload"
  7736. TextLabel216.Parent = Frame214
  7737. TextLabel216.Transparency = 1
  7738. TextLabel216.Size = UDim2.new(0, 100, 0, 20)
  7739. TextLabel216.Text = "RELOADING..."
  7740. TextLabel216.Position = UDim2.new(0, -50, 0, 70)
  7741. TextLabel216.Visible = false
  7742. TextLabel216.BackgroundColor3 = Color3.new(1, 1, 1)
  7743. TextLabel216.BackgroundTransparency = 1
  7744. TextLabel216.ZIndex = 2
  7745. TextLabel216.Font = Enum.Font.SourceSansBold
  7746. TextLabel216.FontSize = Enum.FontSize.Size18
  7747. TextLabel216.TextColor3 = Color3.new(1, 1, 1)
  7748. TextLabel216.TextStrokeTransparency = 0.5
  7749. Frame217.Name = "C"
  7750. Frame217.Parent = Frame214
  7751. Frame217.Transparency = 1
  7752. Frame217.Size = UDim2.new(0, 4, 0, 500)
  7753. Frame217.Position = UDim2.new(0, -2, 0, 0)
  7754. Frame217.BackgroundColor3 = Color3.new(1, 1, 1)
  7755. Frame217.BackgroundTransparency = 1
  7756. Frame217.ClipsDescendants = true
  7757. TextLabel218.Name = "Line"
  7758. TextLabel218.Parent = Frame217
  7759. TextLabel218.Size = UDim2.new(0, 2, 0, 15)
  7760. TextLabel218.Text = ""
  7761. TextLabel218.Position = UDim2.new(0.5, -1, 0, 10)
  7762. TextLabel218.BackgroundColor3 = Color3.new(1, 1, 1)
  7763. TextLabel218.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7764. TextLabel218.Font = Enum.Font.SourceSans
  7765. TextLabel218.FontSize = Enum.FontSize.Size14
  7766. Frame219.Name = "A"
  7767. Frame219.Parent = Frame214
  7768. Frame219.Transparency = 1
  7769. Frame219.Size = UDim2.new(0, 4, 0, 500)
  7770. Frame219.Position = UDim2.new(0, -2, 0, -500)
  7771. Frame219.BackgroundColor3 = Color3.new(1, 1, 1)
  7772. Frame219.BackgroundTransparency = 1
  7773. Frame219.ClipsDescendants = true
  7774. TextLabel220.Name = "Line"
  7775. TextLabel220.Parent = Frame219
  7776. TextLabel220.Size = UDim2.new(0, 2, 0, 15)
  7777. TextLabel220.Text = ""
  7778. TextLabel220.Position = UDim2.new(0.5, -1, 1, -25)
  7779. TextLabel220.BackgroundColor3 = Color3.new(1, 1, 1)
  7780. TextLabel220.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7781. TextLabel220.Font = Enum.Font.SourceSans
  7782. TextLabel220.FontSize = Enum.FontSize.Size14
  7783. Frame221.Name = "B"
  7784. Frame221.Parent = Frame214
  7785. Frame221.Transparency = 1
  7786. Frame221.Size = UDim2.new(0, 500, 0, 4)
  7787. Frame221.Position = UDim2.new(0, 0, 0, -2)
  7788. Frame221.BackgroundColor3 = Color3.new(1, 1, 1)
  7789. Frame221.BackgroundTransparency = 1
  7790. Frame221.ClipsDescendants = true
  7791. TextLabel222.Name = "Line"
  7792. TextLabel222.Parent = Frame221
  7793. TextLabel222.Size = UDim2.new(0, 15, 0, 2)
  7794. TextLabel222.Text = ""
  7795. TextLabel222.Position = UDim2.new(0, 10, 0.5, -1)
  7796. TextLabel222.BackgroundColor3 = Color3.new(1, 1, 1)
  7797. TextLabel222.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7798. TextLabel222.Font = Enum.Font.SourceSans
  7799. TextLabel222.FontSize = Enum.FontSize.Size14
  7800. Frame223.Name = "D"
  7801. Frame223.Parent = Frame214
  7802. Frame223.Transparency = 1
  7803. Frame223.Size = UDim2.new(0, 500, 0, 4)
  7804. Frame223.Position = UDim2.new(0, -500, 0, -2)
  7805. Frame223.BackgroundColor3 = Color3.new(1, 1, 1)
  7806. Frame223.BackgroundTransparency = 1
  7807. Frame223.ClipsDescendants = true
  7808. TextLabel224.Name = "Line"
  7809. TextLabel224.Parent = Frame223
  7810. TextLabel224.Size = UDim2.new(0, 15, 0, 2)
  7811. TextLabel224.Text = ""
  7812. TextLabel224.Position = UDim2.new(1, -25, 0.5, -1)
  7813. TextLabel224.BackgroundColor3 = Color3.new(1, 1, 1)
  7814. TextLabel224.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7815. TextLabel224.Font = Enum.Font.SourceSans
  7816. TextLabel224.FontSize = Enum.FontSize.Size14
  7817. Frame225.Name = "HUD"
  7818. Frame225.Parent = ScreenGui211
  7819. Frame225.Transparency = 0.30000001192093
  7820. Frame225.Size = UDim2.new(0, 175, 0, 90)
  7821. Frame225.Position = UDim2.new(1, -200, 1, -165)
  7822. Frame225.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7823. Frame225.BackgroundTransparency = 0.30000001192093
  7824. Frame225.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7825. Frame225.BorderSizePixel = 5
  7826. Frame225.ZIndex = 10
  7827. Frame226.Name = "Ammo"
  7828. Frame226.Parent = Frame225
  7829. Frame226.Transparency = 1
  7830. Frame226.Size = UDim2.new(0, 175, 0, 40)
  7831. Frame226.Position = UDim2.new(0, 0, 0, 45)
  7832. Frame226.BackgroundTransparency = 1
  7833. Frame226.ZIndex = 10
  7834. TextLabel227.Name = "Slash"
  7835. TextLabel227.Parent = Frame226
  7836. TextLabel227.Transparency = 1
  7837. TextLabel227.Size = UDim2.new(0, 10, 0, 25)
  7838. TextLabel227.Text = "/"
  7839. TextLabel227.Position = UDim2.new(0, 90, 0, 0)
  7840. TextLabel227.BackgroundTransparency = 1
  7841. TextLabel227.ZIndex = 10
  7842. TextLabel227.Font = Enum.Font.ArialBold
  7843. TextLabel227.FontSize = Enum.FontSize.Size24
  7844. TextLabel227.TextColor3 = Color3.new(1, 1, 1)
  7845. TextLabel228.Name = "Stored"
  7846. TextLabel228.Parent = Frame226
  7847. TextLabel228.Transparency = 1
  7848. TextLabel228.Size = UDim2.new(0, 70, 0, 25)
  7849. TextLabel228.Text = "100"
  7850. TextLabel228.Position = UDim2.new(0, 105, 0, 0)
  7851. TextLabel228.BackgroundTransparency = 1
  7852. TextLabel228.ZIndex = 10
  7853. TextLabel228.Font = Enum.Font.ArialBold
  7854. TextLabel228.FontSize = Enum.FontSize.Size24
  7855. TextLabel228.TextColor3 = Color3.new(1, 1, 1)
  7856. TextLabel228.TextXAlignment = Enum.TextXAlignment.Left
  7857. TextLabel229.Name = "Background"
  7858. TextLabel229.Parent = TextLabel228
  7859. TextLabel229.Transparency = 1
  7860. TextLabel229.Size = UDim2.new(1, 0, 1, 0)
  7861. TextLabel229.Text = "000"
  7862. TextLabel229.BackgroundTransparency = 1
  7863. TextLabel229.ZIndex = 10
  7864. TextLabel229.Font = Enum.Font.ArialBold
  7865. TextLabel229.FontSize = Enum.FontSize.Size24
  7866. TextLabel229.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
  7867. TextLabel229.TextTransparency = 0.80000001192093
  7868. TextLabel229.TextWrapped = true
  7869. TextLabel229.TextXAlignment = Enum.TextXAlignment.Left
  7870. TextLabel230.Name = "Clip"
  7871. TextLabel230.Parent = Frame226
  7872. TextLabel230.Transparency = 1
  7873. TextLabel230.Size = UDim2.new(0, 85, 1, 0)
  7874. TextLabel230.Text = "9"
  7875. TextLabel230.BackgroundTransparency = 1
  7876. TextLabel230.ZIndex = 10
  7877. TextLabel230.Font = Enum.Font.ArialBold
  7878. TextLabel230.FontSize = Enum.FontSize.Size48
  7879. TextLabel230.TextColor3 = Color3.new(1, 1, 1)
  7880. TextLabel230.TextXAlignment = Enum.TextXAlignment.Right
  7881. TextLabel231.Name = "Background"
  7882. TextLabel231.Parent = TextLabel230
  7883. TextLabel231.Transparency = 1
  7884. TextLabel231.Size = UDim2.new(1, 0, 1, 0)
  7885. TextLabel231.Text = "000"
  7886. TextLabel231.BackgroundTransparency = 1
  7887. TextLabel231.ZIndex = 10
  7888. TextLabel231.Font = Enum.Font.ArialBold
  7889. TextLabel231.FontSize = Enum.FontSize.Size48
  7890. TextLabel231.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
  7891. TextLabel231.TextTransparency = 0.80000001192093
  7892. TextLabel231.TextXAlignment = Enum.TextXAlignment.Right
  7893. Frame232.Name = "Mode"
  7894. Frame232.Parent = Frame225
  7895. Frame232.Transparency = 1
  7896. Frame232.Size = UDim2.new(0, 85, 0, 20)
  7897. Frame232.Position = UDim2.new(0, 90, 0, 65)
  7898. Frame232.BackgroundColor3 = Color3.new(1, 1, 1)
  7899. Frame232.BackgroundTransparency = 1
  7900. Frame232.ZIndex = 10
  7901. TextLabel233.Name = "Bracket"
  7902. TextLabel233.Parent = Frame232
  7903. TextLabel233.Transparency = 1
  7904. TextLabel233.Size = UDim2.new(0, 5, 0, 20)
  7905. TextLabel233.Text = "["
  7906. TextLabel233.BackgroundTransparency = 1
  7907. TextLabel233.ZIndex = 10
  7908. TextLabel233.Font = Enum.Font.ArialBold
  7909. TextLabel233.FontSize = Enum.FontSize.Size18
  7910. TextLabel233.TextColor3 = Color3.new(1, 1, 1)
  7911. TextLabel233.TextXAlignment = Enum.TextXAlignment.Left
  7912. TextLabel234.Name = "Bracket"
  7913. TextLabel234.Parent = Frame232
  7914. TextLabel234.Transparency = 1
  7915. TextLabel234.Size = UDim2.new(0, 5, 0, 20)
  7916. TextLabel234.Text = "]"
  7917. TextLabel234.Position = UDim2.new(1, -5, 0, 0)
  7918. TextLabel234.BackgroundTransparency = 1
  7919. TextLabel234.ZIndex = 10
  7920. TextLabel234.Font = Enum.Font.ArialBold
  7921. TextLabel234.FontSize = Enum.FontSize.Size18
  7922. TextLabel234.TextColor3 = Color3.new(1, 1, 1)
  7923. TextLabel234.TextXAlignment = Enum.TextXAlignment.Left
  7924. TextLabel235.Name = "Main"
  7925. TextLabel235.Parent = Frame232
  7926. TextLabel235.Transparency = 1
  7927. TextLabel235.Size = UDim2.new(1, 0, 0, 20)
  7928. TextLabel235.Text = "Auto"
  7929. TextLabel235.BackgroundTransparency = 1
  7930. TextLabel235.ZIndex = 10
  7931. TextLabel235.Font = Enum.Font.SourceSansBold
  7932. TextLabel235.FontSize = Enum.FontSize.Size18
  7933. TextLabel235.TextColor3 = Color3.new(1, 1, 1)
  7934. TextLabel235.TextWrapped = true
  7935. Frame236.Name = "Health"
  7936. Frame236.Parent = Frame225
  7937. Frame236.Transparency = 0.30000001192093
  7938. Frame236.Size = UDim2.new(1, 0, 0, 25)
  7939. Frame236.Position = UDim2.new(0, 0, 0, -40)
  7940. Frame236.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7941. Frame236.BackgroundTransparency = 0.30000001192093
  7942. Frame236.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7943. Frame236.BorderSizePixel = 5
  7944. Frame236.ZIndex = 10
  7945. TextLabel237.Name = "Num"
  7946. TextLabel237.Parent = Frame236
  7947. TextLabel237.Transparency = 1
  7948. TextLabel237.Size = UDim2.new(0, 50, 1, 0)
  7949. TextLabel237.Text = "100%"
  7950. TextLabel237.Position = UDim2.new(1, -50, 0, 0)
  7951. TextLabel237.BackgroundColor3 = Color3.new(0, 0, 0)
  7952. TextLabel237.BackgroundTransparency = 1
  7953. TextLabel237.BorderColor3 = Color3.new(0, 0, 0)
  7954. TextLabel237.BorderSizePixel = 0
  7955. TextLabel237.ZIndex = 10
  7956. TextLabel237.Font = Enum.Font.ArialBold
  7957. TextLabel237.FontSize = Enum.FontSize.Size24
  7958. TextLabel237.TextColor3 = Color3.new(1, 1, 1)
  7959. TextLabel237.TextStrokeTransparency = 0
  7960. TextLabel237.TextXAlignment = Enum.TextXAlignment.Right
  7961. Frame238.Name = "Tray"
  7962. Frame238.Parent = Frame236
  7963. Frame238.Transparency = 1
  7964. Frame238.Size = UDim2.new(1, -60, 0, 20)
  7965. Frame238.Position = UDim2.new(0, 2, 0.5, -10)
  7966. Frame238.BackgroundColor3 = Color3.new(0, 0, 0)
  7967. Frame238.BackgroundTransparency = 1
  7968. Frame238.BorderColor3 = Color3.new(0, 0, 0)
  7969. Frame238.BorderSizePixel = 0
  7970. Frame238.ZIndex = 10
  7971. Frame238.ClipsDescendants = true
  7972. Frame239.Name = "Beat"
  7973. Frame239.Parent = Frame238
  7974. Frame239.Transparency = 1
  7975. Frame239.Size = UDim2.new(0, 21, 1, 0)
  7976. Frame239.Position = UDim2.new(1, 0, 0, 0)
  7977. Frame239.BackgroundColor3 = Color3.new(0, 0, 0)
  7978. Frame239.BackgroundTransparency = 1
  7979. Frame239.BorderColor3 = Color3.new(0, 0, 0)
  7980. Frame239.BorderSizePixel = 0
  7981. Frame239.ZIndex = 10
  7982. Frame240.Name = "00"
  7983. Frame240.Parent = Frame239
  7984. Frame240.Size = UDim2.new(0.0476190485, 0, 0, 3)
  7985. Frame240.Position = UDim2.new(0, 0, 0.5, -2)
  7986. Frame240.BackgroundColor3 = Color3.new(1, 1, 1)
  7987. Frame240.BorderColor3 = Color3.new(0, 0, 0)
  7988. Frame240.BorderSizePixel = 0
  7989. Frame240.ZIndex = 10
  7990. Frame241.Name = "01"
  7991. Frame241.Parent = Frame239
  7992. Frame241.Size = UDim2.new(0.0476190485, 0, 0, 4)
  7993. Frame241.Position = UDim2.new(0.0476190485, 0, 0.423076928, -2)
  7994. Frame241.BackgroundColor3 = Color3.new(1, 1, 1)
  7995. Frame241.BorderColor3 = Color3.new(0, 0, 0)
  7996. Frame241.BorderSizePixel = 0
  7997. Frame241.ZIndex = 10
  7998. Frame242.Name = "02"
  7999. Frame242.Parent = Frame239
  8000. Frame242.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8001. Frame242.Position = UDim2.new(0.095238097, 0, 0.346153855, -2)
  8002. Frame242.BackgroundColor3 = Color3.new(1, 1, 1)
  8003. Frame242.BorderColor3 = Color3.new(0, 0, 0)
  8004. Frame242.BorderSizePixel = 0
  8005. Frame242.ZIndex = 10
  8006. Frame243.Name = "03"
  8007. Frame243.Parent = Frame239
  8008. Frame243.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8009. Frame243.Position = UDim2.new(0.142857149, 0, 0.269230783, -2)
  8010. Frame243.BackgroundColor3 = Color3.new(1, 1, 1)
  8011. Frame243.BorderColor3 = Color3.new(0, 0, 0)
  8012. Frame243.BorderSizePixel = 0
  8013. Frame243.ZIndex = 10
  8014. Frame244.Name = "04"
  8015. Frame244.Parent = Frame239
  8016. Frame244.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8017. Frame244.Position = UDim2.new(0.190476194, 0, 0.192307696, -2)
  8018. Frame244.BackgroundColor3 = Color3.new(1, 1, 1)
  8019. Frame244.BorderColor3 = Color3.new(0, 0, 0)
  8020. Frame244.BorderSizePixel = 0
  8021. Frame244.ZIndex = 10
  8022. Frame245.Name = "05"
  8023. Frame245.Parent = Frame239
  8024. Frame245.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8025. Frame245.Position = UDim2.new(0.238095239, 0, 0.115384616, -2)
  8026. Frame245.BackgroundColor3 = Color3.new(1, 1, 1)
  8027. Frame245.BorderColor3 = Color3.new(0, 0, 0)
  8028. Frame245.BorderSizePixel = 0
  8029. Frame245.ZIndex = 10
  8030. Frame246.Name = "06"
  8031. Frame246.Parent = Frame239
  8032. Frame246.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8033. Frame246.Position = UDim2.new(0.285714298, 0, 0.0384615399, -2)
  8034. Frame246.BackgroundColor3 = Color3.new(1, 1, 1)
  8035. Frame246.BorderColor3 = Color3.new(0, 0, 0)
  8036. Frame246.BorderSizePixel = 0
  8037. Frame246.ZIndex = 10
  8038. Frame247.Name = "07"
  8039. Frame247.Parent = Frame239
  8040. Frame247.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8041. Frame247.Position = UDim2.new(0.333333343, 0, 0, -2)
  8042. Frame247.BackgroundColor3 = Color3.new(1, 1, 1)
  8043. Frame247.BorderColor3 = Color3.new(0, 0, 0)
  8044. Frame247.BorderSizePixel = 0
  8045. Frame247.ZIndex = 10
  8046. Frame248.Name = "08"
  8047. Frame248.Parent = Frame239
  8048. Frame248.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8049. Frame248.Position = UDim2.new(0.380952388, 0, 0.142857149, -2)
  8050. Frame248.BackgroundColor3 = Color3.new(1, 1, 1)
  8051. Frame248.BorderColor3 = Color3.new(0, 0, 0)
  8052. Frame248.BorderSizePixel = 0
  8053. Frame248.ZIndex = 10
  8054. Frame249.Name = "09"
  8055. Frame249.Parent = Frame239
  8056. Frame249.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8057. Frame249.Position = UDim2.new(0.428571433, 0, 0.285714298, -2)
  8058. Frame249.BackgroundColor3 = Color3.new(1, 1, 1)
  8059. Frame249.BorderColor3 = Color3.new(0, 0, 0)
  8060. Frame249.BorderSizePixel = 0
  8061. Frame249.ZIndex = 10
  8062. Frame250.Name = "10"
  8063. Frame250.Parent = Frame239
  8064. Frame250.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8065. Frame250.Position = UDim2.new(0.476190478, 0, 0.428571433, -2)
  8066. Frame250.BackgroundColor3 = Color3.new(1, 1, 1)
  8067. Frame250.BorderColor3 = Color3.new(0, 0, 0)
  8068. Frame250.BorderSizePixel = 0
  8069. Frame250.ZIndex = 10
  8070. Frame251.Name = "11"
  8071. Frame251.Parent = Frame239
  8072. Frame251.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8073. Frame251.Position = UDim2.new(0.523809552, 0, 0.571428597, -2)
  8074. Frame251.BackgroundColor3 = Color3.new(1, 1, 1)
  8075. Frame251.BorderColor3 = Color3.new(0, 0, 0)
  8076. Frame251.BorderSizePixel = 0
  8077. Frame251.ZIndex = 10
  8078. Frame252.Name = "12"
  8079. Frame252.Parent = Frame239
  8080. Frame252.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8081. Frame252.Position = UDim2.new(0.571428597, 0, 0.714285731, -2)
  8082. Frame252.BackgroundColor3 = Color3.new(1, 1, 1)
  8083. Frame252.BorderColor3 = Color3.new(0, 0, 0)
  8084. Frame252.BorderSizePixel = 0
  8085. Frame252.ZIndex = 10
  8086. Frame253.Name = "13"
  8087. Frame253.Parent = Frame239
  8088. Frame253.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8089. Frame253.Position = UDim2.new(0.619047642, 0, 0.857142866, -2)
  8090. Frame253.BackgroundColor3 = Color3.new(1, 1, 1)
  8091. Frame253.BorderColor3 = Color3.new(0, 0, 0)
  8092. Frame253.BorderSizePixel = 0
  8093. Frame253.ZIndex = 10
  8094. Frame254.Name = "14"
  8095. Frame254.Parent = Frame239
  8096. Frame254.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8097. Frame254.Position = UDim2.new(0.666666687, 0, 0.916666687, -2)
  8098. Frame254.BackgroundColor3 = Color3.new(1, 1, 1)
  8099. Frame254.BorderColor3 = Color3.new(0, 0, 0)
  8100. Frame254.BorderSizePixel = 0
  8101. Frame254.ZIndex = 10
  8102. Frame255.Name = "15"
  8103. Frame255.Parent = Frame239
  8104. Frame255.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8105. Frame255.Position = UDim2.new(0.714285731, 0, 0.833333313, -2)
  8106. Frame255.BackgroundColor3 = Color3.new(1, 1, 1)
  8107. Frame255.BorderColor3 = Color3.new(0, 0, 0)
  8108. Frame255.BorderSizePixel = 0
  8109. Frame255.ZIndex = 10
  8110. Frame256.Name = "16"
  8111. Frame256.Parent = Frame239
  8112. Frame256.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8113. Frame256.Position = UDim2.new(0.761904776, 0, 0.75, -2)
  8114. Frame256.BackgroundColor3 = Color3.new(1, 1, 1)
  8115. Frame256.BorderColor3 = Color3.new(0, 0, 0)
  8116. Frame256.BorderSizePixel = 0
  8117. Frame256.ZIndex = 10
  8118. Frame257.Name = "17"
  8119. Frame257.Parent = Frame239
  8120. Frame257.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8121. Frame257.Position = UDim2.new(0.809523821, 0, 0.666666687, -2)
  8122. Frame257.BackgroundColor3 = Color3.new(1, 1, 1)
  8123. Frame257.BorderColor3 = Color3.new(0, 0, 0)
  8124. Frame257.BorderSizePixel = 0
  8125. Frame257.ZIndex = 10
  8126. Frame258.Name = "18"
  8127. Frame258.Parent = Frame239
  8128. Frame258.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8129. Frame258.Position = UDim2.new(0.857142866, 0, 0.583333313, -2)
  8130. Frame258.BackgroundColor3 = Color3.new(1, 1, 1)
  8131. Frame258.BorderColor3 = Color3.new(0, 0, 0)
  8132. Frame258.BorderSizePixel = 0
  8133. Frame258.ZIndex = 10
  8134. Frame259.Name = "19"
  8135. Frame259.Parent = Frame239
  8136. Frame259.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8137. Frame259.Position = UDim2.new(0.90476191, 0, 0.5, -2)
  8138. Frame259.BackgroundColor3 = Color3.new(1, 1, 1)
  8139. Frame259.BorderColor3 = Color3.new(0, 0, 0)
  8140. Frame259.BorderSizePixel = 0
  8141. Frame259.ZIndex = 10
  8142. Frame260.Name = "20"
  8143. Frame260.Parent = Frame239
  8144. Frame260.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8145. Frame260.Position = UDim2.new(0.952000022, 0, 0.49000001, -2)
  8146. Frame260.BackgroundColor3 = Color3.new(1, 1, 1)
  8147. Frame260.BorderColor3 = Color3.new(0, 0, 0)
  8148. Frame260.BorderSizePixel = 0
  8149. Frame260.ZIndex = 10
  8150. Frame261.Name = "Line"
  8151. Frame261.Parent = Frame239
  8152. Frame261.Size = UDim2.new(0, 200, 0, 3)
  8153. Frame261.Position = UDim2.new(1, 0, 0.5, -2)
  8154. Frame261.BackgroundColor3 = Color3.new(1, 1, 1)
  8155. Frame261.BorderColor3 = Color3.new(0, 0, 0)
  8156. Frame261.BorderSizePixel = 0
  8157. Frame261.ZIndex = 10
  8158. Frame262.Name = "Line"
  8159. Frame262.Parent = Frame239
  8160. Frame262.Size = UDim2.new(0, 200, 0, 3)
  8161. Frame262.Position = UDim2.new(0, -200, 0.5, -2)
  8162. Frame262.BackgroundColor3 = Color3.new(1, 1, 1)
  8163. Frame262.BorderColor3 = Color3.new(0, 0, 0)
  8164. Frame262.BorderSizePixel = 0
  8165. Frame262.ZIndex = 10
  8166. Frame263.Name = "Controls"
  8167. Frame263.Parent = Frame225
  8168. Frame263.Transparency = 0.30000001192093
  8169. Frame263.Size = UDim2.new(1, 0, 0, 120)
  8170. Frame263.Position = UDim2.new(0, 0, 0, -200)
  8171. Frame263.Visible = false
  8172. Frame263.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8173. Frame263.BackgroundTransparency = 0.30000001192093
  8174. Frame263.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8175. Frame263.BorderSizePixel = 5
  8176. Frame263.ZIndex = 10
  8177. TextLabel264.Name = "Title"
  8178. TextLabel264.Parent = Frame263
  8179. TextLabel264.Transparency = 1
  8180. TextLabel264.Size = UDim2.new(1, 0, 0, 15)
  8181. TextLabel264.Text = "CONTROLS"
  8182. TextLabel264.BackgroundColor3 = Color3.new(1, 1, 1)
  8183. TextLabel264.BackgroundTransparency = 1
  8184. TextLabel264.ZIndex = 10
  8185. TextLabel264.Font = Enum.Font.SourceSansBold
  8186. TextLabel264.FontSize = Enum.FontSize.Size14
  8187. TextLabel264.TextColor3 = Color3.new(1, 1, 1)
  8188. TextLabel265.Name = "Line"
  8189. TextLabel265.Parent = TextLabel264
  8190. TextLabel265.Size = UDim2.new(1, 0, 0, 2)
  8191. TextLabel265.Text = ""
  8192. TextLabel265.Position = UDim2.new(0, 0, 1, 1)
  8193. TextLabel265.BackgroundColor3 = Color3.new(1, 1, 0)
  8194. TextLabel265.BorderSizePixel = 0
  8195. TextLabel265.ZIndex = 10
  8196. TextLabel265.Font = Enum.Font.SourceSans
  8197. TextLabel265.FontSize = Enum.FontSize.Size14
  8198. Frame266.Name = "Grenades"
  8199. Frame266.Parent = Frame225
  8200. Frame266.Transparency = 1
  8201. Frame266.Size = UDim2.new(0, 175, 0, 25)
  8202. Frame266.Position = UDim2.new(0, 0, 0, 90)
  8203. Frame266.Visible = false
  8204. Frame266.BackgroundTransparency = 1
  8205. Frame266.ZIndex = 10
  8206. Frame267.Name = "Lethals"
  8207. Frame267.Parent = Frame266
  8208. Frame267.Transparency = 0.80000001192093
  8209. Frame267.Size = UDim2.new(0.5, -2, 1, 0)
  8210. Frame267.BackgroundColor3 = Color3.new(1, 1, 1)
  8211. Frame267.BackgroundTransparency = 0.80000001192093
  8212. Frame267.BorderSizePixel = 0
  8213. Frame267.ZIndex = 10
  8214. ImageLabel268.Name = "Icon"
  8215. ImageLabel268.Parent = Frame267
  8216. ImageLabel268.Transparency = 1
  8217. ImageLabel268.Size = UDim2.new(0, 21, 0, 21)
  8218. ImageLabel268.Position = UDim2.new(0, 7, 0, 2)
  8219. ImageLabel268.BackgroundColor3 = Color3.new(1, 1, 1)
  8220. ImageLabel268.BackgroundTransparency = 1
  8221. ImageLabel268.ZIndex = 10
  8222. TextLabel269.Name = "Mult"
  8223. TextLabel269.Parent = Frame267
  8224. TextLabel269.Transparency = 1
  8225. TextLabel269.Size = UDim2.new(0, 20, 1, 0)
  8226. TextLabel269.Text = "X"
  8227. TextLabel269.Position = UDim2.new(0.5, -10, 0, 0)
  8228. TextLabel269.BackgroundColor3 = Color3.new(1, 1, 1)
  8229. TextLabel269.BackgroundTransparency = 1
  8230. TextLabel269.BorderSizePixel = 0
  8231. TextLabel269.ZIndex = 10
  8232. TextLabel269.Font = Enum.Font.ArialBold
  8233. TextLabel269.FontSize = Enum.FontSize.Size18
  8234. TextLabel269.TextColor3 = Color3.new(1, 1, 1)
  8235. TextLabel270.Name = "Num"
  8236. TextLabel270.Parent = Frame267
  8237. TextLabel270.Transparency = 1
  8238. TextLabel270.Size = UDim2.new(0, 0, 1, 0)
  8239. TextLabel270.Text = "0"
  8240. TextLabel270.Position = UDim2.new(1, -7, 0, 0)
  8241. TextLabel270.BackgroundColor3 = Color3.new(1, 1, 1)
  8242. TextLabel270.BackgroundTransparency = 1
  8243. TextLabel270.ZIndex = 10
  8244. TextLabel270.Font = Enum.Font.ArialBold
  8245. TextLabel270.FontSize = Enum.FontSize.Size18
  8246. TextLabel270.TextColor3 = Color3.new(1, 1, 1)
  8247. TextLabel270.TextXAlignment = Enum.TextXAlignment.Right
  8248. Frame271.Name = "Tacticals"
  8249. Frame271.Parent = Frame266
  8250. Frame271.Transparency = 0.80000001192093
  8251. Frame271.Size = UDim2.new(0.5, -2, 1, 0)
  8252. Frame271.Position = UDim2.new(0.5, 2, 0, 0)
  8253. Frame271.BackgroundColor3 = Color3.new(1, 1, 1)
  8254. Frame271.BackgroundTransparency = 0.80000001192093
  8255. Frame271.BorderSizePixel = 0
  8256. Frame271.ZIndex = 10
  8257. ImageLabel272.Name = "Icon"
  8258. ImageLabel272.Parent = Frame271
  8259. ImageLabel272.Transparency = 1
  8260. ImageLabel272.Size = UDim2.new(0, 21, 0, 21)
  8261. ImageLabel272.Position = UDim2.new(0, 7, 0, 2)
  8262. ImageLabel272.BackgroundColor3 = Color3.new(1, 1, 1)
  8263. ImageLabel272.BackgroundTransparency = 1
  8264. ImageLabel272.ZIndex = 10
  8265. TextLabel273.Name = "Num"
  8266. TextLabel273.Parent = Frame271
  8267. TextLabel273.Transparency = 1
  8268. TextLabel273.Size = UDim2.new(0, 0, 1, 0)
  8269. TextLabel273.Text = "0"
  8270. TextLabel273.Position = UDim2.new(1, -7, 0, 0)
  8271. TextLabel273.BackgroundColor3 = Color3.new(1, 1, 1)
  8272. TextLabel273.BackgroundTransparency = 1
  8273. TextLabel273.ZIndex = 10
  8274. TextLabel273.Font = Enum.Font.ArialBold
  8275. TextLabel273.FontSize = Enum.FontSize.Size18
  8276. TextLabel273.TextColor3 = Color3.new(1, 1, 1)
  8277. TextLabel273.TextXAlignment = Enum.TextXAlignment.Right
  8278. TextLabel274.Name = "Mult"
  8279. TextLabel274.Parent = Frame271
  8280. TextLabel274.Transparency = 1
  8281. TextLabel274.Size = UDim2.new(0, 20, 1, 0)
  8282. TextLabel274.Text = "X"
  8283. TextLabel274.Position = UDim2.new(0.5, -10, 0, 0)
  8284. TextLabel274.BackgroundColor3 = Color3.new(1, 1, 1)
  8285. TextLabel274.BackgroundTransparency = 1
  8286. TextLabel274.BorderSizePixel = 0
  8287. TextLabel274.ZIndex = 10
  8288. TextLabel274.Font = Enum.Font.ArialBold
  8289. TextLabel274.FontSize = Enum.FontSize.Size18
  8290. TextLabel274.TextColor3 = Color3.new(1, 1, 1)
  8291. Frame275.Name = "gunName"
  8292. Frame275.Parent = Frame225
  8293. Frame275.Transparency = 1
  8294. Frame275.Size = UDim2.new(1, 0, 0, 36)
  8295. Frame275.BackgroundColor3 = Color3.new(0.972549, 0.972549, 0.972549)
  8296. Frame275.BackgroundTransparency = 1
  8297. Frame275.ZIndex = 10
  8298. TextLabel276.Name = "Line"
  8299. TextLabel276.Parent = Frame275
  8300. TextLabel276.Size = UDim2.new(0, 2, 1, 0)
  8301. TextLabel276.Text = ""
  8302. TextLabel276.BackgroundColor3 = Color3.new(1, 1, 1)
  8303. TextLabel276.BorderSizePixel = 0
  8304. TextLabel276.ZIndex = 10
  8305. TextLabel276.Font = Enum.Font.SourceSans
  8306. TextLabel276.FontSize = Enum.FontSize.Size14
  8307. TextLabel277.Name = "Line"
  8308. TextLabel277.Parent = Frame275
  8309. TextLabel277.Size = UDim2.new(1, 0, 0, 2)
  8310. TextLabel277.Text = ""
  8311. TextLabel277.Position = UDim2.new(0, 0, 1, 0)
  8312. TextLabel277.BackgroundColor3 = Color3.new(1, 1, 1)
  8313. TextLabel277.BorderSizePixel = 0
  8314. TextLabel277.ZIndex = 10
  8315. TextLabel277.Font = Enum.Font.SourceSans
  8316. TextLabel277.FontSize = Enum.FontSize.Size14
  8317. TextLabel278.Name = "Title"
  8318. TextLabel278.Parent = Frame275
  8319. TextLabel278.Transparency = 1
  8320. TextLabel278.Size = UDim2.new(1, -7, 1, 0)
  8321. TextLabel278.Text = "Gun"
  8322. TextLabel278.Position = UDim2.new(0, 7, 0, 0)
  8323. TextLabel278.BackgroundColor3 = Color3.new(1, 1, 1)
  8324. TextLabel278.BackgroundTransparency = 1
  8325. TextLabel278.ZIndex = 10
  8326. TextLabel278.Font = Enum.Font.SourceSansBold
  8327. TextLabel278.FontSize = Enum.FontSize.Size36
  8328. TextLabel278.TextColor3 = Color3.new(1, 1, 1)
  8329. TextLabel278.TextStrokeTransparency = 0
  8330. TextLabel278.TextXAlignment = Enum.TextXAlignment.Left
  8331. Frame279.Name = "fireSelect"
  8332. Frame279.Parent = ScreenGui211
  8333. Frame279.Transparency = 1
  8334. Frame279.Position = UDim2.new(0.5, 0, 0.5, -18)
  8335. Frame279.Visible = false
  8336. Frame279.BackgroundColor3 = Color3.new(1, 1, 1)
  8337. Frame279.BackgroundTransparency = 1
  8338. Frame280.Name = "Modes"
  8339. Frame280.Parent = Frame279
  8340. Frame280.Transparency = 1
  8341. Frame280.BackgroundColor3 = Color3.new(1, 1, 1)
  8342. Frame280.BackgroundTransparency = 1
  8343. ImageLabel281.Name = "Circle"
  8344. ImageLabel281.Parent = Frame279
  8345. ImageLabel281.Transparency = 1
  8346. ImageLabel281.Size = UDim2.new(0, 120, 0, 120)
  8347. ImageLabel281.Position = UDim2.new(0, -60, 0, -60)
  8348. ImageLabel281.BackgroundColor3 = Color3.new(1, 1, 1)
  8349. ImageLabel281.BackgroundTransparency = 1
  8350. ImageLabel281.Image = "http://www.roblox.com/asset/?id=55754953"
  8351. ImageLabel281.ImageTransparency = 0.5
  8352. ImageLabel282.Name = "Arrow"
  8353. ImageLabel282.Parent = Frame279
  8354. ImageLabel282.Transparency = 1
  8355. ImageLabel282.Size = UDim2.new(0, 40, 0, 20)
  8356. ImageLabel282.Position = UDim2.new(0, -20, 0, -140)
  8357. ImageLabel282.BackgroundColor3 = Color3.new(1, 1, 1)
  8358. ImageLabel282.BackgroundTransparency = 1
  8359. ImageLabel282.Image = "http://www.roblox.com/asset/?id=126877530"
  8360. Frame283.Name = "Scope"
  8361. Frame283.Parent = ScreenGui211
  8362. Frame283.Transparency = 1
  8363. Frame283.Size = UDim2.new(1, 0, 1, 36)
  8364. Frame283.Position = UDim2.new(0, 0, 0, -36)
  8365. Frame283.BackgroundColor3 = Color3.new(0, 0, 0)
  8366. Frame283.BackgroundTransparency = 1
  8367. TextLabel284.Name = "Steady"
  8368. TextLabel284.Parent = Frame283
  8369. TextLabel284.Transparency = 1
  8370. TextLabel284.Size = UDim2.new(0, 120, 0, 20)
  8371. TextLabel284.Text = ""
  8372. TextLabel284.Position = UDim2.new(0.5, -60, 0.5, 50)
  8373. TextLabel284.Visible = false
  8374. TextLabel284.BackgroundColor3 = Color3.new(1, 1, 1)
  8375. TextLabel284.BackgroundTransparency = 1
  8376. TextLabel284.ZIndex = 9
  8377. TextLabel284.Font = Enum.Font.ArialBold
  8378. TextLabel284.FontSize = Enum.FontSize.Size14
  8379. TextLabel284.TextColor3 = Color3.new(1, 1, 0)
  8380. TextLabel284.TextStrokeTransparency = 0
  8381. Frame285.Name = "Main"
  8382. Frame285.Parent = Frame283
  8383. Frame285.Transparency = 1
  8384. Frame285.Size = UDim2.new(1, 0, 1, 0)
  8385. Frame285.Visible = false
  8386. Frame285.BackgroundColor3 = Color3.new(1, 1, 1)
  8387. Frame285.BackgroundTransparency = 1
  8388. ImageLabel286.Name = "ScopeImg2"
  8389. ImageLabel286.Parent = Frame285
  8390. ImageLabel286.Transparency = 1
  8391. ImageLabel286.Size = UDim2.new(0, 20, 0, 20)
  8392. ImageLabel286.Position = UDim2.new(0.5, -10, 0, -10)
  8393. ImageLabel286.BackgroundColor3 = Color3.new(0, 0, 0)
  8394. ImageLabel286.BackgroundTransparency = 1
  8395. ImageLabel286.Image = "http://www.roblox.com/asset/?id=184922644"
  8396. ImageLabel287.Name = "ScopeImg1"
  8397. ImageLabel287.Parent = Frame285
  8398. ImageLabel287.Transparency = 1
  8399. ImageLabel287.Size = UDim2.new(0, 20, 0, 20)
  8400. ImageLabel287.Position = UDim2.new(0.5, -10, 0, -10)
  8401. ImageLabel287.BackgroundColor3 = Color3.new(0, 0, 0)
  8402. ImageLabel287.BackgroundTransparency = 1
  8403. ImageLabel287.Image = "http://www.roblox.com/asset/?id=72002022"
  8404. Frame288.Name = "F2"
  8405. Frame288.Parent = Frame285
  8406. Frame288.Size = UDim2.new(0, 0, 1, 20)
  8407. Frame288.Position = UDim2.new(0, -10, 0, -10)
  8408. Frame288.BackgroundColor3 = Color3.new(0, 0, 0)
  8409. Frame288.BorderColor3 = Color3.new(0, 0, 0)
  8410. Frame288.BorderSizePixel = 0
  8411. Frame289.Name = "F1"
  8412. Frame289.Parent = Frame285
  8413. Frame289.Size = UDim2.new(0, 0, 1, 20)
  8414. Frame289.Position = UDim2.new(0, -10, 0, -10)
  8415. Frame289.BackgroundColor3 = Color3.new(0, 0, 0)
  8416. Frame289.BorderColor3 = Color3.new(0, 0, 0)
  8417. Frame289.BorderSizePixel = 0
  8418. LocalScript290.Name = "Update"
  8419. LocalScript290.Parent = Frame285
  8420. table.insert(cors,sandbox(LocalScript290,function()
  8421. local GUI = script.Parent
  8422.  
  8423. function updateScopeDimension()
  8424. GUI.ScopeImg1.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
  8425. GUI.ScopeImg1.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
  8426. GUI.ScopeImg2.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
  8427. GUI.ScopeImg2.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
  8428. GUI.F1.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
  8429. GUI.F2.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
  8430. GUI.F2.Position = UDim2.new(1, -10 - ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 0, -10)
  8431. end
  8432.  
  8433. wait()
  8434.  
  8435. GUI.Changed:connect(updateScopeDimension)
  8436.  
  8437. updateScopeDimension()
  8438. end))
  8439. TextLabel291.Name = "Sens"
  8440. TextLabel291.Parent = ScreenGui211
  8441. TextLabel291.Transparency = 1
  8442. TextLabel291.Size = UDim2.new(0, 100, 0, 20)
  8443. TextLabel291.Text = "S: 0.3"
  8444. TextLabel291.Position = UDim2.new(0.5, -50, 0.5, 50)
  8445. TextLabel291.Visible = false
  8446. TextLabel291.BackgroundColor3 = Color3.new(1, 1, 1)
  8447. TextLabel291.BackgroundTransparency = 1
  8448. TextLabel291.ZIndex = 10
  8449. TextLabel291.Font = Enum.Font.SourceSansBold
  8450. TextLabel291.FontSize = Enum.FontSize.Size28
  8451. TextLabel291.TextColor3 = Color3.new(1, 1, 1)
  8452. TextLabel291.TextStrokeTransparency = 0
  8453. Part292.Name = "ham"
  8454. Part292.Parent = Tool0
  8455. Part292.BrickColor = BrickColor.new("Mid gray")
  8456. Part292.Rotation = Vector3.new(179.98999, 89.9799957, -179.929993)
  8457. Part292.FormFactor = Enum.FormFactor.Plate
  8458. Part292.Size = Vector3.new(1, 0.800000012, 1)
  8459. 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)
  8460. Part292.BottomSurface = Enum.SurfaceType.Smooth
  8461. Part292.TopSurface = Enum.SurfaceType.Smooth
  8462. Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
  8463. Part292.Position = Vector3.new(1435.26599, 48.9021072, -1310.87195)
  8464. Part292.Orientation = Vector3.new(0, 90, 0.049999997)
  8465. Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
  8466. SpecialMesh293.Parent = Part292
  8467. SpecialMesh293.MeshId = "http://www.roblox.com/asset/?id=16646125"
  8468. SpecialMesh293.TextureId = "http://www.roblox.com/asset/?id=16432575"
  8469. SpecialMesh293.MeshType = Enum.MeshType.FileMesh
  8470. Weld294.Parent = Part292
  8471. 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)
  8472. 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)
  8473. Weld295.Parent = Part292
  8474. 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)
  8475. 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)
  8476. Weld296.Parent = Part292
  8477. 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)
  8478. 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)
  8479. Weld297.Parent = Part292
  8480. 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)
  8481. 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)
  8482. Weld298.Parent = Part292
  8483. 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)
  8484. 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)
  8485. Weld299.Parent = Part292
  8486. 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)
  8487. 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)
  8488. Weld300.Parent = Part292
  8489. 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)
  8490. 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)
  8491. Weld301.Parent = Part292
  8492. 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)
  8493. 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)
  8494. Weld302.Parent = Part292
  8495. 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)
  8496. 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)
  8497. Weld303.Parent = Part292
  8498. 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)
  8499. 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)
  8500. Weld304.Parent = Part292
  8501. 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)
  8502. 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)
  8503. Weld305.Parent = Part292
  8504. 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)
  8505. 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)
  8506. Weld306.Parent = Part292
  8507. 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)
  8508. 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)
  8509. Weld307.Parent = Part292
  8510. 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)
  8511. 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)
  8512. Weld308.Parent = Part292
  8513. 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)
  8514. 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)
  8515. Weld309.Parent = Part292
  8516. 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)
  8517. 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)
  8518. Weld310.Parent = Part292
  8519. 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)
  8520. 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)
  8521. Weld311.Parent = Part292
  8522. 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)
  8523. 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)
  8524. Weld312.Parent = Part292
  8525. 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)
  8526. 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)
  8527. Weld313.Parent = Part292
  8528. 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)
  8529. 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)
  8530. Weld314.Parent = Part292
  8531. 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)
  8532. 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)
  8533. Weld315.Parent = Part292
  8534. 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)
  8535. 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)
  8536. Weld316.Parent = Part292
  8537. 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)
  8538. 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)
  8539. Weld317.Parent = Part292
  8540. 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)
  8541. 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)
  8542. Weld318.Parent = Part292
  8543. 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)
  8544. 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)
  8545. Weld319.Parent = Part292
  8546. 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)
  8547. 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)
  8548. Weld320.Parent = Part292
  8549. 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)
  8550. 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)
  8551. Weld321.Parent = Part292
  8552. 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)
  8553. 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)
  8554. Weld322.Parent = Part292
  8555. 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)
  8556. 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)
  8557. Weld323.Parent = Part292
  8558. 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)
  8559. 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)
  8560. Weld324.Parent = Part292
  8561. 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)
  8562. 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)
  8563. Weld325.Parent = Part292
  8564. 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)
  8565. 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)
  8566. Weld326.Parent = Part292
  8567. 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)
  8568. 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)
  8569. Weld327.Parent = Part292
  8570. 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)
  8571. 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)
  8572. Weld328.Parent = Part292
  8573. 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)
  8574. 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)
  8575. Weld329.Parent = Part292
  8576. 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)
  8577. 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)
  8578. Weld330.Parent = Part292
  8579. 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)
  8580. 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)
  8581. Weld331.Parent = Part292
  8582. 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)
  8583. 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)
  8584. Weld332.Parent = Part292
  8585. 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)
  8586. 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)
  8587. Weld333.Parent = Part292
  8588. 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)
  8589. 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)
  8590. Weld334.Parent = Part292
  8591. 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)
  8592. 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)
  8593. Weld335.Parent = Part292
  8594. 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)
  8595. 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)
  8596. Weld336.Parent = Part292
  8597. 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)
  8598. 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)
  8599. Weld337.Parent = Part292
  8600. 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)
  8601. 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)
  8602. Weld338.Parent = Part292
  8603. 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)
  8604. 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)
  8605. Weld339.Parent = Part292
  8606. 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)
  8607. 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)
  8608. Weld340.Parent = Part292
  8609. 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)
  8610. 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)
  8611. Weld341.Parent = Part292
  8612. 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)
  8613. 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)
  8614. Weld342.Parent = Part292
  8615. 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)
  8616. 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)
  8617. Weld343.Parent = Part292
  8618. 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)
  8619. 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)
  8620. Weld344.Parent = Part292
  8621. 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)
  8622. 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)
  8623. Weld345.Parent = Part292
  8624. 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)
  8625. 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)
  8626. Weld346.Parent = Part292
  8627. 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)
  8628. 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)
  8629. Weld347.Parent = Part292
  8630. 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)
  8631. 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)
  8632. Weld348.Parent = Part292
  8633. 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)
  8634. 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)
  8635. Weld349.Parent = Part292
  8636. 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)
  8637. 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)
  8638. Weld350.Parent = Part292
  8639. 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)
  8640. 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)
  8641. Weld351.Parent = Part292
  8642. 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)
  8643. 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)
  8644. Weld352.Parent = Part292
  8645. 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)
  8646. 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)
  8647. Weld353.Parent = Part292
  8648. 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)
  8649. 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)
  8650. Weld354.Parent = Part292
  8651. 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)
  8652. 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)
  8653. Weld355.Parent = Part292
  8654. 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)
  8655. 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)
  8656. Weld356.Parent = Part292
  8657. 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)
  8658. 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)
  8659. Weld357.Parent = Part292
  8660. 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)
  8661. 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)
  8662. Weld358.Parent = Part292
  8663. 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)
  8664. 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)
  8665. Weld358.Part0 = Part292
  8666. Weld358.Part1 = Part292
  8667. Weld359.Parent = Part292
  8668. 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)
  8669. 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)
  8670. Weld359.Part0 = Part292
  8671. Weld359.Part1 = Part292
  8672. Weld360.Parent = Part292
  8673. 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)
  8674. 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)
  8675. Weld360.Part0 = Part292
  8676. Weld360.Part1 = Part292
  8677. Weld361.Parent = Part292
  8678. 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)
  8679. 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)
  8680. Weld361.Part0 = Part292
  8681. Weld361.Part1 = Part292
  8682. Weld362.Parent = Part292
  8683. 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)
  8684. 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)
  8685. Weld362.Part0 = Part292
  8686. Weld362.Part1 = Part292
  8687. Weld363.Parent = Part292
  8688. 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)
  8689. 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)
  8690. Weld363.Part0 = Part292
  8691. Weld363.Part1 = Part292
  8692. Weld364.Parent = Part292
  8693. 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)
  8694. 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)
  8695. Weld364.Part0 = Part292
  8696. Weld364.Part1 = Part292
  8697. Weld365.Parent = Part292
  8698. 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)
  8699. 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)
  8700. Weld365.Part0 = Part292
  8701. Weld365.Part1 = Part292
  8702. Weld366.Parent = Part292
  8703. 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)
  8704. 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)
  8705. Weld366.Part0 = Part292
  8706. Weld366.Part1 = Part292
  8707. Part367.Name = "BoltBack"
  8708. Part367.Parent = Tool0
  8709. Part367.BrickColor = BrickColor.new("Really black")
  8710. Part367.Transparency = 1
  8711. Part367.Rotation = Vector3.new(179.979996, 0, -180)
  8712. Part367.Anchored = true
  8713. Part367.CanCollide = false
  8714. Part367.FormFactor = Enum.FormFactor.Custom
  8715. Part367.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  8716. Part367.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
  8717. Part367.BottomSurface = Enum.SurfaceType.Smooth
  8718. Part367.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  8719. Part367.TopSurface = Enum.SurfaceType.Smooth
  8720. Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8721. Part367.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
  8722. Part367.Orientation = Vector3.new(0.0199999996, 180, 0)
  8723. Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8724. Sound368.Name = "FireSound"
  8725. Sound368.Parent = Part367
  8726. Sound368.SoundId = "rbxassetid://135039581"
  8727. Sound368.Volume = 1
  8728. Sound369.Name = "ReloadSound"
  8729. Sound369.Parent = Part367
  8730. Sound369.SoundId = "rbxassetid://255061162"
  8731. Sound369.Volume = 1
  8732. Part370.Name = "Bolt"
  8733. Part370.Parent = Tool0
  8734. Part370.BrickColor = BrickColor.new("Really black")
  8735. Part370.Transparency = 1
  8736. Part370.Rotation = Vector3.new(179.979996, 0, -180)
  8737. Part370.Anchored = true
  8738. Part370.CanCollide = false
  8739. Part370.FormFactor = Enum.FormFactor.Custom
  8740. Part370.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  8741. Part370.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
  8742. Part370.BottomSurface = Enum.SurfaceType.Smooth
  8743. Part370.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  8744. Part370.TopSurface = Enum.SurfaceType.Smooth
  8745. Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8746. Part370.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
  8747. Part370.Orientation = Vector3.new(0.0199999996, 180, 0)
  8748. Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8749. Sound371.Name = "FireSound"
  8750. Sound371.Parent = Part370
  8751. Sound371.SoundId = "rbxassetid://135039581"
  8752. Sound371.Volume = 1
  8753. Sound372.Name = "ReloadSound"
  8754. Sound372.Parent = Part370
  8755. Sound372.SoundId = "rbxassetid://255061162"
  8756. Sound372.Volume = 1
  8757. Model373.Name = "Nigger"
  8758. Model373.Parent = Tool0
  8759. Part374.Name = "Right Leg"
  8760. Part374.Parent = Model373
  8761. Part374.BrickColor = BrickColor.new("Reddish brown")
  8762. Part374.Rotation = Vector3.new(0, -90, 0)
  8763. Part374.Anchored = true
  8764. Part374.CanCollide = false
  8765. Part374.FormFactor = Enum.FormFactor.Symmetric
  8766. Part374.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8767. Part374.CFrame = CFrame.new(1434.75476, 44.2668762, -1310.34082, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8768. Part374.BottomSurface = Enum.SurfaceType.Smooth
  8769. Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8770. Part374.Position = Vector3.new(1434.75476, 44.2668762, -1310.34082)
  8771. Part374.Orientation = Vector3.new(0, -90, 0)
  8772. Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8773. Decal375.Parent = Part374
  8774. Decal375.Texture = "http://www.roblox.com/asset/?id=513989292"
  8775. Part376.Name = "Torso"
  8776. Part376.Parent = Model373
  8777. Part376.BrickColor = BrickColor.new("Reddish brown")
  8778. Part376.Rotation = Vector3.new(0, -90, 0)
  8779. Part376.Anchored = true
  8780. Part376.FormFactor = Enum.FormFactor.Symmetric
  8781. Part376.Size = Vector3.new(0.53363061, 0.53363061, 0.266815305)
  8782. Part376.CFrame = CFrame.new(1434.75476, 44.8004494, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8783. Part376.LeftSurface = Enum.SurfaceType.Weld
  8784. Part376.RightSurface = Enum.SurfaceType.Weld
  8785. Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8786. Part376.Position = Vector3.new(1434.75476, 44.8004494, -1310.47424)
  8787. Part376.Orientation = Vector3.new(0, -90, 0)
  8788. Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8789. Decal377.Name = "roblox"
  8790. Decal377.Parent = Part376
  8791. Motor378.Name = "Right Shoulder"
  8792. Motor378.Parent = Part376
  8793. Motor378.C0 = CFrame.new(0.266815305, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8794. Motor378.C1 = CFrame.new(-0.133407652, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8795. Motor378.Part0 = Part376
  8796. Motor378.Part1 = Part383
  8797. Motor378.MaxVelocity = 0.5
  8798. Motor379.Name = "Left Shoulder"
  8799. Motor379.Parent = Part376
  8800. Motor379.C0 = CFrame.new(-0.266815305, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8801. Motor379.C1 = CFrame.new(0.133407652, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8802. Motor379.Part0 = Part376
  8803. Motor379.Part1 = Part385
  8804. Motor379.MaxVelocity = 0.5
  8805. Motor380.Name = "Right Hip"
  8806. Motor380.Parent = Part376
  8807. Motor380.C0 = CFrame.new(0.266815305, -0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8808. Motor380.C1 = CFrame.new(0.133407652, 0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8809. Motor380.Part0 = Part376
  8810. Motor380.Part1 = Part374
  8811. Motor380.MaxVelocity = 0.10000000149012
  8812. Motor381.Name = "Left Hip"
  8813. Motor381.Parent = Part376
  8814. Motor381.C0 = CFrame.new(-0.266815305, -0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8815. Motor381.C1 = CFrame.new(-0.133407652, 0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8816. Motor381.Part0 = Part376
  8817. Motor381.Part1 = Part384
  8818. Motor381.MaxVelocity = 0.10000000149012
  8819. Motor382.Name = "Neck"
  8820. Motor382.Parent = Part376
  8821. Motor382.C0 = CFrame.new(0, 0.266815305, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  8822. Motor382.C1 = CFrame.new(0, -0.133407652, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  8823. Motor382.Part0 = Part376
  8824. Motor382.Part1 = Part386
  8825. Motor382.MaxVelocity = 0.10000000149012
  8826. Part383.Name = "Right Arm"
  8827. Part383.Parent = Model373
  8828. Part383.BrickColor = BrickColor.new("Reddish brown")
  8829. Part383.Rotation = Vector3.new(0, -90, 0)
  8830. Part383.Anchored = true
  8831. Part383.CanCollide = false
  8832. Part383.FormFactor = Enum.FormFactor.Symmetric
  8833. Part383.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8834. Part383.CFrame = CFrame.new(1434.75476, 44.8004532, -1310.07397, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8835. Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8836. Part383.Position = Vector3.new(1434.75476, 44.8004532, -1310.07397)
  8837. Part383.Orientation = Vector3.new(0, -90, 0)
  8838. Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8839. Part384.Name = "Left Leg"
  8840. Part384.Parent = Model373
  8841. Part384.BrickColor = BrickColor.new("Reddish brown")
  8842. Part384.Rotation = Vector3.new(0, -90, 0)
  8843. Part384.Anchored = true
  8844. Part384.CanCollide = false
  8845. Part384.FormFactor = Enum.FormFactor.Symmetric
  8846. Part384.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8847. Part384.CFrame = CFrame.new(1434.75476, 44.2668228, -1310.60767, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8848. Part384.BottomSurface = Enum.SurfaceType.Smooth
  8849. Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8850. Part384.Position = Vector3.new(1434.75476, 44.2668228, -1310.60767)
  8851. Part384.Orientation = Vector3.new(0, -90, 0)
  8852. Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8853. Part385.Name = "Left Arm"
  8854. Part385.Parent = Model373
  8855. Part385.BrickColor = BrickColor.new("Reddish brown")
  8856. Part385.Rotation = Vector3.new(0, -90, 0)
  8857. Part385.Anchored = true
  8858. Part385.CanCollide = false
  8859. Part385.FormFactor = Enum.FormFactor.Symmetric
  8860. Part385.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8861. Part385.CFrame = CFrame.new(1434.75476, 44.8004341, -1310.87451, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8862. Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8863. Part385.Position = Vector3.new(1434.75476, 44.8004341, -1310.87451)
  8864. Part385.Orientation = Vector3.new(0, -90, 0)
  8865. Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8866. Part386.Name = "Head"
  8867. Part386.Parent = Model373
  8868. Part386.BrickColor = BrickColor.new("Reddish brown")
  8869. Part386.Rotation = Vector3.new(0, -90, 0)
  8870. Part386.Anchored = true
  8871. Part386.FormFactor = Enum.FormFactor.Symmetric
  8872. Part386.Size = Vector3.new(0.53363061, 0.266815305, 0.266815305)
  8873. Part386.CFrame = CFrame.new(1434.75476, 45.2006721, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8874. Part386.TopSurface = Enum.SurfaceType.Smooth
  8875. Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8876. Part386.Position = Vector3.new(1434.75476, 45.2006721, -1310.47424)
  8877. Part386.Orientation = Vector3.new(0, -90, 0)
  8878. Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8879. SpecialMesh387.Parent = Part386
  8880. SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
  8881. SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
  8882. Decal388.Parent = Part386
  8883. Decal388.Texture = "http://www.roblox.com/asset/?id=42030236"
  8884. Decal389.Parent = Part386
  8885. Decal389.Texture = "http://www.roblox.com/asset/?id=513989292"
  8886. Humanoid390.Parent = Model373
  8887. Humanoid390.RightLeg = Part374
  8888. Humanoid390.LeftLeg = Part384
  8889. Humanoid390.Torso = Part376
  8890. Humanoid390.MaxHealth = 0
  8891. Script391.Name = "Humaniod"
  8892. Script391.Parent = Model373
  8893. table.insert(cors,sandbox(Script391,function()
  8894. local Model = script.Parent
  8895. local Backup = Model:clone()
  8896.  
  8897. function Respawn()
  8898. Model:breakJoints()
  8899.  
  8900. wait(5)
  8901.  
  8902. script.Parent = Model.Parent
  8903.  
  8904. Model:remove()
  8905. Model = Backup:clone()
  8906. Model.Parent = script.Parent
  8907. Model:makeJoints()
  8908.  
  8909. script:remove()
  8910. end
  8911.  
  8912. Model.Humanoid.Died:connect(Respawn)
  8913.  
  8914. function waitForChild(parent, childName)
  8915. local child = parent:findFirstChild(childName)
  8916.  
  8917. if child then
  8918. return child
  8919. end
  8920.  
  8921. while true do
  8922. print(childName)
  8923.  
  8924. child = parent.ChildAdded:wait()
  8925.  
  8926. if child.Name==childName then
  8927. return child
  8928. end
  8929. end
  8930. end
  8931.  
  8932. -- declarations
  8933.  
  8934. local Figure = script.Parent
  8935. local Head = waitForChild(Figure, "Head")
  8936. local Humanoid = waitForChild(Figure, "Humanoid")
  8937.  
  8938. Figure.PrimaryPart = Head
  8939.  
  8940. -- ANIMATION
  8941.  
  8942. function Joint(Name, Part0, Part1, C0, C1, MaxVelocity)
  8943. local Motor = Instance.new("Motor")
  8944.  
  8945. Motor.C0 = C0
  8946. Motor.C1 = C1
  8947. Motor.MaxVelocity = MaxVelocity
  8948. Motor.Name = Name
  8949. Motor.Parent = Part0
  8950. Motor.Part0 = Part0
  8951. Motor.Part1 = Part1
  8952. end
  8953.  
  8954. -- declarations
  8955.  
  8956. local Torso = waitForChild(Figure, "Torso")
  8957. local LeftArm = waitForChild(Figure, "Left Arm")
  8958. local LeftLeg = waitForChild(Figure, "Left Leg")
  8959. local RightArm = waitForChild(Figure, "Right Arm")
  8960. local RightLeg = waitForChild(Figure, "Right Leg")
  8961.  
  8962. local Joints = {
  8963. {"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},
  8964. {"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},
  8965. {"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},
  8966. {"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},
  8967. {"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}}
  8968.  
  8969. Torso:breakJoints()
  8970.  
  8971. for _, v in pairs(Joints) do
  8972. Joint(unpack(v))
  8973. end
  8974.  
  8975. local RightShoulder = waitForChild(Torso, "Right Shoulder")
  8976. local LeftShoulder = waitForChild(Torso, "Left Shoulder")
  8977. local RightHip = waitForChild(Torso, "Right Hip")
  8978. local LeftHip = waitForChild(Torso, "Left Hip")
  8979. local Neck = waitForChild(Torso, "Neck")
  8980. local Humanoid = waitForChild(Figure, "Humanoid")
  8981. local pose = "Standing"
  8982.  
  8983. local toolAnim = "None"
  8984. local toolAnimTime = 0
  8985.  
  8986. -- functions
  8987.  
  8988. function onRunning(speed)
  8989. if speed>0 then
  8990. pose = "Running"
  8991. else
  8992. pose = "Standing"
  8993. end
  8994. end
  8995.  
  8996. function onDied()
  8997. pose = "Dead"
  8998. end
  8999.  
  9000. function onJumping()
  9001. pose = "Jumping"
  9002. end
  9003.  
  9004. function onClimbing()
  9005. pose = "Climbing"
  9006. end
  9007.  
  9008. function onGettingUp()
  9009. pose = "GettingUp"
  9010. end
  9011.  
  9012. function onFreeFall()
  9013. pose = "FreeFall"
  9014. end
  9015.  
  9016. function onFallingDown()
  9017. pose = "FallingDown"
  9018. end
  9019.  
  9020. function onSeated()
  9021. pose = "Seated"
  9022. end
  9023.  
  9024. function onPlatformStanding()
  9025. pose = "PlatformStanding"
  9026. end
  9027.  
  9028. function moveJump()
  9029. RightShoulder.MaxVelocity = 0.5
  9030. LeftShoulder.MaxVelocity = 0.5
  9031. RightShoulder.DesiredAngle = 3.14
  9032. LeftShoulder.DesiredAngle = -3.14
  9033. RightHip.DesiredAngle = 0
  9034. LeftHip.DesiredAngle = 0
  9035. end
  9036.  
  9037.  
  9038. -- same as jump for now
  9039.  
  9040. function moveFreeFall()
  9041. RightShoulder.MaxVelocity = 0.5
  9042. LeftShoulder.MaxVelocity = 0.5
  9043. RightShoulder.DesiredAngle = 3.14
  9044. LeftShoulder.DesiredAngle = -3.14
  9045. RightHip.DesiredAngle = 0
  9046. LeftHip.DesiredAngle = 0
  9047. end
  9048.  
  9049. function moveSit()
  9050. RightShoulder.MaxVelocity = 0.15
  9051. LeftShoulder.MaxVelocity = 0.15
  9052. RightShoulder.DesiredAngle = 3.14 /2
  9053. LeftShoulder.DesiredAngle = -3.14 /2
  9054. RightHip.DesiredAngle = 3.14 /2
  9055. LeftHip.DesiredAngle = -3.14 /2
  9056. end
  9057.  
  9058. function getTool()
  9059. for _, kid in ipairs(Figure:GetChildren()) do
  9060. if kid.className == "Tool" then return kid end
  9061. end
  9062. return nil
  9063. end
  9064.  
  9065. function getToolAnim(tool)
  9066. for _, c in ipairs(tool:GetChildren()) do
  9067. if c.Name == "toolanim" and c.className == "StringValue" then
  9068. return c
  9069. end
  9070. end
  9071. return nil
  9072. end
  9073.  
  9074. function animateTool()
  9075.  
  9076. if (toolAnim == "None") then
  9077. RightShoulder.DesiredAngle = 1.57
  9078. return
  9079. end
  9080.  
  9081. if (toolAnim == "Slash") then
  9082. RightShoulder.MaxVelocity = 0.5
  9083. RightShoulder.DesiredAngle = 0
  9084. return
  9085. end
  9086.  
  9087. if (toolAnim == "Lunge") then
  9088. RightShoulder.MaxVelocity = 0.5
  9089. LeftShoulder.MaxVelocity = 0.5
  9090. RightHip.MaxVelocity = 0.5
  9091. LeftHip.MaxVelocity = 0.5
  9092. RightShoulder.DesiredAngle = 1.57
  9093. LeftShoulder.DesiredAngle = 1.0
  9094. RightHip.DesiredAngle = 1.57
  9095. LeftHip.DesiredAngle = 1.0
  9096. return
  9097. end
  9098. end
  9099.  
  9100. function move(time)
  9101. local amplitude
  9102. local frequency
  9103.  
  9104. if (pose == "Jumping") then
  9105. moveJump()
  9106. return
  9107. end
  9108.  
  9109. if (pose == "FreeFall") then
  9110. moveFreeFall()
  9111. return
  9112. end
  9113.  
  9114. if (pose == "Seated") then
  9115. moveSit()
  9116. return
  9117. end
  9118.  
  9119. local climbFudge = 0
  9120.  
  9121. if (pose == "Running") then
  9122. RightShoulder.MaxVelocity = 0.15
  9123. LeftShoulder.MaxVelocity = 0.15
  9124. amplitude = 1
  9125. frequency = 9
  9126. elseif (pose == "Climbing") then
  9127. RightShoulder.MaxVelocity = 0.5
  9128. LeftShoulder.MaxVelocity = 0.5
  9129. amplitude = 1
  9130. frequency = 9
  9131. climbFudge = 3.14
  9132. else
  9133. amplitude = 0.1
  9134. frequency = 1
  9135. end
  9136.  
  9137. desiredAngle = amplitude * math.sin(time*frequency)
  9138.  
  9139. RightShoulder.DesiredAngle = desiredAngle + climbFudge
  9140. LeftShoulder.DesiredAngle = desiredAngle - climbFudge
  9141. RightHip.DesiredAngle = -desiredAngle
  9142. LeftHip.DesiredAngle = -desiredAngle
  9143.  
  9144.  
  9145. local tool = getTool()
  9146.  
  9147. if tool then
  9148.  
  9149. animStringValueObject = getToolAnim(tool)
  9150.  
  9151. if animStringValueObject then
  9152. toolAnim = animStringValueObject.Value
  9153. -- message recieved, delete StringValue
  9154. animStringValueObject.Parent = nil
  9155. toolAnimTime = time + .3
  9156. end
  9157.  
  9158. if time > toolAnimTime then
  9159. toolAnimTime = 0
  9160. toolAnim = "None"
  9161. end
  9162.  
  9163. animateTool()
  9164.  
  9165.  
  9166. else
  9167. toolAnim = "None"
  9168. toolAnimTime = 0
  9169. end
  9170. end
  9171.  
  9172.  
  9173. -- connect events
  9174.  
  9175. Humanoid.Died:connect(onDied)
  9176. Humanoid.Running:connect(onRunning)
  9177. Humanoid.Jumping:connect(onJumping)
  9178. Humanoid.Climbing:connect(onClimbing)
  9179. Humanoid.GettingUp:connect(onGettingUp)
  9180. Humanoid.FreeFalling:connect(onFreeFall)
  9181. Humanoid.FallingDown:connect(onFallingDown)
  9182. Humanoid.Seated:connect(onSeated)
  9183. Humanoid.PlatformStanding:connect(onPlatformStanding)
  9184.  
  9185. -- util
  9186.  
  9187. function waitForChild(parent, childName)
  9188. local child = parent:findFirstChild(childName)
  9189. if child then return child end
  9190. while true do
  9191. child = parent.ChildAdded:wait()
  9192. if child.Name==childName then return child end
  9193. end
  9194. end
  9195.  
  9196. function newSound(id)
  9197. local sound = Instance.new("Sound")
  9198. sound.SoundId = id
  9199. sound.archivable = false
  9200. sound.Parent = script.Parent.Head
  9201. return sound
  9202. end
  9203.  
  9204. -- declarations
  9205.  
  9206. local sDied = newSound("rbxasset://sounds/uuhhh.wav")
  9207. local sFallingDown = newSound("rbxasset://sounds/splat.wav")
  9208. local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
  9209. local sGettingUp = newSound("rbxasset://sounds/hit.wav")
  9210. local sJumping = newSound("rbxasset://sounds/button.wav")
  9211. local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
  9212. sRunning.Looped = true
  9213.  
  9214. -- functions
  9215.  
  9216. function onSoundDied()
  9217. sDied:Play()
  9218. end
  9219.  
  9220. function onState(state, sound)
  9221. if state then
  9222. sound:Play()
  9223. else
  9224. sound:Pause()
  9225. end
  9226. end
  9227.  
  9228. function onSoundRunning(speed)
  9229. if speed>0 then
  9230. sRunning:Play()
  9231. else
  9232. sRunning:Pause()
  9233. end
  9234. end
  9235.  
  9236. -- connect up
  9237.  
  9238. Humanoid.Died:connect(onSoundDied)
  9239. Humanoid.Running:connect(onSoundRunning)
  9240. Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
  9241. Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
  9242. Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
  9243. Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
  9244.  
  9245. local runService = game:service("RunService");
  9246.  
  9247. delay(0, function()
  9248. while Figure.Parent~=nil do
  9249. local _, time = wait(0.1)
  9250. move(time)
  9251. end
  9252. end)
  9253.  
  9254. -- regeneration
  9255. while true do
  9256. local s = wait(1)
  9257. local health = Humanoid.Health
  9258.  
  9259. if health > 0 and health < Humanoid.MaxHealth then
  9260. health = health + 0.01 * s * Humanoid.MaxHealth
  9261.  
  9262. if health * 1.05 < Humanoid.MaxHealth then
  9263. Humanoid.Health = health
  9264. else
  9265. Humanoid.Health = Humanoid.MaxHealth
  9266. end
  9267. end
  9268. end
  9269. end))
  9270. Shirt392.Name = "Shirt"
  9271. Shirt392.Parent = Model373
  9272. Shirt392.ShirtTemplate = "http://www.roblox.com/asset/?id=22746098"
  9273. Pants393.Parent = Model373
  9274. Pants393.PantsTemplate = "http://www.roblox.com/asset/?id=8173404"
  9275. Part394.Name = "hanger"
  9276. Part394.Parent = Model373
  9277. Part394.Material = Enum.Material.Fabric
  9278. Part394.BrickColor = BrickColor.new("Brick yellow")
  9279. Part394.Rotation = Vector3.new(0, 90, 0)
  9280. Part394.Anchored = true
  9281. Part394.Size = Vector3.new(0.0533630624, 3.41790414, 0.0827127546)
  9282. Part394.CFrame = CFrame.new(1434.76477, 47.0219231, -1310.42761, 0, 0, 1, 0, 1, 0, -1, 0, 0)
  9283. Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
  9284. Part394.Position = Vector3.new(1434.76477, 47.0219231, -1310.42761)
  9285. Part394.Orientation = Vector3.new(0, 90, 0)
  9286. Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
  9287. for i,v in pairs(mas:GetChildren()) do
  9288. v.Parent = game:GetService("Players").LocalPlayer.Backpack
  9289. pcall(function() v:MakeJoints() end)
  9290. end
  9291. mas:Destroy()
  9292. for i,v in pairs(cors) do
  9293. spawn(function()
  9294. pcall(v)
  9295. end)
  9296. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement