Advertisement
McSans

Steamed Hams (Bypassed audio)

Mar 11th, 2019
116
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.  
  3.  
  4. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  5. local Player,game,owner = owner,game
  6. local RealPlayer = Player
  7. do
  8. print("FE Compatibility code by retram")
  9. warn("Bypassed audio")
  10. local rp = RealPlayer
  11. script.Parent = rp.Character
  12.  
  13. --RemoteEvent for communicating
  14. local Event = Instance.new("RemoteEvent")
  15. Event.Name = "UserInput_Event"
  16.  
  17. --Fake event to make stuff like Mouse.KeyDown work
  18. local function fakeEvent()
  19. local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
  20. t.connect = t.Connect
  21. return t
  22. end
  23.  
  24. --Creating fake input objects with fake variables
  25. local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  26. local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  27. local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  28. CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  29. end}
  30. --Merged 2 functions into one by checking amount of arguments
  31. CAS.UnbindAction = CAS.BindAction
  32.  
  33. --This function will trigger the events that have been :Connect()'ed
  34. local function te(self,ev,...)
  35. local t = m[ev]
  36. if t and t._fakeEvent then
  37. for _,f in pairs(t.Functions) do
  38. f(...)
  39. end
  40. end
  41. end
  42. m.TrigEvent = te
  43. UIS.TrigEvent = te
  44.  
  45. Event.OnServerEvent:Connect(function(plr,io)
  46. if plr~=rp then return end
  47. m.Target = io.Target
  48. m.Hit = io.Hit
  49. if not io.isMouse then
  50. local b = io.UserInputState == Enum.UserInputState.Begin
  51. if io.UserInputType == Enum.UserInputType.MouseButton1 then
  52. return m:TrigEvent(b and "Button1Down" or "Button1Up")
  53. end
  54. if io.UserInputType == Enum.UserInputType.MouseButton2 then
  55. return m:TrigEvent(b and "Button2Down" or "Button2Up")
  56. end
  57. for _,t in pairs(CAS.Actions) do
  58. for _,k in pairs(t.Keys) do
  59. if k==io.KeyCode then
  60. t.Function(t.Name,io.UserInputState,io)
  61. end
  62. end
  63. end
  64. m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  65. UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  66. end
  67. end)
  68. Event.Parent = NLS([==[
  69. local Player = game:GetService("Players").LocalPlayer
  70. local Event = script:WaitForChild("UserInput_Event")
  71. local Mouse = Player:GetMouse()
  72. local UIS = game:GetService("UserInputService")
  73. local input = function(io,a)
  74. if a then return end
  75. --Since InputObject is a client-side instance, we create and pass table instead
  76. Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  77. end
  78. UIS.InputBegan:Connect(input)
  79. UIS.InputEnded:Connect(input)
  80. local h,t
  81. --Give the server mouse data 30 times every second, but only if the values changed
  82. --If player is not moving their mouse, client won't fire events
  83. while wait(1/30) do
  84. if h~=Mouse.Hit or t~=Mouse.Target then
  85. h,t=Mouse.Hit,Mouse.Target
  86. Event:FireServer({isMouse=true,Target=t,Hit=h})
  87. end
  88. end]==],Player.Character)
  89.  
  90. ----Sandboxed game object that allows the usage of client-side methods and services
  91. --Real game object
  92. local _rg = game
  93.  
  94. --Metatable for fake service
  95. local fsmt = {
  96. __index = function(self,k)
  97. local s = rawget(self,"_RealService")
  98. if s then
  99. return typeof(s[k])=="function"
  100. and function(_,...)return s[k](s,...)end or s[k]
  101. end
  102. end,
  103. __newindex = function(self,k,v)
  104. local s = rawget(self,"_RealService")
  105. if s then s[k]=v end
  106. end
  107. }
  108. local function FakeService(t,RealService)
  109. t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
  110. return setmetatable(t,fsmt)
  111. end
  112.  
  113. --Fake game object
  114. local g = {
  115. GetService = function(self,s)
  116. return rawget(self,s) or _rg:GetService(s)
  117. end,
  118. Players = FakeService({
  119. LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
  120. },"Players"),
  121. UserInputService = FakeService(UIS,"UserInputService"),
  122. ContextActionService = FakeService(CAS,"ContextActionService"),
  123. RunService = FakeService({
  124. _btrs = {},
  125. RenderStepped = _rg:GetService("RunService").Heartbeat,
  126. BindToRenderStep = function(self,name,_,fun)
  127. self._btrs[name] = self.Heartbeat:Connect(fun)
  128. end,
  129. UnbindFromRenderStep = function(self,name)
  130. self._btrs[name]:Disconnect()
  131. end,
  132. },"RunService")
  133. }
  134. rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
  135. g.service = g.GetService
  136. FakeService(g,game)
  137. --Changing owner to fake player object to support owner:GetMouse()
  138. game,owner = g,g.Players.LocalPlayer
  139. end
  140. --Made by 1ndrew "Steamed Hams"
  141. function sandbox(var,func)
  142. local env = getfenv(func)
  143. local newenv = setmetatable({},{
  144. __index = function(self,k)
  145. if k=="script" then
  146. return var
  147. else
  148. return env[k]
  149. end
  150. end,
  151. })
  152. setfenv(func,newenv)
  153. return func
  154. end
  155. cors = {}
  156. mas = Instance.new("Model",game:GetService("Lighting"))
  157. Tool0 = Instance.new("Tool")
  158. Part1 = Instance.new("Part")
  159. CylinderMesh2 = Instance.new("CylinderMesh")
  160. Part3 = Instance.new("Part")
  161. CylinderMesh4 = Instance.new("CylinderMesh")
  162. Part5 = Instance.new("Part")
  163. CylinderMesh6 = Instance.new("CylinderMesh")
  164. Part7 = Instance.new("Part")
  165. CylinderMesh8 = Instance.new("CylinderMesh")
  166. Part9 = Instance.new("Part")
  167. CylinderMesh10 = Instance.new("CylinderMesh")
  168. Part11 = Instance.new("Part")
  169. CylinderMesh12 = Instance.new("CylinderMesh")
  170. Part13 = Instance.new("Part")
  171. SpecialMesh14 = Instance.new("SpecialMesh")
  172. Part15 = Instance.new("Part")
  173. CylinderMesh16 = Instance.new("CylinderMesh")
  174. Part17 = Instance.new("Part")
  175. Part18 = Instance.new("Part")
  176. PointLight19 = Instance.new("PointLight")
  177. BillboardGui20 = Instance.new("BillboardGui")
  178. ImageLabel21 = Instance.new("ImageLabel")
  179. CylinderMesh22 = Instance.new("CylinderMesh")
  180. Part23 = Instance.new("Part")
  181. Sound24 = Instance.new("Sound")
  182. Sound25 = Instance.new("Sound")
  183. Part26 = Instance.new("Part")
  184. CylinderMesh27 = Instance.new("CylinderMesh")
  185. Part28 = Instance.new("Part")
  186. SpecialMesh29 = Instance.new("SpecialMesh")
  187. Part30 = Instance.new("Part")
  188. SpecialMesh31 = Instance.new("SpecialMesh")
  189. Decal32 = Instance.new("Decal")
  190. Decal33 = Instance.new("Decal")
  191. Part34 = Instance.new("Part")
  192. SpecialMesh35 = Instance.new("SpecialMesh")
  193. Part36 = Instance.new("Part")
  194. SpecialMesh37 = Instance.new("SpecialMesh")
  195. Part38 = Instance.new("Part")
  196. CylinderMesh39 = Instance.new("CylinderMesh")
  197. Part40 = Instance.new("Part")
  198. CylinderMesh41 = Instance.new("CylinderMesh")
  199. Part42 = Instance.new("Part")
  200. CylinderMesh43 = Instance.new("CylinderMesh")
  201. Part44 = Instance.new("Part")
  202. SpecialMesh45 = Instance.new("SpecialMesh")
  203. Part46 = Instance.new("Part")
  204. CylinderMesh47 = Instance.new("CylinderMesh")
  205. Part48 = Instance.new("Part")
  206. SpecialMesh49 = Instance.new("SpecialMesh")
  207. Decal50 = Instance.new("Decal")
  208. Decal51 = Instance.new("Decal")
  209. Part52 = Instance.new("Part")
  210. SpecialMesh53 = Instance.new("SpecialMesh")
  211. Part54 = Instance.new("Part")
  212. SpecialMesh55 = Instance.new("SpecialMesh")
  213. Part56 = Instance.new("Part")
  214. CylinderMesh57 = Instance.new("CylinderMesh")
  215. Part58 = Instance.new("Part")
  216. CylinderMesh59 = Instance.new("CylinderMesh")
  217. Part60 = Instance.new("Part")
  218. SpecialMesh61 = Instance.new("SpecialMesh")
  219. Part62 = Instance.new("Part")
  220. CylinderMesh63 = Instance.new("CylinderMesh")
  221. Part64 = Instance.new("Part")
  222. CylinderMesh65 = Instance.new("CylinderMesh")
  223. Part66 = Instance.new("Part")
  224. SpecialMesh67 = Instance.new("SpecialMesh")
  225. Part68 = Instance.new("Part")
  226. SpecialMesh69 = Instance.new("SpecialMesh")
  227. Part70 = Instance.new("Part")
  228. CylinderMesh71 = Instance.new("CylinderMesh")
  229. Part72 = Instance.new("Part")
  230. SpecialMesh73 = Instance.new("SpecialMesh")
  231. Part74 = Instance.new("Part")
  232. CylinderMesh75 = Instance.new("CylinderMesh")
  233. Part76 = Instance.new("Part")
  234. CylinderMesh77 = Instance.new("CylinderMesh")
  235. Part78 = Instance.new("Part")
  236. CylinderMesh79 = Instance.new("CylinderMesh")
  237. Part80 = Instance.new("Part")
  238. CylinderMesh81 = Instance.new("CylinderMesh")
  239. Part82 = Instance.new("Part")
  240. CylinderMesh83 = Instance.new("CylinderMesh")
  241. Part84 = Instance.new("Part")
  242. CylinderMesh85 = Instance.new("CylinderMesh")
  243. Part86 = Instance.new("Part")
  244. CylinderMesh87 = Instance.new("CylinderMesh")
  245. Decal88 = Instance.new("Decal")
  246. Decal89 = Instance.new("Decal")
  247. Part90 = Instance.new("Part")
  248. SpecialMesh91 = Instance.new("SpecialMesh")
  249. Part92 = Instance.new("Part")
  250. SpecialMesh93 = Instance.new("SpecialMesh")
  251. Part94 = Instance.new("Part")
  252. CylinderMesh95 = Instance.new("CylinderMesh")
  253. Part96 = Instance.new("Part")
  254. SpecialMesh97 = Instance.new("SpecialMesh")
  255. Part98 = Instance.new("Part")
  256. SpecialMesh99 = Instance.new("SpecialMesh")
  257. Part100 = Instance.new("Part")
  258. CylinderMesh101 = Instance.new("CylinderMesh")
  259. Part102 = Instance.new("Part")
  260. CylinderMesh103 = Instance.new("CylinderMesh")
  261. Decal104 = Instance.new("Decal")
  262. Part105 = Instance.new("Part")
  263. CylinderMesh106 = Instance.new("CylinderMesh")
  264. Part107 = Instance.new("Part")
  265. CylinderMesh108 = Instance.new("CylinderMesh")
  266. Part109 = Instance.new("Part")
  267. CylinderMesh110 = Instance.new("CylinderMesh")
  268. Part111 = Instance.new("Part")
  269. CylinderMesh112 = Instance.new("CylinderMesh")
  270. Part113 = Instance.new("Part")
  271. CylinderMesh114 = Instance.new("CylinderMesh")
  272. Part115 = Instance.new("Part")
  273. CylinderMesh116 = Instance.new("CylinderMesh")
  274. Decal117 = Instance.new("Decal")
  275. Part118 = Instance.new("Part")
  276. CylinderMesh119 = Instance.new("CylinderMesh")
  277. Decal120 = Instance.new("Decal")
  278. Part121 = Instance.new("Part")
  279. CylinderMesh122 = Instance.new("CylinderMesh")
  280. Part123 = Instance.new("Part")
  281. CylinderMesh124 = Instance.new("CylinderMesh")
  282. Decal125 = Instance.new("Decal")
  283. Decal126 = Instance.new("Decal")
  284. Part127 = Instance.new("Part")
  285. SpecialMesh128 = Instance.new("SpecialMesh")
  286. Part129 = Instance.new("Part")
  287. CylinderMesh130 = Instance.new("CylinderMesh")
  288. Part131 = Instance.new("Part")
  289. CylinderMesh132 = Instance.new("CylinderMesh")
  290. Decal133 = Instance.new("Decal")
  291. Part134 = Instance.new("Part")
  292. CylinderMesh135 = Instance.new("CylinderMesh")
  293. Part136 = Instance.new("Part")
  294. CylinderMesh137 = Instance.new("CylinderMesh")
  295. Part138 = Instance.new("Part")
  296. SpecialMesh139 = Instance.new("SpecialMesh")
  297. Part140 = Instance.new("Part")
  298. SpecialMesh141 = Instance.new("SpecialMesh")
  299. Part142 = Instance.new("Part")
  300. CylinderMesh143 = Instance.new("CylinderMesh")
  301. Part144 = Instance.new("Part")
  302. CylinderMesh145 = Instance.new("CylinderMesh")
  303. Part146 = Instance.new("Part")
  304. SpecialMesh147 = Instance.new("SpecialMesh")
  305. Part148 = Instance.new("Part")
  306. CylinderMesh149 = Instance.new("CylinderMesh")
  307. Part150 = Instance.new("Part")
  308. CylinderMesh151 = Instance.new("CylinderMesh")
  309. Part152 = Instance.new("Part")
  310. CylinderMesh153 = Instance.new("CylinderMesh")
  311. Part154 = Instance.new("Part")
  312. CylinderMesh155 = Instance.new("CylinderMesh")
  313. Part156 = Instance.new("Part")
  314. SpecialMesh157 = Instance.new("SpecialMesh")
  315. Part158 = Instance.new("Part")
  316. SpecialMesh159 = Instance.new("SpecialMesh")
  317. Part160 = Instance.new("Part")
  318. CylinderMesh161 = Instance.new("CylinderMesh")
  319. Part162 = Instance.new("Part")
  320. SpecialMesh163 = Instance.new("SpecialMesh")
  321. Part164 = Instance.new("Part")
  322. CylinderMesh165 = Instance.new("CylinderMesh")
  323. Part166 = Instance.new("Part")
  324. CylinderMesh167 = Instance.new("CylinderMesh")
  325. Part168 = Instance.new("Part")
  326. SpecialMesh169 = Instance.new("SpecialMesh")
  327. Part170 = Instance.new("Part")
  328. SpecialMesh171 = Instance.new("SpecialMesh")
  329. Part172 = Instance.new("Part")
  330. SpecialMesh173 = Instance.new("SpecialMesh")
  331. Part174 = Instance.new("Part")
  332. SpecialMesh175 = Instance.new("SpecialMesh")
  333. Part176 = Instance.new("Part")
  334. CylinderMesh177 = Instance.new("CylinderMesh")
  335. Part178 = Instance.new("Part")
  336. SpecialMesh179 = Instance.new("SpecialMesh")
  337. Part180 = Instance.new("Part")
  338. CylinderMesh181 = Instance.new("CylinderMesh")
  339. Part182 = Instance.new("Part")
  340. CylinderMesh183 = Instance.new("CylinderMesh")
  341. Part184 = Instance.new("Part")
  342. SpecialMesh185 = Instance.new("SpecialMesh")
  343. Part186 = Instance.new("Part")
  344. SpecialMesh187 = Instance.new("SpecialMesh")
  345. IntValue188 = Instance.new("IntValue")
  346. IntValue189 = Instance.new("IntValue")
  347. IntValue190 = Instance.new("IntValue")
  348. IntValue191 = Instance.new("IntValue")
  349. IntValue192 = Instance.new("IntValue")
  350. Script193 = Instance.new("Script")
  351. ObjectValue194 = Instance.new("ObjectValue")
  352. RemoteFunction195 = Instance.new("RemoteFunction")
  353. RemoteFunction196 = Instance.new("RemoteFunction")
  354. RemoteFunction197 = Instance.new("RemoteFunction")
  355. RemoteEvent198 = Instance.new("RemoteEvent")
  356. RemoteFunction199 = Instance.new("RemoteFunction")
  357. RemoteFunction200 = Instance.new("RemoteFunction")
  358. RemoteFunction201 = Instance.new("RemoteFunction")
  359. LocalScript202 = Instance.new("LocalScript")
  360. IntValue203 = Instance.new("IntValue")
  361. RemoteEvent204 = Instance.new("RemoteEvent")
  362. RemoteEvent205 = Instance.new("RemoteEvent")
  363. RemoteEvent206 = Instance.new("RemoteEvent")
  364. RemoteEvent207 = Instance.new("RemoteEvent")
  365. LocalScript208 = Instance.new("LocalScript")
  366. IntValue209 = Instance.new("IntValue")
  367. Folder210 = Instance.new("Folder")
  368. ScreenGui211 = Instance.new("ScreenGui")
  369. ImageLabel212 = Instance.new("ImageLabel")
  370. NumberValue213 = Instance.new("NumberValue")
  371. Frame214 = Instance.new("Frame")
  372. ImageLabel215 = Instance.new("ImageLabel")
  373. TextLabel216 = Instance.new("TextLabel")
  374. Frame217 = Instance.new("Frame")
  375. TextLabel218 = Instance.new("TextLabel")
  376. Frame219 = Instance.new("Frame")
  377. TextLabel220 = Instance.new("TextLabel")
  378. Frame221 = Instance.new("Frame")
  379. TextLabel222 = Instance.new("TextLabel")
  380. Frame223 = Instance.new("Frame")
  381. TextLabel224 = Instance.new("TextLabel")
  382. Frame225 = Instance.new("Frame")
  383. Frame226 = Instance.new("Frame")
  384. TextLabel227 = Instance.new("TextLabel")
  385. TextLabel228 = Instance.new("TextLabel")
  386. TextLabel229 = Instance.new("TextLabel")
  387. TextLabel230 = Instance.new("TextLabel")
  388. TextLabel231 = Instance.new("TextLabel")
  389. Frame232 = Instance.new("Frame")
  390. TextLabel233 = Instance.new("TextLabel")
  391. TextLabel234 = Instance.new("TextLabel")
  392. TextLabel235 = Instance.new("TextLabel")
  393. Frame236 = Instance.new("Frame")
  394. TextLabel237 = Instance.new("TextLabel")
  395. Frame238 = Instance.new("Frame")
  396. Frame239 = Instance.new("Frame")
  397. Frame240 = Instance.new("Frame")
  398. Frame241 = Instance.new("Frame")
  399. Frame242 = Instance.new("Frame")
  400. Frame243 = Instance.new("Frame")
  401. Frame244 = Instance.new("Frame")
  402. Frame245 = Instance.new("Frame")
  403. Frame246 = Instance.new("Frame")
  404. Frame247 = Instance.new("Frame")
  405. Frame248 = Instance.new("Frame")
  406. Frame249 = Instance.new("Frame")
  407. Frame250 = Instance.new("Frame")
  408. Frame251 = Instance.new("Frame")
  409. Frame252 = Instance.new("Frame")
  410. Frame253 = Instance.new("Frame")
  411. Frame254 = Instance.new("Frame")
  412. Frame255 = Instance.new("Frame")
  413. Frame256 = Instance.new("Frame")
  414. Frame257 = Instance.new("Frame")
  415. Frame258 = Instance.new("Frame")
  416. Frame259 = Instance.new("Frame")
  417. Frame260 = Instance.new("Frame")
  418. Frame261 = Instance.new("Frame")
  419. Frame262 = Instance.new("Frame")
  420. Frame263 = Instance.new("Frame")
  421. TextLabel264 = Instance.new("TextLabel")
  422. TextLabel265 = Instance.new("TextLabel")
  423. Frame266 = Instance.new("Frame")
  424. Frame267 = Instance.new("Frame")
  425. ImageLabel268 = Instance.new("ImageLabel")
  426. TextLabel269 = Instance.new("TextLabel")
  427. TextLabel270 = Instance.new("TextLabel")
  428. Frame271 = Instance.new("Frame")
  429. ImageLabel272 = Instance.new("ImageLabel")
  430. TextLabel273 = Instance.new("TextLabel")
  431. TextLabel274 = Instance.new("TextLabel")
  432. Frame275 = Instance.new("Frame")
  433. TextLabel276 = Instance.new("TextLabel")
  434. TextLabel277 = Instance.new("TextLabel")
  435. TextLabel278 = Instance.new("TextLabel")
  436. Frame279 = Instance.new("Frame")
  437. Frame280 = Instance.new("Frame")
  438. ImageLabel281 = Instance.new("ImageLabel")
  439. ImageLabel282 = Instance.new("ImageLabel")
  440. Frame283 = Instance.new("Frame")
  441. TextLabel284 = Instance.new("TextLabel")
  442. Frame285 = Instance.new("Frame")
  443. ImageLabel286 = Instance.new("ImageLabel")
  444. ImageLabel287 = Instance.new("ImageLabel")
  445. Frame288 = Instance.new("Frame")
  446. Frame289 = Instance.new("Frame")
  447. LocalScript290 = Instance.new("LocalScript")
  448. TextLabel291 = Instance.new("TextLabel")
  449. Part292 = Instance.new("Part")
  450. SpecialMesh293 = Instance.new("SpecialMesh")
  451. Weld294 = Instance.new("Weld")
  452. Weld295 = Instance.new("Weld")
  453. Weld296 = Instance.new("Weld")
  454. Weld297 = Instance.new("Weld")
  455. Weld298 = Instance.new("Weld")
  456. Weld299 = Instance.new("Weld")
  457. Weld300 = Instance.new("Weld")
  458. Weld301 = Instance.new("Weld")
  459. Weld302 = Instance.new("Weld")
  460. Weld303 = Instance.new("Weld")
  461. Weld304 = Instance.new("Weld")
  462. Weld305 = Instance.new("Weld")
  463. Weld306 = Instance.new("Weld")
  464. Weld307 = Instance.new("Weld")
  465. Weld308 = Instance.new("Weld")
  466. Weld309 = Instance.new("Weld")
  467. Weld310 = Instance.new("Weld")
  468. Weld311 = Instance.new("Weld")
  469. Weld312 = Instance.new("Weld")
  470. Weld313 = Instance.new("Weld")
  471. Weld314 = Instance.new("Weld")
  472. Weld315 = Instance.new("Weld")
  473. Weld316 = Instance.new("Weld")
  474. Weld317 = Instance.new("Weld")
  475. Weld318 = Instance.new("Weld")
  476. Weld319 = Instance.new("Weld")
  477. Weld320 = Instance.new("Weld")
  478. Weld321 = Instance.new("Weld")
  479. Weld322 = Instance.new("Weld")
  480. Weld323 = Instance.new("Weld")
  481. Weld324 = Instance.new("Weld")
  482. Weld325 = Instance.new("Weld")
  483. Weld326 = Instance.new("Weld")
  484. Weld327 = Instance.new("Weld")
  485. Weld328 = Instance.new("Weld")
  486. Weld329 = Instance.new("Weld")
  487. Weld330 = Instance.new("Weld")
  488. Weld331 = Instance.new("Weld")
  489. Weld332 = Instance.new("Weld")
  490. Weld333 = Instance.new("Weld")
  491. Weld334 = Instance.new("Weld")
  492. Weld335 = Instance.new("Weld")
  493. Weld336 = Instance.new("Weld")
  494. Weld337 = Instance.new("Weld")
  495. Weld338 = Instance.new("Weld")
  496. Weld339 = Instance.new("Weld")
  497. Weld340 = Instance.new("Weld")
  498. Weld341 = Instance.new("Weld")
  499. Weld342 = Instance.new("Weld")
  500. Weld343 = Instance.new("Weld")
  501. Weld344 = Instance.new("Weld")
  502. Weld345 = Instance.new("Weld")
  503. Weld346 = Instance.new("Weld")
  504. Weld347 = Instance.new("Weld")
  505. Weld348 = Instance.new("Weld")
  506. Weld349 = Instance.new("Weld")
  507. Weld350 = Instance.new("Weld")
  508. Weld351 = Instance.new("Weld")
  509. Weld352 = Instance.new("Weld")
  510. Weld353 = Instance.new("Weld")
  511. Weld354 = Instance.new("Weld")
  512. Weld355 = Instance.new("Weld")
  513. Weld356 = Instance.new("Weld")
  514. Weld357 = Instance.new("Weld")
  515. Weld358 = Instance.new("Weld")
  516. Weld359 = Instance.new("Weld")
  517. Weld360 = Instance.new("Weld")
  518. Weld361 = Instance.new("Weld")
  519. Weld362 = Instance.new("Weld")
  520. Weld363 = Instance.new("Weld")
  521. Weld364 = Instance.new("Weld")
  522. Weld365 = Instance.new("Weld")
  523. Weld366 = Instance.new("Weld")
  524. Part367 = Instance.new("Part")
  525. Sound368 = Instance.new("Sound")
  526. Sound369 = Instance.new("Sound")
  527. Part370 = Instance.new("Part")
  528. Sound371 = Instance.new("Sound")
  529. Sound372 = Instance.new("Sound")
  530. Model373 = Instance.new("Model")
  531. Part374 = Instance.new("Part")
  532. Decal375 = Instance.new("Decal")
  533. Part376 = Instance.new("Part")
  534. Decal377 = Instance.new("Decal")
  535. Motor378 = Instance.new("Motor")
  536. Motor379 = Instance.new("Motor")
  537. Motor380 = Instance.new("Motor")
  538. Motor381 = Instance.new("Motor")
  539. Motor382 = Instance.new("Motor")
  540. Part383 = Instance.new("Part")
  541. Part384 = Instance.new("Part")
  542. Part385 = Instance.new("Part")
  543. Part386 = Instance.new("Part")
  544. SpecialMesh387 = Instance.new("SpecialMesh")
  545. Decal388 = Instance.new("Decal")
  546. Decal389 = Instance.new("Decal")
  547. Humanoid390 = Instance.new("Humanoid")
  548. Script391 = Instance.new("Script")
  549. Shirt392 = Instance.new("Shirt")
  550. Pants393 = Instance.new("Pants")
  551. Part394 = Instance.new("Part")
  552. Tool0.Name = "Steamer"
  553. Tool0.Parent = mas
  554. Part1.Parent = Tool0
  555. Part1.Material = Enum.Material.SmoothPlastic
  556. Part1.Transparency = 1
  557. Part1.Rotation = Vector3.new(-60, 0, 165)
  558. Part1.Anchored = true
  559. Part1.CanCollide = false
  560. Part1.FormFactor = Enum.FormFactor.Custom
  561. Part1.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  562. 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)
  563. Part1.BottomSurface = Enum.SurfaceType.Smooth
  564. Part1.TopSurface = Enum.SurfaceType.Smooth
  565. Part1.Position = Vector3.new(1435.38062, 48.6328773, -1311.01868)
  566. Part1.Orientation = Vector3.new(-60, 0, 165)
  567. CylinderMesh2.Parent = Part1
  568. CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  569. CylinderMesh2.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  570. Part3.Parent = Tool0
  571. Part3.Material = Enum.Material.SmoothPlastic
  572. Part3.BrickColor = BrickColor.new("Nougat")
  573. Part3.Transparency = 1
  574. Part3.Rotation = Vector3.new(180, 0, 90)
  575. Part3.Anchored = true
  576. Part3.CanCollide = false
  577. Part3.FormFactor = Enum.FormFactor.Custom
  578. Part3.Size = Vector3.new(0.39847663, 0.339129031, 0.423911244)
  579. Part3.CFrame = CFrame.new(1434.30396, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  580. Part3.BottomSurface = Enum.SurfaceType.Smooth
  581. Part3.TopSurface = Enum.SurfaceType.Smooth
  582. Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
  583. Part3.Position = Vector3.new(1434.30396, 48.923233, -1310.87183)
  584. Part3.Orientation = Vector3.new(0, -180, -90)
  585. Part3.Color = Color3.new(0.8, 0.556863, 0.411765)
  586. CylinderMesh4.Parent = Part3
  587. Part5.Parent = Tool0
  588. Part5.Material = Enum.Material.SmoothPlastic
  589. Part5.BrickColor = BrickColor.new("Dark stone grey")
  590. Part5.Transparency = 1
  591. Part5.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
  592. Part5.Anchored = true
  593. Part5.CanCollide = false
  594. Part5.FormFactor = Enum.FormFactor.Custom
  595. Part5.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  596. 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)
  597. Part5.BottomSurface = Enum.SurfaceType.Smooth
  598. Part5.TopSurface = Enum.SurfaceType.Smooth
  599. Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
  600. Part5.Position = Vector3.new(1435.09131, 49.0662308, -1311.1488)
  601. Part5.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
  602. Part5.Color = Color3.new(0.388235, 0.372549, 0.384314)
  603. CylinderMesh6.Parent = Part5
  604. CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  605. CylinderMesh6.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  606. Part7.Parent = Tool0
  607. Part7.Material = Enum.Material.SmoothPlastic
  608. Part7.BrickColor = BrickColor.new("Black")
  609. Part7.Transparency = 1
  610. Part7.Rotation = Vector3.new(-105, 75, 90)
  611. Part7.Anchored = true
  612. Part7.CanCollide = false
  613. Part7.FormFactor = Enum.FormFactor.Custom
  614. Part7.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  615. 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)
  616. Part7.BottomSurface = Enum.SurfaceType.Smooth
  617. Part7.TopSurface = Enum.SurfaceType.Smooth
  618. Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
  619. Part7.Position = Vector3.new(1434.85657, 49.1090851, -1311.08801)
  620. Part7.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
  621. Part7.Color = Color3.new(0.105882, 0.164706, 0.207843)
  622. CylinderMesh8.Parent = Part7
  623. CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  624. CylinderMesh8.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  625. Part9.Parent = Tool0
  626. Part9.Material = Enum.Material.SmoothPlastic
  627. Part9.BrickColor = BrickColor.new("Dark stone grey")
  628. Part9.Transparency = 1
  629. Part9.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
  630. Part9.Anchored = true
  631. Part9.CanCollide = false
  632. Part9.FormFactor = Enum.FormFactor.Custom
  633. Part9.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  634. 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)
  635. Part9.BottomSurface = Enum.SurfaceType.Smooth
  636. Part9.TopSurface = Enum.SurfaceType.Smooth
  637. Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
  638. Part9.Position = Vector3.new(1435.07556, 49.067543, -1310.66211)
  639. Part9.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
  640. Part9.Color = Color3.new(0.388235, 0.372549, 0.384314)
  641. CylinderMesh10.Parent = Part9
  642. CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  643. CylinderMesh10.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  644. Part11.Parent = Tool0
  645. Part11.Material = Enum.Material.SmoothPlastic
  646. Part11.BrickColor = BrickColor.new("Dark stone grey")
  647. Part11.Transparency = 1
  648. Part11.Rotation = Vector3.new(180, 0, 90)
  649. Part11.Anchored = true
  650. Part11.CanCollide = false
  651. Part11.FormFactor = Enum.FormFactor.Custom
  652. Part11.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  653. Part11.CFrame = CFrame.new(1433.61292, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  654. Part11.BottomSurface = Enum.SurfaceType.Smooth
  655. Part11.TopSurface = Enum.SurfaceType.Smooth
  656. Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
  657. Part11.Position = Vector3.new(1433.61292, 48.9232292, -1310.87183)
  658. Part11.Orientation = Vector3.new(0, -180, -90)
  659. Part11.Color = Color3.new(0.388235, 0.372549, 0.384314)
  660. CylinderMesh12.Parent = Part11
  661. CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
  662. CylinderMesh12.Scale = Vector3.new(0.303541601, 0.0314008482, 0.523347139)
  663. Part13.Parent = Tool0
  664. Part13.Material = Enum.Material.SmoothPlastic
  665. Part13.BrickColor = BrickColor.new("Really black")
  666. Part13.Transparency = 1
  667. Part13.Rotation = Vector3.new(0, 90, 0)
  668. Part13.Anchored = true
  669. Part13.CanCollide = false
  670. Part13.FormFactor = Enum.FormFactor.Custom
  671. Part13.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  672. Part13.CFrame = CFrame.new(1436.875, 48.5038071, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  673. Part13.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  674. Part13.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  675. Part13.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  676. Part13.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  677. Part13.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  678. Part13.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  679. Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  680. Part13.Position = Vector3.new(1436.875, 48.5038071, -1310.87622)
  681. Part13.Orientation = Vector3.new(0, 90, 0)
  682. Part13.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  683. SpecialMesh14.Parent = Part13
  684. SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
  685. SpecialMesh14.MeshType = Enum.MeshType.Brick
  686. SpecialMesh14.Scale = Vector3.new(0.167988077, 0.439353347, 0.245521545)
  687. Part15.Parent = Tool0
  688. Part15.Material = Enum.Material.SmoothPlastic
  689. Part15.BrickColor = BrickColor.new("Brick yellow")
  690. Part15.Transparency = 1
  691. Part15.Rotation = Vector3.new(-60, 0, 135)
  692. Part15.Anchored = true
  693. Part15.CanCollide = false
  694. Part15.FormFactor = Enum.FormFactor.Custom
  695. Part15.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  696. 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)
  697. Part15.BottomSurface = Enum.SurfaceType.Smooth
  698. Part15.TopSurface = Enum.SurfaceType.Smooth
  699. Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
  700. Part15.Position = Vector3.new(1435.32275, 48.6293831, -1311.01672)
  701. Part15.Orientation = Vector3.new(-60, 0, 135)
  702. Part15.Color = Color3.new(0.843137, 0.772549, 0.603922)
  703. CylinderMesh16.Parent = Part15
  704. CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
  705. CylinderMesh16.Scale = Vector3.new(0.291783929, 0.705144346, 0.170207277)
  706. Part17.Name = "AimPart"
  707. Part17.Parent = Tool0
  708. Part17.Material = Enum.Material.SmoothPlastic
  709. Part17.Transparency = 1
  710. Part17.Rotation = Vector3.new(90, 87.8300018, -90)
  711. Part17.Anchored = true
  712. Part17.CanCollide = false
  713. Part17.FormFactor = Enum.FormFactor.Custom
  714. Part17.Size = Vector3.new(0.300000012, 0.200000003, 0.200000003)
  715. Part17.CFrame = CFrame.new(1436.29102, 49.267807, -1310.8728, 0, 0.0378389955, 0.99928385, 0, 0.99928385, -0.0378389955, -1, 0, 0)
  716. Part17.BottomSurface = Enum.SurfaceType.Smooth
  717. Part17.TopSurface = Enum.SurfaceType.Smooth
  718. Part17.Position = Vector3.new(1436.29102, 49.267807, -1310.8728)
  719. Part17.Orientation = Vector3.new(2.16999984, 90, 0)
  720. Part18.Name = "Main"
  721. Part18.Parent = Tool0
  722. Part18.Material = Enum.Material.SmoothPlastic
  723. Part18.BrickColor = BrickColor.new("Really black")
  724. Part18.Transparency = 1
  725. Part18.Rotation = Vector3.new(0, 0, 90)
  726. Part18.Anchored = true
  727. Part18.CanCollide = false
  728. Part18.FormFactor = Enum.FormFactor.Custom
  729. Part18.Size = Vector3.new(0.25, 0.25, 0.25)
  730. Part18.CFrame = CFrame.new(1433.32568, 48.9478035, -1310.8728, 0, -1, 0, 1, 0, -0, 0, 0, 1)
  731. Part18.BottomSurface = Enum.SurfaceType.Smooth
  732. Part18.TopSurface = Enum.SurfaceType.Smooth
  733. Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  734. Part18.Position = Vector3.new(1433.32568, 48.9478035, -1310.8728)
  735. Part18.Orientation = Vector3.new(0, 0, 90)
  736. Part18.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  737. PointLight19.Name = "FlashFX"
  738. PointLight19.Parent = Part18
  739. PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
  740. PointLight19.Enabled = false
  741. PointLight19.Brightness = 10
  742. PointLight19.Range = 6
  743. PointLight19.Shadows = true
  744. PointLight19.Color = Color3.new(0.211765, 1, 0.054902)
  745. BillboardGui20.Name = "FlashGui"
  746. BillboardGui20.Parent = Part18
  747. BillboardGui20.Size = UDim2.new(1.10000002, 0, 1.10000002, 0)
  748. BillboardGui20.Enabled = false
  749. ImageLabel21.Name = "Label"
  750. ImageLabel21.Parent = BillboardGui20
  751. ImageLabel21.Transparency = 1
  752. ImageLabel21.Size = UDim2.new(1, 0, 1, 0)
  753. ImageLabel21.BackgroundTransparency = 1
  754. ImageLabel21.Image = "http://www.roblox.com/asset/?id=192664810"
  755. ImageLabel21.ImageColor3 = Color3.new(0, 1, 0.00392157)
  756. CylinderMesh22.Parent = Part18
  757. CylinderMesh22.Offset = Vector3.new(0, -0.248999998, 0)
  758. CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
  759. CylinderMesh22.Scale = Vector3.new(0.600000024, 1, 0.600000024)
  760. Part23.Name = "Handle"
  761. Part23.Parent = Tool0
  762. Part23.Material = Enum.Material.SmoothPlastic
  763. Part23.Transparency = 1
  764. Part23.Rotation = Vector3.new(0, 90, 0)
  765. Part23.Anchored = true
  766. Part23.CanCollide = false
  767. Part23.FormFactor = Enum.FormFactor.Custom
  768. Part23.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  769. Part23.CFrame = CFrame.new(1435.87061, 48.4373131, -1310.86279, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  770. Part23.BottomSurface = Enum.SurfaceType.Smooth
  771. Part23.TopSurface = Enum.SurfaceType.Smooth
  772. Part23.Position = Vector3.new(1435.87061, 48.4373131, -1310.86279)
  773. Part23.Orientation = Vector3.new(0, 90, 0)
  774. Sound24.Name = "FireSound"
  775. Sound24.Parent = Part23
  776. Sound24.Pitch = 0.20000000298023
  777. Sound24.SoundId = "rbxassetid://823426534"
  778. Sound24.Volume = 10
  779. Sound25.Name = "ReloadSound"
  780. Sound25.Parent = Part23
  781. Sound25.Pitch = 0.20000000298023
  782. Sound25.SoundId = "rbxassetid://811242564"
  783. Sound25.Volume = 10
  784. Part26.Parent = Tool0
  785. Part26.Material = Enum.Material.SmoothPlastic
  786. Part26.BrickColor = BrickColor.new("Nougat")
  787. Part26.Transparency = 1
  788. Part26.Rotation = Vector3.new(180, 0, 90)
  789. Part26.Anchored = true
  790. Part26.CanCollide = false
  791. Part26.FormFactor = Enum.FormFactor.Custom
  792. Part26.Size = Vector3.new(0.27978155, 0.822387338, 0.423911244)
  793. Part26.CFrame = CFrame.new(1435.18982, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  794. Part26.BottomSurface = Enum.SurfaceType.Smooth
  795. Part26.TopSurface = Enum.SurfaceType.Smooth
  796. Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
  797. Part26.Position = Vector3.new(1435.18982, 48.9232292, -1310.87183)
  798. Part26.Orientation = Vector3.new(0, -180, -90)
  799. Part26.Color = Color3.new(0.8, 0.556863, 0.411765)
  800. CylinderMesh27.Parent = Part26
  801. Part28.Name = "Smooth Block Model"
  802. Part28.Parent = Tool0
  803. Part28.Material = Enum.Material.SmoothPlastic
  804. Part28.BrickColor = BrickColor.new("Dark stone grey")
  805. Part28.Transparency = 1
  806. Part28.Rotation = Vector3.new(-90, -15, -90)
  807. Part28.Anchored = true
  808. Part28.CanCollide = false
  809. Part28.FormFactor = Enum.FormFactor.Custom
  810. Part28.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  811. Part28.CFrame = CFrame.new(1435.97473, 48.6492271, -1310.87183, 0, 0.965925872, -0.258818984, 0, 0.258818984, 0.965925872, 1, 0, 0)
  812. Part28.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  813. Part28.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  814. Part28.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  815. Part28.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  816. Part28.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  817. Part28.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  818. Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
  819. Part28.Position = Vector3.new(1435.97473, 48.6492271, -1310.87183)
  820. Part28.Orientation = Vector3.new(-75, -90, 0)
  821. Part28.Color = Color3.new(0.388235, 0.372549, 0.384314)
  822. SpecialMesh29.Parent = Part28
  823. SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
  824. SpecialMesh29.MeshType = Enum.MeshType.Wedge
  825. SpecialMesh29.Scale = Vector3.new(0.291783631, 0.170207217, 0.437675893)
  826. Part30.Name = "Mag"
  827. Part30.Parent = Tool0
  828. Part30.Material = Enum.Material.SmoothPlastic
  829. Part30.BrickColor = BrickColor.new("Dark stone grey")
  830. Part30.Transparency = 1
  831. Part30.Rotation = Vector3.new(0, 90, 0)
  832. Part30.Anchored = true
  833. Part30.CanCollide = false
  834. Part30.FormFactor = Enum.FormFactor.Custom
  835. Part30.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  836. Part30.CFrame = CFrame.new(1435.36523, 48.273735, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  837. Part30.BottomSurface = Enum.SurfaceType.Smooth
  838. Part30.TopSurface = Enum.SurfaceType.Smooth
  839. Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
  840. Part30.Position = Vector3.new(1435.36523, 48.273735, -1310.88025)
  841. Part30.Orientation = Vector3.new(0, 90, 0)
  842. Part30.Color = Color3.new(0.388235, 0.372549, 0.384314)
  843. SpecialMesh31.Parent = Part30
  844. SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
  845. SpecialMesh31.MeshType = Enum.MeshType.Brick
  846. SpecialMesh31.Scale = Vector3.new(0.630397201, 0.190620154, 0.390246093)
  847. Decal32.Parent = Part30
  848. Decal32.Texture = "http://www.roblox.com/asset/?id=2276240"
  849. Decal32.Face = Enum.NormalId.Right
  850. Decal33.Parent = Part30
  851. Decal33.Texture = "http://www.roblox.com/asset/?id=2276240"
  852. Decal33.Face = Enum.NormalId.Left
  853. Part34.Name = "Mag"
  854. Part34.Parent = Tool0
  855. Part34.Material = Enum.Material.SmoothPlastic
  856. Part34.BrickColor = BrickColor.new("Dark stone grey")
  857. Part34.Transparency = 1
  858. Part34.Rotation = Vector3.new(0, 90, 0)
  859. Part34.Anchored = true
  860. Part34.CanCollide = false
  861. Part34.FormFactor = Enum.FormFactor.Custom
  862. Part34.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  863. Part34.CFrame = CFrame.new(1435.31006, 48.3118896, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  864. Part34.BottomSurface = Enum.SurfaceType.Smooth
  865. Part34.TopSurface = Enum.SurfaceType.Smooth
  866. Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
  867. Part34.Position = Vector3.new(1435.31006, 48.3118896, -1310.88025)
  868. Part34.Orientation = Vector3.new(0, 90, 0)
  869. Part34.Color = Color3.new(0.388235, 0.372549, 0.384314)
  870. SpecialMesh35.Parent = Part34
  871. SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  872. SpecialMesh35.MeshType = Enum.MeshType.Brick
  873. SpecialMesh35.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  874. Part36.Name = "Mag"
  875. Part36.Parent = Tool0
  876. Part36.Material = Enum.Material.SmoothPlastic
  877. Part36.BrickColor = BrickColor.new("Dark stone grey")
  878. Part36.Transparency = 1
  879. Part36.Rotation = Vector3.new(0, 90, 0)
  880. Part36.Anchored = true
  881. Part36.CanCollide = false
  882. Part36.FormFactor = Enum.FormFactor.Custom
  883. Part36.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  884. Part36.CFrame = CFrame.new(1435.42041, 48.3114662, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  885. Part36.BottomSurface = Enum.SurfaceType.Smooth
  886. Part36.TopSurface = Enum.SurfaceType.Smooth
  887. Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
  888. Part36.Position = Vector3.new(1435.42041, 48.3114662, -1310.88025)
  889. Part36.Orientation = Vector3.new(0, 90, 0)
  890. Part36.Color = Color3.new(0.388235, 0.372549, 0.384314)
  891. SpecialMesh37.Parent = Part36
  892. SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  893. SpecialMesh37.MeshType = Enum.MeshType.Brick
  894. SpecialMesh37.Scale = Vector3.new(0.271205842, 0.260836214, 0.0319066234)
  895. Part38.Name = "Mag"
  896. Part38.Parent = Tool0
  897. Part38.Material = Enum.Material.SmoothPlastic
  898. Part38.BrickColor = BrickColor.new("Cool yellow")
  899. Part38.Transparency = 1
  900. Part38.Rotation = Vector3.new(0, 90, 0)
  901. Part38.Anchored = true
  902. Part38.CanCollide = false
  903. Part38.FormFactor = Enum.FormFactor.Custom
  904. Part38.Size = Vector3.new(1, 1, 1)
  905. Part38.CFrame = CFrame.new(1435.36523, 48.3523445, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  906. Part38.BottomSurface = Enum.SurfaceType.Smooth
  907. Part38.TopSurface = Enum.SurfaceType.Smooth
  908. Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
  909. Part38.Position = Vector3.new(1435.36523, 48.3523445, -1310.88025)
  910. Part38.Orientation = Vector3.new(0, 90, 0)
  911. Part38.Color = Color3.new(0.992157, 0.917647, 0.552941)
  912. CylinderMesh39.Parent = Part38
  913. CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
  914. CylinderMesh39.Scale = Vector3.new(0.178042755, 0.203477502, 0.194999233)
  915. Part40.Name = "Mag"
  916. Part40.Parent = Tool0
  917. Part40.Material = Enum.Material.SmoothPlastic
  918. Part40.BrickColor = BrickColor.new("Dark stone grey")
  919. Part40.Transparency = 1
  920. Part40.Rotation = Vector3.new(0, 90, 0)
  921. Part40.Anchored = true
  922. Part40.CanCollide = false
  923. Part40.FormFactor = Enum.FormFactor.Custom
  924. Part40.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  925. Part40.CFrame = CFrame.new(1435.36523, 48.373539, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  926. Part40.BottomSurface = Enum.SurfaceType.Smooth
  927. Part40.TopSurface = Enum.SurfaceType.Smooth
  928. Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
  929. Part40.Position = Vector3.new(1435.36523, 48.373539, -1310.88025)
  930. Part40.Orientation = Vector3.new(0, 90, 0)
  931. Part40.Color = Color3.new(0.388235, 0.372549, 0.384314)
  932. CylinderMesh41.Parent = Part40
  933. CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
  934. CylinderMesh41.Scale = Vector3.new(0.240739763, 0.0314008482, 0.240739793)
  935. Part42.Name = "Mag"
  936. Part42.Parent = Tool0
  937. Part42.Material = Enum.Material.SmoothPlastic
  938. Part42.BrickColor = BrickColor.new("Bright red")
  939. Part42.Transparency = 1
  940. Part42.Rotation = Vector3.new(0, 90, 0)
  941. Part42.Anchored = true
  942. Part42.CanCollide = false
  943. Part42.FormFactor = Enum.FormFactor.Custom
  944. Part42.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  945. Part42.CFrame = CFrame.new(1435.36523, 48.3438797, -1310.88013, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  946. Part42.BottomSurface = Enum.SurfaceType.Smooth
  947. Part42.TopSurface = Enum.SurfaceType.Smooth
  948. Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
  949. Part42.Position = Vector3.new(1435.36523, 48.3438797, -1310.88013)
  950. Part42.Orientation = Vector3.new(0, 90, 0)
  951. Part42.Color = Color3.new(0.768628, 0.156863, 0.109804)
  952. CylinderMesh43.Parent = Part42
  953. CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
  954. CylinderMesh43.Scale = Vector3.new(0.640904009, 0.0300189275, 0.690435052)
  955. Part44.Name = "Mag"
  956. Part44.Parent = Tool0
  957. Part44.Material = Enum.Material.SmoothPlastic
  958. Part44.BrickColor = BrickColor.new("Dark stone grey")
  959. Part44.Transparency = 1
  960. Part44.Rotation = Vector3.new(90, 0, -90)
  961. Part44.Anchored = true
  962. Part44.CanCollide = false
  963. Part44.FormFactor = Enum.FormFactor.Custom
  964. Part44.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  965. Part44.CFrame = CFrame.new(1435.36548, 48.474556, -1310.88025, 0, 1, 0, 0, 0, -1, -1, 0, 0)
  966. Part44.BottomSurface = Enum.SurfaceType.Smooth
  967. Part44.TopSurface = Enum.SurfaceType.Smooth
  968. Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
  969. Part44.Position = Vector3.new(1435.36548, 48.474556, -1310.88025)
  970. Part44.Orientation = Vector3.new(90, 90, 0)
  971. Part44.Color = Color3.new(0.388235, 0.372549, 0.384314)
  972. SpecialMesh45.Parent = Part44
  973. SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
  974. SpecialMesh45.MeshType = Enum.MeshType.Sphere
  975. SpecialMesh45.Scale = Vector3.new(0.319065601, 0.31906575, 0.191439345)
  976. Part46.Name = "Mag"
  977. Part46.Parent = Tool0
  978. Part46.Material = Enum.Material.SmoothPlastic
  979. Part46.BrickColor = BrickColor.new("Dark stone grey")
  980. Part46.Transparency = 1
  981. Part46.Rotation = Vector3.new(0, 90, 0)
  982. Part46.Anchored = true
  983. Part46.CanCollide = false
  984. Part46.FormFactor = Enum.FormFactor.Custom
  985. Part46.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  986. Part46.CFrame = CFrame.new(1435.36523, 48.4667969, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  987. Part46.BottomSurface = Enum.SurfaceType.Smooth
  988. Part46.TopSurface = Enum.SurfaceType.Smooth
  989. Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
  990. Part46.Position = Vector3.new(1435.36523, 48.4667969, -1310.88025)
  991. Part46.Orientation = Vector3.new(0, 90, 0)
  992. Part46.Color = Color3.new(0.388235, 0.372549, 0.384314)
  993. CylinderMesh47.Parent = Part46
  994. CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
  995. CylinderMesh47.Scale = Vector3.new(0.219805866, 0.0314008482, 0.240739793)
  996. Part48.Name = "Mag"
  997. Part48.Parent = Tool0
  998. Part48.Material = Enum.Material.SmoothPlastic
  999. Part48.BrickColor = BrickColor.new("Dark stone grey")
  1000. Part48.Transparency = 1
  1001. Part48.Rotation = Vector3.new(0, 90, 0)
  1002. Part48.Anchored = true
  1003. Part48.CanCollide = false
  1004. Part48.FormFactor = Enum.FormFactor.Custom
  1005. Part48.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1006. Part48.CFrame = CFrame.new(1435.36108, 48.4771957, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1007. Part48.BottomSurface = Enum.SurfaceType.Smooth
  1008. Part48.TopSurface = Enum.SurfaceType.Smooth
  1009. Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1010. Part48.Position = Vector3.new(1435.36108, 48.4771957, -1310.87622)
  1011. Part48.Orientation = Vector3.new(0, 90, 0)
  1012. Part48.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1013. SpecialMesh49.Parent = Part48
  1014. SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
  1015. SpecialMesh49.MeshType = Enum.MeshType.Brick
  1016. SpecialMesh49.Scale = Vector3.new(0.660416245, 0.190620154, 0.180113614)
  1017. Decal50.Parent = Part48
  1018. Decal50.Texture = "http://www.roblox.com/asset/?id=2276263"
  1019. Decal50.Face = Enum.NormalId.Right
  1020. Decal51.Parent = Part48
  1021. Decal51.Texture = "http://www.roblox.com/asset/?id=2276263"
  1022. Decal51.Face = Enum.NormalId.Left
  1023. Part52.Parent = Tool0
  1024. Part52.Material = Enum.Material.SmoothPlastic
  1025. Part52.BrickColor = BrickColor.new("Dark stone grey")
  1026. Part52.Transparency = 1
  1027. Part52.Rotation = Vector3.new(-90, 0, 90)
  1028. Part52.Anchored = true
  1029. Part52.CanCollide = false
  1030. Part52.FormFactor = Enum.FormFactor.Custom
  1031. Part52.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1032. Part52.CFrame = CFrame.new(1435.20679, 48.6519432, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1033. Part52.BottomSurface = Enum.SurfaceType.Smooth
  1034. Part52.TopSurface = Enum.SurfaceType.Smooth
  1035. Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1036. Part52.Position = Vector3.new(1435.20679, 48.6519432, -1310.87183)
  1037. Part52.Orientation = Vector3.new(-90, 90, 0)
  1038. Part52.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1039. SpecialMesh53.Parent = Part52
  1040. SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
  1041. SpecialMesh53.MeshType = Enum.MeshType.Brick
  1042. SpecialMesh53.Scale = Vector3.new(0.236344978, 2.93461728, 0.17725873)
  1043. Part54.Parent = Tool0
  1044. Part54.Material = Enum.Material.SmoothPlastic
  1045. Part54.BrickColor = BrickColor.new("Dark stone grey")
  1046. Part54.Transparency = 1
  1047. Part54.Rotation = Vector3.new(0, 90, 0)
  1048. Part54.Anchored = true
  1049. Part54.CanCollide = false
  1050. Part54.FormFactor = Enum.FormFactor.Custom
  1051. Part54.Size = Vector3.new(1, 1, 1)
  1052. Part54.CFrame = CFrame.new(1436.06531, 48.6182861, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1053. Part54.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1054. Part54.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1055. Part54.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1056. Part54.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1057. Part54.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1058. Part54.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1059. Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1060. Part54.Position = Vector3.new(1436.06531, 48.6182861, -1310.87183)
  1061. Part54.Orientation = Vector3.new(0, 90, 0)
  1062. Part54.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1063. SpecialMesh55.Parent = Part54
  1064. SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
  1065. SpecialMesh55.MeshType = Enum.MeshType.Brick
  1066. SpecialMesh55.Scale = Vector3.new(0.0339129046, 0.0423911363, 0.593476057)
  1067. Part56.Parent = Tool0
  1068. Part56.Material = Enum.Material.SmoothPlastic
  1069. Part56.BrickColor = BrickColor.new("Dark stone grey")
  1070. Part56.Transparency = 1
  1071. Part56.Rotation = Vector3.new(180, 0, 90)
  1072. Part56.Anchored = true
  1073. Part56.CanCollide = false
  1074. Part56.FormFactor = Enum.FormFactor.Custom
  1075. Part56.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1076. Part56.CFrame = CFrame.new(1433.85034, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1077. Part56.BottomSurface = Enum.SurfaceType.Smooth
  1078. Part56.TopSurface = Enum.SurfaceType.Smooth
  1079. Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1080. Part56.Position = Vector3.new(1433.85034, 48.923233, -1310.87183)
  1081. Part56.Orientation = Vector3.new(0, -180, -90)
  1082. Part56.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1083. CylinderMesh57.Parent = Part56
  1084. CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  1085. CylinderMesh57.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  1086. Part58.Parent = Tool0
  1087. Part58.Material = Enum.Material.SmoothPlastic
  1088. Part58.BrickColor = BrickColor.new("Dark stone grey")
  1089. Part58.Transparency = 1
  1090. Part58.Rotation = Vector3.new(180, 0, 90)
  1091. Part58.Anchored = true
  1092. Part58.CanCollide = false
  1093. Part58.FormFactor = Enum.FormFactor.Custom
  1094. Part58.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  1095. Part58.CFrame = CFrame.new(1435.21533, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1096. Part58.BottomSurface = Enum.SurfaceType.Smooth
  1097. Part58.TopSurface = Enum.SurfaceType.Smooth
  1098. Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1099. Part58.Position = Vector3.new(1435.21533, 48.9020348, -1310.87183)
  1100. Part58.Orientation = Vector3.new(0, -180, -90)
  1101. Part58.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1102. CylinderMesh59.Parent = Part58
  1103. CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1104. CylinderMesh59.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1105. Part60.Parent = Tool0
  1106. Part60.Material = Enum.Material.SmoothPlastic
  1107. Part60.BrickColor = BrickColor.new("Dark stone grey")
  1108. Part60.Transparency = 1
  1109. Part60.Rotation = Vector3.new(90, 75, -90)
  1110. Part60.Anchored = true
  1111. Part60.CanCollide = false
  1112. Part60.FormFactor = Enum.FormFactor.Custom
  1113. Part60.Size = Vector3.new(1, 1, 1)
  1114. Part60.CFrame = CFrame.new(1436.37439, 48.852356, -1310.87183, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
  1115. Part60.BottomSurface = Enum.SurfaceType.Smooth
  1116. Part60.TopSurface = Enum.SurfaceType.Smooth
  1117. Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1118. Part60.Position = Vector3.new(1436.37439, 48.852356, -1310.87183)
  1119. Part60.Orientation = Vector3.new(15, 90, 0)
  1120. Part60.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1121. SpecialMesh61.Parent = Part60
  1122. SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
  1123. SpecialMesh61.MeshType = Enum.MeshType.Brick
  1124. SpecialMesh61.Scale = Vector3.new(0.0339129046, 0.050869368, 0.568041325)
  1125. Part62.Parent = Tool0
  1126. Part62.Material = Enum.Material.SmoothPlastic
  1127. Part62.BrickColor = BrickColor.new("Medium green")
  1128. Part62.Reflectance = 0.40000000596046
  1129. Part62.Transparency = 1
  1130. Part62.Rotation = Vector3.new(-90, 0, -90)
  1131. Part62.Anchored = true
  1132. Part62.CanCollide = false
  1133. Part62.FormFactor = Enum.FormFactor.Custom
  1134. Part62.Size = Vector3.new(1, 1, 1)
  1135. Part62.CFrame = CFrame.new(1436.0885, 48.923233, -1310.96509, 0, 1, 0, 0, 0, 1, 1, 0, 0)
  1136. Part62.BottomSurface = Enum.SurfaceType.Smooth
  1137. Part62.TopSurface = Enum.SurfaceType.Smooth
  1138. Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1139. Part62.Position = Vector3.new(1436.0885, 48.923233, -1310.96509)
  1140. Part62.Orientation = Vector3.new(-90, -90, 0)
  1141. Part62.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1142. CylinderMesh63.Parent = Part62
  1143. CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
  1144. CylinderMesh63.Scale = Vector3.new(0.101738736, 0.754562199, 0.0339129157)
  1145. Part64.Parent = Tool0
  1146. Part64.Material = Enum.Material.SmoothPlastic
  1147. Part64.BrickColor = BrickColor.new("Dark stone grey")
  1148. Part64.Transparency = 1
  1149. Part64.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
  1150. Part64.Anchored = true
  1151. Part64.CanCollide = false
  1152. Part64.FormFactor = Enum.FormFactor.Custom
  1153. Part64.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1154. 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)
  1155. Part64.BottomSurface = Enum.SurfaceType.Smooth
  1156. Part64.TopSurface = Enum.SurfaceType.Smooth
  1157. Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1158. Part64.Position = Vector3.new(1434.84216, 49.1045074, -1310.66235)
  1159. Part64.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
  1160. Part64.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1161. CylinderMesh65.Parent = Part64
  1162. CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1163. CylinderMesh65.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1164. Part66.Parent = Tool0
  1165. Part66.Material = Enum.Material.SmoothPlastic
  1166. Part66.BrickColor = BrickColor.new("Dark stone grey")
  1167. Part66.Transparency = 1
  1168. Part66.Rotation = Vector3.new(-90, 0, 90)
  1169. Part66.Anchored = true
  1170. Part66.CanCollide = false
  1171. Part66.FormFactor = Enum.FormFactor.Custom
  1172. Part66.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1173. Part66.CFrame = CFrame.new(1435.35938, 48.60532, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1174. Part66.BottomSurface = Enum.SurfaceType.Smooth
  1175. Part66.TopSurface = Enum.SurfaceType.Smooth
  1176. Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1177. Part66.Position = Vector3.new(1435.35938, 48.60532, -1310.87183)
  1178. Part66.Orientation = Vector3.new(-90, 90, 0)
  1179. Part66.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1180. SpecialMesh67.Parent = Part66
  1181. SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
  1182. SpecialMesh67.MeshType = Enum.MeshType.Brick
  1183. SpecialMesh67.Scale = Vector3.new(0.188405082, 0.450078517, 0.177938163)
  1184. Part68.Parent = Tool0
  1185. Part68.Material = Enum.Material.SmoothPlastic
  1186. Part68.BrickColor = BrickColor.new("Dark stone grey")
  1187. Part68.Transparency = 1
  1188. Part68.Rotation = Vector3.new(0, 90, 0)
  1189. Part68.Anchored = true
  1190. Part68.CanCollide = false
  1191. Part68.FormFactor = Enum.FormFactor.Custom
  1192. Part68.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1193. Part68.CFrame = CFrame.new(1436.875, 48.6733971, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1194. Part68.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1195. Part68.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1196. Part68.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1197. Part68.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1198. Part68.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1199. Part68.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1200. Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1201. Part68.Position = Vector3.new(1436.875, 48.6733971, -1310.87622)
  1202. Part68.Orientation = Vector3.new(0, 90, 0)
  1203. Part68.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1204. SpecialMesh69.Parent = Part68
  1205. SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1206. SpecialMesh69.MeshType = Enum.MeshType.Brick
  1207. SpecialMesh69.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  1208. Part70.Parent = Tool0
  1209. Part70.Material = Enum.Material.SmoothPlastic
  1210. Part70.BrickColor = BrickColor.new("Black")
  1211. Part70.Transparency = 1
  1212. Part70.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
  1213. Part70.Anchored = true
  1214. Part70.CanCollide = false
  1215. Part70.FormFactor = Enum.FormFactor.Custom
  1216. Part70.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1217. 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)
  1218. Part70.BottomSurface = Enum.SurfaceType.Smooth
  1219. Part70.TopSurface = Enum.SurfaceType.Smooth
  1220. Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1221. Part70.Position = Vector3.new(1435.48877, 48.9965515, -1310.62427)
  1222. Part70.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
  1223. Part70.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1224. CylinderMesh71.Parent = Part70
  1225. CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  1226. CylinderMesh71.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  1227. Part72.Parent = Tool0
  1228. Part72.Material = Enum.Material.SmoothPlastic
  1229. Part72.BrickColor = BrickColor.new("Black")
  1230. Part72.Transparency = 1
  1231. Part72.Rotation = Vector3.new(90, 0, 90)
  1232. Part72.Anchored = true
  1233. Part72.CanCollide = false
  1234. Part72.FormFactor = Enum.FormFactor.Custom
  1235. Part72.Size = Vector3.new(1, 1, 1)
  1236. Part72.CFrame = CFrame.new(1435.60107, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, -1, 1, 0, 0)
  1237. Part72.BottomSurface = Enum.SurfaceType.Smooth
  1238. Part72.TopSurface = Enum.SurfaceType.Smooth
  1239. Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1240. Part72.Position = Vector3.new(1435.60107, 48.9062729, -1310.87183)
  1241. Part72.Orientation = Vector3.new(90, -90, 0)
  1242. Part72.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1243. SpecialMesh73.Parent = Part72
  1244. SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
  1245. SpecialMesh73.MeshType = Enum.MeshType.Sphere
  1246. SpecialMesh73.Scale = Vector3.new(0.440867633, 0.186521009, 0.432389498)
  1247. Part74.Parent = Tool0
  1248. Part74.Material = Enum.Material.SmoothPlastic
  1249. Part74.Transparency = 1
  1250. Part74.Rotation = Vector3.new(-90, -30, -90)
  1251. Part74.Anchored = true
  1252. Part74.CanCollide = false
  1253. Part74.FormFactor = Enum.FormFactor.Custom
  1254. Part74.Size = Vector3.new(1, 1, 1)
  1255. Part74.CFrame = CFrame.new(1436.73303, 48.074337, -1310.87183, 0, 0.866025388, -0.500000238, 0, 0.500000238, 0.866025388, 1, 0, 0)
  1256. Part74.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1257. Part74.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1258. Part74.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1259. Part74.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1260. Part74.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1261. Part74.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1262. Part74.Position = Vector3.new(1436.73303, 48.074337, -1310.87183)
  1263. Part74.Orientation = Vector3.new(-60, -90, 0)
  1264. CylinderMesh75.Parent = Part74
  1265. CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
  1266. CylinderMesh75.Scale = Vector3.new(0.101738736, 0.127173409, 0.0339129157)
  1267. Part76.Parent = Tool0
  1268. Part76.Material = Enum.Material.SmoothPlastic
  1269. Part76.BrickColor = BrickColor.new("Brick yellow")
  1270. Part76.Transparency = 1
  1271. Part76.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
  1272. Part76.Anchored = true
  1273. Part76.CanCollide = false
  1274. Part76.FormFactor = Enum.FormFactor.Custom
  1275. Part76.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1276. 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)
  1277. Part76.BottomSurface = Enum.SurfaceType.Smooth
  1278. Part76.TopSurface = Enum.SurfaceType.Smooth
  1279. Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1280. Part76.Position = Vector3.new(1435.48877, 48.7422256, -1311.07788)
  1281. Part76.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
  1282. Part76.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1283. CylinderMesh77.Parent = Part76
  1284. CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
  1285. CylinderMesh77.Scale = Vector3.new(0.291783929, 0.525211275, 0.170207277)
  1286. Part78.Parent = Tool0
  1287. Part78.Material = Enum.Material.SmoothPlastic
  1288. Part78.BrickColor = BrickColor.new("Dark stone grey")
  1289. Part78.Transparency = 1
  1290. Part78.Rotation = Vector3.new(180, 0, 90)
  1291. Part78.Anchored = true
  1292. Part78.CanCollide = false
  1293. Part78.FormFactor = Enum.FormFactor.Custom
  1294. Part78.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  1295. Part78.CFrame = CFrame.new(1434.98645, 48.9189987, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1296. Part78.BottomSurface = Enum.SurfaceType.Smooth
  1297. Part78.TopSurface = Enum.SurfaceType.Smooth
  1298. Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1299. Part78.Position = Vector3.new(1434.98645, 48.9189987, -1310.87183)
  1300. Part78.Orientation = Vector3.new(0, -180, -90)
  1301. Part78.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1302. CylinderMesh79.Parent = Part78
  1303. CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
  1304. CylinderMesh79.Scale = Vector3.new(1.55653632, 0.185301825, 1.85301888)
  1305. Part80.Parent = Tool0
  1306. Part80.Material = Enum.Material.SmoothPlastic
  1307. Part80.BrickColor = BrickColor.new("Brick yellow")
  1308. Part80.Transparency = 1
  1309. Part80.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
  1310. Part80.Anchored = true
  1311. Part80.CanCollide = false
  1312. Part80.FormFactor = Enum.FormFactor.Custom
  1313. Part80.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1314. 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)
  1315. Part80.BottomSurface = Enum.SurfaceType.Smooth
  1316. Part80.TopSurface = Enum.SurfaceType.Smooth
  1317. Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1318. Part80.Position = Vector3.new(1435.44849, 48.841629, -1311.05676)
  1319. Part80.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
  1320. Part80.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1321. CylinderMesh81.Parent = Part80
  1322. CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
  1323. CylinderMesh81.Scale = Vector3.new(0.291783929, 0.316099197, 0.170207277)
  1324. Part82.Parent = Tool0
  1325. Part82.Material = Enum.Material.SmoothPlastic
  1326. Part82.BrickColor = BrickColor.new("Dark stone grey")
  1327. Part82.Transparency = 1
  1328. Part82.Rotation = Vector3.new(-90, 75, 90)
  1329. Part82.Anchored = true
  1330. Part82.CanCollide = false
  1331. Part82.FormFactor = Enum.FormFactor.Custom
  1332. Part82.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1333. Part82.CFrame = CFrame.new(1435.99597, 48.211853, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  1334. Part82.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1335. Part82.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1336. Part82.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1337. Part82.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1338. Part82.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1339. Part82.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1340. Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1341. Part82.Position = Vector3.new(1435.99597, 48.211853, -1310.87183)
  1342. Part82.Orientation = Vector3.new(-15, 90, 0)
  1343. Part82.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1344. CylinderMesh83.Parent = Part82
  1345. CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
  1346. CylinderMesh83.Scale = Vector3.new(0.360227078, 0.180113435, 0.390246034)
  1347. Part84.Parent = Tool0
  1348. Part84.Material = Enum.Material.SmoothPlastic
  1349. Part84.BrickColor = BrickColor.new("Dark stone grey")
  1350. Part84.Transparency = 1
  1351. Part84.Rotation = Vector3.new(180, 0, 90)
  1352. Part84.Anchored = true
  1353. Part84.CanCollide = false
  1354. Part84.FormFactor = Enum.FormFactor.Custom
  1355. Part84.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1356. Part84.CFrame = CFrame.new(1433.5498, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1357. Part84.BottomSurface = Enum.SurfaceType.Smooth
  1358. Part84.TopSurface = Enum.SurfaceType.Smooth
  1359. Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1360. Part84.Position = Vector3.new(1433.5498, 48.9232292, -1310.87183)
  1361. Part84.Orientation = Vector3.new(0, -180, -90)
  1362. Part84.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1363. CylinderMesh85.Parent = Part84
  1364. CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
  1365. CylinderMesh85.Scale = Vector3.new(0.031400837, 0.124556653, 0.1674712)
  1366. Part86.Parent = Tool0
  1367. Part86.Material = Enum.Material.SmoothPlastic
  1368. Part86.BrickColor = BrickColor.new("Dark stone grey")
  1369. Part86.Transparency = 1
  1370. Part86.Rotation = Vector3.new(90, 90, 0)
  1371. Part86.Anchored = true
  1372. Part86.CanCollide = false
  1373. Part86.FormFactor = Enum.FormFactor.Custom
  1374. Part86.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1375. Part86.CFrame = CFrame.new(1434.89648, 48.9697227, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1376. Part86.BottomSurface = Enum.SurfaceType.Smooth
  1377. Part86.TopSurface = Enum.SurfaceType.Smooth
  1378. Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1379. Part86.Position = Vector3.new(1434.89648, 48.9697227, -1310.87622)
  1380. Part86.Orientation = Vector3.new(0, 90, 90)
  1381. Part86.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1382. CylinderMesh87.Parent = Part86
  1383. CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1384. CylinderMesh87.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1385. Decal88.Parent = Part86
  1386. Decal88.Texture = "http://www.roblox.com/asset/?id=78474663"
  1387. Decal88.Face = Enum.NormalId.Bottom
  1388. Decal89.Parent = Part86
  1389. Decal89.Texture = "http://www.roblox.com/asset/?id=78474663"
  1390. Decal89.Face = Enum.NormalId.Top
  1391. Part90.Parent = Tool0
  1392. Part90.Material = Enum.Material.SmoothPlastic
  1393. Part90.BrickColor = BrickColor.new("Dark stone grey")
  1394. Part90.Transparency = 1
  1395. Part90.Rotation = Vector3.new(-90, 60, 90)
  1396. Part90.Anchored = true
  1397. Part90.CanCollide = false
  1398. Part90.FormFactor = Enum.FormFactor.Custom
  1399. Part90.Size = Vector3.new(1, 1, 1)
  1400. Part90.CFrame = CFrame.new(1436.48157, 48.7061806, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
  1401. Part90.BottomSurface = Enum.SurfaceType.Smooth
  1402. Part90.TopSurface = Enum.SurfaceType.Smooth
  1403. Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1404. Part90.Position = Vector3.new(1436.48157, 48.7061806, -1310.87183)
  1405. Part90.Orientation = Vector3.new(-30, 90, 0)
  1406. Part90.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1407. SpecialMesh91.Parent = Part90
  1408. SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
  1409. SpecialMesh91.MeshType = Enum.MeshType.Brick
  1410. SpecialMesh91.Scale = Vector3.new(0.0339129046, 0.033912912, 0.356085896)
  1411. Part92.Parent = Tool0
  1412. Part92.Material = Enum.Material.SmoothPlastic
  1413. Part92.BrickColor = BrickColor.new("Black")
  1414. Part92.Transparency = 1
  1415. Part92.Rotation = Vector3.new(-90, 0, 90)
  1416. Part92.Anchored = true
  1417. Part92.CanCollide = false
  1418. Part92.FormFactor = Enum.FormFactor.Custom
  1419. Part92.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1420. Part92.CFrame = CFrame.new(1434.32935, 48.9232292, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1421. Part92.BottomSurface = Enum.SurfaceType.Smooth
  1422. Part92.TopSurface = Enum.SurfaceType.Smooth
  1423. Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1424. Part92.Position = Vector3.new(1434.32935, 48.9232292, -1310.87183)
  1425. Part92.Orientation = Vector3.new(-90, 90, 0)
  1426. Part92.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1427. SpecialMesh93.Parent = Part92
  1428. SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
  1429. SpecialMesh93.MeshType = Enum.MeshType.Brick
  1430. SpecialMesh93.Scale = Vector3.new(0.797663748, 0.701944053, 0.175486133)
  1431. Part94.Parent = Tool0
  1432. Part94.Material = Enum.Material.SmoothPlastic
  1433. Part94.BrickColor = BrickColor.new("Black")
  1434. Part94.Transparency = 1
  1435. Part94.Rotation = Vector3.new(180, 0, 90)
  1436. Part94.Anchored = true
  1437. Part94.CanCollide = false
  1438. Part94.FormFactor = Enum.FormFactor.Custom
  1439. Part94.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1440. Part94.CFrame = CFrame.new(1434.4989, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1441. Part94.BottomSurface = Enum.SurfaceType.Smooth
  1442. Part94.TopSurface = Enum.SurfaceType.Smooth
  1443. Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1444. Part94.Position = Vector3.new(1434.4989, 48.9062729, -1310.87183)
  1445. Part94.Orientation = Vector3.new(0, -180, -90)
  1446. Part94.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1447. CylinderMesh95.Parent = Part94
  1448. CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
  1449. CylinderMesh95.Scale = Vector3.new(1.53096449, 0.180113405, 1.50094533)
  1450. Part96.Parent = Tool0
  1451. Part96.Material = Enum.Material.SmoothPlastic
  1452. Part96.BrickColor = BrickColor.new("Dark stone grey")
  1453. Part96.Transparency = 1
  1454. Part96.Rotation = Vector3.new(0, 90, 0)
  1455. Part96.Anchored = true
  1456. Part96.CanCollide = false
  1457. Part96.FormFactor = Enum.FormFactor.Custom
  1458. Part96.Size = Vector3.new(1, 1, 1)
  1459. Part96.CFrame = CFrame.new(1436.85803, 48.7793694, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1460. Part96.BottomSurface = Enum.SurfaceType.Smooth
  1461. Part96.TopSurface = Enum.SurfaceType.Smooth
  1462. Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1463. Part96.Position = Vector3.new(1436.85803, 48.7793694, -1310.87183)
  1464. Part96.Orientation = Vector3.new(0, 90, 0)
  1465. Part96.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1466. SpecialMesh97.Parent = Part96
  1467. SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
  1468. SpecialMesh97.MeshType = Enum.MeshType.Brick
  1469. SpecialMesh97.Scale = Vector3.new(0.0339129046, 0.050869368, 0.466302693)
  1470. Part98.Parent = Tool0
  1471. Part98.Material = Enum.Material.SmoothPlastic
  1472. Part98.BrickColor = BrickColor.new("Dark stone grey")
  1473. Part98.Transparency = 1
  1474. Part98.Rotation = Vector3.new(-90, 75, 90)
  1475. Part98.Anchored = true
  1476. Part98.CanCollide = false
  1477. Part98.FormFactor = Enum.FormFactor.Custom
  1478. Part98.Size = Vector3.new(1, 1, 1)
  1479. Part98.CFrame = CFrame.new(1437.1134, 48.5151291, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  1480. Part98.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1481. Part98.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1482. Part98.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1483. Part98.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1484. Part98.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1485. Part98.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1486. Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1487. Part98.Position = Vector3.new(1437.1134, 48.5151291, -1310.87183)
  1488. Part98.Orientation = Vector3.new(-15, 90, 0)
  1489. Part98.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1490. SpecialMesh99.Parent = Part98
  1491. SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
  1492. SpecialMesh99.MeshType = Enum.MeshType.Brick
  1493. SpecialMesh99.Scale = Vector3.new(0.0339129046, 0.584997475, 0.127173796)
  1494. Part100.Parent = Tool0
  1495. Part100.Material = Enum.Material.SmoothPlastic
  1496. Part100.BrickColor = BrickColor.new("Medium green")
  1497. Part100.Reflectance = 0.40000000596046
  1498. Part100.Transparency = 1
  1499. Part100.Rotation = Vector3.new(-90, 30, -90)
  1500. Part100.Anchored = true
  1501. Part100.CanCollide = false
  1502. Part100.FormFactor = Enum.FormFactor.Custom
  1503. Part100.Size = Vector3.new(1, 1, 1)
  1504. Part100.CFrame = CFrame.new(1436.54248, 48.8766403, -1310.96448, 0, 0.866027117, 0.499997079, 0, -0.49999705, 0.866027176, 1, 0, 0)
  1505. Part100.BottomSurface = Enum.SurfaceType.Smooth
  1506. Part100.TopSurface = Enum.SurfaceType.Smooth
  1507. Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1508. Part100.Position = Vector3.new(1436.54248, 48.8766403, -1310.96448)
  1509. Part100.Orientation = Vector3.new(-60, 90, 180)
  1510. Part100.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1511. CylinderMesh101.Parent = Part100
  1512. CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
  1513. CylinderMesh101.Scale = Vector3.new(0.101738736, 0.194999218, 0.0339129157)
  1514. Part102.Parent = Tool0
  1515. Part102.Material = Enum.Material.SmoothPlastic
  1516. Part102.BrickColor = BrickColor.new("Dark stone grey")
  1517. Part102.Transparency = 1
  1518. Part102.Rotation = Vector3.new(-90, -90, 0)
  1519. Part102.Anchored = true
  1520. Part102.CanCollide = false
  1521. Part102.FormFactor = Enum.FormFactor.Custom
  1522. Part102.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1523. Part102.CFrame = CFrame.new(1435.24072, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1524. Part102.BottomSurface = Enum.SurfaceType.Smooth
  1525. Part102.TopSurface = Enum.SurfaceType.Smooth
  1526. Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1527. Part102.Position = Vector3.new(1435.24072, 48.6010742, -1310.87183)
  1528. Part102.Orientation = Vector3.new(0, -90, 90)
  1529. Part102.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1530. CylinderMesh103.Parent = Part102
  1531. CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1532. CylinderMesh103.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1533. Decal104.Parent = Part102
  1534. Decal104.Texture = "http://www.roblox.com/asset/?id=78474663"
  1535. Decal104.Face = Enum.NormalId.Bottom
  1536. Part105.Parent = Tool0
  1537. Part105.Material = Enum.Material.SmoothPlastic
  1538. Part105.BrickColor = BrickColor.new("Black")
  1539. Part105.Transparency = 1
  1540. Part105.Rotation = Vector3.new(-150.599991, 32.2399979, -23.1999989)
  1541. Part105.Anchored = true
  1542. Part105.CanCollide = false
  1543. Part105.FormFactor = Enum.FormFactor.Custom
  1544. Part105.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1545. 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)
  1546. Part105.BottomSurface = Enum.SurfaceType.Smooth
  1547. Part105.TopSurface = Enum.SurfaceType.Smooth
  1548. Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1549. Part105.Position = Vector3.new(1434.84009, 49.1090317, -1310.6604)
  1550. Part105.Orientation = Vector3.new(-24.539999, 144.099991, 173.529999)
  1551. Part105.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1552. CylinderMesh106.Parent = Part105
  1553. CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  1554. CylinderMesh106.Scale = Vector3.new(0.170207247, 0.705144346, 0.170207277)
  1555. Part107.Parent = Tool0
  1556. Part107.Material = Enum.Material.SmoothPlastic
  1557. Part107.BrickColor = BrickColor.new("Dark stone grey")
  1558. Part107.Transparency = 1
  1559. Part107.Rotation = Vector3.new(180, 0, 90)
  1560. Part107.Anchored = true
  1561. Part107.CanCollide = false
  1562. Part107.FormFactor = Enum.FormFactor.Custom
  1563. Part107.Size = Vector3.new(0.228767872, 0.228767842, 0.228767857)
  1564. Part107.CFrame = CFrame.new(1435.56287, 48.897789, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1565. Part107.BottomSurface = Enum.SurfaceType.Smooth
  1566. Part107.TopSurface = Enum.SurfaceType.Smooth
  1567. Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1568. Part107.Position = Vector3.new(1435.56287, 48.897789, -1310.87183)
  1569. Part107.Orientation = Vector3.new(0, -180, -90)
  1570. Part107.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1571. CylinderMesh108.Parent = Part107
  1572. CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1573. CylinderMesh108.Scale = Vector3.new(2.00126076, 0.185301825, 2.00126052)
  1574. Part109.Parent = Tool0
  1575. Part109.Material = Enum.Material.SmoothPlastic
  1576. Part109.BrickColor = BrickColor.new("Black")
  1577. Part109.Transparency = 1
  1578. Part109.Rotation = Vector3.new(133.479996, 38.0400009, -171.679993)
  1579. Part109.Anchored = true
  1580. Part109.CanCollide = false
  1581. Part109.FormFactor = Enum.FormFactor.Custom
  1582. Part109.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1583. 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)
  1584. Part109.BottomSurface = Enum.SurfaceType.Smooth
  1585. Part109.TopSurface = Enum.SurfaceType.Smooth
  1586. Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1587. Part109.Position = Vector3.new(1435.08655, 49.0373726, -1311.1228)
  1588. Part109.Orientation = Vector3.new(34.8600006, 131.330002, -24.6899986)
  1589. Part109.Color = Color3.new(0.105882, 0.164706, 0.207843)
  1590. CylinderMesh110.Parent = Part109
  1591. CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
  1592. CylinderMesh110.Scale = Vector3.new(0.170207247, 0.899666727, 0.170207277)
  1593. Part111.Parent = Tool0
  1594. Part111.Material = Enum.Material.SmoothPlastic
  1595. Part111.BrickColor = BrickColor.new("Nougat")
  1596. Part111.Transparency = 1
  1597. Part111.Rotation = Vector3.new(180, 0, 90)
  1598. Part111.Anchored = true
  1599. Part111.CanCollide = false
  1600. Part111.FormFactor = Enum.FormFactor.Custom
  1601. Part111.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1602. Part111.CFrame = CFrame.new(1435.56287, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1603. Part111.BottomSurface = Enum.SurfaceType.Smooth
  1604. Part111.TopSurface = Enum.SurfaceType.Smooth
  1605. Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
  1606. Part111.Position = Vector3.new(1435.56287, 48.9020348, -1310.87183)
  1607. Part111.Orientation = Vector3.new(0, -180, -90)
  1608. Part111.Color = Color3.new(0.8, 0.556863, 0.411765)
  1609. CylinderMesh112.Parent = Part111
  1610. CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
  1611. CylinderMesh112.Scale = Vector3.new(1.0241611, 0.17725873, 1.02416098)
  1612. Part113.Parent = Tool0
  1613. Part113.Material = Enum.Material.SmoothPlastic
  1614. Part113.BrickColor = BrickColor.new("Brick yellow")
  1615. Part113.Transparency = 1
  1616. Part113.Rotation = Vector3.new(-60, 0, 165)
  1617. Part113.Anchored = true
  1618. Part113.CanCollide = false
  1619. Part113.FormFactor = Enum.FormFactor.Custom
  1620. Part113.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1621. 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)
  1622. Part113.BottomSurface = Enum.SurfaceType.Smooth
  1623. Part113.TopSurface = Enum.SurfaceType.Smooth
  1624. Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1625. Part113.Position = Vector3.new(1435.49927, 48.6328773, -1311.01025)
  1626. Part113.Orientation = Vector3.new(-60, 0, 165)
  1627. Part113.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1628. CylinderMesh114.Parent = Part113
  1629. CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  1630. CylinderMesh114.Scale = Vector3.new(0.291783929, 0.486306548, 0.170207277)
  1631. Part115.Parent = Tool0
  1632. Part115.Material = Enum.Material.SmoothPlastic
  1633. Part115.BrickColor = BrickColor.new("Dark stone grey")
  1634. Part115.Transparency = 1
  1635. Part115.Rotation = Vector3.new(90, 90, 0)
  1636. Part115.Anchored = true
  1637. Part115.CanCollide = false
  1638. Part115.FormFactor = Enum.FormFactor.Custom
  1639. Part115.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1640. Part115.CFrame = CFrame.new(1435.43909, 48.8383217, -1310.84216, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1641. Part115.BottomSurface = Enum.SurfaceType.Smooth
  1642. Part115.TopSurface = Enum.SurfaceType.Smooth
  1643. Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1644. Part115.Position = Vector3.new(1435.43909, 48.8383217, -1310.84216)
  1645. Part115.Orientation = Vector3.new(0, 90, 90)
  1646. Part115.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1647. CylinderMesh116.Parent = Part115
  1648. CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
  1649. CylinderMesh116.Scale = Vector3.new(0.16747117, 0.533814311, 0.167471215)
  1650. Decal117.Parent = Part115
  1651. Decal117.Texture = "http://www.roblox.com/asset/?id=78474663"
  1652. Decal117.Face = Enum.NormalId.Top
  1653. Part118.Parent = Tool0
  1654. Part118.Material = Enum.Material.SmoothPlastic
  1655. Part118.BrickColor = BrickColor.new("Dark stone grey")
  1656. Part118.Transparency = 1
  1657. Part118.Rotation = Vector3.new(-90, -90, 0)
  1658. Part118.Anchored = true
  1659. Part118.CanCollide = false
  1660. Part118.FormFactor = Enum.FormFactor.Custom
  1661. Part118.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1662. Part118.CFrame = CFrame.new(1435.35938, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1663. Part118.BottomSurface = Enum.SurfaceType.Smooth
  1664. Part118.TopSurface = Enum.SurfaceType.Smooth
  1665. Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1666. Part118.Position = Vector3.new(1435.35938, 48.6010742, -1310.87183)
  1667. Part118.Orientation = Vector3.new(0, -90, 90)
  1668. Part118.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1669. CylinderMesh119.Parent = Part118
  1670. CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1671. CylinderMesh119.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1672. Decal120.Parent = Part118
  1673. Decal120.Texture = "http://www.roblox.com/asset/?id=78474663"
  1674. Decal120.Face = Enum.NormalId.Bottom
  1675. Part121.Parent = Tool0
  1676. Part121.Material = Enum.Material.SmoothPlastic
  1677. Part121.BrickColor = BrickColor.new("Dark stone grey")
  1678. Part121.Transparency = 1
  1679. Part121.Rotation = Vector3.new(50.7299995, 45.0399971, -40.1399994)
  1680. Part121.Anchored = true
  1681. Part121.CanCollide = false
  1682. Part121.FormFactor = Enum.FormFactor.Custom
  1683. Part121.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1684. 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)
  1685. Part121.BottomSurface = Enum.SurfaceType.Smooth
  1686. Part121.TopSurface = Enum.SurfaceType.Smooth
  1687. Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1688. Part121.Position = Vector3.new(1435.49548, 49.0076942, -1310.61987)
  1689. Part121.Orientation = Vector3.new(33.1599998, 57.7099991, 0.74000001)
  1690. Part121.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1691. CylinderMesh122.Parent = Part121
  1692. CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1693. CylinderMesh122.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  1694. Part123.Parent = Tool0
  1695. Part123.Material = Enum.Material.SmoothPlastic
  1696. Part123.BrickColor = BrickColor.new("Dark stone grey")
  1697. Part123.Transparency = 1
  1698. Part123.Rotation = Vector3.new(90, 90, 0)
  1699. Part123.Anchored = true
  1700. Part123.CanCollide = false
  1701. Part123.FormFactor = Enum.FormFactor.Custom
  1702. Part123.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  1703. Part123.CFrame = CFrame.new(1435.07629, 48.9167862, -1310.87622, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  1704. Part123.BottomSurface = Enum.SurfaceType.Smooth
  1705. Part123.TopSurface = Enum.SurfaceType.Smooth
  1706. Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1707. Part123.Position = Vector3.new(1435.07629, 48.9167862, -1310.87622)
  1708. Part123.Orientation = Vector3.new(0, 90, 90)
  1709. Part123.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1710. CylinderMesh124.Parent = Part123
  1711. CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1712. CylinderMesh124.Scale = Vector3.new(0.196954086, 1.00446594, 0.236344948)
  1713. Decal125.Parent = Part123
  1714. Decal125.Texture = "http://www.roblox.com/asset/?id=78474663"
  1715. Decal125.Face = Enum.NormalId.Bottom
  1716. Decal126.Parent = Part123
  1717. Decal126.Texture = "http://www.roblox.com/asset/?id=78474663"
  1718. Decal126.Face = Enum.NormalId.Top
  1719. Part127.Parent = Tool0
  1720. Part127.Material = Enum.Material.SmoothPlastic
  1721. Part127.BrickColor = BrickColor.new("Dark stone grey")
  1722. Part127.Transparency = 1
  1723. Part127.Rotation = Vector3.new(0, 90, 0)
  1724. Part127.Anchored = true
  1725. Part127.CanCollide = false
  1726. Part127.FormFactor = Enum.FormFactor.Custom
  1727. Part127.Size = Vector3.new(1, 1, 1)
  1728. Part127.CFrame = CFrame.new(1436.00879, 48.9263649, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1729. Part127.BottomSurface = Enum.SurfaceType.Smooth
  1730. Part127.TopSurface = Enum.SurfaceType.Smooth
  1731. Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1732. Part127.Position = Vector3.new(1436.00879, 48.9263649, -1310.87183)
  1733. Part127.Orientation = Vector3.new(0, 90, 0)
  1734. Part127.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1735. SpecialMesh128.Parent = Part127
  1736. SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
  1737. SpecialMesh128.MeshType = Enum.MeshType.Brick
  1738. SpecialMesh128.Scale = Vector3.new(0.0339129046, 0.0508693606, 0.194999248)
  1739. Part129.Parent = Tool0
  1740. Part129.Material = Enum.Material.SmoothPlastic
  1741. Part129.BrickColor = BrickColor.new("Nougat")
  1742. Part129.Transparency = 1
  1743. Part129.Rotation = Vector3.new(180, 0, 90)
  1744. Part129.Anchored = true
  1745. Part129.CanCollide = false
  1746. Part129.FormFactor = Enum.FormFactor.Custom
  1747. Part129.Size = Vector3.new(1, 1, 1)
  1748. Part129.CFrame = CFrame.new(1435.26624, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1749. Part129.BottomSurface = Enum.SurfaceType.Smooth
  1750. Part129.TopSurface = Enum.SurfaceType.Smooth
  1751. Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
  1752. Part129.Position = Vector3.new(1435.26624, 48.9020348, -1310.87183)
  1753. Part129.Orientation = Vector3.new(0, -180, -90)
  1754. Part129.Color = Color3.new(0.8, 0.556863, 0.411765)
  1755. CylinderMesh130.Parent = Part129
  1756. CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
  1757. CylinderMesh130.Scale = Vector3.new(0.440867692, 0.194999263, 0.440867722)
  1758. Part131.Parent = Tool0
  1759. Part131.Material = Enum.Material.SmoothPlastic
  1760. Part131.BrickColor = BrickColor.new("Dark stone grey")
  1761. Part131.Transparency = 1
  1762. Part131.Rotation = Vector3.new(-90, -90, 0)
  1763. Part131.Anchored = true
  1764. Part131.CanCollide = false
  1765. Part131.FormFactor = Enum.FormFactor.Custom
  1766. Part131.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  1767. Part131.CFrame = CFrame.new(1435.47815, 48.6010742, -1310.87183, 0, 0, -1, 1, 0, 0, 0, -1, 0)
  1768. Part131.BottomSurface = Enum.SurfaceType.Smooth
  1769. Part131.TopSurface = Enum.SurfaceType.Smooth
  1770. Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1771. Part131.Position = Vector3.new(1435.47815, 48.6010742, -1310.87183)
  1772. Part131.Orientation = Vector3.new(0, -90, 90)
  1773. Part131.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1774. CylinderMesh132.Parent = Part131
  1775. CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1776. CylinderMesh132.Scale = Vector3.new(0.175486118, 0.350972205, 0.175486103)
  1777. Decal133.Parent = Part131
  1778. Decal133.Texture = "http://www.roblox.com/asset/?id=78474663"
  1779. Decal133.Face = Enum.NormalId.Bottom
  1780. Part134.Parent = Tool0
  1781. Part134.Material = Enum.Material.SmoothPlastic
  1782. Part134.Transparency = 1
  1783. Part134.Rotation = Vector3.new(-90, 60, 90)
  1784. Part134.Anchored = true
  1785. Part134.CanCollide = false
  1786. Part134.FormFactor = Enum.FormFactor.Custom
  1787. Part134.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1788. Part134.CFrame = CFrame.new(1436.03064, 48.1612701, -1310.87183, 0, -0.499998987, 0.866025984, 0, 0.866025984, 0.499998987, -1, 0, 0)
  1789. Part134.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1790. Part134.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1791. Part134.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1792. Part134.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1793. Part134.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1794. Part134.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1795. Part134.Position = Vector3.new(1436.03064, 48.1612701, -1310.87183)
  1796. Part134.Orientation = Vector3.new(-30, 90, 0)
  1797. CylinderMesh135.Parent = Part134
  1798. CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1799. CylinderMesh135.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  1800. Part136.Parent = Tool0
  1801. Part136.Material = Enum.Material.SmoothPlastic
  1802. Part136.Transparency = 1
  1803. Part136.Rotation = Vector3.new(0, 90, 0)
  1804. Part136.Anchored = true
  1805. Part136.CanCollide = false
  1806. Part136.FormFactor = Enum.FormFactor.Custom
  1807. Part136.Size = Vector3.new(0.809999943, 0.810000002, 0.810000002)
  1808. Part136.CFrame = CFrame.new(1435.36523, 48.5261421, -1310.88025, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1809. Part136.BottomSurface = Enum.SurfaceType.Smooth
  1810. Part136.TopSurface = Enum.SurfaceType.Smooth
  1811. Part136.Position = Vector3.new(1435.36523, 48.5261421, -1310.88025)
  1812. Part136.Orientation = Vector3.new(0, 90, 0)
  1813. CylinderMesh137.Parent = Part136
  1814. CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
  1815. CylinderMesh137.Scale = Vector3.new(0.219805866, 0.0314008482, 0.136070341)
  1816. Part138.Parent = Tool0
  1817. Part138.Material = Enum.Material.SmoothPlastic
  1818. Part138.BrickColor = BrickColor.new("Dark stone grey")
  1819. Part138.Transparency = 1
  1820. Part138.Rotation = Vector3.new(90, 45, -90)
  1821. Part138.Anchored = true
  1822. Part138.CanCollide = false
  1823. Part138.FormFactor = Enum.FormFactor.Custom
  1824. Part138.Size = Vector3.new(1, 1, 1)
  1825. Part138.CFrame = CFrame.new(1436.54016, 48.4395027, -1310.87183, 0, 0.707106829, 0.707106829, 0, 0.707106829, -0.707106829, -1, 0, 0)
  1826. Part138.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1827. Part138.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1828. Part138.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1829. Part138.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1830. Part138.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1831. Part138.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1832. Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1833. Part138.Position = Vector3.new(1436.54016, 48.4395027, -1310.87183)
  1834. Part138.Orientation = Vector3.new(45, 90, 0)
  1835. Part138.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1836. SpecialMesh139.Parent = Part138
  1837. SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  1838. SpecialMesh139.MeshType = Enum.MeshType.Brick
  1839. SpecialMesh139.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  1840. Part140.Parent = Tool0
  1841. Part140.Material = Enum.Material.SmoothPlastic
  1842. Part140.BrickColor = BrickColor.new("Dark stone grey")
  1843. Part140.Transparency = 1
  1844. Part140.Rotation = Vector3.new(0, 90, 0)
  1845. Part140.Anchored = true
  1846. Part140.CanCollide = false
  1847. Part140.FormFactor = Enum.FormFactor.Custom
  1848. Part140.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1849. Part140.CFrame = CFrame.new(1436.87463, 48.5038033, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1850. Part140.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1851. Part140.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1852. Part140.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1853. Part140.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1854. Part140.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1855. Part140.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1856. Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1857. Part140.Position = Vector3.new(1436.87463, 48.5038033, -1310.87622)
  1858. Part140.Orientation = Vector3.new(0, 90, 0)
  1859. Part140.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1860. SpecialMesh141.Parent = Part140
  1861. SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
  1862. SpecialMesh141.MeshType = Enum.MeshType.Brick
  1863. SpecialMesh141.Scale = Vector3.new(0.164111391, 0.555652738, 0.237768203)
  1864. Part142.Parent = Tool0
  1865. Part142.Material = Enum.Material.SmoothPlastic
  1866. Part142.BrickColor = BrickColor.new("Lime green")
  1867. Part142.Reflectance = 0.40000000596046
  1868. Part142.Transparency = 1
  1869. Part142.Rotation = Vector3.new(180, 0, 90)
  1870. Part142.Anchored = true
  1871. Part142.CanCollide = false
  1872. Part142.FormFactor = Enum.FormFactor.Custom
  1873. Part142.Size = Vector3.new(0.228912294, 0.534128368, 0.423911244)
  1874. Part142.CFrame = CFrame.new(1433.87573, 48.923233, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  1875. Part142.BottomSurface = Enum.SurfaceType.Smooth
  1876. Part142.TopSurface = Enum.SurfaceType.Smooth
  1877. Part142.Color = Color3.new(0, 1, 0)
  1878. Part142.Position = Vector3.new(1433.87573, 48.923233, -1310.87183)
  1879. Part142.Orientation = Vector3.new(0, -180, -90)
  1880. Part142.Color = Color3.new(0, 1, 0)
  1881. CylinderMesh143.Parent = Part142
  1882. Part144.Parent = Tool0
  1883. Part144.Material = Enum.Material.SmoothPlastic
  1884. Part144.Transparency = 1
  1885. Part144.Rotation = Vector3.new(-90, 0, 90)
  1886. Part144.Anchored = true
  1887. Part144.CanCollide = false
  1888. Part144.FormFactor = Enum.FormFactor.Custom
  1889. Part144.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  1890. Part144.CFrame = CFrame.new(1436.42542, 48.0573769, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  1891. Part144.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1892. Part144.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1893. Part144.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1894. Part144.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1895. Part144.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1896. Part144.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1897. Part144.Position = Vector3.new(1436.42542, 48.0573769, -1310.87183)
  1898. Part144.Orientation = Vector3.new(-90, 90, 0)
  1899. CylinderMesh145.Parent = Part144
  1900. CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
  1901. CylinderMesh145.Scale = Vector3.new(0.360227078, 2.0112679, 0.180113524)
  1902. Part146.Parent = Tool0
  1903. Part146.Material = Enum.Material.SmoothPlastic
  1904. Part146.BrickColor = BrickColor.new("Dark stone grey")
  1905. Part146.Transparency = 1
  1906. Part146.Rotation = Vector3.new(0, 90, 0)
  1907. Part146.Anchored = true
  1908. Part146.CanCollide = false
  1909. Part146.FormFactor = Enum.FormFactor.Custom
  1910. Part146.Size = Vector3.new(1, 1, 1)
  1911. Part146.CFrame = CFrame.new(1436.98523, 48.2367706, -1310.87183, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  1912. Part146.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1913. Part146.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1914. Part146.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1915. Part146.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1916. Part146.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1917. Part146.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1918. Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1919. Part146.Position = Vector3.new(1436.98523, 48.2367706, -1310.87183)
  1920. Part146.Orientation = Vector3.new(0, 90, 0)
  1921. Part146.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1922. SpecialMesh147.Parent = Part146
  1923. SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
  1924. SpecialMesh147.MeshType = Enum.MeshType.Brick
  1925. SpecialMesh147.Scale = Vector3.new(0.0339129046, 0.033912912, 0.517172039)
  1926. Part148.Parent = Tool0
  1927. Part148.Material = Enum.Material.SmoothPlastic
  1928. Part148.Transparency = 1
  1929. Part148.Rotation = Vector3.new(-90, -60, -90)
  1930. Part148.Anchored = true
  1931. Part148.CanCollide = false
  1932. Part148.FormFactor = Enum.FormFactor.Custom
  1933. Part148.Size = Vector3.new(1, 1, 1)
  1934. Part148.CFrame = CFrame.new(1436.81775, 48.1568336, -1310.87183, 0, 0.499998987, -0.866025984, 0, 0.866025984, 0.499998987, 1, 0, 0)
  1935. Part148.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  1936. Part148.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  1937. Part148.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  1938. Part148.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  1939. Part148.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  1940. Part148.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  1941. Part148.Position = Vector3.new(1436.81775, 48.1568336, -1310.87183)
  1942. Part148.Orientation = Vector3.new(-30, -90, 0)
  1943. CylinderMesh149.Parent = Part148
  1944. CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
  1945. CylinderMesh149.Scale = Vector3.new(0.101738736, 0.161086336, 0.0339129157)
  1946. Part150.Parent = Tool0
  1947. Part150.Material = Enum.Material.SmoothPlastic
  1948. Part150.BrickColor = BrickColor.new("Brick yellow")
  1949. Part150.Transparency = 1
  1950. Part150.Rotation = Vector3.new(43.0599976, 7.44000006, -165.119995)
  1951. Part150.Anchored = true
  1952. Part150.CanCollide = false
  1953. Part150.FormFactor = Enum.FormFactor.Custom
  1954. Part150.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  1955. 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)
  1956. Part150.BottomSurface = Enum.SurfaceType.Smooth
  1957. Part150.TopSurface = Enum.SurfaceType.Smooth
  1958. Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1959. Part150.Position = Vector3.new(1435.27368, 48.9770622, -1311.07397)
  1960. Part150.Orientation = Vector3.new(42.6199989, 10.1300001, -158.229996)
  1961. Part150.Color = Color3.new(0.843137, 0.772549, 0.603922)
  1962. CylinderMesh151.Parent = Part150
  1963. CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
  1964. CylinderMesh151.Scale = Vector3.new(0.291783929, 0.389045268, 0.170207277)
  1965. Part152.Parent = Tool0
  1966. Part152.Material = Enum.Material.SmoothPlastic
  1967. Part152.BrickColor = BrickColor.new("Medium green")
  1968. Part152.Reflectance = 0.40000000596046
  1969. Part152.Transparency = 1
  1970. Part152.Rotation = Vector3.new(-90, 30, -105)
  1971. Part152.Anchored = true
  1972. Part152.CanCollide = false
  1973. Part152.FormFactor = Enum.FormFactor.Custom
  1974. Part152.Size = Vector3.new(1, 1, 1)
  1975. 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)
  1976. Part152.BottomSurface = Enum.SurfaceType.Smooth
  1977. Part152.TopSurface = Enum.SurfaceType.Smooth
  1978. Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1979. Part152.Position = Vector3.new(1436.76379, 48.7488365, -1310.92346)
  1980. Part152.Orientation = Vector3.new(-60, 90, 165)
  1981. Part152.Color = Color3.new(0.631373, 0.768628, 0.54902)
  1982. CylinderMesh153.Parent = Part152
  1983. CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
  1984. CylinderMesh153.Scale = Vector3.new(0.101738736, 0.330650836, 0.0339129157)
  1985. Part154.Parent = Tool0
  1986. Part154.Material = Enum.Material.SmoothPlastic
  1987. Part154.BrickColor = BrickColor.new("Dark stone grey")
  1988. Part154.Transparency = 1
  1989. Part154.Rotation = Vector3.new(-105, 75, 90)
  1990. Part154.Anchored = true
  1991. Part154.CanCollide = false
  1992. Part154.FormFactor = Enum.FormFactor.Custom
  1993. Part154.Size = Vector3.new(0.656099975, 0.656099975, 0.656099975)
  1994. 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)
  1995. Part154.BottomSurface = Enum.SurfaceType.Smooth
  1996. Part154.TopSurface = Enum.SurfaceType.Smooth
  1997. Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
  1998. Part154.Position = Vector3.new(1434.85571, 49.1141472, -1311.08923)
  1999. Part154.Orientation = Vector3.new(-14.4799995, 93.9700012, -15.5)
  2000. Part154.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2001. CylinderMesh155.Parent = Part154
  2002. CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  2003. CylinderMesh155.Scale = Vector3.new(0.167988077, 0.284287453, 0.167988092)
  2004. Part156.Parent = Tool0
  2005. Part156.Material = Enum.Material.SmoothPlastic
  2006. Part156.BrickColor = BrickColor.new("Dark stone grey")
  2007. Part156.Transparency = 1
  2008. Part156.Rotation = Vector3.new(90, 90, 0)
  2009. Part156.Anchored = true
  2010. Part156.CanCollide = false
  2011. Part156.FormFactor = Enum.FormFactor.Custom
  2012. Part156.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2013. Part156.CFrame = CFrame.new(1433.8822, 48.9214859, -1310.87183, 0, 0, 1, 1, 0, 0, 0, 1, 0)
  2014. Part156.BottomSurface = Enum.SurfaceType.Smooth
  2015. Part156.TopSurface = Enum.SurfaceType.Smooth
  2016. Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2017. Part156.Position = Vector3.new(1433.8822, 48.9214859, -1310.87183)
  2018. Part156.Orientation = Vector3.new(0, 90, 90)
  2019. Part156.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2020. SpecialMesh157.Parent = Part156
  2021. SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
  2022. SpecialMesh157.MeshType = Enum.MeshType.Brick
  2023. SpecialMesh157.Scale = Vector3.new(0.0300189219, 0.84052968, 1.8611728)
  2024. Part158.Parent = Tool0
  2025. Part158.Material = Enum.Material.SmoothPlastic
  2026. Part158.Transparency = 1
  2027. Part158.Rotation = Vector3.new(-90, 0, 90)
  2028. Part158.Anchored = true
  2029. Part158.CanCollide = false
  2030. Part158.FormFactor = Enum.FormFactor.Custom
  2031. Part158.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2032. Part158.CFrame = CFrame.new(1434.66418, 48.9062729, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2033. Part158.BottomSurface = Enum.SurfaceType.Smooth
  2034. Part158.TopSurface = Enum.SurfaceType.Smooth
  2035. Part158.Position = Vector3.new(1434.66418, 48.9062729, -1310.87183)
  2036. Part158.Orientation = Vector3.new(-90, 90, 0)
  2037. SpecialMesh159.Parent = Part158
  2038. SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
  2039. SpecialMesh159.MeshType = Enum.MeshType.Brick
  2040. SpecialMesh159.Scale = Vector3.new(0.180113494, 1.29081011, 1.53096449)
  2041. Part160.Parent = Tool0
  2042. Part160.Material = Enum.Material.SmoothPlastic
  2043. Part160.Transparency = 1
  2044. Part160.Rotation = Vector3.new(-90, 30, 90)
  2045. Part160.Anchored = true
  2046. Part160.CanCollide = false
  2047. Part160.FormFactor = Enum.FormFactor.Custom
  2048. Part160.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  2049. Part160.CFrame = CFrame.new(1436.1012, 48.0875969, -1310.87183, 0, -0.866025388, 0.500000238, 0, 0.500000238, 0.866025388, -1, 0, 0)
  2050. Part160.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2051. Part160.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2052. Part160.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2053. Part160.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2054. Part160.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2055. Part160.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2056. Part160.Position = Vector3.new(1436.1012, 48.0875969, -1310.87183)
  2057. Part160.Orientation = Vector3.new(-60, 90, 0)
  2058. CylinderMesh161.Parent = Part160
  2059. CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  2060. CylinderMesh161.Scale = Vector3.new(0.291783929, 0.364729911, 0.170207277)
  2061. Part162.Parent = Tool0
  2062. Part162.Material = Enum.Material.SmoothPlastic
  2063. Part162.BrickColor = BrickColor.new("Dark stone grey")
  2064. Part162.Transparency = 1
  2065. Part162.Rotation = Vector3.new(0, 90, 0)
  2066. Part162.Anchored = true
  2067. Part162.CanCollide = false
  2068. Part162.FormFactor = Enum.FormFactor.Custom
  2069. Part162.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2070. Part162.CFrame = CFrame.new(1436.875, 48.33424, -1310.87622, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  2071. Part162.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2072. Part162.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2073. Part162.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2074. Part162.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2075. Part162.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2076. Part162.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2077. Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2078. Part162.Position = Vector3.new(1436.875, 48.33424, -1310.87622)
  2079. Part162.Orientation = Vector3.new(0, 90, 0)
  2080. Part162.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2081. SpecialMesh163.Parent = Part162
  2082. SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  2083. SpecialMesh163.MeshType = Enum.MeshType.Brick
  2084. SpecialMesh163.Scale = Vector3.new(0.390246004, 0.180113539, 0.57036072)
  2085. Part164.Parent = Tool0
  2086. Part164.Material = Enum.Material.SmoothPlastic
  2087. Part164.BrickColor = BrickColor.new("Dark stone grey")
  2088. Part164.Transparency = 1
  2089. Part164.Rotation = Vector3.new(180, 0, 90)
  2090. Part164.Anchored = true
  2091. Part164.CanCollide = false
  2092. Part164.FormFactor = Enum.FormFactor.Custom
  2093. Part164.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2094. Part164.CFrame = CFrame.new(1435.66467, 48.9020348, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  2095. Part164.BottomSurface = Enum.SurfaceType.Smooth
  2096. Part164.TopSurface = Enum.SurfaceType.Smooth
  2097. Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2098. Part164.Position = Vector3.new(1435.66467, 48.9020348, -1310.87183)
  2099. Part164.Orientation = Vector3.new(0, -180, -90)
  2100. Part164.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2101. CylinderMesh165.Parent = Part164
  2102. CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
  2103. CylinderMesh165.Scale = Vector3.new(0.494551927, 0.175486088, 0.861476958)
  2104. Part166.Parent = Tool0
  2105. Part166.Material = Enum.Material.SmoothPlastic
  2106. Part166.BrickColor = BrickColor.new("Brick yellow")
  2107. Part166.Transparency = 1
  2108. Part166.Rotation = Vector3.new(-0.870000005, -12.9499998, -157.62999)
  2109. Part166.Anchored = true
  2110. Part166.CanCollide = false
  2111. Part166.FormFactor = Enum.FormFactor.Custom
  2112. Part166.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  2113. 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)
  2114. Part166.BottomSurface = Enum.SurfaceType.Smooth
  2115. Part166.TopSurface = Enum.SurfaceType.Smooth
  2116. Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2117. Part166.Position = Vector3.new(1435.34644, 48.8009377, -1311.09277)
  2118. Part166.Orientation = Vector3.new(-0.849999964, -12.9499998, -157.440002)
  2119. Part166.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2120. CylinderMesh167.Parent = Part166
  2121. CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
  2122. CylinderMesh167.Scale = Vector3.new(0.291783929, 0.889940858, 0.170207277)
  2123. Part168.Name = "Smooth Block Model"
  2124. Part168.Parent = Tool0
  2125. Part168.Material = Enum.Material.SmoothPlastic
  2126. Part168.BrickColor = BrickColor.new("Dark stone grey")
  2127. Part168.Transparency = 1
  2128. Part168.Rotation = Vector3.new(90, 15, 90)
  2129. Part168.Anchored = true
  2130. Part168.CanCollide = false
  2131. Part168.FormFactor = Enum.FormFactor.Custom
  2132. Part168.Size = Vector3.new(1, 1, 1)
  2133. Part168.CFrame = CFrame.new(1435.82715, 48.8071632, -1310.87183, 0, -0.965925872, 0.258818984, 0, -0.258818984, -0.965925872, 1, 0, 0)
  2134. Part168.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2135. Part168.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2136. Part168.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2137. Part168.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2138. Part168.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2139. Part168.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2140. Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2141. Part168.Position = Vector3.new(1435.82715, 48.8071632, -1310.87183)
  2142. Part168.Orientation = Vector3.new(75, 90, 180)
  2143. Part168.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2144. SpecialMesh169.Parent = Part168
  2145. SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
  2146. SpecialMesh169.MeshType = Enum.MeshType.Wedge
  2147. SpecialMesh169.Scale = Vector3.new(0.0339129046, 0.245868579, 0.22891213)
  2148. Part170.Name = "Smooth Block Model"
  2149. Part170.Parent = Tool0
  2150. Part170.Material = Enum.Material.SmoothPlastic
  2151. Part170.BrickColor = BrickColor.new("Dark stone grey")
  2152. Part170.Transparency = 1
  2153. Part170.Rotation = Vector3.new(-90, -15, 90)
  2154. Part170.Anchored = true
  2155. Part170.CanCollide = false
  2156. Part170.FormFactor = Enum.FormFactor.Custom
  2157. Part170.Size = Vector3.new(0.430467099, 0.430467129, 0.430467188)
  2158. Part170.CFrame = CFrame.new(1435.77759, 48.6315002, -1310.87183, 0, -0.965925872, -0.258818984, 0, -0.258818984, 0.965925872, -1, 0, 0)
  2159. Part170.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2160. Part170.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2161. Part170.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2162. Part170.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2163. Part170.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2164. Part170.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2165. Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2166. Part170.Position = Vector3.new(1435.77759, 48.6315002, -1310.87183)
  2167. Part170.Orientation = Vector3.new(-75, -90, 180)
  2168. Part170.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2169. SpecialMesh171.Parent = Part170
  2170. SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
  2171. SpecialMesh171.MeshType = Enum.MeshType.Wedge
  2172. SpecialMesh171.Scale = Vector3.new(0.236344978, 0.177258641, 0.196954101)
  2173. Part172.Parent = Tool0
  2174. Part172.Material = Enum.Material.SmoothPlastic
  2175. Part172.BrickColor = BrickColor.new("Dark stone grey")
  2176. Part172.Transparency = 1
  2177. Part172.Rotation = Vector3.new(-90, 0, 90)
  2178. Part172.Anchored = true
  2179. Part172.CanCollide = false
  2180. Part172.FormFactor = Enum.FormFactor.Custom
  2181. Part172.Size = Vector3.new(1, 1, 1)
  2182. Part172.CFrame = CFrame.new(1436.74353, 48.5165329, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2183. Part172.BackSurface = Enum.SurfaceType.SmoothNoOutlines
  2184. Part172.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
  2185. Part172.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
  2186. Part172.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  2187. Part172.RightSurface = Enum.SurfaceType.SmoothNoOutlines
  2188. Part172.TopSurface = Enum.SurfaceType.SmoothNoOutlines
  2189. Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2190. Part172.Position = Vector3.new(1436.74353, 48.5165329, -1310.87183)
  2191. Part172.Orientation = Vector3.new(-90, 90, 0)
  2192. Part172.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2193. SpecialMesh173.Parent = Part172
  2194. SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  2195. SpecialMesh173.MeshType = Enum.MeshType.Brick
  2196. SpecialMesh173.Scale = Vector3.new(0.0339129046, 0.033912912, 0.576519549)
  2197. Part174.Parent = Tool0
  2198. Part174.Material = Enum.Material.SmoothPlastic
  2199. Part174.Transparency = 1
  2200. Part174.Rotation = Vector3.new(90, 75, -90)
  2201. Part174.Anchored = true
  2202. Part174.CanCollide = false
  2203. Part174.FormFactor = Enum.FormFactor.Custom
  2204. Part174.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2205. Part174.CFrame = CFrame.new(1435.75964, 48.5609169, -1310.87622, 0, 0.258818984, 0.965925872, 0, 0.965925872, -0.258818984, -1, 0, 0)
  2206. Part174.BottomSurface = Enum.SurfaceType.Smooth
  2207. Part174.TopSurface = Enum.SurfaceType.Smooth
  2208. Part174.Position = Vector3.new(1435.75964, 48.5609169, -1310.87622)
  2209. Part174.Orientation = Vector3.new(15, 90, 0)
  2210. SpecialMesh175.Parent = Part174
  2211. SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
  2212. SpecialMesh175.MeshType = Enum.MeshType.Brick
  2213. SpecialMesh175.Scale = Vector3.new(0.0300189164, 0.540340722, 0.0900567546)
  2214. Part176.Parent = Tool0
  2215. Part176.Material = Enum.Material.SmoothPlastic
  2216. Part176.BrickColor = BrickColor.new("Nougat")
  2217. Part176.Transparency = 1
  2218. Part176.Rotation = Vector3.new(180, 0, 90)
  2219. Part176.Anchored = true
  2220. Part176.CanCollide = false
  2221. Part176.FormFactor = Enum.FormFactor.Custom
  2222. Part176.Size = Vector3.new(0.415433139, 0.313694388, 0.423911244)
  2223. Part176.CFrame = CFrame.new(1434.67273, 48.9062729, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  2224. Part176.BottomSurface = Enum.SurfaceType.Smooth
  2225. Part176.TopSurface = Enum.SurfaceType.Smooth
  2226. Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
  2227. Part176.Position = Vector3.new(1434.67273, 48.9062729, -1310.87183)
  2228. Part176.Orientation = Vector3.new(0, -180, -90)
  2229. Part176.Color = Color3.new(0.8, 0.556863, 0.411765)
  2230. CylinderMesh177.Parent = Part176
  2231. Part178.Parent = Tool0
  2232. Part178.Material = Enum.Material.SmoothPlastic
  2233. Part178.BrickColor = BrickColor.new("Brick yellow")
  2234. Part178.Transparency = 1
  2235. Part178.Rotation = Vector3.new(-90, 0, 90)
  2236. Part178.Anchored = true
  2237. Part178.CanCollide = false
  2238. Part178.FormFactor = Enum.FormFactor.Custom
  2239. Part178.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2240. Part178.CFrame = CFrame.new(1434.84229, 48.626503, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2241. Part178.BottomSurface = Enum.SurfaceType.Smooth
  2242. Part178.TopSurface = Enum.SurfaceType.Smooth
  2243. Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2244. Part178.Position = Vector3.new(1434.84229, 48.626503, -1310.87183)
  2245. Part178.Orientation = Vector3.new(-90, 90, 0)
  2246. Part178.Color = Color3.new(0.843137, 0.772549, 0.603922)
  2247. SpecialMesh179.Parent = Part178
  2248. SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
  2249. SpecialMesh179.MeshType = Enum.MeshType.Brick
  2250. SpecialMesh179.Scale = Vector3.new(0.287159115, 0.781710386, 0.175486133)
  2251. Part180.Parent = Tool0
  2252. Part180.Material = Enum.Material.SmoothPlastic
  2253. Part180.BrickColor = BrickColor.new("Black")
  2254. Part180.Transparency = 1
  2255. Part180.Rotation = Vector3.new(15.0099993, 62.4199982, 2.98000002)
  2256. Part180.Anchored = true
  2257. Part180.CanCollide = false
  2258. Part180.FormFactor = Enum.FormFactor.Custom
  2259. Part180.Size = Vector3.new(0.34867835, 0.34867838, 0.34867838)
  2260. 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)
  2261. Part180.BottomSurface = Enum.SurfaceType.Smooth
  2262. Part180.TopSurface = Enum.SurfaceType.Smooth
  2263. Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
  2264. Part180.Position = Vector3.new(1435.07532, 49.0545235, -1310.66675)
  2265. Part180.Orientation = Vector3.new(6.88999987, 63.2299995, 16.3400002)
  2266. Part180.Color = Color3.new(0.105882, 0.164706, 0.207843)
  2267. CylinderMesh181.Parent = Part180
  2268. CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  2269. CylinderMesh181.Scale = Vector3.new(0.170207247, 0.75377506, 0.170207277)
  2270. Part182.Parent = Tool0
  2271. Part182.Material = Enum.Material.SmoothPlastic
  2272. Part182.BrickColor = BrickColor.new("Dark stone grey")
  2273. Part182.Transparency = 1
  2274. Part182.Rotation = Vector3.new(180, 0, 90)
  2275. Part182.Anchored = true
  2276. Part182.CanCollide = false
  2277. Part182.FormFactor = Enum.FormFactor.Custom
  2278. Part182.Size = Vector3.new(0.282429457, 0.282429457, 0.282429516)
  2279. Part182.CFrame = CFrame.new(1433.90967, 48.9232292, -1310.87183, 0, -1, -0, -1, 0, -0, 0, 0, -1)
  2280. Part182.BottomSurface = Enum.SurfaceType.Smooth
  2281. Part182.TopSurface = Enum.SurfaceType.Smooth
  2282. Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2283. Part182.Position = Vector3.new(1433.90967, 48.9232292, -1310.87183)
  2284. Part182.Orientation = Vector3.new(0, -180, -90)
  2285. Part182.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2286. CylinderMesh183.Parent = Part182
  2287. CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  2288. CylinderMesh183.Scale = Vector3.new(0.870549083, 0.0300189219, 1.50094521)
  2289. Part184.Parent = Tool0
  2290. Part184.Material = Enum.Material.SmoothPlastic
  2291. Part184.BrickColor = BrickColor.new("Dark stone grey")
  2292. Part184.Transparency = 1
  2293. Part184.Rotation = Vector3.new(-90, 75, 90)
  2294. Part184.Anchored = true
  2295. Part184.CanCollide = false
  2296. Part184.FormFactor = Enum.FormFactor.Custom
  2297. Part184.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2298. Part184.CFrame = CFrame.new(1435.92761, 48.4653969, -1310.87183, 0, -0.258818984, 0.965925872, 0, 0.965925872, 0.258818984, -1, 0, 0)
  2299. Part184.BottomSurface = Enum.SurfaceType.Smooth
  2300. Part184.TopSurface = Enum.SurfaceType.Smooth
  2301. Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2302. Part184.Position = Vector3.new(1435.92761, 48.4653969, -1310.87183)
  2303. Part184.Orientation = Vector3.new(-15, 90, 0)
  2304. Part184.Color = Color3.new(0.388235, 0.372549, 0.384314)
  2305. SpecialMesh185.Parent = Part184
  2306. SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
  2307. SpecialMesh185.MeshType = Enum.MeshType.Brick
  2308. SpecialMesh185.Scale = Vector3.new(0.19143942, 0.909336686, 0.239299268)
  2309. Part186.Parent = Tool0
  2310. Part186.Material = Enum.Material.SmoothPlastic
  2311. Part186.Transparency = 1
  2312. Part186.Rotation = Vector3.new(-90, 0, 90)
  2313. Part186.Anchored = true
  2314. Part186.CanCollide = false
  2315. Part186.FormFactor = Enum.FormFactor.Custom
  2316. Part186.Size = Vector3.new(0.531440914, 0.531440973, 0.531440973)
  2317. Part186.CFrame = CFrame.new(1434.48193, 49.1648102, -1310.87183, 0, -1, 0, 0, 0, 1, -1, 0, 0)
  2318. Part186.BottomSurface = Enum.SurfaceType.Smooth
  2319. Part186.TopSurface = Enum.SurfaceType.Smooth
  2320. Part186.Position = Vector3.new(1434.48193, 49.1648102, -1310.87183)
  2321. Part186.Orientation = Vector3.new(-90, 90, 0)
  2322. SpecialMesh187.Parent = Part186
  2323. SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
  2324. SpecialMesh187.MeshType = Enum.MeshType.Brick
  2325. SpecialMesh187.Scale = Vector3.new(0.0319065675, 0.0319065675, 0.223345816)
  2326. IntValue188.Name = "Ammo"
  2327. IntValue188.Parent = Tool0
  2328. IntValue188.Value = 25
  2329. IntValue189.Name = "ClipSize"
  2330. IntValue189.Parent = Tool0
  2331. IntValue189.Value = 25
  2332. IntValue190.Name = "LethalGrenades"
  2333. IntValue190.Parent = Tool0
  2334. IntValue190.Value = 15
  2335. IntValue191.Name = "StoredAmmo"
  2336. IntValue191.Parent = Tool0
  2337. IntValue191.Value = 400
  2338. IntValue192.Name = "TacticalGrenades"
  2339. IntValue192.Parent = Tool0
  2340. IntValue192.Value = 15
  2341. Script193.Name = "serverMain"
  2342. Script193.Parent = Tool0
  2343. table.insert(cors,sandbox(Script193,function()
  2344. local Plyr = script:WaitForChild("Plyr")
  2345.  
  2346. local Gun = script.Parent
  2347. local Handle = Gun:WaitForChild("Handle")
  2348.  
  2349. local V3 = Vector3.new
  2350. local CF, CFANG = CFrame.new, CFrame.Angles
  2351.  
  2352. local RAD = math.rad
  2353.  
  2354. local numLerp = function(A, B, Alpha)
  2355. return A + (B - A) * Alpha
  2356. end
  2357.  
  2358. local inList = function(Element, List)
  2359. for _, v in pairs(List) do
  2360. if v == Element then
  2361. return true
  2362. end
  2363. end
  2364. return false
  2365. end
  2366.  
  2367. local getObject = function(Model, Class, Name)
  2368. for _, v in pairs(Model:GetChildren()) do
  2369. if v:IsA(Class) and v.Name == Name then
  2370. return v
  2371. end
  2372. end
  2373. return nil
  2374. end
  2375.  
  2376. ----------------------------------------------------------------------
  2377. --------------------[ IGNORE MODEL HANDLING ]-------------------------
  2378. ----------------------------------------------------------------------
  2379.  
  2380. wait(math.random(0, 20) / 40) --This is to prevent more than one ignoreModel from being created
  2381.  
  2382. if _G.ignoreCode then --If the ignoreCode already exists, then the script creates the ignoreModel
  2383. --[[
  2384. The purpose of this is so that every gun in a game that uses this gun kit will share one ignoreModel. That way,
  2385. bullet trails, bullet holes, and other fake arms will be ignored by the gun which makes the bullets more likely to
  2386. hit a character part
  2387. --]]
  2388. if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
  2389. local ignoreModel = Instance.new("Model")
  2390. ignoreModel.Name = "ignoreModel_".._G.ignoreCode
  2391. ignoreModel.Parent = game.Workspace
  2392.  
  2393. local grenadeFolder = Instance.new("Model")
  2394. grenadeFolder.Name = "grenadeFolder"
  2395. grenadeFolder.Parent = ignoreModel
  2396.  
  2397. spawn(function()
  2398. while true do
  2399. ignoreModel.Parent = game.Workspace
  2400. grenadeFolder.Parent = ignoreModel
  2401. wait(1 / 20)
  2402. end
  2403. end)
  2404. end
  2405.  
  2406. script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
  2407. else
  2408. --[[
  2409. If there isn't already an ignoreCode, then this creates one. The purpose of it being random is so that if there is
  2410. an ignoreModel for something else in the game, the script won't end up placing the ignored objects in that ignoreModel
  2411. --]]
  2412. _G.ignoreCode = math.random(1, 1e4)
  2413.  
  2414. if (not game.Workspace:FindFirstChild("ignoreModel_".._G.ignoreCode)) then
  2415. local ignoreModel = Instance.new("Model")
  2416. ignoreModel.Name = "ignoreModel_".._G.ignoreCode
  2417. ignoreModel.Parent = game.Workspace
  2418.  
  2419. local grenadeFolder = Instance.new("Model")
  2420. grenadeFolder.Name = "grenadeFolder"
  2421. grenadeFolder.Parent = ignoreModel
  2422.  
  2423. spawn(function()
  2424. while true do
  2425. ignoreModel.Parent = game.Workspace
  2426. grenadeFolder.Parent = ignoreModel
  2427. wait(1 / 20)
  2428. end
  2429. end)
  2430. end
  2431.  
  2432. script.Parent:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value = _G.ignoreCode
  2433. end
  2434.  
  2435. spawn(function()
  2436. --[[
  2437. This function deletes any Player Folders that were left in the ignoreModel because the player left the game without
  2438. deselecting the Gun first
  2439. --]]
  2440. repeat wait() until _G.ignoreCode
  2441. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_".._G.ignoreCode)
  2442. while true do
  2443. for _, gunIgnore in pairs(ignoreModel:GetChildren()) do
  2444. if gunIgnore.Name ~= "grenadeFolder" then
  2445. if (not game.Players:FindFirstChild(gunIgnore.Name:sub(11))) then
  2446. gunIgnore:Destroy()
  2447. end
  2448. end
  2449. end
  2450. wait(1 / 20)
  2451. end
  2452. end)
  2453.  
  2454. ----------------------------------------------------------------------
  2455. --------------------[ RESET CAMERA ]----------------------------------
  2456. ----------------------------------------------------------------------
  2457.  
  2458. Gun.ChildRemoved:connect(function(Child)
  2459. if Child == Handle and Plyr.Value then
  2460. local ignoreCode = Gun:WaitForChild("clientMain"):WaitForChild("ignoreCode").Value
  2461. local resetCam = script:WaitForChild("resetCam")
  2462. resetCam:WaitForChild("ignoreCode").Value = ignoreCode
  2463. resetCam.Parent = Plyr.Value.PlayerGui
  2464. end
  2465. end)
  2466.  
  2467. ----------------------------------------------------------------------
  2468. --------------------[ GET WELD CFRAMES ]------------------------------
  2469. ----------------------------------------------------------------------
  2470.  
  2471. for _, v in pairs(Gun:GetChildren()) do
  2472. if v:IsA("BasePart") and v ~= Handle then
  2473. if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
  2474. if (not v:FindFirstChild("weldCF")) then
  2475. local weldCF = Instance.new("CFrameValue")
  2476. weldCF.Name = "weldCF"
  2477. weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
  2478. weldCF.Parent = v
  2479. end
  2480. if string.sub(v.Name, 1, 3) == "Mag" then
  2481. if (not v:FindFirstChild("magTrans")) then
  2482. local magTrans = Instance.new("NumberValue")
  2483. magTrans.Name = "magTrans"
  2484. magTrans.Value = v.Transparency
  2485. magTrans.Parent = v
  2486. end
  2487. end
  2488. v.Anchored = true
  2489. v.CanCollide = false
  2490. end
  2491. end
  2492. Handle.Anchored = false
  2493. Handle.CanCollide = true
  2494.  
  2495. ----------------------------------------------------------------------
  2496. --------------------[ GUNSETUP HANDLING ]-----------------------------
  2497. ----------------------------------------------------------------------
  2498.  
  2499. local gunSetup = script:WaitForChild("gunSetup")
  2500. function gunSetup.OnServerInvoke(Player, Vars)
  2501.  
  2502. --------------------[ CREATING IGNORE MODELS ]--------------------------------
  2503.  
  2504. local gunIgnore = Instance.new("Model")
  2505. gunIgnore.Name = "gunIgnore_"..Player.Name
  2506. gunIgnore.Parent = Vars.ignoreModel
  2507.  
  2508. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  2509.  
  2510. Vars.Humanoid.AutoRotate = false
  2511.  
  2512. Vars.Shoulders.Right.Part1 = nil
  2513. Vars.Shoulders.Left.Part1 = nil
  2514.  
  2515. local playerFolder = Instance.new("Model")
  2516. playerFolder.Name = "playerFolder"
  2517. playerFolder.Parent = gunIgnore
  2518.  
  2519. local headBase = Instance.new("Part")
  2520. headBase.Transparency = 1
  2521. headBase.Name = "headBase"
  2522. headBase.CanCollide = false
  2523. headBase.FormFactor = Enum.FormFactor.Custom
  2524. headBase.Size = V3(0.2, 0.2, 0.2)
  2525. headBase.BottomSurface = Enum.SurfaceType.Smooth
  2526. headBase.TopSurface = Enum.SurfaceType.Smooth
  2527. headBase.Parent = playerFolder
  2528.  
  2529. local headWeld = Instance.new("Weld")
  2530. headWeld.Part0 = Vars.Torso
  2531. headWeld.Part1 = headBase
  2532. headWeld.C0 = CF(0, 1.5, 0)
  2533. headWeld.Parent = Vars.Torso
  2534.  
  2535. local headWeld2 = Instance.new("Weld")
  2536. headWeld2.Part0 = headBase
  2537. headWeld2.Part1 = Vars.Head
  2538. headWeld2.Parent = headBase
  2539.  
  2540. local animBase = Instance.new("Part")
  2541. animBase.Transparency = 1
  2542. animBase.Name = "animBase"
  2543. animBase.CanCollide = false
  2544. animBase.FormFactor = Enum.FormFactor.Custom
  2545. animBase.Size = V3(0.2, 0.2, 0.2)
  2546. animBase.BottomSurface = Enum.SurfaceType.Smooth
  2547. animBase.TopSurface = Enum.SurfaceType.Smooth
  2548. animBase.Parent = playerFolder
  2549.  
  2550. local animWeld = Instance.new("Weld")
  2551. animWeld.Part0 = animBase
  2552. animWeld.Part1 = headBase
  2553. animWeld.Parent = animBase
  2554.  
  2555. local armBase = Instance.new("Part")
  2556. armBase.Transparency = 1
  2557. armBase.Name = "ArmBase"
  2558. armBase.CanCollide = false
  2559. armBase.FormFactor = Enum.FormFactor.Custom
  2560. armBase.Size = V3(0.2, 0.2, 0.2)
  2561. armBase.BottomSurface = Enum.SurfaceType.Smooth
  2562. armBase.TopSurface = Enum.SurfaceType.Smooth
  2563. armBase.Parent = playerFolder
  2564.  
  2565. local ABWeld = Instance.new("Weld")
  2566. ABWeld.Part0 = armBase
  2567. ABWeld.Part1 = animBase
  2568. ABWeld.Parent = armBase
  2569.  
  2570. local LArmBase = Instance.new("Part")
  2571. LArmBase.Transparency = 1
  2572. LArmBase.Name = "LArmBase"
  2573. LArmBase.CanCollide = false
  2574. LArmBase.FormFactor = Enum.FormFactor.Custom
  2575. LArmBase.Size = V3(0.2, 0.2, 0.2)
  2576. LArmBase.BottomSurface = Enum.SurfaceType.Smooth
  2577. LArmBase.TopSurface = Enum.SurfaceType.Smooth
  2578. LArmBase.Parent = playerFolder
  2579.  
  2580. local RArmBase = Instance.new("Part")
  2581. RArmBase.Transparency = 1
  2582. RArmBase.Name = "RArmBase"
  2583. RArmBase.CanCollide = false
  2584. RArmBase.FormFactor = Enum.FormFactor.Custom
  2585. RArmBase.Size = V3(0.2, 0.2, 0.2)
  2586. RArmBase.BottomSurface = Enum.SurfaceType.Smooth
  2587. RArmBase.TopSurface = Enum.SurfaceType.Smooth
  2588. RArmBase.Parent = playerFolder
  2589.  
  2590. local LWeld = Instance.new("Weld")
  2591. LWeld.Name = "LWeld"
  2592. LWeld.Part0 = armBase
  2593. LWeld.Part1 = LArmBase
  2594. LWeld.C0 = Vars.armC0[1]
  2595. LWeld.C1 = Vars.leftArmC1
  2596. LWeld.Parent = armBase
  2597.  
  2598. local RWeld = Instance.new("Weld")
  2599. RWeld.Name = "RWeld"
  2600. RWeld.Part0 = armBase
  2601. RWeld.Part1 = RArmBase
  2602. RWeld.C0 = Vars.armC0[2]
  2603. RWeld.C1 = Vars.rightArmC1
  2604. RWeld.Parent = armBase
  2605.  
  2606. local LWeld2 = Instance.new("Weld")
  2607. LWeld2.Name = "LWeld"
  2608. LWeld2.Part0 = LArmBase
  2609. LWeld2.Part1 = Vars.LArm
  2610. LWeld2.Parent = LArmBase
  2611.  
  2612. local RWeld2 = Instance.new("Weld")
  2613. RWeld2.Name = "RWeld"
  2614. RWeld2.Part0 = RArmBase
  2615. RWeld2.Part1 = Vars.RArm
  2616. RWeld2.Parent = RArmBase
  2617.  
  2618. local LLegWeld = Instance.new("Weld")
  2619. LLegWeld.Name = "LLegWeld"
  2620. LLegWeld.Part0 = Vars.Torso
  2621. LLegWeld.Part1 = nil
  2622. LLegWeld.C0 = CF(-0.5, -2, 0)
  2623. LLegWeld.Parent = Vars.Torso
  2624.  
  2625. local RLegWeld = Instance.new("Weld")
  2626. RLegWeld.Name = "RLegWeld"
  2627. RLegWeld.Part0 = Vars.Torso
  2628. RLegWeld.Part1 = nil
  2629. RLegWeld.C0 = CF(0.5, -2, 0)
  2630. RLegWeld.Parent = Vars.Torso
  2631.  
  2632. for _, Tab in pairs(Vars.gunParts) do
  2633. Tab.Obj.Anchored = false
  2634. local Weld = Instance.new("Weld")
  2635. Weld.Name = "mainWeld"
  2636. Weld.Part0 = Vars.Handle
  2637. Weld.Part1 = Tab.Obj
  2638. Weld.C0 = Tab.Obj.weldCF.Value
  2639. Weld.Parent = Vars.Handle
  2640. Tab.Weld = Weld
  2641. end
  2642.  
  2643. return gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, Vars.gunParts
  2644. end
  2645.  
  2646. ----------------------------------------------------------------------
  2647. --------------------[ TWEENJOINT HANDLING ]---------------------------
  2648. ----------------------------------------------------------------------
  2649.  
  2650. local createTweenIndicator = script:WaitForChild("createTweenIndicator")
  2651. function createTweenIndicator.OnServerInvoke(_, Joint, newCode)
  2652. local tweenIndicator = nil
  2653. if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
  2654. tweenIndicator = Instance.new("IntValue")
  2655. tweenIndicator.Name = "tweenCode"
  2656. tweenIndicator.Value = newCode
  2657. tweenIndicator.Parent = Joint
  2658. else
  2659. tweenIndicator = Joint.tweenCode
  2660. tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
  2661. end
  2662. return tweenIndicator
  2663. end
  2664.  
  2665. local lerpCF = script:WaitForChild("lerpCF")
  2666. function lerpCF.OnServerInvoke(_, Joint, Prop, startCF, endCF, Alpha)
  2667. spawn(function()
  2668. Joint[Prop] = startCF:lerp(endCF, Alpha)
  2669. end)
  2670. end
  2671.  
  2672. local deleteTweenIndicator = script:WaitForChild("deleteTweenIndicator")
  2673. function deleteTweenIndicator.OnServerInvoke(_, tweenIndicator, newCode)
  2674. if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
  2675. tweenIndicator:Destroy()
  2676. end
  2677. end
  2678.  
  2679. ----------------------------------------------------------------------
  2680. --------------------[ BULLET IMPACT HANDLING ]------------------------
  2681. ----------------------------------------------------------------------
  2682.  
  2683. local createBulletImpact = script:WaitForChild("createBulletImpact")
  2684. createBulletImpact.OnServerEvent:connect(function(_, H, P, N, D, humanoidFound, gunIgnore, S)
  2685. local surfaceCF = CF(P, P + N)
  2686. ----------------------------------------------------------------------------------
  2687. --Creating the bullet hole--------------------------------------------------------
  2688. ----------------------------------------------------------------------------------
  2689. if S.bulletHoles and (not humanoidFound) then
  2690. local Hole = Instance.new("Part")
  2691. Hole.Transparency = 1
  2692. Hole.Anchored = true
  2693. Hole.CanCollide = false
  2694. Hole.FormFactor = "Custom"
  2695. Hole.Size = V3(1, 1, 0.2)
  2696. Hole.TopSurface = 0
  2697. Hole.BottomSurface = 0
  2698. local Mesh = Instance.new("BlockMesh")
  2699. Mesh.Offset = V3(0, 0, -0.05)
  2700. Mesh.Scale = V3(S.holeSettings.Size, S.holeSettings.Size, 0)
  2701. Mesh.Parent = Hole
  2702. local Decal = Instance.new("Decal")
  2703. Decal.Face = Enum.NormalId.Front
  2704. Decal.Texture = S.holeSettings.Texture
  2705. Decal.Parent = Hole
  2706. Hole.Parent = gunIgnore
  2707. Hole.CFrame = surfaceCF
  2708. if (not H.Anchored) then
  2709. local Weld = Instance.new("Weld", Hole)
  2710. Weld.Part0 = H
  2711. Weld.Part1 = Hole
  2712. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2713. Hole.Anchored = false
  2714. end
  2715. delay(S.holeSettings.visibleTime, function()
  2716. if S.holeSettings.disappearTime > 0 then
  2717. local t0 = tick()
  2718. while true do
  2719. local Alpha = math.min((tick() - t0) / S.holeSettings.disappearTime, 1)
  2720. Decal.Transparency = numLerp(0, 1, Alpha)
  2721. if Alpha == 1 then break end
  2722. wait()
  2723. end
  2724. Hole:Destroy()
  2725. else
  2726. Hole:Destroy()
  2727. end
  2728. end)
  2729. end
  2730. ----------------------------------------------------------------------------------
  2731. --Creating the spark effect-------------------------------------------------------
  2732. ----------------------------------------------------------------------------------
  2733. if S.bulletSparks and (not humanoidFound) and inList(H.Material, S.sparkSettings.Materials) then
  2734. local Sparks = Instance.new("Part")
  2735. Sparks.Transparency = 1
  2736. Sparks.Anchored = true
  2737. Sparks.CanCollide = false
  2738. Sparks.FormFactor = "Custom"
  2739. Sparks.Size = V3(1, 1, 1)
  2740. Sparks.TopSurface = 0
  2741. Sparks.BottomSurface = 0
  2742.  
  2743. local Particles = nil
  2744. if S.customSparks then
  2745. Particles = getObject(game.ServerStorage, "ParticleEmitter", "bulletSpark"):Clone()
  2746. else
  2747. Particles = Instance.new("ParticleEmitter")
  2748. Particles.Color = ColorSequence.new(S.sparkSettings.Color.Start, S.sparkSettings.Color.End)
  2749. Particles.LightEmission = 1
  2750. Particles.Size = NumberSequence.new(
  2751. {
  2752. NumberSequenceKeypoint.new(0, S.sparkSettings.Size, 0.25);
  2753. NumberSequenceKeypoint.new(1, 0);
  2754. }
  2755. )
  2756. Particles.Texture = S.sparkSettings.Texture
  2757. Particles.Transparency = NumberSequence.new(0)
  2758. Particles.Acceleration = V3(0, -196.2, 0)
  2759. Particles.EmissionDirection = Enum.NormalId.Front
  2760. Particles.Lifetime = NumberRange.new(S.sparkSettings.Lifetime - 0.05, S.sparkSettings.Lifetime + 0.05)
  2761. Particles.Rate = S.sparkSettings.Rate
  2762. Particles.Rotation = NumberRange.new(0, 360)
  2763. Particles.Speed = NumberRange.new(S.sparkSettings.Speed - 5, S.sparkSettings.Speed + 5)
  2764. Particles.VelocitySpread = S.sparkSettings.Spread
  2765. end
  2766. Particles.Parent = Sparks
  2767.  
  2768. Sparks.Parent = gunIgnore
  2769. Sparks.CFrame = surfaceCF
  2770. if (not H.Anchored) then
  2771. local Weld = Instance.new("Weld", Sparks)
  2772. Weld.Part0 = H
  2773. Weld.Part1 = Sparks
  2774. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2775. Sparks.Anchored = false
  2776. end
  2777. delay(0.1, function()
  2778. Particles.Enabled = false
  2779. wait(Particles.Lifetime.Max)
  2780. Sparks:Destroy()
  2781. end)
  2782. end
  2783. ----------------------------------------------------------------------------------
  2784. --Creating the smoke effect-------------------------------------------------------
  2785. ----------------------------------------------------------------------------------
  2786. if S.bulletSmoke and (not humanoidFound) then
  2787. local Smoke = Instance.new("Part")
  2788. Smoke.Transparency = 1
  2789. Smoke.Anchored = true
  2790. Smoke.CanCollide = false
  2791. Smoke.FormFactor = "Custom"
  2792. Smoke.Size = V3(1, 1, 1)
  2793. Smoke.TopSurface = 0
  2794. Smoke.BottomSurface = 0
  2795.  
  2796. local Particles = Instance.new("ParticleEmitter")
  2797. Particles.Color = ColorSequence.new(S.smokeSettings.objColor and H.Color or S.smokeSettings.Color)
  2798. Particles.LightEmission = 0
  2799. Particles.Size = NumberSequence.new(
  2800. {
  2801. NumberSequenceKeypoint.new(0, S.smokeSettings.Size.Start);
  2802. NumberSequenceKeypoint.new(1, S.smokeSettings.Size.End);
  2803. }
  2804. )
  2805. Particles.Texture = S.smokeSettings.Texture
  2806. Particles.Transparency = NumberSequence.new(
  2807. {
  2808. NumberSequenceKeypoint.new(0, S.smokeSettings.startTransparency);
  2809. NumberSequenceKeypoint.new(0.5, 0.75 * S.smokeSettings.startTransparency + 0.25);
  2810. NumberSequenceKeypoint.new(1, 1);
  2811. }
  2812. )
  2813. Particles.Acceleration = V3(0, -196.2, 0)
  2814. Particles.EmissionDirection = Enum.NormalId.Front
  2815. Particles.Lifetime = NumberRange.new(S.smokeSettings.Lifetime - 0.05, S.smokeSettings.Lifetime + 0.05)
  2816. Particles.Rate = S.smokeSettings.Rate
  2817. Particles.Rotation = NumberRange.new(0, 360)
  2818. Particles.RotSpeed = NumberRange.new(10)
  2819. Particles.Speed = NumberRange.new(S.smokeSettings.Speed - 5, S.smokeSettings.Speed + 5)
  2820. Particles.VelocitySpread = S.smokeSettings.Spread
  2821. Particles.Parent = Smoke
  2822.  
  2823. Smoke.Parent = gunIgnore
  2824. Smoke.CFrame = surfaceCF
  2825. if (not H.Anchored) then
  2826. local Weld = Instance.new("Weld", Smoke)
  2827. Weld.Part0 = H
  2828. Weld.Part1 = Smoke
  2829. Weld.C0 = H.CFrame:toObjectSpace(surfaceCF)
  2830. Smoke.Anchored = false
  2831. end
  2832. delay(0.1, function()
  2833. Particles.Enabled = false
  2834. wait(S.smokeSettings.Lifetime + 0.05)
  2835. Smoke:Destroy()
  2836. end)
  2837. end
  2838. end)
  2839.  
  2840. ----------------------------------------------------------------------
  2841. --------------------[ SHOCKWAVE HANDLING ]----------------------------
  2842. ----------------------------------------------------------------------
  2843.  
  2844. local createShockwave = script:WaitForChild("createShockwave")
  2845. createShockwave.OnServerEvent:connect(function(_, Center, Radius, gunIgnore, S)
  2846. local Shockwave = Instance.new("Part")
  2847. Shockwave.BrickColor = S.shockwaveSettings.Color
  2848. Shockwave.Material = Enum.Material.SmoothPlastic
  2849. Shockwave.Name = "Shockwave"
  2850. Shockwave.Anchored = true
  2851. Shockwave.CanCollide = false
  2852. Shockwave.FormFactor = Enum.FormFactor.Symmetric
  2853. Shockwave.Size = V3(1, 1, 1)
  2854. Shockwave.BottomSurface = Enum.SurfaceType.Smooth
  2855. Shockwave.TopSurface = Enum.SurfaceType.Smooth
  2856. local Mesh = Instance.new("SpecialMesh")
  2857. Mesh.MeshType = Enum.MeshType.Sphere
  2858. Mesh.Scale = V3()
  2859. Mesh.Parent = Shockwave
  2860. Shockwave.Parent = gunIgnore
  2861. Shockwave.CFrame = CF(Center)
  2862. spawn(function()
  2863. local t0 = tick()
  2864. while true do
  2865. local Alpha = math.min((tick() - t0) / S.shockwaveSettings.Duration, 1)
  2866. local Scale = 2 * Radius * Alpha
  2867. Mesh.Scale = V3(Scale, Scale, Scale)
  2868. Shockwave.Transparency = Alpha
  2869. if Alpha == 1 then break end
  2870. wait()
  2871. end
  2872. Shockwave:Destroy()
  2873. end)
  2874. end)
  2875.  
  2876. ----------------------------------------------------------------------
  2877. --------------------[ BLOOD HANDLING ]--------------------------------
  2878. ----------------------------------------------------------------------
  2879.  
  2880. local createBlood = script:WaitForChild("createBlood")
  2881. createBlood.OnServerEvent:connect(function(_, H, P, D, gunIgnore, S)
  2882. local bloodCF = CF(P, P + D) * CFANG(RAD(-90), 0, 0)
  2883. local Blood = Instance.new("Part")
  2884. Blood.Transparency = 1
  2885. Blood.Anchored = true
  2886. Blood.CanCollide = false
  2887. Blood.FormFactor = "Custom"
  2888. Blood.Size = V3(0.2, 1, 0.2)
  2889. Blood.TopSurface = 0
  2890. Blood.BottomSurface = 0
  2891.  
  2892. local Particles = Instance.new("ParticleEmitter")
  2893. Particles.Color = ColorSequence.new(S.bloodSettings.Color)
  2894. Particles.LightEmission = 0
  2895. Particles.Size = NumberSequence.new(S.bloodSettings.Size)
  2896. Particles.Texture = S.bloodSettings.Texture
  2897. Particles.Transparency = NumberSequence.new(
  2898. {
  2899. NumberSequenceKeypoint.new(0, S.bloodSettings.startTransparency);
  2900. NumberSequenceKeypoint.new(1, 1);
  2901. }
  2902. )
  2903. Particles.EmissionDirection = Enum.NormalId.Top
  2904. Particles.Lifetime = NumberRange.new(S.bloodSettings.Lifetime - 0.05, S.bloodSettings.Lifetime + 0.05)
  2905. Particles.Rate = S.bloodSettings.Rate
  2906. Particles.Rotation = NumberRange.new(0, 90)
  2907. Particles.Speed = NumberRange.new(S.bloodSettings.Speed)
  2908. Particles.VelocitySpread = S.bloodSettings.Spread
  2909. Particles.Parent = Blood
  2910.  
  2911. Blood.Parent = gunIgnore
  2912. Blood.CFrame = bloodCF
  2913. if (not H.Anchored) then
  2914. local Weld = Instance.new("Weld", Blood)
  2915. Weld.Part0 = H
  2916. Weld.Part1 = Blood
  2917. Weld.C0 = H.CFrame:toObjectSpace(bloodCF)
  2918. Blood.Anchored = false
  2919. end
  2920. delay(0.15, function()
  2921. Particles.Enabled = false
  2922. wait(S.bloodSettings.Lifetime + 0.05)
  2923. Blood:Destroy()
  2924. end)
  2925. end)
  2926.  
  2927. ----------------------------------------------------------------------
  2928. --------------------[ TRAIL HANDLING ]--------------------------------
  2929. ----------------------------------------------------------------------
  2930.  
  2931. local createTrail = script:WaitForChild("createTrail")
  2932. createTrail.OnServerEvent:connect(function(_, Origin, P, gunIgnore, S)
  2933. local Trail = Instance.new("Part")
  2934. Trail.BrickColor = S.trailSettings.Color
  2935. Trail.Transparency = S.trailSettings.Transparency
  2936. Trail.Anchored = true
  2937. Trail.CanCollide = false
  2938. Trail.Size = V3(1, 1, 1)
  2939. local Mesh = Instance.new("CylinderMesh")
  2940. Mesh.Offset = V3(0, -(P - Origin).magnitude / 2, 0)
  2941. Mesh.Scale = V3(S.trailSettings.Thickness, (P - Origin).magnitude, S.trailSettings.Thickness)
  2942. Mesh.Parent = Trail
  2943. Trail.Parent = gunIgnore
  2944. Trail.CFrame = CF(Origin, P) * CFANG(RAD(90), 0, 0)
  2945. delay(S.trailSettings.visibleTime, function()
  2946. if S.trailSettings.disappearTime > 0 then
  2947. local t0 = tick()
  2948. while true do
  2949. local Alpha = math.min((tick() - t0) / S.trailSettings.disappearTime, 1)
  2950. Trail.Transparency = numLerp(S.trailSettings.Transparency, 1, Alpha)
  2951. if Alpha == 1 then break end
  2952. wait()
  2953. end
  2954. Trail:Destroy()
  2955. else
  2956. Trail:Destroy()
  2957. end
  2958. end)
  2959. end)
  2960. end))
  2961. ObjectValue194.Name = "Plyr"
  2962. ObjectValue194.Parent = Script193
  2963. RemoteFunction195.Name = "getWeldCF"
  2964. RemoteFunction195.Parent = Script193
  2965. RemoteFunction196.Name = "gunSetup"
  2966. RemoteFunction196.Parent = Script193
  2967. RemoteFunction197.Name = "tweenJoint"
  2968. RemoteFunction197.Parent = Script193
  2969. RemoteEvent198.Name = "onRenderStep"
  2970. RemoteEvent198.Parent = Script193
  2971. RemoteFunction199.Name = "createTweenIndicator"
  2972. RemoteFunction199.Parent = Script193
  2973. RemoteFunction200.Name = "deleteTweenIndicator"
  2974. RemoteFunction200.Parent = Script193
  2975. RemoteFunction201.Name = "lerpCF"
  2976. RemoteFunction201.Parent = Script193
  2977. LocalScript202.Name = "resetCam"
  2978. LocalScript202.Parent = Script193
  2979. table.insert(cors,sandbox(LocalScript202,function()
  2980. repeat wait() until game.Players.LocalPlayer.Character
  2981.  
  2982. local Player = game.Players.LocalPlayer
  2983. local Char = Player.Character
  2984. local Humanoid = Char:WaitForChild("Humanoid")
  2985.  
  2986. local Cam = game.Workspace.CurrentCamera
  2987. local UIS = game:GetService("UserInputService")
  2988.  
  2989. local ignoreCode = script:WaitForChild("ignoreCode")
  2990. repeat wait() until ignoreCode.Value ~= 0
  2991. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  2992. local gunIgnore = ignoreModel:FindFirstChild("gunIgnore_"..Player.Name)
  2993.  
  2994. Cam.FieldOfView = 70
  2995. Cam.CameraType = Enum.CameraType.Custom
  2996. Cam:ClearAllChildren()
  2997.  
  2998. UIS.MouseBehavior = Enum.MouseBehavior.Default
  2999. UIS.MouseIconEnabled = true
  3000.  
  3001. Player.CameraMode = Enum.CameraMode.Classic
  3002.  
  3003. Humanoid.WalkSpeed = 16
  3004. Humanoid.AutoRotate = true
  3005.  
  3006. if gunIgnore then gunIgnore:Destroy() end
  3007. end))
  3008. IntValue203.Name = "ignoreCode"
  3009. IntValue203.Parent = LocalScript202
  3010. RemoteEvent204.Name = "createBulletImpact"
  3011. RemoteEvent204.Parent = Script193
  3012. RemoteEvent205.Name = "createShockwave"
  3013. RemoteEvent205.Parent = Script193
  3014. RemoteEvent206.Name = "createBlood"
  3015. RemoteEvent206.Parent = Script193
  3016. RemoteEvent207.Name = "createTrail"
  3017. RemoteEvent207.Parent = Script193
  3018. LocalScript208.Name = "clientMain"
  3019. LocalScript208.Parent = Tool0
  3020. table.insert(cors,sandbox(LocalScript208,function()
  3021. --[[
  3022. Kit By TurboFusion
  3023. Remake By MuYhEt & Xander521
  3024. --]]
  3025. --------------------------------------------------------------------------------------
  3026. --------------------[ CHARACTER LOADING ]---------------------------------------------
  3027. --------------------------------------------------------------------------------------
  3028.  
  3029. repeat wait() until game.Players.LocalPlayer.Character
  3030. repeat wait() until game.Players.LocalPlayer.Character:IsDescendantOf(game.Workspace)
  3031. wait(1 / 20)
  3032.  
  3033. --------------------------------------------------------------------------------------
  3034. --------------------[ IGNORE MODEL ]--------------------------------------------------
  3035. --------------------------------------------------------------------------------------
  3036.  
  3037. local ignoreCode = script:WaitForChild("ignoreCode")
  3038.  
  3039. repeat wait() until ignoreCode.Value ~= 0
  3040.  
  3041. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  3042.  
  3043. local grenadeFolder = ignoreModel:WaitForChild("grenadeFolder")
  3044.  
  3045. --------------------------------------------------------------------------------------
  3046. --------------------[ CONSTANTS ]-----------------------------------------------------
  3047. --------------------------------------------------------------------------------------
  3048.  
  3049. local Gun = script.Parent
  3050. local serverMain = Gun:WaitForChild("serverMain")
  3051. local Handle = Gun:WaitForChild("Handle")
  3052. local AimPart = Gun:WaitForChild("AimPart")
  3053. local Main = Gun:WaitForChild("Main")
  3054.  
  3055. local Ammo = Gun:WaitForChild("Ammo")
  3056. local ClipSize = Gun:WaitForChild("ClipSize")
  3057. local StoredAmmo = Gun:WaitForChild("StoredAmmo")
  3058.  
  3059. local createTweenIndicator = serverMain:WaitForChild("createTweenIndicator")
  3060. local deleteTweenIndicator = serverMain:WaitForChild("deleteTweenIndicator")
  3061. local getWeldCF = serverMain:WaitForChild("getWeldCF")
  3062. local gunSetup = serverMain:WaitForChild("gunSetup")
  3063. local lerpCF = serverMain:WaitForChild("lerpCF")
  3064. local createBlood = serverMain:WaitForChild("createBlood")
  3065. local createBulletImpact = serverMain:WaitForChild("createBulletImpact")
  3066. local createShockwave = serverMain:WaitForChild("createShockwave")
  3067. local createTrail = serverMain:WaitForChild("createTrail")
  3068.  
  3069. local Particle = {}
  3070. function Particle.new(Prop)
  3071. ----------[ CONSTANTS ]--------------------
  3072.  
  3073. local Cam = workspace.CurrentCamera
  3074. local rayIgnore = Prop.rayIgnore or {} --If the property doesn't exist, then set it to it's default
  3075. local Color = Prop.Color or Color3.new(1, 1, 1)
  3076. local Length = Prop.Length or 1
  3077. local Width = Prop.Width or 1
  3078. local p0 = Prop.p0 or error("Particle.new requires a p0 (origin position) property!", 0) --Give an error message if you don't this
  3079. local v0 = Prop.v0 or error("Particle.new requires a v0 (initial velocity) property!", 0)
  3080. local a0 = Prop.a0 or error("Particle.new requires an a0 (initial acceleration) property!", 0)
  3081.  
  3082. ----------[ VARIABLES ]--------------------
  3083.  
  3084. local Deleted = false
  3085. local p = p0 --Set the position, velocity, and acceleration as the intial conditions
  3086. local v = v0
  3087. local a = a0
  3088. local t = 0
  3089.  
  3090. ----------[ FUNCTIONS ]--------------------
  3091.  
  3092. local function worldWidthToScreenWidth(Width, Depth) --A function I made that gives you a screen width given a world width and depth
  3093. local Center = Cam.CoordinateFrame * CFrame.new(0, 0, -Depth)
  3094. local wp1 = (Center * CFrame.new(0, Width / 2, 0)).p
  3095. local wp2 = (Center * CFrame.new(0, -Width / 2, 0)).p
  3096. local sp1 = Cam:WorldToScreenPoint(wp1) --Use the WorldToScreenPoint method of the camera to get the screen width from the world width
  3097. local sp2 = Cam:WorldToScreenPoint(wp2)
  3098. return (sp1 - sp2).magnitude
  3099. end
  3100.  
  3101. ----------[ MAIN PROGRAM ]-----------------
  3102.  
  3103. local Container = Instance.new("Frame")
  3104. Container.BackgroundTransparency = 1
  3105. Container.Position = UDim2.new()
  3106. Container.Size = UDim2.new()
  3107. local Line = Instance.new("Frame")
  3108. Line.BackgroundColor3 = Color
  3109. Line.BorderSizePixel = 0
  3110. Line.Position = UDim2.new()
  3111. Line.Size = UDim2.new()
  3112. Line.Parent = Container
  3113.  
  3114. return setmetatable(
  3115. {
  3116. delete = function() --This function safely removes the particle
  3117. Container:Destroy()
  3118. Deleted = true
  3119. end
  3120. },
  3121. {
  3122. __index = function(_, Index)
  3123. if Index == "p" or Index == "position" then --Return the world position of the particle
  3124. return (Deleted and nil or p)
  3125. elseif Index == "v" or Index == "velocity" then --Return the world velocity of the particle
  3126. return (Deleted and nil or v)
  3127. elseif Index == "obj" or Index == "object" then --Return the particle frame itself
  3128. return (Deleted and nil or Container)
  3129. else
  3130. error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is called
  3131. end
  3132. end;
  3133.  
  3134. __newindex = function(_, Index, Value)
  3135. if Index == "t" or Index == "time" and (not Deleted) then --Render the particle given a time value
  3136. t = Value
  3137. p = p0 + (v0 * t) + (0.5 * a0 * t * t) --update the position given the time
  3138. v = v0 + (a0 * t) --update the velocity given the time
  3139.  
  3140. local testRay1 = Ray.new(Cam.CoordinateFrame.p, (p + (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
  3141. local testRay2 = Ray.new(Cam.CoordinateFrame.p, (p - (v.unit * Length) / 2) - Cam.CoordinateFrame.p)
  3142. local H1, _ = workspace:FindPartOnRayWithIgnoreList(testRay1, rayIgnore)
  3143. local H2, _ = workspace:FindPartOnRayWithIgnoreList(testRay2, rayIgnore)
  3144.  
  3145. if H1 and H2 then
  3146. Line.Visible = false
  3147. else
  3148. local face1 = Cam:WorldToScreenPoint(p + (v.unit * Length) / 2) --Get the 2 endpoints of the particle in screen space
  3149. local face2 = Cam:WorldToScreenPoint(p - (v.unit * Length) / 2)
  3150. local Center, isVisible = Cam:WorldToScreenPoint(p) --Get the center of the particle in screen space
  3151.  
  3152. local screenLength = (face1 - face2).magnitude
  3153. local screenWidth = worldWidthToScreenWidth(Width, Center.Z)
  3154. 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
  3155.  
  3156. Line.Position = UDim2.new(0, 0, 0, -screenWidth / 2)
  3157. Line.Size = UDim2.new(1, 0, 0, screenWidth)
  3158. Line.Visible = isVisible --Make the particle invisible if the world point isn't on screen
  3159.  
  3160. Container.Position = UDim2.new(
  3161. 0,
  3162. face2.X + (math.cos(Ang) - 1) * screenLength / 2, --Yay trig!
  3163. 0,
  3164. face2.Y + math.sin(Ang) * screenLength / 2
  3165. )
  3166. Container.Size = UDim2.new(0, screenLength, 0, 0)
  3167. Container.Rotation = math.deg(Ang)
  3168. end
  3169. else
  3170. error(Index.." is not a member of Particle!", 0) --Give an error message if any other index is being changed
  3171. end
  3172. end
  3173. }
  3174. )
  3175. end
  3176. local Spring = {}
  3177. function Spring.new(Initial)
  3178. local t0 = tick()
  3179. local p0 = Initial or 0
  3180. local v0 = Initial and Vector3.new() or 0
  3181. local t = Initial or 0
  3182. local d = 1
  3183. local s = 1
  3184.  
  3185. local function positionVelocity(Tick)
  3186. local x = Tick - t0
  3187. local c0 = p0 - t
  3188. if s == 0 then
  3189. return p0, 0
  3190. elseif d < 1 then
  3191. local c = math.sqrt(1 - d ^ 2)
  3192. local c1 = (v0 / s + d * c0) / c
  3193. local co = math.cos(c * s * x)
  3194. local si = math.sin(c * s * x)
  3195. local e = math.exp(d * s * x)
  3196. local p = t + (c0 * co + c1 * si) / e
  3197. local v = s * ((c * c1 - d * c0) * co - (c * c0 + d * c1) * si) / e
  3198. return p, v
  3199. else
  3200. local c1 = v0 / s + c0
  3201. local e = math.exp(s * x)
  3202. local p = t + (c0 + c1 * s * x) / e
  3203. local v = s * (c1 - c0 - c1 * s * x) / e
  3204. return p, v
  3205. end
  3206. end
  3207.  
  3208. return setmetatable(
  3209. {
  3210. accelerate = function(_, acceleration)
  3211. local T = tick()
  3212. local p, v = positionVelocity(T)
  3213. p0 = p
  3214. v0 = v + acceleration
  3215. t0 = T
  3216. end;
  3217. },
  3218. {
  3219. __index = function(_, index)
  3220. if index == "value" or index == "position" or index == "p" then
  3221. local p, v = positionVelocity(tick())
  3222. return p
  3223. elseif index == "velocity" or index == "v" then
  3224. local p, v = positionVelocity(tick())
  3225. return v
  3226. elseif index == "acceleration" or index == "a" then
  3227. local x = tick() - t0
  3228. local c0 = p0 - t
  3229. if s == 0 then
  3230. return 0
  3231. elseif d < 1 then
  3232. local c = math.sqrt(1 - d ^ 2)
  3233. local c1 = (v0 / s + d * c0) / c
  3234. local cs = (c0 * d ^ 2 - 2 * c * d * c1 - c0 * c ^ 2) * math.cos(c * s * x)
  3235. local sn = (c1 * d ^ 2 + 2 * c * d * c0 - c1 * c ^ 2) * math.sin(c * s * x)
  3236. return s ^ 2 *(cs + sn) / math.exp(d * s * x)
  3237. else
  3238. local c1 = v0 / s + c0
  3239. return s ^ 2 * (c0 - 2 * c1 + c1 * s * x) / math.exp(s * x)
  3240. end
  3241. elseif index == "target" or index == "t" then
  3242. return t
  3243. elseif index == "damper" or index == "d" then
  3244. return d
  3245. elseif index == "speed" or index == "s" then
  3246. return s
  3247. elseif index == "magnitude" or index == "m" then
  3248. local p, v = positionVelocity(tick())
  3249. return p.magnitude
  3250. else
  3251. error(index.." is not a valid member of spring", 0)
  3252. end
  3253. end;
  3254.  
  3255. __newindex = function(_, index, value)
  3256. local T = tick()
  3257. if index == "value" or index == "position" or index == "p" then
  3258. local p, v = positionVelocity(T)
  3259. p0, v0 = value, v
  3260. elseif index == "velocity" or index == "v" then
  3261. local p, v = positionVelocity(T)
  3262. p0, v0 = p, value
  3263. elseif index == "acceleration" or index == "a" then
  3264. local p, v = positionVelocity(T)
  3265. p0, v0 = p, v + value
  3266. elseif index == "target" or index == "t" then
  3267. p0, v0 = positionVelocity(T)
  3268. t = value
  3269. elseif index == "damper" or index == "d" then
  3270. p0, v0 = positionVelocity(T)
  3271. d = value < 0 and 0 or value < 1 and value or 1
  3272. elseif index == "speed" or index == "s" then
  3273. p0, v0 = positionVelocity(T)
  3274. s = value < 0 and 0 or value
  3275. else
  3276. error(index.." is not a valid member of spring", 0)
  3277. end
  3278. t0 = T
  3279. end;
  3280. }
  3281. )
  3282. end
  3283. local Anims = {
  3284.  
  3285. Reload = function(S) --This is the main reload animation. The parameter S contains all the variables and functions that are necessary for this animation
  3286. --[[
  3287. FUNCTION LIST_
  3288.  
  3289. S.tweenJoint(Joint, newC0, newC1, Alpha, Duration) --This function tweens a joint to a given C0 and C1. The Alpha parameter is function
  3290. 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,
  3291. 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
  3292. is useful if you only want to mess with the C0 or C1 property of a weld.
  3293.  
  3294. S.makeMagInvisible() --This function makes the mag invisible so it looks like the mag was removed
  3295.  
  3296. S.makeMagVisible() --This function makes the mag visible again at whatever the previous transparency of the mag parts were
  3297.  
  3298. 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
  3299. the animation was stopped midway and where to restart the animation
  3300.  
  3301. 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
  3302. used to decide if a chambering animation should play after the reload animation
  3303.  
  3304. S.setNewMag() --This function sets the newMag variable in the clientMain to true which basically lets the script know that a new mag was
  3305. 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
  3306. then the script will simply play the chambering animation instead of putting in another mag
  3307.  
  3308. 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
  3309. 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
  3310.  
  3311. 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
  3312. function and it returns a Model containing the Mag and a table that contains the original mag bricks and the corresponding clone. NOTE,
  3313. the mag bricks will be made non can collide
  3314.  
  3315. 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
  3316. and the brick that all the other mag parts are welded to
  3317.  
  3318. S.attachGripToHead() --This function detaches the grip from the right arm and attaches it to the Head. This is so you can make reload
  3319. 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
  3320. position that it was in before you detached the grip from the right arm.
  3321.  
  3322. 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
  3323. stays in the position that it was in before you detached the grip from the head
  3324.  
  3325. 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
  3326. sine of that number, which is a number between 0 and 1, which is used to tween a Joint with a Sine movement
  3327.  
  3328. S.Linear(X) --This function is an Alpha function for the tweenJoint function. Given a number between 0 and 90, the function will return
  3329. the number / 90, which is a number between 0 and 1, which is used to a tween a Joint with a Linear movement
  3330.  
  3331. VARIABLE LIST_
  3332.  
  3333. S.Handle --This variable is the Handle of gun
  3334.  
  3335. S.LArm --This variable is the left arm
  3336.  
  3337. S.RArm --This variable is the right arm
  3338.  
  3339. S.LWeld --This variable is the left arm weld which is attached to the animBase
  3340.  
  3341. S.RWeld --This variable is the right arm weld which is attached to the animBase
  3342.  
  3343. S.LC0 --This variable is the cframe of the left arm joint with respect to the torso
  3344.  
  3345. S.RC0 --This variable is the cframe of the right arm joint with respect to the torso
  3346.  
  3347. S.Grip --This variable is the Grip weld which is attached to right arm
  3348.  
  3349. S.gunIgnore --This variable is the gun ignore model which contains the fake arms and bullets and other stuff
  3350.  
  3351. S.Cam --This variable is the player camera
  3352.  
  3353. S.CF --This variable is the shortened form of CFrame.new which you can use instead of CFrame.new
  3354.  
  3355. S.CFANG --This variable is the shortened form of CFrame.Angles which you can use instead of CFrame.Angles
  3356.  
  3357. S.V3 --This variable is the shortened form of Vector3.new which you can use instead of Vector3.new
  3358.  
  3359. S.RAD --This variable is the shortened form of math.rad which you can use instead of math.rad
  3360.  
  3361. S.reloadTimeLoaded --This variable is the reload time for when the gun is loaded which you can use to modify how fast the reload
  3362. animation runs
  3363.  
  3364. S.reloadTimeEmpty --This variable is the reload time for when the gun is empty which you can use to modify how fast the reload
  3365. animation runs
  3366. --]]
  3367.  
  3368. local W1 = nil
  3369. local W2 = nil
  3370. local animSpeed = S.isMagEmpty() and S.reloadTimeEmpty / 1.3 or S.reloadTimeLoaded / 0.9
  3371. return {
  3372. function()
  3373. if (not S.isNewMag()) then
  3374. if S.isMagVisible() then
  3375. local Mag1, magTable1 = S.createMag("Mag1")
  3376.  
  3377. Mag1.Parent = S.gunIgnore
  3378.  
  3379. W1 = Instance.new("Weld")
  3380. W1.Part0 = magTable1[1].magClone
  3381. W1.Part1 = S.Handle
  3382. W1.C0 = magTable1[1].Original.CFrame:toObjectSpace(S.Handle.CFrame)
  3383. W1.Parent = magTable1[1].magClone
  3384.  
  3385. 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)
  3386. 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)
  3387. S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.1 * animSpeed)
  3388. wait(0.2 * animSpeed)
  3389. end
  3390. end
  3391. end;
  3392.  
  3393. function()
  3394. if (not S.isNewMag()) then
  3395. if S.isMagVisible() then
  3396. S.makeMagInvisible()
  3397. W1:Destroy()
  3398. local Mag1, magTable1 = S.getMag("Mag1")
  3399. magTable1[1].magClone.Velocity = S.Handle.Velocity + S.Handle.CFrame:vectorToWorldSpace(S.V3(0, -1, 0)) * 20
  3400.  
  3401. 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)
  3402. S.tweenJoint(S.Grip, nil, S.CFANG(0, S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3403. else
  3404. 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)
  3405. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3406. end
  3407.  
  3408. 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)
  3409.  
  3410. wait(0.25 * animSpeed)
  3411. end
  3412. end;
  3413.  
  3414. function()
  3415. if (not S.isNewMag()) then
  3416. local Mag1, magTable1 = S.getMag("Mag1")
  3417. if Mag1 then Mag1:Destroy() end
  3418.  
  3419. local Mag2, magTable2 = S.createMag("Mag2")
  3420.  
  3421. Mag2.Parent = S.gunIgnore
  3422.  
  3423. 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()
  3424. 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()
  3425. local handleOffsetCF = S.RArm.CFrame:toObjectSpace(S.RArm.CFrame * S.Grip.C0 * (S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10))):inverse())
  3426. local originalMagOffsetCF = S.Handle.CFrame:toObjectSpace(magTable2[1].Original.CFrame)
  3427. local newMagC0 = LArmCF:toObjectSpace(RArmCF * handleOffsetCF * originalMagOffsetCF)
  3428.  
  3429. W2 = Instance.new("Weld")
  3430. W2.Part0 = S.LArm
  3431. W2.Part1 = magTable2[1].magClone
  3432. W2.C0 = newMagC0
  3433. W2.Parent = magTable2[1].magClone
  3434.  
  3435. 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
  3436. 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)
  3437. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.2 * animSpeed)
  3438. wait(0.2 * animSpeed)
  3439. end
  3440. end;
  3441.  
  3442. function()
  3443. if (not S.isNewMag()) then
  3444. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
  3445. 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
  3446. 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)
  3447.  
  3448. wait(0.2 * animSpeed)
  3449. end
  3450. end;
  3451.  
  3452. function()
  3453. if (not S.isNewMag()) then
  3454. local Mag1, _ = S.getMag("Mag1")
  3455. local Mag2, _ = S.getMag("Mag2")
  3456. S.makeMagVisible()
  3457. S.setNewMag()
  3458. if Mag1 then Mag1:Destroy() end
  3459. Mag2:Destroy()
  3460. end
  3461. end;
  3462.  
  3463. function()
  3464. if S.isMagEmpty() then
  3465. if S.isNewMag() then
  3466. S.tweenJoint(S.Grip, nil, S.CFANG(S.RAD(-10), S.RAD(20), S.RAD(10)), S.Sine, 0.15 * animSpeed)
  3467. 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
  3468. 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)
  3469. end
  3470. S.tweenJoint(S.LWeld, nil, S.CF(0, 1.3, -0.55) * S.CFANG(S.RAD(-26), 0, 0), S.Sine, 0.2 * animSpeed)
  3471.  
  3472. wait(0.2 * animSpeed)
  3473. end
  3474. end;
  3475.  
  3476. function()
  3477. if S.isMagEmpty() then
  3478. 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)
  3479.  
  3480. wait(0.05 * animSpeed)
  3481. end
  3482. end;
  3483.  
  3484. function()
  3485. if S.isMagEmpty() then
  3486. 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)
  3487.  
  3488. wait(0.15 * animSpeed)
  3489. end
  3490. end;
  3491. }
  3492. end;
  3493.  
  3494. Cocking = function(S)
  3495.  
  3496. end;
  3497.  
  3498. Crawling = function(X, moveDirection, moveSpeed) --This is the animation for when you're crawling
  3499. --[[
  3500. The moveDirection gives you the angle at which your character is moving with respect to the way you're facing. So if you're
  3501. moving to the right and you're facing forward then the moveDirection will give you an angle of -90. If you're moving backward
  3502. and you're facing forward then the moveDirection will give you an angle of 180. I use this angle to adjust the crawling animation
  3503. 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
  3504.  
  3505. 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
  3506. 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
  3507. moving really slow the animation will play slower
  3508. --]]
  3509. return {
  3510. leftArm = CFrame.Angles( --This is what the cframe of the right arm will be when you're crawling
  3511. 0,
  3512. math.rad(90),
  3513. math.rad(-10)
  3514. ) * CFrame.new(
  3515. math.sin(moveDirection) * (math.sin(X * 6) / 4) - 0.2,
  3516. math.cos(moveDirection) * (math.sin(X * 6) / 2) - 0.1,
  3517. math.max(math.cos(X * 6) / 4, 0) - 0.1
  3518. ) * CFrame.Angles(
  3519. -math.max(math.cos(X * 6) / 4, 0),
  3520. 0,
  3521. 0
  3522. );
  3523. leftLeg = CFrame.new( --This is what the cframe of the left leg will be when you're crawling
  3524. math.sin(moveDirection) * (-math.sin(X * 6) / 4) - 0.2,
  3525. math.cos(moveDirection) * (math.sin(X * 6) / 2) + 0.3,
  3526. math.max(math.cos(X * 6) / 4, 0) - 0.1
  3527. ):inverse() * CFrame.Angles(
  3528. 0,
  3529. 0,
  3530. -math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
  3531. );
  3532. rightArm = CFrame.Angles( --This is what the cframe of the left arm will be when you're crawling
  3533. 0,
  3534. math.rad(-5),
  3535. math.rad(10)
  3536. ) * CFrame.new(
  3537. math.sin(moveDirection) * (-math.sin(X * 6) / 4) + 0.2,
  3538. math.cos(moveDirection) * (-math.sin(X * 6) / 5) - 0.2,
  3539. math.max(math.cos((X + math.rad(30)) * 6) / 10, 0) - 0.1
  3540. ) * CFrame.Angles(
  3541. -math.max(math.cos((X + math.rad(30)) * 6) / 10, 0),
  3542. 0,
  3543. 0
  3544. );
  3545. rightLeg = CFrame.new( --This is what the cframe of the right leg will be when you're crawling
  3546. math.sin(moveDirection) * (math.sin(X * 6) / 4) + 0.2,
  3547. math.cos(moveDirection) * (-math.sin(X * 6) / 2) + 0.3,
  3548. math.max(math.cos((X + math.rad(30)) * 6) / 4, 0) - 0.1
  3549. ):inverse() * CFrame.Angles(
  3550. 0,
  3551. 0,
  3552. math.rad(15) - math.cos(moveDirection) * (math.rad(15) * math.sin(X * 6))
  3553. );
  3554. Grip = CFrame.Angles( --This is what the cframe of the grip will be when you're crawling
  3555. math.max(math.cos((X + math.rad(30)) * 6) / 7, 0),
  3556. math.rad(5),
  3557. 0
  3558. );
  3559. 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
  3560. }
  3561. end;
  3562.  
  3563. Idling = { --This table holds the Idling animations
  3564.  
  3565. unAimed = function(X) --This is the animation when the gun is not aimed
  3566. return {
  3567. Pos = Vector3.new(
  3568. math.sin(X / 2) / 70, --Side to Side motion
  3569. math.sin(X * 5 / 4) / 70, --Up and Down motion
  3570. math.sin(X * 3 / 4) / 70 --Forward and backward motion
  3571. );
  3572. Rot = Vector3.new(
  3573. 0, --Pitch rotation
  3574. 0, --Yaw rotation
  3575. 0 --Roll rotation
  3576. );
  3577. }
  3578. end;
  3579.  
  3580. Aimed = function(X) --This is the animation when the gun is aimed
  3581. return {
  3582. Pos = Vector3.new(
  3583. math.sin(X * 3 / 8) / 140,
  3584. math.sin(X * 15 / 16) / 140,
  3585. 0
  3586. );
  3587. Rot = Vector3.new(
  3588. 0,
  3589. 0,
  3590. 0
  3591. );
  3592. }
  3593. end;
  3594.  
  3595. };
  3596.  
  3597. Walking = { --This table holds the Walking animations
  3598.  
  3599. unAimed = function(X) --This is the animation when the gun is not aimed
  3600. return {
  3601. Pos = Vector3.new(
  3602. 4 * math.sin(X * 4.5) / 50,
  3603. 1.5 * math.sin(X * 9) / 50,
  3604. 0
  3605. );
  3606. Rot = Vector3.new(
  3607. 0,
  3608. 0,
  3609. math.rad(math.sin(X * 4.5)) * 2
  3610. );
  3611. }
  3612. end;
  3613.  
  3614. Aimed = function(X) --This is the animation when the gun is aimed
  3615. return {
  3616. Pos = Vector3.new(
  3617. 2 * math.sin(X * 3) / 150,
  3618. 0.75 * math.sin(X * 6) / 150,
  3619. 0
  3620. );
  3621. Rot = Vector3.new(
  3622. 0,
  3623. 0,
  3624. math.rad(math.sin(X * 3)) / 3
  3625. );
  3626. }
  3627. end;
  3628.  
  3629. };
  3630.  
  3631. Running = function(X) --This is the animation when the player is running
  3632. return {
  3633. Pos = Vector3.new(
  3634. 4 * math.sin(X * 4.5 * 1.5) / 30,
  3635. 1.5 * math.sin(X * 9 * 1.5) / 40 + 0.2,
  3636. 0
  3637. );
  3638. Rot = Vector3.new(
  3639. 0,
  3640. -math.rad(math.sin(X * 4.5 * 1.5)) * 5 + math.rad(3),
  3641. math.rad(math.sin(X * 4.5 * 1.5)) * 5
  3642. );
  3643. }
  3644. end;
  3645.  
  3646. }
  3647. local Plugins = {
  3648.  
  3649. KeyDown = {
  3650. { --This is a plugin for a toggleable laser
  3651. Key = "v"; --This is the key you press to activate the plugin
  3652. Description = "Toggle Laser"; --This is what the description of the key will be in the controls
  3653. Plugin = function() --This is the actual plugin function
  3654. local Laser = Gun:WaitForChild("Laser") --These few lines wait for the necessary bricks/models
  3655. local Handle = Gun:WaitForChild("Handle")
  3656. local ignoreCode = Gun.clientMain:WaitForChild("ignoreCode")
  3657. local ignoreModel = game.Workspace:WaitForChild("ignoreModel_"..ignoreCode.Value)
  3658.  
  3659. local PlyrName = game.Players:GetPlayerFromCharacter(Gun.Parent).Name
  3660. local playerFolder = ignoreModel:WaitForChild("gunIgnore_"..PlyrName)
  3661.  
  3662. local RS = game:GetService("RunService")
  3663.  
  3664. local function createLaserDot() --This function creates the red laser dot
  3665. local laserDot = Instance.new("Part")
  3666. laserDot.Transparency = 1
  3667. laserDot.Name = "laserDot"
  3668. laserDot.Anchored = true
  3669. laserDot.CanCollide = false
  3670. laserDot.FormFactor = Enum.FormFactor.Custom
  3671. laserDot.Size = Vector3.new(0.25, 0.25, 1)
  3672.  
  3673. local laserGui = Instance.new("SurfaceGui")
  3674. laserGui.CanvasSize = Vector2.new(100, 100)
  3675. laserGui.Parent = laserDot
  3676.  
  3677. local laserImage = Instance.new("ImageLabel")
  3678. laserImage.BackgroundTransparency = 1
  3679. laserImage.Size = UDim2.new(1, 0, 1, 0)
  3680. laserImage.Image = "http://www.roblox.com/asset/?id=131394739"
  3681. laserImage.Parent = laserGui
  3682.  
  3683. --[[local laserLight = Instance.new("SurfaceLight")
  3684. laserLight.Angle = 180
  3685. laserLight.Brightness = math.huge
  3686. laserLight.Color = Color3.new(1, 0, 0)
  3687. laserLight.Face = Enum.NormalId.Back
  3688. laserLight.Range = 5
  3689. laserLight.Shadows = true
  3690. laserLight.Parent = laserDot]]
  3691.  
  3692. return laserDot
  3693. end
  3694.  
  3695. local function getHitSurfaceCFrame(Pos, Obj) --This function returns the proper cframe based on the face that the position is on
  3696. local surfaceCF = {
  3697. {"Back", Obj.CFrame * CFrame.new(0, 0, Obj.Size.z)};
  3698. {"Bottom", Obj.CFrame * CFrame.new(0, -Obj.Size.y, 0)};
  3699. {"Front", Obj.CFrame * CFrame.new(0, 0, -Obj.Size.z)};
  3700. {"Left", Obj.CFrame * CFrame.new(-Obj.Size.x, 0, 0)};
  3701. {"Right", Obj.CFrame * CFrame.new(Obj.Size.x, 0, 0)};
  3702. {"Top", Obj.CFrame * CFrame.new(0, Obj.Size.y, 0)}
  3703. }
  3704. local closestDist = math.huge
  3705. local closestSurface = nil
  3706. for _,v in pairs(surfaceCF) do
  3707. local surfaceDist = (Pos - v[2].p).magnitude
  3708. if surfaceDist < closestDist then
  3709. closestDist = surfaceDist
  3710. closestSurface = v
  3711. end
  3712. end
  3713.  
  3714. local surfaceDir = CFrame.new(Obj.CFrame.p, closestSurface[2].p)
  3715. local surfaceDist = surfaceDir.lookVector * ((Obj.CFrame.p - closestSurface[2].p).magnitude / 2 - 0.25)
  3716. local surfaceOffset = Pos - closestSurface[2].p + surfaceDist
  3717. local surfaceCFrame = surfaceDir + surfaceDist + surfaceOffset
  3718.  
  3719. return surfaceCFrame
  3720. end
  3721.  
  3722. local laserDot = createLaserDot() --The code is cleaner when the laser creating code is in a function
  3723.  
  3724. Laser.Transparency = (Laser.Transparency == 1 and 0 or 1) --Toggles the laser on or off
  3725.  
  3726. while math.floor(Laser.Transparency) == 0 do --This loop will keep running as long as the laser is visible
  3727. if (not game.Players:GetPlayerFromCharacter(Gun.Parent)) then break end --This checks if the gun is a child of the character
  3728.  
  3729. local newRay = Ray.new(Laser.Position, Handle.CFrame.lookVector * 999)
  3730. local H, P = game.Workspace:FindPartOnRay(newRay, ignoreModel)
  3731.  
  3732. local Distance = (P - Laser.Position).magnitude
  3733. Laser.Mesh.Offset = Vector3.new(0, Distance / 2, 0)
  3734. Laser.Mesh.Scale = Vector3.new(0.075, Distance / 0.2, 0.075)
  3735.  
  3736. if H then
  3737. laserDot.CFrame = getHitSurfaceCFrame(P, H) --If the laser hits a part then position the dot on the part
  3738. laserDot.Parent = playerFolder
  3739. else
  3740. laserDot.Parent = nil --If the laser doesn't hit a part then temporarily remove the laser dor
  3741. end
  3742.  
  3743. RS.RenderStepped:wait()
  3744. end
  3745.  
  3746. laserDot:Destroy() --These lines reset the laser if the laser is transparent or the gun was deselected
  3747. Laser.Transparency = 1
  3748. Laser.Mesh.Offset = Vector3.new()
  3749. Laser.Mesh.Scale = Vector3.new(0.075, 0, 0.075)
  3750. end;
  3751. };
  3752.  
  3753. { --This is a plugin for a toggleable flashlight
  3754. Key = "z";
  3755. Description = "Toggle Flashlight";
  3756. Plugin = function()
  3757. local Flashlight = Gun:WaitForChild("Flashlight")
  3758. if Flashlight then
  3759. for _, Light in pairs(Flashlight:GetChildren()) do
  3760. if Light.Name == "Light" then
  3761. Light.Enabled = (not Light.Enabled)
  3762. end
  3763. end
  3764. end
  3765. end
  3766. };
  3767. };
  3768.  
  3769. KeyUp = {
  3770.  
  3771. };
  3772.  
  3773. Firing = {
  3774. Plugin = function()
  3775. --Put code here
  3776. end;
  3777. };
  3778.  
  3779. Aimed = {
  3780. Plugin = function()
  3781. --Put code here
  3782. end;
  3783. };
  3784.  
  3785. UnAimed = {
  3786. Plugin = function()
  3787. --Put code here
  3788. end;
  3789. };
  3790.  
  3791. OnEquipped = {
  3792. Plugin = function()
  3793. --Put code here
  3794. end
  3795. };
  3796.  
  3797. OnUnEquipped = {
  3798. Plugin = function()
  3799. --Put code here
  3800. end
  3801. };
  3802.  
  3803. }
  3804. local S = {
  3805.  
  3806.  
  3807. 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
  3808. true, and Burst and Auto can't both be true)]]
  3809. Semi = true; --Set this true if you want the gun to be semi-automatic. (Pistols, Snipers, etc)
  3810. Auto = false; --Set this true if you want the gun to be fully automatic. (Assault Rifles, Submachine guns, machine guns, etc)
  3811. Burst = false; --Set this true if you want the gun to be burst fire. (Battle rifles, assault rifles, etc)
  3812. Shot = true; --Set this true if you want the gun to be a shotgun. (NOTE: Shot and auto can both be true)
  3813. Explosive = true; --Set this true if you want the projectiles to be explosive. (Rocket launchers, grenade launchers, etc)
  3814. };
  3815.  
  3816. selectFire = true; --This is whether or not select fire is enabled
  3817. selectFireSettings = {
  3818. Animation = true; --This is whether or not there will be an animation for when you switch fire modes
  3819. GUI = true; --This is whether or not a gui appears showing the fire being selected
  3820. Modes = { --This the list of modes you can switch between
  3821. Safety = true; --This mode doesn't allow any form of firing
  3822. Semi = true; --This mode allows semi-automatic firing
  3823. Burst = false; --This mode allows burst fire. The burst will be based on the burstSettings below
  3824. Auto = false; --This mode allows fully automatic fire
  3825. };
  3826. 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
  3827. };
  3828.  
  3829.  
  3830. burstSettings = {
  3831. 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
  3832. is false, then the burst time and burst wait will be the values below]]
  3833. Amount = 3; --This is how many bullets will be fired in one burst (if Burst is true)
  3834. Time = 0.2; --This is how long it takes for a burst to complete
  3835. Wait = 0.1; --This is how much time you have to wait before you can fire another burst
  3836. };
  3837.  
  3838.  
  3839. shotAmount = 8; --This is how many bullets will be fired in one shot (if Shot is true)
  3840.  
  3841.  
  3842. explosionSettings = {
  3843. Radius = 50; --This is the radius of the explosion when the bullet hits a target. (If Explosive is true)
  3844. Pressure = 5e5; --This is the pressure of the explosion when the bullet hits the target
  3845. Type = Enum.ExplosionType.NoCraters; --This is the type of explosion
  3846. --[[
  3847. (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
  3848. (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
  3849. (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
  3850. --]]
  3851. soundId = "rbxassetid://138499093"; --This is what the sound of the explosion will be
  3852. soundPitch = 1; --This is what the pitch of the explosion sound will be
  3853. soundVolume = 1; --This is what the volume of the explosion sound will be
  3854. rayCastExplosions = true; --[[This is whether or not explosions will have raycasting. If this is true, humanoids behind walls
  3855. won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: RangeBasedDamage has to be true in
  3856. order for explosions to have raycasting)]]
  3857. rangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion. If this
  3858. is true, the farther a humanoid is from the blast center, the less damage it'll take. If this is false, any object within
  3859. the explosion's radius will have its joints broken]]
  3860. };
  3861.  
  3862.  
  3863. playerArms = true; --This is whether or not the fake arms will look like the Player's arms
  3864. fakeArmSettings = {
  3865. Transparency = 0; --This is the transparency of the fake arms
  3866. armSize = Vector3.new(0.6, 2, 0.6); --This is the size of the fake player arms if playerArms is true
  3867. characterMeshes = false; --This is whether or not the fake player arms will have the arm meshes if playerArms is true
  3868. realBodyColor = true; --This is whether or not the color of the fake arm will be the color of the player's real arms
  3869. Color = BrickColor.new("Pastel brown"); --This is what the color of the fake arms will be if realBodyColor is false
  3870. };
  3871.  
  3872.  
  3873. unAimedC1 = { --This table contains the CFrames of welds when the gun is not aimed
  3874. leftArm = CFrame.new(-0.7, 1.6, -0.8) * CFrame.Angles(math.rad(-10), 0, math.rad(-30));
  3875. rightArm = CFrame.new(0.4, 0.25, -0.3) * CFrame.Angles(0, 0, math.rad(25));
  3876. Grip = CFrame.Angles(0, math.rad(25), 0);
  3877. };
  3878. aimedC1 = { --This table contains the CFrames of welds when the gun is aimed
  3879. leftArm = CFrame.new(-0.1, 1, -0.3) * CFrame.Angles(math.rad(-10), 0, 0) * CFrame.Angles(0, 0, math.rad(-40));
  3880. rightArm = CFrame.new(0.5, 0.3, 0.1) * CFrame.Angles(0, 0, math.rad(45));
  3881. };
  3882. runningC1 = { --This table contains the CFrames of welds when you're running
  3883. leftArm = CFrame.new(-0.65, 0.85, -1) * CFrame.Angles(math.rad(1), math.rad(-8.5), math.rad(16));
  3884. rightArm = CFrame.new(0.16, 1, -0.14) * CFrame.Angles(math.rad(15), math.rad(2), math.rad(50));
  3885. Grip = CFrame.Angles(0, math.rad(-5), 0);
  3886. };
  3887.  
  3888.  
  3889. equipAnimation = true; --This is whether or not an equipping animation will play when you equip the gun
  3890. equipSettings = {
  3891. Time = 0.25; --This is how long it takes for the equip animation to play
  3892. 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
  3893. 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
  3894. GripC1 = CFrame.new(); --This is the C1 of the grip when you equip the gun
  3895. };
  3896.  
  3897.  
  3898. stopAnimsOnFall = true; --This is whether or not the movement animation will stop when you're falling
  3899. fallAnimation = true; --This is whether or not there will be animation for falling and landing
  3900. fallSettings = {
  3901. 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
  3902. 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
  3903. 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
  3904. 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
  3905. the effect]]
  3906. };
  3907.  
  3908.  
  3909. gunMomentum = true; --This is whether or not there will be a gun swaying animation for when you move your mouse around
  3910. momentumSettings = {
  3911. maxInput = 18; --This is the maximum mouse delta that will be used as input for the sway
  3912. Speed = 20; --This is the speed of the gun momentum
  3913. 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
  3914. instant dampening]]
  3915. Amplitude = { --These are the amplitudes of the gun momentum
  3916. unAimed = 5;
  3917. Aimed = 1;
  3918. }
  3919. };
  3920.  
  3921.  
  3922. cockingAnim = false; --This is whether or not a cocking animation will play between every shot (for shotguns and bolt action guns)
  3923. movementAnims = true; --This is whether or not the player will have movement animations
  3924.  
  3925.  
  3926. canADS = true; --This is whether or not the gun can ADS
  3927. aimSettings = {
  3928. Anim = true; --This is whether or not there is an animation for aiming down the sights
  3929. Speed = 0.3; --This is how long the gun will take to fully aim down the sights
  3930. FOV = 37; --This is the FOV that the Camera will have when the gun is fully aimed down
  3931. holdToADS = true; --This is whether or not you have to hold the right mouse or the ADS key to ADS
  3932. headTilt = math.rad(25); --This is what angle the head tilts at when you ADS
  3933. };
  3934.  
  3935.  
  3936. sensitivitySettings = {
  3937. Default = 1; --This is what the sensitivity of the mouse will be when the gun is not aimed. 1 is the default
  3938. Aim = 0.3; --[[This is what the sensitivity of the mouse will be when the gun is aimed. The smaller the MaxZoom,
  3939. the smaller the sensitivity should be (i.e. Scoped guns should have a sensitivity of around 0.2 or less]]
  3940.  
  3941. scrollToChange = true; --This is whether or not scrolling the mouse changes the aim sensitivity
  3942. Min = 0.05; --This is the lowest the sensitivity can be
  3943. Max = 1; --This is the highest the sensitivity can be
  3944. Increment = 0.05; --This is what the increment for the sensitivity is when you scroll
  3945. };
  3946.  
  3947.  
  3948. guiScope = false; --This is whether or not your Scope will be a gui instead of a normal sight
  3949. scopeSettings = {
  3950. Frequency = { --This is the how fast the camera sway is. The larger the number the faster the camera moves
  3951. Idling = 0.7; --This is the frequency when you're idling
  3952. Walking = 2; --This is the frequency when you're walking
  3953. };
  3954. Amplitude = { --This is the how wide the camera sway is. The larger the number the wider the sway
  3955. Idling = 0.75; --This is the amplitude when you're idling
  3956. Walking = 0.75; --This is the amplitude when you're walking
  3957. };
  3958. steadyTime = 8; --This is how long you can hold your breath to steady the scope
  3959. breathTime = 5; --This is how long it takes to fully retake your breath
  3960. camSwayOnBreath = 2.5; --This is what the cam sway multiplier will be when you start your retake your breath
  3961. unSteadyOnFire = true; --This is whether or not the camera will become unsteady when you fire the gun
  3962. };
  3963.  
  3964.  
  3965. roundsPerMin = 100; --This is how many bullets per minute the gun will fire
  3966.  
  3967.  
  3968. bulletSettings = {
  3969. instantHit = true; --[[This is whether or not the bullet will hit a target instantly. If it is false, the bullet will travel at a
  3970. specific speed till it hits a target]]
  3971. Range = 870; --This is how far the bullet will travel in studs before it is no longer effective
  3972. Velocity = 540; --This is how fast the bullet will travel in studs per second
  3973. Acceleration = 196.2; --This is the bullet's acceleration downward (196.2 is normal roblox gravity)
  3974. Color = BrickColor.new("Bright red"); --This is the color of the bullet
  3975. Transparency = 0; --This is the transparency of the bullet
  3976. Size = Vector3.new(0.1, 0.1, 5); --This is how big the bullet will look
  3977. };
  3978.  
  3979.  
  3980. damageSettings = {
  3981. --[[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
  3982. 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
  3983. 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
  3984. the ending damage. After the ending damage percent, it'll stay that damage.]]
  3985. Start = {
  3986. Damage = 170; --The starting damage
  3987. 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
  3988. the damage will be the starting damage until the bullet travels 0.5*1000 studs or 500 studs]]
  3989. };
  3990. End = {
  3991. Damage = 205; --The ending damage
  3992. Dist = 0.5; --A value between 0 and 1 which represents the distance percent for the ending damage
  3993. };
  3994. Multipliers = { --[[These are the damage multipliers. There's a spread of +0.1. That means that if the multiplier is 1, the actual
  3995. multiplier will range from 1 - 1.1]]
  3996. Chest = 1; --This is what the damage will be multiplied by if the bullet hits the chest
  3997. Head = 10; --This is what the damage will be multiplied by if the bullet hits the head or a hat
  3998. Limbs = 1; --This is what the damage will be multiplied by if the bullet hits a limb (Arms or legs)
  3999. };
  4000. };
  4001.  
  4002.  
  4003. AllowFriendlyFire = false; --This is whether or not you can damage teammates
  4004. CanDamageNPCs = true; --This is whether or not you can damage NPC's (Zombies, fake players, anything with a humanoid)
  4005.  
  4006.  
  4007. CanKnife = true; --This is whether or not you can knife
  4008. AutoKnife = false; --This is whether or not the gun will automatically knife if an enemy is within a specific distance
  4009. AutoKnifeDist = 4; --This is how many studs away an enemy has to be for the gun to auto knife
  4010. KnifeMeshId = "http://www.roblox.com/asset/?id=121944778"; --This is the Mesh of the knife
  4011. KnifeTextureId = "http://www.roblox.com/asset/?id=121944805"; --This is the Texture of the knife
  4012. KnifeCooldown = 0.5; --This is how long you have to wait before you can knife again
  4013. KnifeAnim = 1; --This is the type of knife animation
  4014. --[[
  4015. Type 1: An animation that swings a knife from the left of the body to the right of the body
  4016. Type 2: An animation that stabs the knife forward from the center of the body
  4017. --]]
  4018.  
  4019.  
  4020. Throwables = true; --This is whether or not you have grenades
  4021. TrajectoryAssist = true; --This is whether or not the script will show you the flight path of the grenade before you throw it
  4022. DetonationTime = 2; --[[This is how long the grenade will wait to detonate (If DetonateOnHit is false, this is how long the
  4023. grenade will wait after the pin is pulled. If true, this is how long the grenade will wait after it hits something]]
  4024. TimerStartOnHit = false; --This is whether or not the timer will start when the grenade hits something
  4025. GrenadeSize = Vector3.new(0.8, 0.8, 0.8); --This is the size of the grenade (Doesn't apply to throwing knives)
  4026.  
  4027.  
  4028. LethalGrenadeColor = BrickColor.new("Bright green"); --This is the color of the lethal grenade
  4029. GrenadeBlastRadius = 20; --This is the blast radius of the explosion (Doesn't apply to non-explosive grenades)
  4030. GrenadeBlastPressure = 6e5; --This is what the blast pressure of the explosion (Doesn't apply to non-explosive grenades)
  4031. GrenadeExplosionType = Enum.ExplosionType.NoCraters; --This is the type of explosion (Doesn't apply to non-explosive grenades)
  4032. --[[
  4033. (0 or "NoCraters" or Enum.ExplosionType.NoCraters) means that the explosion will not damage terrain
  4034. (1 or "Craters" or Enum.ExplosionType.Craters) means that the explosion will leave craters in terrain
  4035. (2 or "CratersAndDebris" or Enum.ExplosionType.CratersAndDebris) means that the explosion will leave craters and debris in terrain
  4036. --]]
  4037. LethalAnimationTime = 1.5; --This is how long the throwing animation for the lethal will take
  4038. LethalGrenadeDamage = 150; --This is max damage that the grenade will do
  4039. LethalGrenadeThrowVelocity = 200; --This is the speed at which the lethal grenade is thrown
  4040. GrenadeRayCastExplosions = true; --[[This is whether or not grenade explosions will have raycasting. If this is true, humanoids
  4041. behind walls won't be damaged. If this is false, any humanoid within the radius will be damaged. (NOTE: GrenadeRangeBasedDamage
  4042. has to be true in order for explosions to have raycasting)]]
  4043. GrenadeRangeBasedDamage = true; --[[This is whether or not will depend on how far the object is from the center of the explosion.
  4044. 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
  4045. within the explosion's radius will have its joints broken]]
  4046. LethalGrenadeType = 4; --This is the lethal grenade type
  4047. --[[
  4048. Type 1: Frag grenade [An explosive grenade]
  4049. Type 2: Sticky [An explosive grenade that sticks to a surface]
  4050. Type 3: Throwing Knife [A throwable knife]
  4051. Type 4: Molotov [A grenade that explodes in flames on impact]
  4052. --]]
  4053.  
  4054. TacticalGrenadeColor = BrickColor.new("Brick yellow"); --This is the color of the lethal grenade
  4055. TacticalAnimationTime = 1.5; --This how long the throwing animation for the tactical will take
  4056. TacticalGrenadeThrowVelocity = 200; --This is the speed at which the tactical grenade is thrown
  4057. GrenadeEffectRadius = 70; --[[This is the radius of the effect of the grenade. If the Grenade is a smoke, this is the radius of
  4058. the smoke]]
  4059. GrenadeEffectTime = 10; --[[This is the how long the grenade effect will last. If the grenade is a smoke, this is how long the
  4060. smoke will linger]]
  4061. TacticalGrenadeType = 1; --This is the tactical grenade type
  4062. --[[
  4063. Type 1: Smoke grenade [A grenade that creates a cloud of smoke]
  4064. Type 2: Flashbang [A grenade that temporarily blinds and deafens players]
  4065. --]]
  4066.  
  4067.  
  4068. GrenadeTrail = true; --This is whether or not the grenade will have a trail
  4069. GrenadeTrailColor = BrickColor.new("Black"); --This is the color of the grenade trail
  4070. GrenadeTrailTransparency = 0.6; --This is the transparency of the trail
  4071. GrenadeTrailThickness = 0.3; --This is the thickness of the trail
  4072. GrenadeTrailVisibleTime = 0.2; --This is how long the trail will be visible for
  4073. GrenadeTrailDisappearTime = 0.2; --This is how long it will take for the trail to disappear
  4074.  
  4075.  
  4076. bulletTrail = true; --This is whether or not there will be a trail behind the bullet
  4077. trailSettings = {
  4078. Color = BrickColor.new("Lime green"); --This is the color of the bullet trail
  4079. Transparency = 0.6; --This is the transparency of the trail
  4080. Thickness = 0.2; --This is the thickness of the trail
  4081. visibleTime = 0; --This is how long the trail will be visible for
  4082. disappearTime = 0.5; --This is how long it will take for the trail to disappear
  4083. };
  4084.  
  4085.  
  4086. bulletHoles = true; --This is whether or not bullet holes will appear where you shot
  4087. holeSettings = {
  4088. Texture = "http://www.roblox.com/asset/?id=64291961"; --This is the texture of the bullet hole
  4089. Size = 0.5; --This is how big the bullet hole will be in studs
  4090. visibleTime = 3; --This is how long the bullet hole will be visible for
  4091. disappearTime = 1; --This is how long it will take for the bullet hole to disappear
  4092. };
  4093.  
  4094.  
  4095. bulletSparks = true; --This is whether or not sparks will fly when a bullet hits a surface
  4096. 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,
  4097. it has to be a particle emitter in the ServerStorage and it has to be called "bulletSpark"]]
  4098. sparkSettings = { --These settings only apply if customSparks is false
  4099. Color = {
  4100. Start = Color3.new(1, 158 / 255, 24 / 255); --This is the start color of the sparks
  4101. End = Color3.new(212 / 255, 242 / 255, 8 / 255); --This is the end color of the sparks
  4102. };
  4103. Size = 0.25; --This is the size of the sparks
  4104. Texture = "http://www.roblox.com/asset/?id=311395391"; --This is the texture of the sparks
  4105. Lifetime = 0.2; --This is the lifetime of each spark in seconds +-0.05 seconds
  4106. Rate = 75; --This is the number of sparks that fly
  4107. Speed = 25; --This is the speed at which the sparks fly +-5 studs/sec
  4108. Spread = 45; --This is the angle in degrees at which the sparks spread out (0 means single line, 180 means all around)
  4109. Materials = { --This is the list of the materials which cause bullet sparks. You can add or remove materials from this list
  4110. Enum.Material.Plastic;
  4111. Enum.Material.Slate;
  4112. Enum.Material.Concrete;
  4113. Enum.Material.CorrodedMetal;
  4114. Enum.Material.DiamondPlate;
  4115. Enum.Material.Foil;
  4116. Enum.Material.Marble;
  4117. Enum.Material.Granite;
  4118. Enum.Material.Brick;
  4119. Enum.Material.Pebble;
  4120. Enum.Material.SmoothPlastic;
  4121. Enum.Material.Metal;
  4122. Enum.Material.Cobblestone;
  4123. };
  4124. };
  4125.  
  4126.  
  4127. bulletSmoke = true; --This is whether or not smoke particles will fly when a bullet hits a surface
  4128. smokeSettings = {
  4129. objColor = true; --This is whether or not the smoke color will be the color of the object the bullet hit
  4130. Color = Color3.new(0.5, 0.5, 0.5); --This is what the color of the smoke will be if objColor is false
  4131. Size = {
  4132. Start = 0.25; --This is what the starting size of the smoke will be
  4133. End = 0.5; --This is what the ending size of the smoke will be
  4134. };
  4135. Texture = "http://www.roblox.com/asset/?id=244514423"; --This is what the texture of the smoke will be
  4136. startTransparency = 0; --This is what the transparency of the particle starts at. It gradually goes to 1
  4137. Lifetime = 0.2; --This is the lifetime of each smoke particle +-0.05 seconds
  4138. Rate = 100; --This is the number of smoke particles that fly
  4139. Speed = 35; --This is the speed at which the smoke particles fly +-5 studs/sec
  4140. Spread = 15; --This is the angle in degrees at which the smoke particles spread out (0 means single line, 180 means all around)
  4141. };
  4142.  
  4143.  
  4144. bloodEffect = true; --This is whether or not blood particles will appear from the bullet exit position when a humanoid is shot
  4145. bloodSettings = {
  4146. Color = Color3.new(1, 0, 0); --This is what the color of the blood will be
  4147. Size = 0.1; --This is what the size of the blood will be with an +-0.1
  4148. Texture = "http://www.roblox.com/asset/?id=3419963"; --This is what the texture of the blood will be
  4149. startTransparency = 0.125; --This is what the starting transparency of the blood will be +-0.125
  4150. Lifetime = 0.1; --This is what the lifetime of each blood particle +-0.05 seconds
  4151. Rate = 200; --This is the number of blood particles that appear
  4152. Speed = 50; --This is the speed at which the blood particles fly
  4153. Spread = 15; --This is the angle in degrees at which the blood particles spread out (0 means single line, 180 means all around)
  4154. };
  4155.  
  4156.  
  4157. bulletShockwave = true; --This is whether or not a shockwave will appear where you shot. (A sphere that appears when the bullet hits)
  4158. shockwaveSettings = {
  4159. Radius = 0.3; --This is the radius of the shockwave. (If the gun type is explosion, this radius will be the blast radius)
  4160. Color = BrickColor.new("Light stone grey"); --This is the color of the shockwave
  4161. Duration = 0.2; --This is how long the shockwave will take to disappear
  4162. };
  4163.  
  4164.  
  4165. penetrationSettings = {
  4166. Dist = 0; --This is the maximum amount of studs a bullet can penetrate into a wall (that isn't ignored)
  4167. transparencyThreshold = 1; --This is what the transparency of a wall has to be greater than or equal to in order to be ignored
  4168. ignoreNonCanCollide = true; --This is whether or not the script should ignore non-cancollide parts
  4169. ignoreCustom = {}; --This is a table of objects that will be ignored by the script. The object and it's descendants will be ignored
  4170. };
  4171.  
  4172.  
  4173. recoilSettings = {
  4174. firstShotMultiplier = 2.4; --This is what the recoil multiplier for the first shot will be. The rest of the shots will be normal recoil
  4175. aimedMultiplier = 0.5; --When you're aimed, this is what the recoil will be multiplied by
  4176. camMultiplier = 2; --This is what the gun up recoil will be multiplied by to get you the cam recoil
  4177. 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
  4178. springDamper = 0.5; --This is a number between 0 and 1 that determines how quickly the spring will be dampened.
  4179. Recoil = {
  4180. Side = { --This is the side to side gun and camera recoil
  4181. Left = -0.17;
  4182. Right = 0.28;
  4183. };
  4184. Up = { --This is the up and down gun and camera recoil
  4185. Min = 0.26;
  4186. Max = 0.28;
  4187. };
  4188. 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
  4189. 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]]
  4190. Min = 0.3;
  4191. Max = 0.35;
  4192. };
  4193. 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
  4194. and the right is 1 then the gun will tilt anywhere between -10 degress and 10 degrees]]
  4195. Left = -0.5;
  4196. Right = 0.5;
  4197. };
  4198. }
  4199. };
  4200.  
  4201.  
  4202. spreadSettings = {
  4203. Increase = 0.1; --This is what is added to the spread of the bullet every time you fire
  4204. Decrease = 15; --This is what the spread of the bullet decreases by per second
  4205.  
  4206. --[[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
  4207. 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
  4208. you're moving]]
  4209. Aimed = {
  4210. Stand = {
  4211. Idling = 0.2;
  4212. Moving = 0.4;
  4213. };
  4214. Crouch = {
  4215. Idling = 0.15;
  4216. Moving = 0.3;
  4217. };
  4218. Prone = {
  4219. Idling = 0.1;
  4220. Moving = 0.3;
  4221. };
  4222. };
  4223. unAimed = {
  4224. Stand = {
  4225. Idling = 2;
  4226. Moving = 2.5;
  4227. };
  4228. Crouch = {
  4229. Idling = 1.5;
  4230. Moving = 2;
  4231. };
  4232. Prone = {
  4233. Idling = 1;
  4234. Moving = 2;
  4235. };
  4236. };
  4237. };
  4238.  
  4239.  
  4240. reloadSettings = {
  4241. Anim = true; --This is whether or not there is an animation for reloading
  4242. Times = {
  4243. Loaded = 3; --This is how long it takes to reload the gun if a bullet is already chambered
  4244. Empty = 3; --This is how long it takes to reload the gun if a bullet isn't chambered
  4245. };
  4246. autoReload = true; --This is whether or not the gun will reload automatically when the ammo reaches 0
  4247. magIsBullet = false; --This is whether or not the mag is the bullet itself. This is useful for guns with only 1 bullet per clip
  4248. reloadWhileRunning = true; --This is whether or not you can reload while running
  4249. };
  4250.  
  4251.  
  4252. sprintTime = 15; --This is the maximum time you can sprint
  4253. staminaCoolTime = 4; --This is how long it takes for your stamina to fully recharge
  4254. canFireWhileRunning = false; --This is whether or not you can shoot while sprinting
  4255.  
  4256.  
  4257. dolphinDive = true; --This is whether or not you can dolphin dive (Run and crouch at the same time to dive)
  4258. diveSettings = {
  4259. rechargeTime = 1; --This is how long you have to wait till you can dive or run again after you've dived
  4260. Force = 350; --This is the multiplier for the dolphin dive force. The higher it is the farther you'll dive
  4261. Angle = math.rad(30); --This is the angle in radians from the ground that you dive at
  4262. };
  4263.  
  4264.  
  4265. canChangeStance = true; --This is whether or not you can change stance. That means whether or not you can crouch or go prone
  4266. stanceSettings = {
  4267. Anim = true; --This is whether or not there is an animation for changing stance
  4268. Speed = 0.3; --This is how quickly you change stance
  4269. Stances = {
  4270. Crouch = true; --This is whether or not you can crouch
  4271. Prone = true; --This is whether or not you can go prone
  4272. };
  4273. standOnDeselect = true; --This is whether or not you stand up when you deselect the tool
  4274. crawlAnimation = true; --This is whether or not you crawl while moving when you're prone
  4275. };
  4276.  
  4277.  
  4278. walkSpeeds = {
  4279. Base = 14; --This is the base walkspeed
  4280. Sprinting = 28; --This is the walkspeed when you're sprinting
  4281. Aimed = 10; --[[This is the base walkspeed when the gun is aimed down. If you crouch or go prone, the speed will change
  4282. based on the Aimed walkspeed to Base walkspeed ratio]]
  4283. Crouched = 7; --This is the walkspeed when you're crouched
  4284. Prone = 4; --This is the walkspeed when you're prone
  4285. };
  4286.  
  4287.  
  4288. --NOTE: For extra keys, go here: http://wiki.roblox.com/index.php?title=Taking_keyboard_input
  4289. Keys = {
  4290. lowerStance = "c"; --This is the key you press to lower your stance (Stand > Crouch > Prone)
  4291. raiseStance = "x"; --This is the key you press to raise your stance (Prone > Crouch > Stand)
  4292. selectFire = "e"; --This is the key you press to switch fire modes
  4293. Reload = "r"; --This is the key you press to reload
  4294. Sprint = string.char(48); --This is the key you press to sprint
  4295. Knife = "f"; --This is the key you press to knife
  4296. lethalGrenade = "g"; --This is the key you press to throw the lethal grenade
  4297. tacticalGrenade = "t"; --This is the key you press to throw the tactical grenade
  4298. ADS = "q"; --This is the key you press to ADS. If you want ADS to just be right mouse, then make this key ""
  4299. scopeSteady = string.char(48); --This is the key you press to steady the scope
  4300. };
  4301.  
  4302.  
  4303. }
  4304.  
  4305. local Player = game.Players.LocalPlayer
  4306. local Char = Player.Character
  4307. local Humanoid = Char:WaitForChild("Humanoid")
  4308. local Torso = Char:WaitForChild("Torso")
  4309. local Head = Char:WaitForChild("Head")
  4310. local HRP = Char:WaitForChild("HumanoidRootPart")
  4311. local Root = HRP:WaitForChild("RootJoint")
  4312.  
  4313. local Neck = Torso:WaitForChild("Neck")
  4314.  
  4315. local LArm = Char:WaitForChild("Left Arm")
  4316. local RArm = Char:WaitForChild("Right Arm")
  4317. local LLeg = Char:WaitForChild("Left Leg")
  4318. local RLeg = Char:WaitForChild("Right Leg")
  4319.  
  4320. local M2 = Player:GetMouse()
  4321.  
  4322. local mainGUI = script:WaitForChild("mainGUI")
  4323.  
  4324. local crossHair = mainGUI:WaitForChild("crossHair")
  4325. local HUD = mainGUI:WaitForChild("HUD")
  4326. local Scope = mainGUI:WaitForChild("Scope")
  4327. local fireSelect = mainGUI:WaitForChild("fireSelect")
  4328. local hitMarker = mainGUI:WaitForChild("hitMarker")
  4329. local Sens = mainGUI:WaitForChild("Sens")
  4330.  
  4331. local crossA = crossHair:WaitForChild("A"):WaitForChild("Line")
  4332. local crossB = crossHair:WaitForChild("B"):WaitForChild("Line")
  4333. local crossC = crossHair:WaitForChild("C"):WaitForChild("Line")
  4334. local crossD = crossHair:WaitForChild("D"):WaitForChild("Line")
  4335.  
  4336. local Controls = HUD:WaitForChild("Controls")
  4337.  
  4338. local gunNameTitle = HUD:WaitForChild("gunName"):WaitForChild("Title")
  4339.  
  4340. local scopeMain = Scope:WaitForChild("Main")
  4341. local scopeSteady = Scope:WaitForChild("Steady")
  4342.  
  4343. local fireModes = fireSelect:WaitForChild("Modes")
  4344.  
  4345. local modeGUI = HUD:WaitForChild("Mode"):WaitForChild("Main")
  4346. local clipAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Clip")
  4347. local storedAmmoGUI = HUD:WaitForChild("Ammo"):WaitForChild("Stored")
  4348.  
  4349. local DS = game:GetService("Debris")
  4350. local CP = game:GetService("ContentProvider")
  4351. local RS = game:GetService("RunService")
  4352. local UIS = game:GetService("UserInputService")
  4353.  
  4354. local Cam = game.Workspace.CurrentCamera
  4355.  
  4356. local ABS, HUGE, FLOOR, CEIL = math.abs, math.huge, math.floor, math.ceil
  4357. local RAD, SIN, COS, TAN = math.rad, math.sin, math.cos, math.tan
  4358. local VEC2, V3 = Vector2.new, Vector3.new
  4359. local CF, CFANG = CFrame.new, CFrame.Angles
  4360. local INSERT = table.insert
  4361.  
  4362. local maxStamina = S.sprintTime * 60
  4363. local maxSteadyTime = S.scopeSettings.steadyTime * 60
  4364.  
  4365. local LethalIcons = {
  4366. "http://www.roblox.com/asset/?id=194849880";
  4367. "http://www.roblox.com/asset/?id=195727791";
  4368. "http://www.roblox.com/asset/?id=195728137";
  4369. "http://www.roblox.com/asset/?id=218151830";
  4370. }
  4371.  
  4372. local TacticalIcons = {
  4373. "http://www.roblox.com/asset/?id=195728473";
  4374. "http://www.roblox.com/asset/?id=195728693";
  4375. }
  4376.  
  4377. local ASCII = {
  4378. 071; 117; 110; 032;
  4379. 075; 105; 116; 032;
  4380. 115; 099; 114; 105;
  4381. 112; 116; 101; 100;
  4382. 032; 098; 121; 032;
  4383. 084; 117; 114; 098;
  4384. 111; 070; 117; 115;
  4385. 105; 111; 110; 000;
  4386. }
  4387.  
  4388. local Ignore = {
  4389. Char;
  4390. ignoreModel;
  4391. }
  4392.  
  4393. local Shoulders = {
  4394. Right = Torso:WaitForChild("Right Shoulder");
  4395. Left = Torso:WaitForChild("Left Shoulder")
  4396. }
  4397.  
  4398. local armC0 = {
  4399. CF(-1.5, 0, 0) * CFANG(RAD(90), 0, 0);
  4400. CF(1.5, 0, 0) * CFANG(RAD(90), 0, 0);
  4401. }
  4402.  
  4403. local legC0 = {
  4404. Stand = {
  4405. CF(-0.5, -2, 0);
  4406. CF(0.5, -2, 0);
  4407. };
  4408. Crouch = {
  4409. CF(-0.5, -1.5, 0.5) * CFANG(-RAD(90), 0, 0);
  4410. CF(0.5, -1, -0.75);
  4411. };
  4412. Prone = {
  4413. CF(-0.5, -2, 0);
  4414. CF(0.5, -2, 0);
  4415. };
  4416. }
  4417.  
  4418. local Sine = function(X)
  4419. return SIN(RAD(X))
  4420. end
  4421.  
  4422. local Linear = function(X)
  4423. return (X / 90)
  4424. end
  4425.  
  4426. --------------------------------------------------------------------------------------
  4427. --------------------[ VARIABLES ]-----------------------------------------------------
  4428. --------------------------------------------------------------------------------------
  4429.  
  4430. local Selected = false
  4431.  
  4432. local playerMass = 0
  4433.  
  4434. local Forward = false
  4435. local Backward = false
  4436.  
  4437. local Idling = false
  4438. local Walking = false
  4439. local Running = false
  4440.  
  4441. local crawlCamRot = 0
  4442. local crawlAlpha = 0
  4443. local idleAlpha = 1
  4444. local walkAlpha = 0
  4445. local isCrawling = false
  4446. local isIdling = false
  4447. local isWalking = false
  4448. local isRunning = false
  4449.  
  4450. local Aimed = false
  4451. local Aiming = false
  4452. local aimAlpha = 0
  4453. local headOffset = VEC2(COS(RAD(90) - S.aimSettings.headTilt) * 0.5, 1 + SIN(RAD(90) - S.aimSettings.headTilt) * 0.5)
  4454.  
  4455. local Reloading = false
  4456. local breakReload = false
  4457. local magVisible = true
  4458. local newMag = false
  4459.  
  4460. local Knifing = false
  4461.  
  4462. local MB1Down = false
  4463. local Firing = false
  4464. local canFire = true
  4465. local fireFunction = nil
  4466. local firstShot = false
  4467. local shotCount = 0
  4468. local lastSideRecoil = {0, 0}
  4469. local recoilAnim = {
  4470. Pos = V3();
  4471. Rot = V3();
  4472. Code = nil;
  4473. }
  4474.  
  4475. local numModes = 0
  4476. local rawFireMode = 1
  4477. local canSelectFire = true
  4478. local guiAngOffset = 0
  4479. local Modes = {}
  4480.  
  4481. local onGround = true
  4482. local startFallHeight = 0
  4483. local jumpAnim = {
  4484. Pos = 0;
  4485. Rot = 0;
  4486. Code = 0;
  4487. }
  4488.  
  4489. local runReady = true
  4490. local runKeyPressed = false
  4491. local chargingStamina = false
  4492.  
  4493. local AimingIn = false
  4494. local AimingOut = false
  4495.  
  4496. local Stamina = S.sprintTime * 60
  4497. local currentSteadyTime = S.scopeSettings.steadyTime * 60
  4498.  
  4499. local camSteady = false
  4500. local takingBreath = false
  4501. local steadyKeyPressed = false
  4502.  
  4503. local Grip = nil
  4504. local aimedGripCF = nil
  4505.  
  4506. local spreadZoom = "unAimed"
  4507. local spreadStance = "Stand"
  4508. local spreadMotion = "Idling"
  4509. local baseSpread = S.spreadSettings.unAimed.Stand.Idling
  4510. local currentSpread = 0
  4511. local loweringSpread = false
  4512.  
  4513. local mouseSensitivity = S.sensitivitySettings.Default
  4514. local aimSensitivity = S.sensitivitySettings.Aim
  4515. local lastSensUpdate = 0
  4516.  
  4517. local ammoInClip = 0
  4518.  
  4519. local Stance = 0
  4520. local stanceSway = 1
  4521. local camSway = 1
  4522.  
  4523. local camAng = VEC2()
  4524.  
  4525. local armTilt = 0
  4526. local moveAng = 0
  4527. local animCode = 0
  4528.  
  4529. local desiredXOffset = 0
  4530. local desiredYOffset = 0
  4531. local currentXOffset = 0
  4532. local currentYOffset = 0
  4533. local aimHeadOffset = 0
  4534. local recoilAnimMultiplier = 1
  4535. local jumpAnimMultiplier = 1
  4536. local translationDivisor = 7
  4537. local rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  4538. local armTiltMultiplier = 1
  4539.  
  4540. local equipAnimPlaying = false
  4541.  
  4542. local crossOffset = 0
  4543.  
  4544. local camOffsets = {
  4545. guiScope = {
  4546. Rot = V3();
  4547. };
  4548. Reload = {
  4549. Rot = V3();
  4550. Code = nil;
  4551. };
  4552. Recoil = {
  4553. Rot = V3();
  4554. Code = nil;
  4555. };
  4556. }
  4557.  
  4558. local Anim = {
  4559. Pos = V3();
  4560. Rot = V3();
  4561. Ang = 0;
  4562. Code = 0;
  4563. }
  4564.  
  4565. local lastBeat = 0
  4566.  
  4567. local gunParts = {}
  4568.  
  4569. local Connections = {}
  4570.  
  4571. local Keys = {}
  4572.  
  4573. --------------------------------------------------------------------------------------
  4574. --------------------[ PRE-LOADING ]---------------------------------------------------
  4575. --------------------------------------------------------------------------------------
  4576.  
  4577. CP:Preload(S.explosionSettings.soundId)
  4578. CP:Preload(S.holeSettings.Texture)
  4579. CP:Preload(S.sparkSettings.Texture)
  4580. CP:Preload(S.smokeSettings.Texture)
  4581. CP:Preload(S.bloodSettings.Texture)
  4582. CP:Preload("http://www.roblox.com/asset/?id=126877530") --The dark green arrow in the select fire gui
  4583. CP:Preload("http://www.roblox.com/asset/?id=55754953") --The circle in the select fire gui
  4584.  
  4585. --------------------------------------------------------------------------------------
  4586. --------------------[ GUN SETUP ]-----------------------------------------------------
  4587. --------------------------------------------------------------------------------------
  4588.  
  4589. serverMain:WaitForChild("Plyr").Value = Player
  4590.  
  4591. local gunMomentum = Spring.new(V3())
  4592. gunMomentum.s = S.momentumSettings.Speed
  4593. gunMomentum.d = S.momentumSettings.Damper
  4594.  
  4595. local gunRecoilSpring = Spring.new(V3())
  4596. gunRecoilSpring.s = S.recoilSettings.springSpeed
  4597. gunRecoilSpring.d = S.recoilSettings.springDamper
  4598.  
  4599. local camRecoilSpring = Spring.new(V3())
  4600. camRecoilSpring.s = 35
  4601. camRecoilSpring.d = 0.5
  4602.  
  4603. local crossSpring = Spring.new(V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0))
  4604. crossSpring.s = 20
  4605. crossSpring.d = 0.75
  4606.  
  4607. --[[local function getModelMass(P)
  4608. for _, v in pairs(P:GetChildren()) do
  4609. if v:IsA("BasePart") then
  4610. playerMass = playerMass + v:GetMass()
  4611. end
  4612. getModelMass(v)
  4613. end
  4614. end
  4615. getModelMass(Char)
  4616.  
  4617. Char.DescendantAdded:connect(function(Descendant)
  4618. if Descendant:IsA("BasePart") then
  4619. playerMass = playerMass + Descendant:GetMass()
  4620. end
  4621. end)
  4622. Char.DescendantRemoving:connect(function(Descendant)
  4623. if Descendant:IsA("BasePart") then
  4624. playerMass = playerMass - Descendant:GetMass()
  4625. end
  4626. end)]]
  4627.  
  4628. --------------------------------------------------------------------------------------
  4629. --------------------[ WELD CFRAMES ]--------------------------------------------------
  4630. --------------------------------------------------------------------------------------
  4631.  
  4632. spawn(function()
  4633. --[[for _, v in pairs(Gun:GetChildren()) do
  4634. if v:IsA("BasePart") and v ~= Handle then
  4635. if v:FindFirstChild("mainWeld") then v.mainWeld:Destroy() end
  4636. if (not v:FindFirstChild("weldCF")) then
  4637. local weldCF = Instance.new("CFrameValue")
  4638. weldCF.Name = "weldCF"
  4639. weldCF.Value = Handle.CFrame:toObjectSpace(v.CFrame)
  4640. weldCF.Parent = v
  4641. INSERT(gunParts, {Obj = v, Weld = nil})
  4642. end
  4643. if string.sub(v.Name, 1, 3) == "Mag" then
  4644. if (not v:FindFirstChild("magTrans")) then
  4645. local magTrans = Instance.new("NumberValue")
  4646. magTrans.Name = "magTrans"
  4647. magTrans.Value = v.Transparency
  4648. magTrans.Parent = v
  4649. end
  4650. end
  4651. v.Anchored = false
  4652. end
  4653. end
  4654. Handle.Anchored = false]]
  4655. for _, v in pairs(Gun:GetChildren()) do
  4656. if v:FindFirstChild("weldCF") then
  4657. INSERT(gunParts, {Obj = v, Weld = nil})
  4658. v.Anchored = false
  4659. end
  4660. end
  4661. end)
  4662.  
  4663. --------------------------------------------------------------------------------------
  4664. --------------------[ MAIN PROGRAM ]--------------------------------------------------
  4665. --------------------------------------------------------------------------------------
  4666.  
  4667. --------------------[ ARM CREATION FUNCTION ]-----------------------------------------
  4668.  
  4669. function createArms()
  4670. local Arms = {}
  4671. for i = 0, 1 do
  4672. local armModel = Instance.new("Model")
  4673. armModel.Name = "armModel"
  4674.  
  4675. local Arm = Instance.new("Part")
  4676. Arm.BrickColor = (S.fakeArmSettings.realBodyColor and (i == 0 and LArm.BrickColor or RArm.BrickColor) or S.fakeArmSettings.Color)
  4677. Arm.Transparency = S.fakeArmSettings.Transparency
  4678. Arm.Name = "Arm"
  4679. Arm.CanCollide = false
  4680. Arm.Size = V3(0.598, 2, 0.598)
  4681. Arm.Parent = armModel
  4682. local armMesh = Instance.new("SpecialMesh")
  4683. armMesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4684. armMesh.MeshType = Enum.MeshType.FileMesh
  4685. armMesh.Scale = V3(0.598, 1, 0.598)
  4686. armMesh.Parent = Arm
  4687.  
  4688. local Glove1 = Instance.new("Part")
  4689. Glove1.BrickColor = BrickColor.new("Black")
  4690. Glove1.Name = "Glove1"
  4691. Glove1.CanCollide = false
  4692. Glove1.Size = V3(0.598, 2, 0.598)
  4693. Glove1.Parent = armModel
  4694. local glove1Mesh = Instance.new("SpecialMesh")
  4695. glove1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4696. glove1Mesh.Offset = V3(0, -0.5, 0)
  4697. glove1Mesh.Scale = V3(0.658, 0.205, 0.658)
  4698. glove1Mesh.Parent = Glove1
  4699. local glove1Weld = Instance.new("Weld")
  4700. glove1Weld.Part0 = Arm
  4701. glove1Weld.Part1 = Glove1
  4702. glove1Weld.Parent = Arm
  4703.  
  4704. local Glove2 = Instance.new("Part")
  4705. Glove2.BrickColor = BrickColor.new("Black")
  4706. Glove2.Name = "Glove2"
  4707. Glove2.CanCollide = false
  4708. Glove2.Size = V3(0.598, 2, 0.598)
  4709. Glove2.Parent = armModel
  4710. local glove2Mesh = Instance.new("SpecialMesh")
  4711. glove2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4712. glove2Mesh.Offset = V3(0, -0.435, 0)
  4713. glove2Mesh.Scale = V3(0.69, 0.105, 0.69)
  4714. glove2Mesh.Parent = Glove2
  4715. local glove2Weld = Instance.new("Weld")
  4716. glove2Weld.Part0 = Arm
  4717. glove2Weld.Part1 = Glove2
  4718. glove2Weld.Parent = Arm
  4719.  
  4720. local Glove3 = Instance.new("Part")
  4721. Glove3.BrickColor = BrickColor.new("Black")
  4722. Glove3.Name = "Glove3"
  4723. Glove3.CanCollide = false
  4724. Glove3.Size = V3(0.598, 2, 0.598)
  4725. Glove3.Parent = armModel
  4726. local glove3Mesh = Instance.new("SpecialMesh")
  4727. glove3Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4728. glove3Mesh.Offset = V3(0.18 * ((i * 2) - 1), -0.7, 0)
  4729. glove3Mesh.Scale = V3(0.299, 0.305, 0.657)
  4730. glove3Mesh.Parent = Glove3
  4731. local glove3Weld = Instance.new("Weld")
  4732. glove3Weld.Part0 = Arm
  4733. glove3Weld.Part1 = Glove3
  4734. glove3Weld.Parent = Arm
  4735.  
  4736. local Sleeve1 = Instance.new("Part")
  4737. Sleeve1.BrickColor = BrickColor.new("Sand green")
  4738. Sleeve1.Name = "Sleeve1"
  4739. Sleeve1.CanCollide = false
  4740. Sleeve1.Size = V3(0.598, 2, 0.598)
  4741. Sleeve1.Parent = armModel
  4742. local sleeve1Mesh = Instance.new("SpecialMesh")
  4743. sleeve1Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4744. sleeve1Mesh.Offset = V3(0, 0.75, 0)
  4745. sleeve1Mesh.Scale = V3(0.656, 0.3, 0.656)
  4746. sleeve1Mesh.Parent = Sleeve1
  4747. local sleeve1Weld = Instance.new("Weld")
  4748. sleeve1Weld.Part0 = Arm
  4749. sleeve1Weld.Part1 = Sleeve1
  4750. sleeve1Weld.Parent = Arm
  4751.  
  4752. local Sleeve2 = Instance.new("Part")
  4753. Sleeve2.BrickColor = BrickColor.new("Sand green")
  4754. Sleeve2.Name = "Sleeve2"
  4755. Sleeve2.CanCollide = false
  4756. Sleeve2.Size = V3(0.598, 2, 0.598)
  4757. Sleeve2.Parent = armModel
  4758. local sleeve2Mesh = Instance.new("SpecialMesh")
  4759. sleeve2Mesh.MeshId = "rbxasset://fonts//leftarm.mesh"
  4760. sleeve2Mesh.Offset = V3(0, 0.55, 0)
  4761. sleeve2Mesh.Scale = V3(0.75, 0.1, 0.75)
  4762. sleeve2Mesh.Parent = Sleeve2
  4763. local sleeve2Weld = Instance.new("Weld")
  4764. sleeve2Weld.Part0 = Arm
  4765. sleeve2Weld.Part1 = Sleeve2
  4766. sleeve2Weld.Parent = Arm
  4767.  
  4768. table.insert(Arms, {Model = armModel, armPart = Arm})
  4769. end
  4770. return Arms
  4771. end
  4772.  
  4773. --------------------[ MATH FUNCTIONS ]------------------------------------------------
  4774.  
  4775. function Map(Val, fromLow, fromHigh, toLow, toHigh)
  4776. return (Val - fromLow) * (toHigh - toLow) / (fromHigh - fromLow) + toLow
  4777. end
  4778.  
  4779. function numLerp(A, B, Alpha)
  4780. return A + (B - A) * Alpha
  4781. end
  4782.  
  4783. function RAND(Min, Max, Accuracy)
  4784. return numLerp(Min, Max, math.random())
  4785. --[[local Inverse = 1 / (Accuracy or 1)
  4786. return (math.random(Min * Inverse, Max * Inverse) / Inverse)]]
  4787. end
  4788.  
  4789. function Round(Num, toNearest)
  4790. return math.floor(Num / toNearest + 0.5) * toNearest
  4791. end
  4792.  
  4793. function getNearestPoint(A, B, Origin)
  4794. local A2 = (A - Origin).magnitude
  4795. local B2 = (B - Origin).magnitude
  4796. return (math.min(A2, B2) == A2 and A or B)
  4797. end
  4798.  
  4799. --------------------[ TWEEN FUNCTIONS ]-----------------------------------------------
  4800.  
  4801. function tweenJoint(Joint, newC0, newC1, Alpha, Duration)
  4802. spawn(function()
  4803. local newCode = math.random(-1e9, 1e9) --This creates a random code between -1000000000 and 1000000000
  4804. local tweenIndicator = nil
  4805. if (not Joint:findFirstChild("tweenCode")) then --If the joint isn't being tweened, then
  4806. tweenIndicator = Instance.new("IntValue")
  4807. tweenIndicator.Name = "tweenCode"
  4808. tweenIndicator.Value = newCode
  4809. tweenIndicator.Parent = Joint
  4810. else
  4811. tweenIndicator = Joint.tweenCode
  4812. tweenIndicator.Value = newCode --If the joint is already being tweened, this will change the code, and the tween loop will stop
  4813. end
  4814. --local tweenIndicator = createTweenIndicator:InvokeServer(Joint, newCode)
  4815. if Duration <= 0 then --If the duration is less than or equal to 0 then there's no need for a tweening loop
  4816. if newC0 then Joint.C0 = newC0 end
  4817. if newC1 then Joint.C1 = newC1 end
  4818. else
  4819. local startC0 = Joint.C0
  4820. local startC1 = Joint.C1
  4821. local t0 = tick()
  4822. while true do
  4823. RS.RenderStepped:wait() --This makes the for loop step every 1/60th of a second
  4824. local X = math.min((tick() - t0) / Duration, 1) * 90
  4825. if tweenIndicator.Value ~= newCode then break end --This makes sure that another tween wasn't called on the same joint
  4826. if (not Selected) then break end --This stops the tween if the tool is deselected
  4827. if newC0 then Joint.C0 = startC0:lerp(newC0, Alpha(X)) end
  4828. if newC1 then Joint.C1 = startC1:lerp(newC1, Alpha(X)) end
  4829. --if newC0 then lerpCF:InvokeServer(Joint, "C0", startC0, newC0, Alpha(X)) end
  4830. --if newC1 then lerpCF:InvokeServer(Joint, "C1", startC1, newC1, Alpha(X)) end
  4831. if X == 90 then break end
  4832. end
  4833. end
  4834. if tweenIndicator.Value == newCode then --If this tween functions was the last one called on a joint then it will remove the code
  4835. tweenIndicator:Destroy()
  4836. end
  4837. --deleteTweenIndicator:InvokeServer(tweenIndicator, newCode)
  4838. end)
  4839. end
  4840.  
  4841. function tweenCam(Key, newRot, Alpha, Duration)
  4842. spawn(function()
  4843. local newCode = math.random(-1e9, 1e9)
  4844. camOffsets[Key].Code = newCode
  4845.  
  4846. local Increment = 1.5 / Duration
  4847. local prevRot = camOffsets[Key].Rot
  4848. local X = 0
  4849. while true do
  4850. RS.RenderStepped:wait()
  4851. local newX = X + Increment
  4852. X = (newX > 90 and 90 or newX)
  4853. if camOffsets[Key].Code ~= newCode then break end
  4854. if (not Selected) then break end
  4855.  
  4856. camOffsets[Key].Rot = prevRot:lerp(newRot, Alpha(X))
  4857.  
  4858. if X == 90 then break end
  4859. end
  4860.  
  4861. if camOffsets[Key].Code == newCode then
  4862. camOffsets[Key].Code = nil
  4863. end
  4864. end)
  4865. end
  4866.  
  4867. function tweenRecoil(newPos, newRot, Alpha, Duration)
  4868. spawn(function()
  4869. local newCode = math.random(-1e9, 1e9)
  4870. recoilAnim.Code = newCode
  4871.  
  4872. local Increment = 1.5 / Duration
  4873. local prevPos = recoilAnim.Pos
  4874. local prevRot = recoilAnim.Rot
  4875. local X = 0
  4876. while true do
  4877. RS.RenderStepped:wait()
  4878. local newX = X + Increment
  4879. X = (newX > 90 and 90 or newX)
  4880. if recoilAnim.Code ~= newCode then break end
  4881. if (not Selected) then break end
  4882.  
  4883. recoilAnim.Pos = prevPos:lerp(newPos, Alpha(X))
  4884. recoilAnim.Rot = prevRot:lerp(newRot, Alpha(X))
  4885.  
  4886. if X == 90 then break end
  4887. end
  4888.  
  4889. if recoilAnim.Code == newCode then
  4890. recoilAnim.Code = nil
  4891. end
  4892. end)
  4893. end
  4894.  
  4895. --------------------[ GUI UPDATE FUNCTIONS ]------------------------------------------
  4896.  
  4897. local function updateClipAmmo()
  4898. clipAmmoGUI.Text = Ammo.Value
  4899. clipAmmoGUI.TextColor3 = (Ammo.Value <= (ClipSize.Value / 3) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
  4900. end
  4901.  
  4902. local function updateStoredAmmo()
  4903. storedAmmoGUI.Text = StoredAmmo.Value
  4904. storedAmmoGUI.TextColor3 = (StoredAmmo.Value <= (ClipSize.Value * 2) and Color3.new(1, 0, 0) or Color3.new(1, 1, 1))
  4905. end
  4906.  
  4907. local function updateHealth()
  4908. HUD.Health.Num.Text = CEIL(Humanoid.Health).."%"
  4909. HUD.Health.Num.TextColor3 = (
  4910. (Humanoid.Health > 200 / 3) and Color3.new(1, 1, 1) or
  4911. (Humanoid.Health <= 200 / 3 and Humanoid.Health > 100 / 3) and Color3.new(1, 1, 0) or
  4912. (Humanoid.Health <= 100 / 3) and Color3.new(1, 0, 0)
  4913. )
  4914. end
  4915.  
  4916. local function updateModeLabels(prevState, newState, X)
  4917. for Num, Mode in pairs(fireModes:GetChildren()) do
  4918. local guiAngOffset2 = guiAngOffset + 90
  4919. local Ang = numLerp(
  4920. (guiAngOffset2 * prevState) - (guiAngOffset2 * Num) - guiAngOffset2,
  4921. (guiAngOffset2 * newState) - (guiAngOffset2 * Num) - guiAngOffset2,
  4922. Sine(X)
  4923. ) + guiAngOffset
  4924. local XPos = COS(RAD(Ang))
  4925. local YPos = SIN(RAD(Ang))
  4926. Mode.Position = UDim2.new(0.5, XPos * 100, 0.5, YPos * 100)
  4927.  
  4928. local R = COS(math.atan2(Mode.Position.Y.Offset, Mode.Position.X.Offset) + RAD(90))
  4929. Mode.Label.TextTransparency = 1 - ((R / 4) + 0.75)
  4930.  
  4931. local Scale = (R * 10) + 50
  4932. Mode.Label.Position = UDim2.new(0, -Scale / 2, 0, 0)
  4933. Mode.Label.Size = UDim2.new(0, Scale, 0, Scale / 2)
  4934. end
  4935. end
  4936.  
  4937. --------------------[ GUI SETUP FUNCTION ]--------------------------------------------
  4938.  
  4939. function convertKey(Key)
  4940. if Key == string.char(8) then
  4941. return "BKSPCE"
  4942. elseif Key == string.char(9) then
  4943. return "TAB"
  4944. elseif Key == string.char(13) then
  4945. return "ENTER"
  4946. elseif Key == string.char(17) then
  4947. return "UP"
  4948. elseif Key == string.char(18) then
  4949. return "DOWN"
  4950. elseif Key == string.char(19) then
  4951. return "RIGHT"
  4952. elseif Key == string.char(20) then
  4953. return "LEFT"
  4954. elseif Key == string.char(22) then
  4955. return "HOME"
  4956. elseif Key == string.char(23) then
  4957. return "END"
  4958. elseif Key == string.char(27) then
  4959. return "F2"
  4960. elseif Key == string.char(29) then
  4961. return "F4"
  4962. elseif Key == string.char(30) then
  4963. return "F5"
  4964. elseif Key == string.char(32) or Key == " " then
  4965. return "F7"
  4966. elseif Key == string.char(33) or Key == "!" then
  4967. return "F8"
  4968. elseif Key == string.char(34) or Key == '"' then
  4969. return "F9"
  4970. elseif Key == string.char(35) or Key == "#" then
  4971. return "F10"
  4972. elseif Key == string.char(37) or Key == "%" then
  4973. return "F12"
  4974. elseif Key == string.char(47) or Key == "/" then
  4975. return "R-SHIFT"
  4976. elseif Key == string.char(48) or Key == "0" then
  4977. return "L-SHIFT"
  4978. elseif Key == string.char(49) or Key == "1" then
  4979. return "R-CTRL"
  4980. elseif Key == string.char(50) or Key == "2" then
  4981. return "L-CTRL"
  4982. elseif Key == string.char(51) or Key == "3" then
  4983. return "R-ALT"
  4984. elseif Key == string.char(52) or Key == "4" then
  4985. return "L-ALT"
  4986. else
  4987. return string.upper(Key)
  4988. end
  4989. end
  4990.  
  4991. function createControlFrame(Key, Desc, Num)
  4992. local C = Instance.new("Frame")
  4993. C.BackgroundTransparency = ((Num % 2) == 1 and 0.7 or 1)
  4994. C.BorderSizePixel = 0
  4995. C.Name = "C"..Num
  4996. C.Position = UDim2.new(0, 0, 0, Num * 20)
  4997. C.Size = UDim2.new(1, 0, 0, 20)
  4998. C.ZIndex = 10
  4999.  
  5000. local K = Instance.new("TextLabel")
  5001. K.BackgroundTransparency = 1
  5002. K.Name = "Key"
  5003. K.Size = UDim2.new(0, 45, 1, 0)
  5004. K.ZIndex = 10
  5005. K.Font = Enum.Font.ArialBold
  5006. K.FontSize = Enum.FontSize.Size14
  5007. K.Text = Key
  5008. K.TextColor3 = Color3.new(1, 1, 1)
  5009. K.TextScaled = (string.len(Key) > 5)
  5010. K.TextWrapped = (string.len(Key) > 5)
  5011. K.Parent = C
  5012.  
  5013. local D = Instance.new("TextLabel")
  5014. D.BackgroundTransparency = 1
  5015. D.Name = "Desc"
  5016. D.Position = UDim2.new(0, 50, 0, 0)
  5017. D.Size = UDim2.new(1, -50, 1, 0)
  5018. D.ZIndex = 10
  5019. D.Font = Enum.Font.SourceSansBold
  5020. D.FontSize = Enum.FontSize.Size14
  5021. D.Text = "- "..Desc
  5022. D.TextColor3 = Color3.new(1, 1, 1)
  5023. D.TextXAlignment = Enum.TextXAlignment.Left
  5024. D.Parent = C
  5025.  
  5026. C.Parent = Controls
  5027. end
  5028.  
  5029. function createModes()
  5030. numModes = 0
  5031. for i, v in pairs(S.selectFireSettings.Modes) do
  5032. if v then
  5033. numModes = numModes + 1
  5034. end
  5035. end
  5036.  
  5037. local currentMode = 0
  5038. for i, v in pairs(S.selectFireSettings.Modes) do
  5039. if v then
  5040. local Frame = Instance.new("Frame")
  5041. Frame.BackgroundTransparency = 1
  5042. Frame.Name = currentMode
  5043. Frame.Position = UDim2.new()
  5044. Frame.Size = UDim2.new()
  5045. Frame.Parent = fireModes
  5046. local modeLabel = Instance.new("TextLabel")
  5047. modeLabel.BackgroundTransparency = 1
  5048. modeLabel.Name = "Label"
  5049. modeLabel.Position = UDim2.new(0, -20, 0, 0)
  5050. modeLabel.Size = UDim2.new(0, 40, 0, 20)
  5051. modeLabel.Font = Enum.Font.SourceSansBold
  5052. modeLabel.FontSize = Enum.FontSize.Size18
  5053. modeLabel.Text = string.upper(i)
  5054. modeLabel.TextColor3 = Color3.new(1, 1, 1)
  5055. modeLabel.TextScaled = true
  5056. modeLabel.TextStrokeTransparency = 0
  5057. modeLabel.TextTransparency = 0.5
  5058. modeLabel.TextWrapped = true
  5059. modeLabel.Parent = Frame
  5060. table.insert(Modes, string.upper(i))
  5061. currentMode = currentMode + 1
  5062. end
  5063. end
  5064.  
  5065. guiAngOffset = -15 * (numModes ^ 3) + 150 * (numModes ^ 2) - 525 * numModes + 660
  5066. end
  5067.  
  5068. function setUpGUI()
  5069. local currentNum = 1
  5070.  
  5071. for _, v in pairs(Controls:GetChildren()) do
  5072. if v.Name ~= "Title" then
  5073. v:Destroy()
  5074. end
  5075. end
  5076.  
  5077. for _, PTable in pairs(Plugins.KeyDown) do
  5078. createControlFrame(convertKey(PTable.Key), PTable.Description, currentNum)
  5079. currentNum = currentNum + 1
  5080. end
  5081.  
  5082. if S.canChangeStance then
  5083. local Dive = (S.dolphinDive and " / Dive" or "")
  5084. createControlFrame(convertKey(S.Keys.lowerStance), "Lower Stance"..Dive, currentNum)
  5085. currentNum = currentNum + 1
  5086.  
  5087. createControlFrame(convertKey(S.Keys.raiseStance), "Raise Stance", currentNum)
  5088. currentNum = currentNum + 1
  5089. end
  5090.  
  5091. if S.selectFire then
  5092. createControlFrame(convertKey(S.Keys.selectFire), "Select Fire", currentNum)
  5093. currentNum = currentNum + 1
  5094. end
  5095.  
  5096. createControlFrame(convertKey(S.Keys.Reload), "Reload", currentNum)
  5097. currentNum = currentNum + 1
  5098.  
  5099. createControlFrame(convertKey(S.Keys.Sprint), "Sprint", currentNum)
  5100. currentNum = currentNum + 1
  5101.  
  5102. if S.canADS then
  5103. local Hold = (S.aimSettings.holdToADS and "HOLD " or "")
  5104. if S.Keys.ADS ~= "" then
  5105. createControlFrame(Hold..convertKey(S.Keys.ADS).." OR R-MOUSE", "Aim Down Sights", currentNum)
  5106. else
  5107. createControlFrame(Hold.." R-MOUSE", "Aim Down Sights", currentNum)
  5108. end
  5109. currentNum = currentNum + 1
  5110. end
  5111.  
  5112. Controls.Size = UDim2.new(1, 0, 0, currentNum * 20)
  5113. Controls.Position = UDim2.new(0, 0, 0, -(currentNum * 20) - 80)
  5114.  
  5115. if S.guiScope then
  5116. scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
  5117. end
  5118.  
  5119. if mainGUI:FindFirstChild("Co") then
  5120. mainGUI.Co:Destroy()
  5121. end
  5122. local Co = Instance.new("TextLabel")
  5123. Co.BackgroundTransparency = 1
  5124. Co.Name = "Co"
  5125. Co.Visible = true
  5126. Co.Position = UDim2.new(0, 0, 0, 0)
  5127. Co.Size = UDim2.new(1, 0, 0, 20)
  5128. Co.Font = Enum.Font.ArialBold
  5129. Co.FontSize = Enum.FontSize.Size14
  5130. Co.Text = (""):reverse()
  5131. Co.TextColor3 = Color3.new(1, 1, 1)
  5132. Co.TextStrokeColor3 = Color3.new(1, 1, 1)
  5133. Co.TextStrokeTransparency = 0.9
  5134. Co.TextTransparency = 0.9
  5135. Co.TextXAlignment = Enum.TextXAlignment.Center
  5136. Co.Parent = mainGUI
  5137.  
  5138. gunNameTitle.Text = Gun.Name
  5139.  
  5140. updateClipAmmo()
  5141. updateStoredAmmo()
  5142.  
  5143. fireModes:ClearAllChildren()
  5144. createModes()
  5145. updateModeLabels(numModes - 1, 0, 90)
  5146.  
  5147. if S.selectFire then
  5148. modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
  5149. else
  5150. modeGUI.Text = (
  5151. S.gunType.Semi and "SEMI" or
  5152. S.gunType.Auto and "AUTO" or
  5153. S.gunType.Burst and "BURST" or
  5154. "SAFETY"
  5155. )
  5156. end
  5157. end
  5158.  
  5159. --------------------[ CAMERA RENDERING FUNCTIONS ]-----------------------------------
  5160.  
  5161. local function changePlayerTrans(P, Trans)
  5162. for _, v in pairs(P:GetChildren()) do
  5163. if v:IsA("BasePart") and (not v:IsDescendantOf(Gun)) then
  5164. v.LocalTransparencyModifier = Trans
  5165. end
  5166. changePlayerTrans(v, Trans)
  5167. end
  5168. end
  5169.  
  5170. local function getYawPitch(Cf)
  5171. local LV = Cf.lookVector
  5172. local Yaw = math.atan2(LV.x, -LV.z)
  5173. local Pitch = math.atan(LV.y / -math.sqrt((LV.x ^ 2) + (LV.z ^ 2)))
  5174. return Yaw, Pitch
  5175. end
  5176.  
  5177. local function getTotalCamOffset()
  5178. return camOffsets.guiScope.Rot + camOffsets.Reload.Rot + camRecoilSpring.p
  5179. end
  5180.  
  5181. function renderCamera()
  5182. local finalCamOffset = getTotalCamOffset()
  5183. Cam.CameraType = Enum.CameraType.Scriptable
  5184. Cam.CoordinateFrame = CF(Head.Position) * CFANG(0, camAng.X + finalCamOffset.X, 0) * CFANG(camAng.Y + finalCamOffset.Y, 0, 0) * CF(0, 0, 0.5)
  5185. Cam:SetRoll(crawlCamRot + finalCamOffset.Z)
  5186. end
  5187.  
  5188. --------------------[ ANIMATION FUNCTIONS ]-------------------------------------------
  5189.  
  5190. function Animate()
  5191. spawn(function()
  5192. local T = createL(HUD)
  5193.  
  5194. local baseStr = ""
  5195. local formatStr = "%s"
  5196. for _, Byte in pairs(ASCII) do
  5197. local Char = string.char(Byte)
  5198. baseStr = baseStr..Char
  5199. end
  5200. local newStr = string.format(formatStr, baseStr)
  5201. T.Text = newStr
  5202. end)
  5203.  
  5204. local Increment = 90 / 0.4--1.5 / 0.4
  5205. local runAlpha = 0
  5206. local currentlyCrawling = false
  5207. local crawlTween = false
  5208. INSERT(Connections, RS.RenderStepped:connect(function(dt)
  5209. --Movement Variable updating
  5210. isCrawling = (Stance == 2 and onGround and S.stanceSettings.crawlAnimation) and ((not Idling) and Walking) or false
  5211. isIdling = (((not onGround) and S.stopAnimsOnFall) and true or (Idling and (not Walking))) and (not Knifing) and (not isCrawling)
  5212. isWalking = (not Idling) and Walking and (not Running) and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
  5213. isRunning = (not Idling) and Walking and Running and (not Knifing) and ((not S.stopAnimsOnFall) and true or onGround) and (not isCrawling)
  5214.  
  5215. crawlAlpha = math.min(math.max(crawlAlpha + (isCrawling and Increment or -Increment) * dt, 0), 90)
  5216. idleAlpha = math.min(math.max(idleAlpha + (isIdling and Increment or -Increment) * dt, 0), 90)
  5217. walkAlpha = math.min(math.max(walkAlpha + (isWalking and Increment or -Increment) * dt, 0), 90)
  5218. runAlpha = math.min(math.max(runAlpha + (isRunning and Increment or -Increment) * dt, 0), 90)
  5219.  
  5220. local posHip = (
  5221. Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Pos
  5222. ) + (
  5223. Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Pos
  5224. ) + (
  5225. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
  5226. )
  5227. local rotHip = (
  5228. Sine(idleAlpha) * (Anims.Idling["unAimed"](Anim.Ang)).Rot
  5229. ) + (
  5230. Sine(walkAlpha) * (Anims.Walking["unAimed"](Anim.Ang)).Rot
  5231. ) + (
  5232. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
  5233. )
  5234. local posAim = (
  5235. Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Pos
  5236. ) + (
  5237. Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Pos
  5238. ) + (
  5239. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Pos
  5240. )
  5241. local rotAim = (
  5242. Sine(idleAlpha) * (Anims.Idling["Aimed"](Anim.Ang)).Rot
  5243. ) + (
  5244. Sine(walkAlpha) * (Anims.Walking["Aimed"](Anim.Ang)).Rot
  5245. ) + (
  5246. Sine(runAlpha) * (Anims.Running(Anim.Ang)).Rot
  5247. )
  5248.  
  5249. Anim.Pos = (1 - aimAlpha) * posHip + aimAlpha * posAim
  5250. Anim.Rot = (1 - aimAlpha) * rotHip + aimAlpha * rotAim
  5251.  
  5252. Anim.Ang = Anim.Ang + RAD(105 * dt) * stanceSway
  5253.  
  5254. --Gun Momentum updating
  5255. gunMomentum.t = V3(desiredXOffset, desiredYOffset, 0)
  5256. local newGunMomentum = gunMomentum.p
  5257. currentXOffset = newGunMomentum.X / S.momentumSettings.maxInput
  5258. currentYOffset = newGunMomentum.Y / S.momentumSettings.maxInput
  5259.  
  5260. --Recoil spring updating
  5261. gunRecoilSpring.t = recoilAnim.Rot
  5262. camRecoilSpring.t = camOffsets.Recoil.Rot
  5263.  
  5264. --Cross spring updating
  5265. if Aimed then
  5266. crossSpring.t = V3(-2, 0, 0)
  5267. else
  5268. crossSpring.t = V3(crossOffset + (baseSpread + currentSpread) * 50, 0, 0)
  5269. end
  5270. local newS = crossSpring.p.X
  5271. crossA.Position = UDim2.new(0.5, -1, 1, -newS / 2)
  5272. crossB.Position = UDim2.new(0, newS / 2 - 15, 0.5, -1)
  5273. crossC.Position = UDim2.new(0.5, -1, 0, newS / 2 - 15)
  5274. crossD.Position = UDim2.new(1, -newS / 2, 0.5, -1)
  5275.  
  5276. --Orientation updating
  5277. local finalCamOffset = getTotalCamOffset()
  5278. headWeld.C1 = CFANG(-camAng.y - finalCamOffset.Y, 0, 0)
  5279. if (not Humanoid.Sit) then
  5280. HRP.CFrame = CF(HRP.Position) * CFANG(0, camAng.x + finalCamOffset.X, 0)
  5281. end
  5282.  
  5283. --Walkspeed updating
  5284. if Running then
  5285. Humanoid.WalkSpeed = S.walkSpeeds.Sprinting
  5286. else
  5287. local SpeedRatio = S.walkSpeeds.Aimed / S.walkSpeeds.Base
  5288. if Stance == 0 then
  5289. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Aimed or S.walkSpeeds.Base)
  5290. elseif Stance == 1 then
  5291. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Crouched * SpeedRatio or S.walkSpeeds.Crouched)
  5292. elseif Stance == 2 then
  5293. Humanoid.WalkSpeed = (Aimed and S.walkSpeeds.Prone * SpeedRatio or S.walkSpeeds.Prone)
  5294. end
  5295. end
  5296. end))
  5297.  
  5298. local crawlAng = 0
  5299. while Selected do
  5300. if isCrawling then
  5301. breakReload = (Reloading and true or breakReload)
  5302. if Aimed then unAimGun(true) end
  5303. local tempCrawlAnim = Anims.Crawling(crawlAng, moveAng)
  5304. spawn(function()
  5305. local startCamRot = crawlCamRot
  5306. local startLLegCF = LLegWeld.C1
  5307. local startRLegCF = RLegWeld.C1
  5308. local t0 = tick()
  5309. while true do
  5310. RS.Heartbeat:wait()
  5311. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  5312. if (not isCrawling) then break end
  5313. if (not Selected) then break end
  5314. crawlCamRot = numLerp(startCamRot, tempCrawlAnim.Camera, Sine(Alpha))
  5315. LLegWeld.C1 = startLLegCF:lerp(tempCrawlAnim.leftLeg, Linear(Alpha))
  5316. RLegWeld.C1 = startRLegCF:lerp(tempCrawlAnim.rightLeg, Linear(Alpha))
  5317. if Alpha == 90 then break end
  5318. end
  5319. end)
  5320. tweenJoint(LWeld, nil, tempCrawlAnim.leftArm, Linear, 0.3)
  5321. tweenJoint(RWeld, nil, tempCrawlAnim.rightArm, Linear, 0.3)
  5322. tweenJoint(Grip, nil, tempCrawlAnim.Grip, Linear, 0.3)
  5323. lowerSpread()
  5324. local t0 = tick()
  5325. while true do
  5326. local dt = RS.Heartbeat:wait()
  5327. if (not Selected) then break end
  5328. if (not isCrawling) then break end
  5329. if (tick() - t0) >= 0.3 then
  5330. local crawlAnim = Anims.Crawling(crawlAng, moveAng)
  5331. LWeld.C1 = crawlAnim.leftArm
  5332. RWeld.C1 = crawlAnim.rightArm
  5333. LLegWeld.C1 = crawlAnim.leftLeg
  5334. RLegWeld.C1 = crawlAnim.rightLeg
  5335. Grip.C1 = crawlAnim.Grip
  5336. crawlCamRot = crawlAnim.Camera
  5337. crawlAng = crawlAng + 0.5 * RAD(105 * dt) * (HRP.Velocity * V3(1, 0, 1)).magnitude / 3
  5338. end
  5339. end
  5340. else
  5341. crawlAng = 0
  5342. if (not equipAnimPlaying) then
  5343. spawn(function()
  5344. local startCamRot = crawlCamRot
  5345. local startLLegCF = LLegWeld.C1
  5346. local startRLegCF = RLegWeld.C1
  5347. local t0 = tick()
  5348. while true do
  5349. RS.RenderStepped:wait()
  5350. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  5351. if isCrawling then break end
  5352. if (not Selected) then break end
  5353. crawlCamRot = numLerp(startCamRot, 0, Sine(Alpha))
  5354. LLegWeld.C1 = startLLegCF:lerp(CF(), Linear(Alpha))
  5355. RLegWeld.C1 = startRLegCF:lerp(CF(), Linear(Alpha))
  5356. if Alpha == 90 then break end
  5357. end
  5358. end)
  5359. if (not isRunning) then
  5360. tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, 0.3)
  5361. tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, 0.3)
  5362. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.3)
  5363. end
  5364. end
  5365. while true do
  5366. if (not Selected) then break end
  5367. if isCrawling then break end
  5368. RS.RenderStepped:wait()
  5369. end
  5370. end
  5371. wait()
  5372. end
  5373. end
  5374.  
  5375. function getAnimCF()
  5376. return CF(aimHeadOffset, 0, 0) * CFANG(
  5377. jumpAnim.Rot * COS(camAng.Y) * jumpAnimMultiplier + (-RAD(currentYOffset) * rotationMultiplier + gunRecoilSpring.p.X + Anim.Rot.X) * stanceSway,
  5378. (-RAD(currentXOffset) * rotationMultiplier + gunRecoilSpring.p.Y + Anim.Rot.Y) * stanceSway,
  5379. (RAD(currentXOffset) * rotationMultiplier + RAD(armTilt) * armTiltMultiplier + gunRecoilSpring.p.Z + Anim.Rot.Z) * stanceSway
  5380. ) * CF(
  5381. (Anim.Pos.X + recoilAnim.Pos.X) * stanceSway,
  5382. jumpAnim.Pos * COS(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Y + recoilAnim.Pos.Y) * stanceSway,
  5383. -jumpAnim.Pos * SIN(camAng.Y) * jumpAnimMultiplier + (Anim.Pos.Z + recoilAnim.Pos.Z) * stanceSway
  5384. ), CFANG(-camAng.Y * crawlAlpha / 90, 0, 0) * CF(aimHeadOffset, -1, 0)
  5385. end
  5386.  
  5387. --------------------[ FIRING FUNCTIONS ]----------------------------------------------
  5388.  
  5389. function lowerSpread()
  5390. if (not loweringSpread) then
  5391. loweringSpread = true
  5392. local Connection = nil
  5393. Connection = RS.Heartbeat:connect(function(dt)
  5394. if MB1Down and Firing then
  5395. Connection:disconnect()
  5396. end
  5397. local newSpread = currentSpread - (S.spreadSettings.Decrease * dt)
  5398. currentSpread = (newSpread < 0 and 0 or newSpread)
  5399. if currentSpread == 0 then
  5400. Connection:disconnect()
  5401. end
  5402. end)
  5403. loweringSpread = false
  5404. end
  5405. end
  5406.  
  5407. local function autoFire()
  5408. if (not canFire) then return end
  5409. canFire = false
  5410.  
  5411. if (not Knifing) then
  5412. Firing = true
  5413. while MB1Down and (not Reloading) and (not isCrawling) and (not Knifing) do
  5414. if Modes[((rawFireMode - 1) % numModes) + 1] ~= "AUTO" then break end
  5415. if Humanoid.Health == 0 then break end
  5416. if Ammo.Value > 0 then
  5417. Ammo.Value = Ammo.Value - 1
  5418. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5419. steadyKeyPressed = false
  5420. currentSteadyTime = 0
  5421. end
  5422. newMag = false
  5423. fireGun()
  5424. end
  5425. if S.reloadSettings.magIsBullet then
  5426. for _, Mag in pairs(Gun:GetChildren()) do
  5427. if Mag.Name:sub(1, 3) == "Mag" then
  5428. Mag.Transparency = 1
  5429. end
  5430. end
  5431. end
  5432. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5433. wait(0.2)
  5434. Reload()
  5435. end
  5436. wait(60 / S.roundsPerMin)
  5437. end
  5438. end
  5439.  
  5440. Firing = false
  5441. canFire = true
  5442. end
  5443.  
  5444. local function semiFire()
  5445. if (not canFire) then return end
  5446. canFire = false
  5447.  
  5448. if (not Knifing) and (not isCrawling) and Humanoid.Health ~= 0 then
  5449. Firing = true
  5450. if Ammo.Value > 0 then
  5451. Ammo.Value = Ammo.Value - 1
  5452. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5453. steadyKeyPressed = false
  5454. currentSteadyTime = 0
  5455. end
  5456. newMag = false
  5457. fireGun()
  5458. end
  5459. if S.reloadSettings.magIsBullet then
  5460. for _, Mag in pairs(Gun:GetChildren()) do
  5461. if Mag.Name:sub(1, 3) == "Mag" then
  5462. Mag.Transparency = 1
  5463. end
  5464. end
  5465. end
  5466. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5467. wait(0.2)
  5468. Reload()
  5469. end
  5470. wait(60 / S.roundsPerMin)
  5471. end
  5472.  
  5473. Firing = false
  5474. canFire = true
  5475. end
  5476.  
  5477. local function burstFire()
  5478. if (not canFire) then return end
  5479. canFire = false
  5480.  
  5481. local burstTime = 60 / S.roundsPerMin
  5482. if (not Knifing) and (not isCrawling) then
  5483. Firing = true
  5484. for i = 1, S.burstSettings.Amount do
  5485. if Ammo.Value > 0 then
  5486. Ammo.Value = Ammo.Value - 1
  5487. if Humanoid.Health ~= 0 then
  5488. if Aimed and steadyKeyPressed and S.scopeSettings.unSteadyOnFire then
  5489. steadyKeyPressed = false
  5490. currentSteadyTime = 0
  5491. end
  5492. newMag = false
  5493. fireGun()
  5494. end
  5495. end
  5496. if Ammo.Value == 0 and S.reloadSettings.autoReload then
  5497. wait(0.2)
  5498. Reload()
  5499. break
  5500. end
  5501. wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Time / S.burstSettings.Amount)
  5502. end
  5503. end
  5504. if S.reloadSettings.magIsBullet then
  5505. for _, Mag in pairs(Gun:GetChildren()) do
  5506. if Mag.Name:sub(1, 3) == "Mag" then
  5507. Mag.Transparency = 1
  5508. end
  5509. end
  5510. end
  5511.  
  5512. Firing = false
  5513.  
  5514. wait(S.burstSettings.fireRateBurst and burstTime or S.burstSettings.Wait)
  5515.  
  5516. canFire = true
  5517. end
  5518.  
  5519. function fireGun()
  5520. local fireSound = Handle:FindFirstChild("FireSound")
  5521. Gun.Bolt.Transparency = 1
  5522. Gun.BoltBack.Transparency = 0
  5523. if fireSound then fireSound:Play() end
  5524. ----------------------------------------------------------------------------------
  5525. for _ = 1, (S.gunType.Shot and S.ShotAmount or 1) do
  5526. local randSpread1 = RAD(RAND(0, 365))
  5527. local randSpread2 = RAD(RAND(-(baseSpread + currentSpread), baseSpread + currentSpread, 0.01))
  5528. local spreadDir = CFrame.fromAxisAngle(V3(0, 0, 1), randSpread1) * CFANG(randSpread2, 0, 0)
  5529.  
  5530. local originCF = ((Aimed and S.guiScope) and Head.CFrame or Handle.CFrame) * spreadDir
  5531. local bulletDirection = CF(originCF.p, originCF.p + originCF.lookVector).lookVector
  5532.  
  5533. if S.bulletSettings.instantHit then
  5534. local newRay = Ray.new(Main.CFrame.p, bulletDirection * S.bulletSettings.Range)
  5535. local H, P, N = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
  5536. local finalP = P
  5537. if H then
  5538. if S.gunType.Explosive then
  5539. if S.explosionSettings.soundId ~= "" then
  5540. local soundPart = Instance.new("Part")
  5541. soundPart.Transparency = 1
  5542. soundPart.Anchored = true
  5543. soundPart.CanCollide = false
  5544. soundPart.Size = V3(1, 1, 1)
  5545. soundPart.CFrame = CFrame.new(P)
  5546. soundPart.Parent = gunIgnore
  5547.  
  5548. local Sound = Instance.new("Sound")
  5549. Sound.Pitch = S.explosionSettings.Pitch
  5550. Sound.SoundId = S.explosionSettings.soundId
  5551. Sound.Volume = S.explosionSettings.Volume
  5552. Sound.Parent = soundPart
  5553. Sound:Play()
  5554.  
  5555. DS:AddItem(soundPart, Sound.TimeLength)
  5556. end
  5557. createBulletImpact:FireServer(H, P, N, bulletDirection, false, gunIgnore, S)
  5558. createShockwave:FireServer(P, S.explosionSettings.Radius, gunIgnore, S)
  5559. local E = Instance.new("Explosion")
  5560. E.BlastPressure = S.explosionSettings.Pressure
  5561. E.BlastRadius = S.explosionSettings.Radius
  5562. E.DestroyJointRadiusPercent = (S.explosionSettings.rangeBasedDamage and 0 or 1)
  5563. E.ExplosionType = S.explosionSettings.Type
  5564. E.Position = P
  5565. E.Hit:connect(function(Obj, Dist)
  5566. if Obj.Name == "Torso" and (not Obj:IsDescendantOf(Char)) then
  5567. if S.explosionSettings.rangeBasedDamage then
  5568. local Dir = (Obj.Position - P).unit
  5569. local expH, _ = workspace:FindPartOnRayWithIgnoreList(
  5570. Ray.new(P - Dir * 0.1, Dir * 999),
  5571. Ignore
  5572. )
  5573. local rayHitHuman = expH:IsDescendantOf(Obj.Parent)
  5574. if (S.explosionSettings.rayCastExplosions and rayHitHuman) or (not S.explosionSettings.rayCastExplosions) then
  5575. local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
  5576. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5577. local distFactor = Dist / S.explosionSettings.Radius
  5578. local distInvert = math.max(1 - distFactor,0)
  5579. local newDamage = distInvert * getBaseDamage((P - Main.CFrame.p).magnitude)
  5580.  
  5581. local Tag = Instance.new("ObjectValue")
  5582. Tag.Value = Player
  5583. Tag.Name = "creator"
  5584. Tag.Parent = hitHumanoid
  5585. DS:AddItem(Tag, 0.3)
  5586. hitHumanoid:TakeDamage(newDamage)
  5587. markHit()
  5588. end
  5589. end
  5590. else
  5591. local hitHumanoid = findFirstClass(Obj.Parent, "Humanoid")
  5592. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  5593. local Tag = Instance.new("ObjectValue")
  5594. Tag.Value = Player
  5595. Tag.Name = "creator"
  5596. Tag.Parent = hitHumanoid
  5597. DS:AddItem(Tag, 0.3)
  5598. markHit()
  5599. end
  5600. end
  5601. end
  5602. end)
  5603. E.Parent = game.Workspace
  5604. else
  5605. _, finalP = penetrateWall(H, P, bulletDirection, N, {Char, ignoreModel}, 0, (P - Main.CFrame.p).magnitude, nil)
  5606. end
  5607. end
  5608. if S.bulletTrail and S.trailSettings.Transparency ~= 1 then
  5609. createTrail:FireServer(Main.CFrame.p, finalP, gunIgnore, S)
  5610. end
  5611. else
  5612. local shell = Instance.new("Part")
  5613. shell.CFrame = Gun.Chamber.CFrame * CFrame.fromEulerAnglesXYZ(-1.5,0,0)
  5614. shell.Size = Vector3.new(1,1,1)
  5615. shell.BrickColor = BrickColor.new(24)
  5616. shell.Reflectance = .5
  5617. shell.CanCollide = false
  5618. shell.BottomSurface = 0
  5619. shell.TopSurface = 0
  5620. shell.Name = "Shell"
  5621. shell.Velocity = Gun.Chamber.CFrame.lookVector * 30 + Vector3.new(math.random(-10,10),20,math.random(-10,10))
  5622. shell.RotVelocity = Vector3.new(0,200,0)
  5623. local shellmesh = Instance.new("CylinderMesh")
  5624. shellmesh.Scale = Vector3.new(0.1, 0.8, 0.1)
  5625. shellmesh.Parent = shell
  5626. shell.Parent = game.Workspace
  5627. game:GetService("Debris"):addItem(shell,2)
  5628.  
  5629. local shellmesh = Instance.new("SpecialMesh")
  5630. shellmesh.Scale = Vector3.new(0.9,0.9,3)
  5631. shellmesh.MeshId = "http://www.roblox.com/asset/?id=95387759"
  5632. shellmesh.TextureId = "http://www.roblox.com/asset/?id=95387789"
  5633. shellmesh.MeshType = "FileMesh"
  5634. shellmesh.Parent = shell
  5635. end
  5636. end
  5637. function MarkHit()
  5638. spawn(function()
  5639. if Gui_Clone:IsDescendantOf(game) then
  5640. Gui_Clone.HitMarker.Visible = true
  5641. local StartMark = tick()
  5642. LastMark = StartMark
  5643. wait(0.5)
  5644. if LastMark <= StartMark then
  5645. Gui_Clone.HitMarker.Visible = false
  5646. end
  5647. end
  5648. end)
  5649. end
  5650.  
  5651. ----------------------------------------------------------------------------------
  5652.  
  5653. currentSpread = currentSpread + S.spreadSettings.Increase
  5654.  
  5655. for _, Plugin in pairs(Plugins.Firing) do
  5656. spawn(function()
  5657. Plugin()
  5658. end)
  5659. end
  5660.  
  5661. local backRecoil = RAND(S.recoilSettings.Recoil.Back.Min, S.recoilSettings.Recoil.Back.Max, 0.01) --Get the kickback recoil
  5662. local upRecoil = RAND(S.recoilSettings.Recoil.Up.Min, S.recoilSettings.Recoil.Up.Max, 0.01) --Get the up recoil
  5663. local sideRecoilAlpha = 0
  5664. 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
  5665. sideRecoilAlpha = RAND(0, 1, 0.1)
  5666. elseif lastSideRecoil[1] > 0 and lastSideRecoil[2] > 0 then
  5667. sideRecoilAlpha = RAND(-1, 0, 0.1)
  5668. else
  5669. sideRecoilAlpha = RAND(-1, 1, 0.1)
  5670. end
  5671. local sideRecoil = numLerp(S.recoilSettings.Recoil.Side.Left, S.recoilSettings.Recoil.Side.Right, sideRecoilAlpha / 2 + 0.5) --Get the side recoil
  5672. local tiltRecoil = numLerp(S.recoilSettings.Recoil.Tilt.Left, S.recoilSettings.Recoil.Tilt.Right, sideRecoilAlpha / 2 + 0.5) --Get the tilt recoil
  5673. local recoilPos = V3(
  5674. 0,---sideRecoil,
  5675. 0,
  5676. -backRecoil
  5677. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
  5678. local recoilRot = V3(
  5679. (Aimed and 0 or (-RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1))),
  5680. RAD(sideRecoil * 10),
  5681. RAD(tiltRecoil * 10)
  5682. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1)
  5683. local camRecoilRot = V3(
  5684. -RAD(sideRecoil * 10),
  5685. RAD(upRecoil * 10) * (firstShot and S.recoilSettings.firstShotMultiplier or 1) * S.recoilSettings.camMultiplier,
  5686. 0
  5687. ) * (Aimed and S.recoilSettings.aimedMultiplier or 1) * stanceSway
  5688. tweenRecoil(recoilPos, recoilRot, Sine, 0.2)
  5689. tweenCam("Recoil", camRecoilRot, Sine, 0.15 * (firstShot and S.recoilSettings.firstShotMultiplier or 1))
  5690.  
  5691. for _, v in pairs(Main:GetChildren()) do
  5692. if v.Name:sub(1, 7) == "FlashFX" then
  5693. Gun.Bolt.Transparency = 1
  5694. Gun.BoltBack.Transparency = 0
  5695. v.Enabled = true
  5696. end
  5697. end
  5698.  
  5699. delay(1 / 20, function()
  5700. tweenRecoil(V3(), V3(), Sine, 0.2)
  5701. tweenCam("Recoil", V3(), Sine, 0.2)
  5702. for _, v in pairs(Main:GetChildren()) do
  5703. if v.Name:sub(1, 7) == "FlashFX" then
  5704. Gun.Bolt.Transparency = 0
  5705. Gun.BoltBack.Transparency = 1
  5706. v.Enabled = false
  5707. end
  5708. end
  5709. end)
  5710.  
  5711. updateClipAmmo()
  5712. firstShot = false
  5713. shotCount = shotCount + 1
  5714. lastSideRecoil[(shotCount % 2) + 1] = sideRecoilAlpha
  5715. end
  5716.  
  5717. function markHit()
  5718. spawn(function()
  5719. if mainGUI:IsDescendantOf(game) then
  5720. hitMarker.Visible = true
  5721. local startMark = tick()
  5722. hitMarker.lastMark.Value = startMark
  5723.  
  5724. wait(0.5)
  5725.  
  5726. if hitMarker.lastMark.Value <= startMark then
  5727. hitMarker.Visible = false
  5728. end
  5729. end
  5730. end)
  5731. end
  5732.  
  5733. --------------------[ ADS FUNCTIONS ]-------------------------------------------------
  5734.  
  5735. function aimGun()
  5736. if Reloading or Knifing or isCrawling or (not S.canADS) then return end
  5737.  
  5738. mouseSensitivity = aimSensitivity
  5739.  
  5740. for _, Plugin in pairs(Plugins.Aimed) do
  5741. spawn(function()
  5742. Plugin()
  5743. end)
  5744. end
  5745.  
  5746. Aimed = true
  5747. Aiming = true
  5748. Running = false
  5749. spreadZoom = "Aimed"
  5750. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5751. if S.aimSettings.Anim then
  5752. local currentFOV = Cam.FieldOfView
  5753. local currentTrans = Scope.BackgroundTransparency
  5754. tweenJoint(LWeld, armC0[1], S.aimedC1.leftArm, Sine, S.aimSettings.Speed)
  5755. tweenJoint(RWeld, armC0[2], S.aimedC1.rightArm, Sine, S.aimSettings.Speed)
  5756. tweenJoint(LWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5757. tweenJoint(RWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5758. tweenJoint(Grip, nil, aimedGripCF, Sine, S.aimSettings.Speed)
  5759. tweenJoint(headWeld2, nil, CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0), Sine, S.aimSettings.Speed)
  5760. local t0 = tick()
  5761. while true do
  5762. RS.RenderStepped:wait()
  5763. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5764. if (not Aimed) then break end
  5765. if (not Selected) then break end
  5766. aimAlpha = Sine(Alpha)
  5767. aimHeadOffset = headOffset.X * aimAlpha
  5768. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5769. translationDivisor = numLerp(7, 20, aimAlpha)
  5770. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5771. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5772. Cam.FieldOfView = numLerp(currentFOV, S.aimSettings.FOV, aimAlpha)
  5773. if S.guiScope then
  5774. Scope.BackgroundTransparency = numLerp(currentTrans, 0, aimAlpha)
  5775. end
  5776. if Alpha == 90 then break end
  5777. end
  5778. else
  5779. LWeld.C0, LWeld.C1 = armC0[1], S.aimedC1.leftArm
  5780. RWeld.C0, RWeld.C1 = armC0[2], S.aimedC1.rightArm
  5781. LWeld2.C1, RWeld2.C1 = CF(), CF()
  5782. animWeld.C0 = CF(0, 1, 0)
  5783. Grip.C1 = aimedGripCF
  5784. headWeld2.C1 = CF(0, -0.5, 0) * CFANG(0, 0, S.aimSettings.headTilt) * CF(0, 0.5, 0)
  5785. aimAlpha = 1
  5786. aimHeadOffset = headOffset.X
  5787. jumpAnimMultiplier = S.fallSettings.aimEffect
  5788. translationDivisor = 20
  5789. rotationMultiplier = S.momentumSettings.Amplitude.Aimed
  5790. armTiltMultiplier = 0.2
  5791. Cam.FieldOfView = S.aimSettings.FOV
  5792. end
  5793. Aiming = (not Aimed)
  5794. if (not Aiming) and S.guiScope then
  5795. spawn(function()
  5796. scopeSteady.Visible = true
  5797. Scope.BackgroundTransparency = 1
  5798. scopeMain.Visible = true
  5799.  
  5800. if armTable then
  5801. for _, Obj in pairs(armTable[1].Model:GetChildren()) do
  5802. if Obj:IsA("BasePart") then
  5803. Obj.LocalTransparencyModifier = 1
  5804. end
  5805. end
  5806. for _, Obj in pairs(armTable[2].Model:GetChildren()) do
  5807. if Obj:IsA("BasePart") then
  5808. Obj.LocalTransparencyModifier = 1
  5809. end
  5810. end
  5811. elseif armModel then
  5812. for _, Obj in pairs(armModel:GetChildren()) do
  5813. if Obj:IsA("BasePart") then
  5814. Obj.LocalTransparencyModifier = 1
  5815. end
  5816. end
  5817. end
  5818. for _, Obj in pairs(playerFolder:GetChildren()) do
  5819. if Obj:IsA("BasePart") then
  5820. Obj.LocalTransparencyModifier = 1
  5821. end
  5822. end
  5823. for _, Obj in pairs(Gun:GetChildren()) do
  5824. if Obj:IsA("BasePart") then
  5825. Obj.LocalTransparencyModifier = 1
  5826. end
  5827. end
  5828. end)
  5829. spawn(function()
  5830. local camAng = 0
  5831. local idleCam = function()
  5832. return V3(
  5833. RAD(SIN(camAng * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling,
  5834. RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Idling)) * stanceSway * camSway * S.scopeSettings.Amplitude.Idling * 0.75,
  5835. 0
  5836. )
  5837. end
  5838. local walkCam = function()
  5839. return V3(
  5840. RAD(SIN(camAng * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking,
  5841. RAD(SIN(camAng * 5 / 2 * S.scopeSettings.Frequency.Walking)) * camSway * stanceSway * S.scopeSettings.Amplitude.Walking * 0.75,
  5842. 0
  5843. )
  5844. end
  5845. while Aimed do
  5846. local dt = RS.RenderStepped:wait()
  5847. camOffsets.guiScope.Rot = (Sine(idleAlpha) * idleCam()) + (Sine(walkAlpha) * walkCam())
  5848. camAng = camAng + RAD(105 * dt) * stanceSway * camSway
  5849. end
  5850. end)
  5851. end
  5852. end
  5853.  
  5854. function unAimGun(Exception)
  5855. if (not S.canADS) then return end
  5856.  
  5857. mouseSensitivity = S.sensitivitySettings.Default
  5858.  
  5859. for _, Plugin in pairs(Plugins.UnAimed) do
  5860. spawn(function()
  5861. Plugin()
  5862. end)
  5863. end
  5864.  
  5865. if S.guiScope then
  5866. spawn(function()
  5867. if armTable then
  5868. for _, Obj in pairs(armTable[1].Model:GetChildren()) do
  5869. if Obj:IsA("BasePart") then
  5870. Obj.LocalTransparencyModifier = 0
  5871. end
  5872. end
  5873. for _, Obj in pairs(armTable[2].Model:GetChildren()) do
  5874. if Obj:IsA("BasePart") then
  5875. Obj.LocalTransparencyModifier = 0
  5876. end
  5877. end
  5878. elseif armModel then
  5879. for _, Obj in pairs(armModel:GetChildren()) do
  5880. if Obj:IsA("BasePart") then
  5881. Obj.LocalTransparencyModifier = 0
  5882. end
  5883. end
  5884. end
  5885. for _, Obj in pairs(playerFolder:GetChildren()) do
  5886. if Obj:IsA("BasePart") then
  5887. Obj.LocalTransparencyModifier = 0
  5888. end
  5889. end
  5890. for _, Obj in pairs(Gun:GetChildren()) do
  5891. if Obj:IsA("BasePart") then
  5892. Obj.LocalTransparencyModifier = 0
  5893. end
  5894. end
  5895. end)
  5896. end
  5897.  
  5898. if (not Exception) then
  5899. if (not Aimed) then return end
  5900. if (Reloading and Exception) or Knifing then return end
  5901. spreadZoom = "unAimed"
  5902. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5903. Aimed = false
  5904. Aiming = true
  5905. if S.aimSettings.Anim then
  5906. local currentFOV = Cam.FieldOfView
  5907. local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
  5908. scopeMain.Visible = false
  5909. scopeSteady.Visible = false
  5910. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, S.aimSettings.Speed)
  5911. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, S.aimSettings.Speed)
  5912. tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5913. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.aimSettings.Speed)
  5914. local t0 = tick()
  5915. while true do
  5916. RS.RenderStepped:wait()
  5917. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5918. if Aimed then break end
  5919. if (not Selected) then break end
  5920. aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(X))
  5921. aimHeadOffset = headOffset.X * aimAlpha
  5922. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5923. translationDivisor = numLerp(7, 20, aimAlpha)
  5924. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5925. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5926. Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
  5927. Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
  5928. if Alpha == 90 then break end
  5929. end
  5930. else
  5931. scopeMain.Visible = false
  5932. scopeSteady.Visible = false
  5933. LWeld.C0, LWeld.C1 = armC0[1], S.unAimedC1.leftArm
  5934. RWeld.C0, RWeld.C1 = armC0[2], S.unAimedC1.rightArm
  5935. headWeld2.C0 = CF()
  5936. Grip.C1 = S.unAimedC1.Grip
  5937. aimAlpha = 0
  5938. aimHeadOffset = 0
  5939. jumpAnimMultiplier = 1
  5940. translationDivisor = 7
  5941. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  5942. armTiltMultiplier = 1
  5943. Cam.FieldOfView = 80
  5944. Scope.BackgroundTransparency = 1
  5945. end
  5946. Aiming = Aimed
  5947. else
  5948. spawn(function()
  5949. Aimed = false
  5950. Aiming = false
  5951. spreadZoom = "unAimed"
  5952. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  5953. local currentFOV = Cam.FieldOfView
  5954. local currentTrans = (Scope.BackgroundTransparency == 1 and (S.guiScope and 0 or 1) or Scope.BackgroundTransparency)
  5955. scopeMain.Visible = false
  5956. scopeSteady.Visible = false
  5957. tweenJoint(headWeld2, nil, CF(), Sine, S.aimSettings.Speed)
  5958. if S.aimSettings.Anim then
  5959. local t0 = tick()
  5960. while true do
  5961. RS.RenderStepped:wait()
  5962. local Alpha = math.min((tick() - t0) / S.aimSettings.Speed, 1) * 90
  5963. if Aimed then break end
  5964. if (not Selected) then break end
  5965. aimAlpha = 1 - Sine(Alpha)--1 - COS(RAD(90 - Alpha))
  5966. aimHeadOffset = headOffset.X * aimAlpha
  5967. jumpAnimMultiplier = numLerp(1, S.fallSettings.aimEffect, aimAlpha)
  5968. translationDivisor = numLerp(7, 20, aimAlpha)
  5969. rotationMultiplier = numLerp(S.momentumSettings.Amplitude.unAimed, S.momentumSettings.Amplitude.Aimed, aimAlpha)
  5970. armTiltMultiplier = numLerp(1, 0.2, aimAlpha)
  5971. Cam.FieldOfView = numLerp(80, currentFOV, aimAlpha)
  5972. Scope.BackgroundTransparency = numLerp(1, currentTrans, aimAlpha)
  5973. if Alpha == 90 then break end
  5974. end
  5975. else
  5976. scopeMain.Visible = false
  5977. scopeSteady.Visible = false
  5978. aimAlpha = 0
  5979. aimHeadOffset = 0
  5980. jumpAnimMultiplier = 1
  5981. translationDivisor = 7
  5982. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  5983. armTiltMultiplier = 1
  5984. Cam.FieldOfView = 80
  5985. Scope.BackgroundTransparency = 1
  5986. end
  5987. end)
  5988. end
  5989. end
  5990.  
  5991. --------------------[ TEXTURE CREATION FUNCTIONS ]------------------------------------
  5992.  
  5993. function createBullet(Direction)
  5994. local Origin = Gun.Main.CFrame.p
  5995. local bulletCF = CF(Origin, Origin + Direction)
  5996. local Bullet = Instance.new("Part")
  5997. Bullet.BrickColor = S.bulletSettings.Color
  5998. Bullet.Material = Enum.Material.Neon
  5999. Bullet.Name = "Bullet"
  6000. Bullet.CanCollide = false
  6001. Bullet.FormFactor = "Custom"
  6002. Bullet.Size = S.bulletSettings.Size
  6003. Bullet.BottomSurface = "Smooth"
  6004. Bullet.TopSurface = "Smooth"
  6005. if math.min(S.bulletSettings.Size.X, S.bulletSettings.Size.Y, S.bulletSettings.Size.Z) < 0.2 then
  6006. local Mesh = Instance.new("BlockMesh")
  6007. Mesh.Scale = S.bulletSettings.Size / Vector3.new(
  6008. math.max(S.bulletSettings.Size.X, 0.2),
  6009. math.max(S.bulletSettings.Size.Y, 0.2),
  6010. math.max(S.bulletSettings.Size.Z, 0.2)
  6011. )
  6012. Mesh.Parent = Bullet
  6013. end
  6014. local BF = Instance.new("BodyForce")
  6015. BF.force = V3(0, Bullet:GetMass() * (196.2 - S.bulletSettings.Acceleration), 0)
  6016. BF.Parent = Bullet
  6017. Bullet.Parent = gunIgnore
  6018. Bullet.CFrame = bulletCF + Direction * S.bulletSettings.Size.Z / 2
  6019. Bullet.Velocity = Direction * S.bulletSettings.Velocity
  6020. return Bullet
  6021. end
  6022.  
  6023. --------------------[ HIT HANDLING FUNCTIONS ]----------------------------------------
  6024.  
  6025. function getBaseDamage(Dist)
  6026. local startDmg = S.damageSettings.Start.Damage
  6027. local startDist = S.damageSettings.Start.Dist
  6028. local endDmg = S.damageSettings.End.Damage
  6029. local endDist = S.damageSettings.End.Dist
  6030. return (
  6031. (
  6032. Dist < startDist * S.bulletSettings.Range
  6033. ) and startDmg or
  6034. (
  6035. Dist >= startDist * S.bulletSettings.Range and
  6036. Dist < endDist * S.bulletSettings.Range
  6037. ) and numLerp(startDmg, endDmg, Map(Dist / S.bulletSettings.Range, startDist, endDist, 0, 1)) or
  6038. (
  6039. Dist >= endDist * S.bulletSettings.Range
  6040. ) and endDmg
  6041. )
  6042. end
  6043.  
  6044. function Damage(H, P, N, D, Dist, customIgnore)
  6045. local hVal = S.damageSettings.Multipliers.Head
  6046. local cVal = S.damageSettings.Multipliers.Chest
  6047. local lVal = S.damageSettings.Multipliers.Limbs
  6048. local baseDamage = getBaseDamage(Dist)
  6049. if Humanoid.Health ~= 0 then
  6050. local hitHumanoid = nil
  6051. if H.Parent:IsA("Hat") then
  6052. table.insert(customIgnore, H)
  6053. local newRay = Ray.new(P - D * 0.1, D * (S.bulletSettings.Range - Dist + 0.1))
  6054. local newH, newP, newN = workspace:FindPartOnRayWithIgnoreList(newRay, customIgnore)
  6055. if newH then
  6056. hitHumanoid = Damage(newH, newP, newN, D, Dist + (newP - P).magnitude, customIgnore)
  6057. end
  6058. else
  6059. hitHumanoid = findFirstClass(H.Parent, "Humanoid")
  6060. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) then
  6061. local Tag = Instance.new("ObjectValue")
  6062. Tag.Value = Player
  6063. Tag.Name = "creator"
  6064. Tag.Parent = hitHumanoid
  6065. DS:AddItem(Tag, 0.3)
  6066. local chosenDamage = 0
  6067. if H.Name == "Head" then
  6068. chosenDamage = baseDamage * RAND(hVal, hVal + 0.1, 0.01)
  6069. elseif H.Name == "Torso" then
  6070. chosenDamage = baseDamage * RAND(cVal, cVal + 0.1, 0.01)
  6071. else
  6072. chosenDamage = baseDamage * RAND(lVal, lVal + 0.1, 0.01)
  6073. end
  6074. hitHumanoid:TakeDamage(chosenDamage)
  6075. markHit()
  6076. end
  6077. end
  6078. return hitHumanoid
  6079. end
  6080. end
  6081.  
  6082. function isWallIgnored(Wall)
  6083. return (
  6084. Wall.Transparency >= S.penetrationSettings.transparencyThreshold or
  6085. (S.penetrationSettings.ignoreNonCanCollide and (not Wall.CanCollide)) or
  6086. isIgnored(Wall, S.penetrationSettings.ignoreCustom)
  6087. )
  6088. end
  6089.  
  6090. function penetrateWall(Wall, hitPos, Direction, Normal, Ignore, totalPDist, totalBDist, lastDamagedHumanoid)
  6091. local wallIgnore = isWallIgnored(Wall)
  6092. local hitHumanoid = (Wall.Parent:IsA("Hat") and findFirstClass(Wall.Parent.Parent, "Humanoid") or findFirstClass(Wall.Parent, "Humanoid"))
  6093. local damagedHumanoid = nil
  6094. if hitHumanoid and hitHumanoid ~= lastDamagedHumanoid then
  6095. lastDamagedHumanoid = hitHumanoid
  6096. damagedHumanoid = Damage(Wall, hitPos, Normal, Direction, totalBDist, {Char, ignoreModel})
  6097. else
  6098. lastDamagedHumanoid = nil
  6099. end
  6100. local ignoreObject = hitHumanoid and (Wall.Parent:IsA("Hat") and Wall.Parent.Parent or Wall.Parent) or Wall
  6101. table.insert(Ignore, ignoreObject)
  6102. local rayLength = S.bulletSettings.Range - totalBDist
  6103. local testRay = Ray.new(hitPos, Direction * (S.bulletSettings.Range - totalBDist))
  6104. local H1, P1, N1 = workspace:FindPartOnRayWithIgnoreList(testRay, Ignore)
  6105. local newIgnore = removeElement(Ignore, ignoreObject)
  6106. local wallRay = Ray.new(P1 + Direction * 0.1, -Direction * (rayLength + 1))
  6107. local H2, P2, N2 = workspace:FindPartOnRayWithIgnoreList(wallRay, Ignore)
  6108. local newPDist = totalPDist + (wallIgnore and 0 or (getNearestPoint(P1, P2, hitPos) - hitPos).magnitude)
  6109. local newBDist = totalBDist + (P1 - hitPos).magnitude
  6110. local outOfRange = Round(newPDist, 0.001) > S.penetrationSettings.Dist or Round(newBDist, 0.001) > S.bulletSettings.Range
  6111. if (not wallIgnore) then
  6112. createBulletImpact:FireServer(Wall, hitPos, Normal, Direction, hitHumanoid, gunIgnore, S)
  6113. if (not hitHumanoid) then
  6114. createShockwave:FireServer(hitPos, S.shockwaveSettings.Radius, gunIgnore, S)
  6115. end
  6116. end
  6117. if hitHumanoid and hitHumanoid.Health > 0 and isEnemy(hitHumanoid) and hitHumanoid == damagedHumanoid then
  6118. createBlood:FireServer(Wall, P2, Direction, gunIgnore, S)
  6119. end
  6120. if outOfRange or (not H1) then
  6121. if (not outOfRange) and (not wallIgnore) then
  6122. createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
  6123. if (not hitHumanoid) then
  6124. createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
  6125. end
  6126. end
  6127. return Wall, hitPos
  6128. else
  6129. if Wall == H2 and (not wallIgnore) then
  6130. createBulletImpact:FireServer(Wall, P2, N2, Direction, hitHumanoid, gunIgnore, S)
  6131. if (not hitHumanoid) then
  6132. createShockwave:FireServer(P2, S.shockwaveSettings.Radius, gunIgnore, S)
  6133. end
  6134. end
  6135. return penetrateWall(H1, P1, Direction, N1, Ignore, newPDist, newBDist, lastDamagedHumanoid)
  6136. end
  6137. end
  6138.  
  6139. function PenetrateWall(HitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist)
  6140. local HitDist = (HitPos - OriginPos).magnitude
  6141. local Wall, WallHitPos = nil, nil
  6142. local Hum, HumHitPos = nil, nil
  6143. local CustomIgnore = {unpack(Ignore)}
  6144. for i = 1, 10 do
  6145. local WallRay = Ray.new(HitPos - (Direction * 0.1), Direction * S.Penetration)
  6146. local H, P = game.Workspace:FindPartOnRayWithIgnoreList(WallRay, CustomIgnore)
  6147. if H then
  6148. local HitHumanoid = nil
  6149. if H.Parent.ClassName == "Hat" then
  6150. HitHumanoid = findFirstClass(H.Parent.Parent, "Humanoid")
  6151. else
  6152. HitHumanoid = findFirstClass(H.Parent, "Humanoid")
  6153. end
  6154. if HitHumanoid and i ~= 1 then
  6155. Hum, HumHitPos = H, P
  6156. break
  6157. else
  6158. Wall, WallHitPos = H, P
  6159. table.insert(CustomIgnore, H)
  6160. end
  6161. else
  6162. break
  6163. end
  6164. end
  6165. if Wall then
  6166. if S.InstantHit then
  6167. if Hum then
  6168. Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
  6169. return HumHitPos
  6170. else
  6171. local HitObj2, HitPos2 = nil, nil
  6172. if HitHumanoid then
  6173. HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, HitHumanoid.Parent, unpack(Ignore)})
  6174. else
  6175. HitObj2, HitPos2 = AdvRayCast(WallHitPos, Direction, S.BulletRange - HitDist, {Wall, unpack(Ignore)})
  6176. end
  6177. Damage(HitObj2, HitPos2)
  6178.  
  6179. local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
  6180. local NewHitPos2 = HitPos2
  6181. if NewPDist < S.Penetration and HitObj2 then
  6182. NewHitPos2 = PenetrateWall(HitPos2, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
  6183. end
  6184. return NewHitPos2
  6185. end
  6186. else
  6187. local LastPos = WallHitPos
  6188. local TotalDistTraveled = 0
  6189. spawn(function()
  6190. if Hum then
  6191. Damage(Hum.Parent:FindFirstChild("Head"), HumHitPos)
  6192. return HumHitPos
  6193. else
  6194. while true do
  6195. RS.RenderStepped:wait()
  6196. if TotalDistTraveled >= S.BulletRange - HitDist then
  6197. Bullet:Destroy()
  6198. break
  6199. end
  6200. local DistTraveled = (Bullet.Position - LastPos).magnitude
  6201. local NewDirection = (Bullet.Position - LastPos).unit
  6202. local TempHitObj, TempHitPos = nil, nil
  6203. if HitHumanoid then
  6204. TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, HitHumanoid.Parent, unpack(Ignore)})
  6205. else
  6206. TempHitObj, TempHitPos = AdvRayCast(LastPos, NewDirection, DistTraveled, {Wall, unpack(Ignore)})
  6207. end
  6208. if TempHitObj then
  6209. Damage(TempHitObj, TempHitPos)
  6210.  
  6211. local NewPDist = CurrentPDist + (WallHitPos - HitPos).magnitude
  6212. local NewTempPos = TempHitPos
  6213. if NewPDist < S.Penetration and TempHitObj then
  6214. NewTempPos = PenetrateWall(TempHitPos, Direction, HitHumanoid, OriginPos, Bullet, CurrentPDist + NewPDist)
  6215. else
  6216. Bullet:Destroy()
  6217. end
  6218. return NewTempPos
  6219. else
  6220. LastPos = Bullet.Position
  6221. TotalDistTraveled = TotalDistTraveled + DistTraveled
  6222. end
  6223. end
  6224. end
  6225. end)
  6226. end
  6227. else
  6228. if Bullet then Bullet:Destroy() end
  6229. return HitPos
  6230. end
  6231. end
  6232.  
  6233. function isEnemy(Human)
  6234. local Plyr = game.Players:GetPlayerFromCharacter(Human.Parent)
  6235. if (not Plyr) then return S.CanDamageNPCs end
  6236. return S.AllowFriendlyFire or (Plyr.TeamColor ~= Player.TeamColor or Plyr.Neutral)
  6237. end
  6238.  
  6239. --------------------[ RELOAD FUNCTIONS ]----------------------------------------------
  6240.  
  6241. function animateReload()
  6242. tweenJoint(LWeld2, CF(), CF(), Sine, 0.15)
  6243. tweenJoint(RWeld2, CF(), CF(), Sine, 0.15)
  6244. local magParts = {}
  6245. local magTable = {}
  6246.  
  6247. for _, Obj in pairs(Gun:GetChildren()) do
  6248. if string.sub(Obj.Name, 1, 3) == "Mag" and Obj:IsA("BasePart") then
  6249. INSERT(magParts, Obj)
  6250. end
  6251. end
  6252.  
  6253. local animVars = {
  6254. --FUNCTIONS--
  6255. tweenJoint = tweenJoint;
  6256.  
  6257. makeMagInvisible = function()
  6258. for _, v in pairs(magParts) do
  6259. v.Transparency = 1
  6260. end
  6261. magVisible = false
  6262. end;
  6263.  
  6264. makeMagVisible = function()
  6265. for _, v in pairs(magParts) do
  6266. v.Transparency = v:WaitForChild("magTrans").Value
  6267. end
  6268. magVisible = true
  6269. end;
  6270.  
  6271. isMagVisible = function()
  6272. return magVisible
  6273. end;
  6274.  
  6275. isMagEmpty = function()
  6276. return ammoInClip == 0
  6277. end;
  6278.  
  6279. setNewMag = function()
  6280. newMag = true
  6281. end;
  6282.  
  6283. isNewMag = function()
  6284. return newMag
  6285. end;
  6286.  
  6287. createMag = function(Key)
  6288. local magModel = Instance.new("Model")
  6289. local magClones = {}
  6290. for i, v in pairs(magParts) do
  6291. local vClone = v:Clone()
  6292. vClone.Transparency = v:WaitForChild("magTrans").Value
  6293. vClone.CanCollide = false
  6294. vClone.Parent = magModel
  6295. INSERT(magClones, {Original = v, magClone = vClone})
  6296. if i ~= 1 then
  6297. local W = Instance.new("Weld")
  6298. W.Part0 = magClones[1].magClone
  6299. W.Part1 = vClone
  6300. W.C0 = magClones[1].magClone.CFrame:toObjectSpace(vClone.CFrame)
  6301. W.Parent = magClones[1].magClone
  6302. end
  6303. end
  6304. magTable[Key] = {magModel, magClones}
  6305. return magModel, magClones
  6306. end;
  6307.  
  6308. getMag = function(Key)
  6309. if magTable[Key] then
  6310. return magTable[Key][1], magTable[Key][2]
  6311. else
  6312. return nil, nil
  6313. end
  6314. end;
  6315.  
  6316. attachGripToHead = function()
  6317. local handleCF = RArm.CFrame * Grip.C0
  6318. Grip.C0 = Head.CFrame:toObjectSpace(handleCF)
  6319. Grip.Part0 = Head
  6320. end;
  6321.  
  6322. attachGripToArm = function()
  6323. local handleCF = Head.CFrame * Grip.C0
  6324. Grip.C0 = RArm.CFrame:toObjectSpace(handleCF)
  6325. Grip.Part0 = RArm
  6326. end;
  6327.  
  6328. Sine = Sine;
  6329.  
  6330. Linear = Linear;
  6331.  
  6332. --VARIABLES--
  6333. Handle = Handle;
  6334. LArm = LArm;
  6335. RArm = RArm;
  6336. LWeld = LWeld;
  6337. RWeld = RWeld;
  6338. LC0 = armC0[1];
  6339. RC0 = armC0[2];
  6340. Grip = Grip;
  6341. gunIgnore = gunIgnore;
  6342. Cam = Cam;
  6343. CF = CF;
  6344. CFANG = CFANG;
  6345. V3 = V3;
  6346. RAD = RAD;
  6347. reloadTimeLoaded = S.reloadSettings.Times.Loaded;
  6348. reloadTimeEmpty = S.reloadSettings.Times.Empty
  6349. }
  6350.  
  6351. local sequenceTable = Anims.Reload(animVars)
  6352. --local T = tick()
  6353. for _, reloadFunction in pairs(sequenceTable) do
  6354. if breakReload then
  6355. break
  6356. end
  6357. reloadFunction()
  6358.  
  6359. if (not magVisible) then
  6360. Ammo.Value = 0
  6361. end
  6362. updateClipAmmo()
  6363. end
  6364. --print(tick() - T) --I divide the reloadTime by this number to get the animation speed
  6365.  
  6366. if (not isCrawling) then
  6367. if Running and (not S.canFireWhileRunning) then
  6368. tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
  6369. tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
  6370. tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
  6371. else
  6372. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6373. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6374. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6375. end
  6376. end
  6377.  
  6378. 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
  6379. v[1]:Destroy()
  6380. end
  6381. end
  6382.  
  6383. function Reload()
  6384. if Ammo.Value < (ClipSize.Value + 1) and (not Reloading) and StoredAmmo.Value > 0 then
  6385. Firing = false
  6386. ammoInClip = (ammoInClip == 0 and Ammo.Value or ammoInClip)
  6387. Reloading = true
  6388. lowerSpread()
  6389. if Aimed then unAimGun(S.reloadSettings.Anim) end
  6390. crossHair.Reload.Visible = true
  6391. if Handle:FindFirstChild("ReloadSound") then Handle.ReloadSound:Play() end
  6392. if S.reloadSettings.Anim then
  6393. wait()
  6394. animateReload()
  6395. else
  6396. local startReload = tick()
  6397. local initialReloadTime = Ammo.Value == 0 and S.reloadSettings.Times.Empty or S.reloadSettings.Times.Loaded
  6398. while true do
  6399. if breakReload then break end
  6400. if (tick() - startReload) >= initialReloadTime then break end
  6401. RS.RenderStepped:wait()
  6402. end
  6403. end
  6404. if (not breakReload) then
  6405. newMag = false
  6406. if StoredAmmo.Value >= ClipSize.Value then
  6407. if ammoInClip > 0 then
  6408. StoredAmmo.Value = StoredAmmo.Value - ((ClipSize.Value + 1) - ammoInClip)
  6409. Ammo.Value = ClipSize.Value + 1
  6410. else
  6411. StoredAmmo.Value = StoredAmmo.Value - ClipSize.Value
  6412. Ammo.Value = ClipSize.Value
  6413. end
  6414. elseif StoredAmmo.Value < ClipSize.Value and StoredAmmo.Value > 0 then
  6415. Ammo.Value = StoredAmmo.Value
  6416. StoredAmmo.Value = 0
  6417. end
  6418. end
  6419. Reloading = false
  6420. if Selected then
  6421. ammoInClip = (breakReload and ammoInClip or 0)
  6422. crossHair.Reload.Visible = false
  6423. end
  6424. breakReload = false
  6425. end
  6426.  
  6427. updateClipAmmo()
  6428. updateStoredAmmo()
  6429. end
  6430.  
  6431. --------------------[ EXTERNAL DATA LOCATING FUNCTIONS ]-----------------------------
  6432.  
  6433. function removeElement(Table, Element) --removes the first instance of Element from Table
  6434. for i, v in pairs(Table) do
  6435. if v == Element then
  6436. table.remove(Table, i)
  6437. break
  6438. end
  6439. end
  6440. return Table
  6441. end
  6442.  
  6443. function findFirstClass(Object, Class)
  6444. local foundObject = nil
  6445. for _, Obj in pairs(Object:GetChildren()) do
  6446. if Obj.ClassName == Class then
  6447. foundObject = Obj
  6448. break
  6449. end
  6450. end
  6451. return foundObject
  6452. end
  6453.  
  6454. function isIgnored(Obj, Table)
  6455. for _,v in pairs(Table) do
  6456. if Obj == v or Obj:IsDescendantOf(v) then
  6457. return true
  6458. end
  6459. end
  6460. return false
  6461. end
  6462.  
  6463. function GetHitSurfaceCFrame(HitPos,Obj)
  6464. local SurfaceCF = {
  6465. {"Back",Obj.CFrame * CF(0,0,Obj.Size.z)};
  6466. {"Bottom",Obj.CFrame * CF(0,-Obj.Size.y,0)};
  6467. {"Front",Obj.CFrame * CF(0,0,-Obj.Size.z)};
  6468. {"Left",Obj.CFrame * CF(-Obj.Size.x,0,0)};
  6469. {"Right",Obj.CFrame * CF(Obj.Size.x,0,0)};
  6470. {"Top",Obj.CFrame * CF(0,Obj.Size.y,0)}
  6471. }
  6472. local ClosestDist = HUGE
  6473. local ClosestSurface = nil
  6474. for _,v in pairs(SurfaceCF) do
  6475. local SurfaceDist = (HitPos - v[2].p).magnitude
  6476. if SurfaceDist < ClosestDist then
  6477. ClosestDist = SurfaceDist
  6478. ClosestSurface = v
  6479. end
  6480. end
  6481. return ClosestSurface[2]
  6482. end
  6483.  
  6484. function AdvRayCast(Origin, Direction, Dist, CustomIgnore)
  6485. local NewIgnore = (CustomIgnore and CustomIgnore or Ignore)
  6486. local NewRay = Ray.new(Origin, Direction * (Dist > 999 and 999 or Dist))
  6487. local HitObj, HitPos = game.Workspace:FindPartOnRayWithIgnoreList(NewRay, NewIgnore)
  6488. local LastPos = HitPos
  6489. local FinalHitObj, FinalHitPos = nil, nil
  6490. local RepTimes = math.floor(Dist / 999)
  6491. if (not HitObj) and (Dist > 999) then
  6492. for i = 0, RepTimes do
  6493. local NewDist = (i == RepTimes and (Dist - (LastPos - Origin).magnitude) or 999)
  6494. local Ray2 = Ray.new(LastPos, Direction * NewDist)
  6495. local HitObj2, HitPos2 = game.Workspace:FindPartOnRayWithIgnoreList(Ray2, NewIgnore)
  6496. if i ~= RepTimes then
  6497. if HitObj2 then
  6498. FinalHitObj, FinalHitPos = HitObj2, HitPos2
  6499. break
  6500. end
  6501. elseif i == RepTimes then
  6502. FinalHitObj, FinalHitPos = HitObj2, HitPos2
  6503. end
  6504. LastPos = HitPos2
  6505. end
  6506. return FinalHitObj, FinalHitPos
  6507. elseif HitObj or (Dist <= 999) then
  6508. return HitObj, HitPos
  6509. end
  6510. end
  6511.  
  6512. --------------------[ JUMPING ANIMATION ]---------------------------------------------
  6513.  
  6514. function onFall(initialVelocity)
  6515. spawn(function()
  6516. local velocityAlpha = math.max(math.min(initialVelocity / Humanoid.JumpPower, 1), 0)
  6517. local startJumpPos = jumpAnim.Pos
  6518. local startJumpRot = jumpAnim.Rot
  6519. local endJumpPos = 0.04 * S.fallSettings.fallMultiplier * velocityAlpha
  6520. local endJumpRot = RAD(4) * S.fallSettings.fallMultiplier * velocityAlpha
  6521. local t0 = tick()
  6522. while true do
  6523. RS.Heartbeat:wait()
  6524. local Alpha = math.min((tick() - t0) / 0.15, 1) * 90
  6525. if onGround then break end
  6526. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Sine(Alpha))
  6527. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Sine(Alpha))
  6528. if Alpha == 90 then break end
  6529. end
  6530. startJumpPos = endJumpPos
  6531. startJumpRot = endJumpRot
  6532. endJumpPos = -0.08 * S.fallSettings.fallMultiplier
  6533. endJumpRot = -RAD(8) * S.fallSettings.fallMultiplier
  6534. local X = 1
  6535. while true do
  6536. local dt = RS.Heartbeat:wait()
  6537. X = X + (dt * 60) / X
  6538. local Alpha = (X - 1) / 15
  6539. if onGround then break end
  6540. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
  6541. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
  6542. end
  6543. end)
  6544. end
  6545.  
  6546. function onLand(fallDist)
  6547. spawn(function()
  6548. local animAlpha = math.min(fallDist, S.fallSettings.maxDist) * (2 / 3)
  6549. local startJumpPos = jumpAnim.Pos
  6550. local startJumpRot = jumpAnim.Rot
  6551. local endJumpPos = animAlpha / 100 * S.fallSettings.landMultiplier * (runReady and 1 or 2)
  6552. local endJumpRot = RAD(animAlpha) * S.fallSettings.landMultiplier * (runReady and 1 or 2)
  6553. local t0 = tick()
  6554. while true do
  6555. RS.Heartbeat:wait()
  6556. local Alpha = math.min((tick() - t0) / 0.2, 1)
  6557. if (not onGround) then break end
  6558. jumpAnim.Pos = numLerp(startJumpPos, endJumpPos, Alpha)
  6559. jumpAnim.Rot = numLerp(startJumpRot, endJumpRot, Alpha)
  6560. if Alpha == 1 then break end
  6561. end
  6562. t0 = tick()
  6563. while true do
  6564. RS.Heartbeat:wait()
  6565. local Alpha = math.min((tick() - t0) / 0.3, 1) * 90
  6566. if (not onGround) then break end
  6567. jumpAnim.Pos = numLerp(endJumpPos, 0, Sine(Alpha))
  6568. jumpAnim.Rot = numLerp(endJumpRot, 0, Sine(Alpha))
  6569. if Alpha == 90 then break end
  6570. end
  6571. end)
  6572. end
  6573.  
  6574. function onHumanoidStateChanged(oldState, newState)
  6575. if newState == Enum.HumanoidStateType.Freefall then
  6576. onGround = false
  6577. if S.fallAnimation then
  6578. onFall(HRP.Velocity.Y)
  6579. while HRP.Velocity.Y > 0 do RS.RenderStepped:wait() end
  6580. startFallHeight = HRP.Position.Y
  6581. end
  6582. elseif oldState == Enum.HumanoidStateType.Freefall then
  6583. onGround = true
  6584. if S.fallAnimation then
  6585. local fallDist = startFallHeight - HRP.Position.Y
  6586. onLand(fallDist)
  6587. end
  6588. end
  6589. end
  6590. --------------------[ CAMERA STEADYING FUNCTIONS ]------------------------------------
  6591.  
  6592. function steadyCamera()
  6593. scopeSteady.Text = "Steadying..."
  6594. scopeSteady.TextColor3 = Color3.new(1, 1, 0)
  6595. camSteady = true
  6596. local originalSway = camSway
  6597. local Increment = 1.5 / 0.6
  6598. local X = 0
  6599. while true do
  6600. RS.RenderStepped:wait()
  6601. local newX = X + Increment
  6602. X = (newX > 90 and 90 or newX)
  6603. if (not steadyKeyPressed) then break end
  6604. camSway = numLerp(originalSway, 0, Sine(X))
  6605. if X == 90 then break end
  6606. end
  6607. while steadyKeyPressed and Aimed do
  6608. if currentSteadyTime > 0 then
  6609. local NewSteadyTime = currentSteadyTime - 1
  6610. currentSteadyTime = (NewSteadyTime < 0 and 0 or NewSteadyTime)
  6611. camSway = 0
  6612. elseif currentSteadyTime == 0 then
  6613. break
  6614. end
  6615. RS.RenderStepped:wait()
  6616. end
  6617. camSteady = false
  6618. spawn(function()
  6619. local Increment = 1.5 / 0.25
  6620. local X = 0
  6621. while true do
  6622. RS.RenderStepped:wait()
  6623. local newX = X + Increment
  6624. X = (newX > 90 and 90 or newX)
  6625. if camSteady then break end
  6626. camSway = numLerp(0, S.scopeSettings.camSwayOnBreath, 1 - COS(RAD(X)))
  6627. if X == 90 then break end
  6628. end
  6629. Increment = 1.5 / S.scopeSettings.breathTime
  6630. X = 0
  6631. while true do
  6632. RS.RenderStepped:wait()
  6633. local newX = X + Increment
  6634. X = (newX > 90 and 90 or newX)
  6635. if camSteady then break end
  6636. camSway = numLerp(S.scopeSettings.camSwayOnBreath, 1, Sine(X))
  6637. if X == 90 then break end
  6638. end
  6639. --[[for X = 0, 90, 1.5 / 0.2 do
  6640. local Alpha = 1 - COS(RAD(X))--math.log10(X) / math.log10(90)
  6641. camSway = numLerp(0, 3, Alpha)
  6642. RS.RenderStepped:wait()
  6643. end]]
  6644. --[[for X = 0, 90, 1.5 / S.scopeSettings.steadyTime do
  6645. if camSteady then break end
  6646. local Alpha = SIN(RAD(X))
  6647. camSway = numLerp(3, 1, Alpha)
  6648. RS.RenderStepped:wait()
  6649. end]]
  6650. end)
  6651. retakeBreath()
  6652. end
  6653.  
  6654. function retakeBreath()
  6655. scopeSteady.Text = "Re-taking Breath"
  6656. scopeSteady.TextColor3 = Color3.new(1, 0, 0)
  6657. takingBreath = true
  6658. local Increment = S.scopeSettings.steadyTime / S.scopeSettings.breathTime
  6659. while takingBreath do
  6660. if currentSteadyTime < maxSteadyTime then
  6661. local newSteadyTime = currentSteadyTime + Increment
  6662. currentSteadyTime = (newSteadyTime > maxSteadyTime and maxSteadyTime or newSteadyTime)
  6663. elseif currentSteadyTime >= maxSteadyTime then
  6664. break
  6665. end
  6666. RS.RenderStepped:wait()
  6667. end
  6668. if takingBreath then
  6669. scopeSteady.Text = "Hold "..convertKey(S.Keys.scopeSteady).." to Steady"
  6670. scopeSteady.TextColor3 = Color3.new(1, 1, 0)
  6671. takingBreath = false
  6672. end
  6673. end
  6674.  
  6675. --------------------[ SPRINTING FUNCTIONS ]-------------------------------------------
  6676.  
  6677. function canRun(midRun)
  6678. return ((Forward and (not Backward)) and
  6679. Walking and (Stamina > 0) and Running and
  6680. Selected and (midRun and true or onGround) and
  6681. runReady and (S.canFireWhileRunning and true or (not Firing))
  6682. )
  6683. end
  6684.  
  6685. function monitorStamina()
  6686. Running = true
  6687. if (not canRun(false)) then
  6688. Running = false
  6689. return
  6690. end
  6691. if Aimed then unAimGun(true) end
  6692. if Stance == 1 or Stance == 2 then Stand() end
  6693. if (not (Reloading and S.reloadSettings.Anim)) then
  6694. if S.canFireWhileRunning then
  6695. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6696. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6697. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6698. else
  6699. tweenJoint(LWeld, armC0[1], S.runningC1.leftArm, Sine, 0.4)
  6700. tweenJoint(RWeld, armC0[2], S.runningC1.rightArm, Sine, 0.4)
  6701. tweenJoint(Grip, nil, S.runningC1.Grip, Sine, 0.4)
  6702. end
  6703. end
  6704. crossOffset = 50
  6705. while runKeyPressed do
  6706. if canRun(true) then
  6707. if onGround then
  6708. local newStamina = Stamina - 1
  6709. Stamina = (newStamina < 0 and 0 or newStamina)
  6710. end
  6711. else
  6712. break
  6713. end
  6714. RS.RenderStepped:wait()
  6715. end
  6716. Running = false
  6717. if (not Aimed) and (not (Reloading and S.reloadSettings.Anim)) and (not S.canFireWhileRunning) then
  6718. crossOffset = 0
  6719. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, 0.4)
  6720. tweenJoint(RWeld, armC0[2], S.unAimedC1.rightArm, Sine, 0.4)
  6721. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, 0.4)
  6722. end
  6723.  
  6724. rechargeStamina()
  6725. end
  6726.  
  6727. function rechargeStamina()
  6728. chargingStamina = true
  6729. while ((not runKeyPressed) or (Stamina < maxStamina)) and (not Running) do
  6730. if Stamina < maxStamina then
  6731. local newStamina = Stamina + (S.sprintTime / S.staminaCoolTime)
  6732. Stamina = (newStamina > maxStamina and maxStamina or newStamina)
  6733. elseif Stamina >= maxStamina then
  6734. break
  6735. end
  6736. RS.RenderStepped:wait()
  6737. end
  6738. chargingStamina = false
  6739. end
  6740.  
  6741. --------------------[ STANCE FUNCTIONS ]----------------------------------------------
  6742.  
  6743. function Stand(onDeselected)
  6744. local LHip = Torso["Left Hip"]
  6745. local RHip = Torso["Right Hip"]
  6746. LLegWeld.Part1 = nil
  6747. LHip.Part1 = LLeg
  6748. RLegWeld.Part1 = nil
  6749. RHip.Part1 = RLeg
  6750. Stance = 0
  6751. spreadStance = "Stand"
  6752. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6753. if S.stanceSettings.Anim and (not onDeselected) then
  6754. spawn(function()
  6755. local prevStanceSway = stanceSway
  6756. local X = 0
  6757. local Increment = 1.5 / S.stanceSettings.Speed
  6758. while true do
  6759. RS.RenderStepped:wait()
  6760. local newX = X + Increment
  6761. X = (newX > 90 and 90 or newX)
  6762. if Stance ~= 0 then break end
  6763. stanceSway = numLerp(prevStanceSway, 1, Sine(X))
  6764. if X == 90 then break end
  6765. end
  6766. end)
  6767. tweenJoint(ABWeld, CF(), nil, Sine, S.stanceSettings.Speed)
  6768. tweenJoint(LLegWeld, legC0.Stand[1], nil, Sine, S.stanceSettings.Speed)
  6769. tweenJoint(RLegWeld, legC0.Stand[2], nil, Sine, S.stanceSettings.Speed)
  6770. 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)
  6771. 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)
  6772. tweenJoint(Root, CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6773. tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
  6774. elseif onDeselected or (not S.stanceSettings.Anim) then
  6775. ABWeld.C0 = CF()
  6776. LLegWeld.C0 = legC0.Stand[1]
  6777. RLegWeld.C0 = legC0.Stand[2]
  6778. LHip.C0, LHip.C1 = CF(-1, -1, 0) * CFANG(0, RAD(-90), 0), CF(-0.5, 1, 0) * CFANG(0, RAD(-90), 0)
  6779. 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)
  6780. Root.C0 = CFANG(RAD(-90), 0, RAD(180))
  6781. headWeld.C0 = CF(0, 1.5, 0)
  6782. end
  6783. end
  6784.  
  6785. function Crouch()
  6786. local LHip = Torso["Left Hip"]
  6787. local RHip = Torso["Right Hip"]
  6788. LHip.Part1 = nil
  6789. LLegWeld.Part1 = LLeg
  6790. RHip.Part1 = nil
  6791. RLegWeld.Part1 = RLeg
  6792. Stance = 1
  6793. spreadStance = "Crouch"
  6794. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6795. if S.stanceSettings.Anim then
  6796. spawn(function()
  6797. local prevStanceSway = stanceSway
  6798. local X = 0
  6799. local Increment = 1.5 / S.stanceSettings.Speed
  6800. while true do
  6801. RS.RenderStepped:wait()
  6802. local newX = X + Increment
  6803. X = (newX > 90 and 90 or newX)
  6804. if Stance ~= 1 then break end
  6805. stanceSway = numLerp(prevStanceSway, 0.75, Sine(X))
  6806. if X == 90 then break end
  6807. end
  6808. end)
  6809. tweenJoint(ABWeld, CF(0, 0, -0.05), nil, Sine, S.stanceSettings.Speed)
  6810. tweenJoint(LLegWeld, legC0.Crouch[1], nil, Sine, S.stanceSettings.Speed)
  6811. tweenJoint(RLegWeld, legC0.Crouch[2], nil, Sine, S.stanceSettings.Speed)
  6812. 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)
  6813. 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)
  6814. tweenJoint(Root, CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6815. tweenJoint(headWeld, CF(0, 1.5, 0), nil, Sine, S.stanceSettings.Speed)
  6816. else
  6817. ABWeld.C0 = CF(0, 0, -1 / 16)
  6818. LLegWeld.C0 = legC0.Crouch[1]
  6819. RLegWeld.C0 = legC0.Crouch[2]
  6820. 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))
  6821. 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)
  6822. Root.C0 = CF(0, -1, 0) * CFANG(RAD(-90), 0, RAD(180))
  6823. headWeld.C0 = CF(0, 1.5, 0)
  6824. end
  6825. end
  6826.  
  6827. function Prone()
  6828. local LHip = Torso["Left Hip"]
  6829. local RHip = Torso["Right Hip"]
  6830. LHip.Part1 = nil
  6831. LLegWeld.Part1 = LLeg
  6832. RHip.Part1 = nil
  6833. RLegWeld.Part1 = RLeg
  6834. Stance = 2
  6835. spreadStance = "Prone"
  6836. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  6837. if S.stanceSettings.Anim then
  6838. spawn(function()
  6839. local prevStanceSway = stanceSway
  6840. local X = 0
  6841. local Increment = 1.5 / S.stanceSettings.Speed
  6842. while true do
  6843. RS.RenderStepped:wait()
  6844. local newX = X + Increment
  6845. X = (newX > 90 and 90 or newX)
  6846. if Stance ~= 2 then break end
  6847. stanceSway = numLerp(prevStanceSway, 0.5, Sine(X))
  6848. if X == 90 then break end
  6849. end
  6850. end)
  6851. tweenJoint(ABWeld, CF(0, 0, -0.1), nil, Sine, S.stanceSettings.Speed)
  6852. tweenJoint(LLegWeld, legC0.Prone[1], nil, Sine, S.stanceSettings.Speed)
  6853. tweenJoint(RLegWeld, legC0.Prone[2], nil, Sine, S.stanceSettings.Speed)
  6854. tweenJoint(Root, CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180)), nil, Sine, S.stanceSettings.Speed)
  6855. tweenJoint(headWeld, CF(0, 1, 1) * CFANG(RAD(90), 0, 0), nil, Sine, S.stanceSettings.Speed)
  6856. else
  6857. ABWeld.C0 = CF(0, 0, -1 / 8)
  6858. LLegWeld.C0 = legC0.Prone[1]
  6859. RLegWeld.C0 = legC0.Prone[2]
  6860. Root.C0 = CF(0, -2.5, 1) * CFANG(RAD(180), 0, RAD(180))
  6861. headWeld.C0 = CF(0, 1, 1) * CFANG(RAD(90), 0, 0)
  6862. end
  6863. end
  6864.  
  6865. function Dive()
  6866. onGround = false
  6867. local diveDirection = (HRP.CFrame * CFANG(S.diveSettings.Angle, 0, 0)).lookVector * S.walkSpeeds.Sprinting * S.diveSettings.Force
  6868. local BF = Instance.new("BodyForce")
  6869. BF.force = diveDirection + Vector3.new(0, playerMass * 196.2, 0)
  6870. BF.Parent = HRP
  6871. --[[spawn(function()
  6872. HRP.Velocity = HRP.CFrame.lookVector * 60 + V3(0, 40, 0)
  6873. wait(0.1)
  6874. HRP.Velocity = HRP.CFrame.lookVector * 70 + V3(0, 30, 0)
  6875. wait(0.4)
  6876. HRP.Velocity = HRP.CFrame.lookVector * 30 + V3(0, -10, 0)
  6877. end)]]
  6878. delay(0.05, function()
  6879. spawn(function()
  6880. while true do
  6881. local newRay = Ray.new(HRP.Position, V3(0, -3.1, 0))
  6882. local H, _ = workspace:FindPartOnRayWithIgnoreList(newRay, Ignore)
  6883. if H then
  6884. onGround = true
  6885. break
  6886. end
  6887. wait()
  6888. end
  6889. end)
  6890. Prone()
  6891. wait(0.1)
  6892. BF:Destroy()
  6893. end)
  6894. end
  6895.  
  6896. --------------------[ MOUSE FUNCTIONS ]-----------------------------------------------
  6897.  
  6898. function onMB1Down()
  6899. MB1Down = true
  6900. firstShot = true
  6901. if fireFunction then
  6902. fireFunction()
  6903. end
  6904. end
  6905.  
  6906. function onMB1Up()
  6907. MB1Down = false
  6908. lowerSpread()
  6909. end
  6910.  
  6911. function onMB2Down()
  6912. if S.aimSettings.holdToADS then
  6913. if (not AimingIn) and (not Aimed) then
  6914. AimingIn = true
  6915. aimGun()
  6916. AimingIn = false
  6917. end
  6918. else
  6919. if Aimed then
  6920. unAimGun()
  6921. else
  6922. aimGun()
  6923. end
  6924. end
  6925. end
  6926.  
  6927. function onMB2Up()
  6928. if S.aimSettings.holdToADS then
  6929. if (not AimingOut) and Aimed then
  6930. AimingOut = true
  6931. unAimGun()
  6932. AimingOut = false
  6933. end
  6934. end
  6935. end
  6936.  
  6937. function onScrollUp()
  6938. local newAimSensitivity = aimSensitivity + S.sensitivitySettings.Increment
  6939. aimSensitivity = (
  6940. newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
  6941. newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
  6942. newAimSensitivity
  6943. )
  6944. mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
  6945.  
  6946. Sens.Text = "S: "..aimSensitivity
  6947. if mainGUI:IsDescendantOf(game) then
  6948. Sens.Visible = true
  6949. local t0 = tick()
  6950. lastSensUpdate = t0
  6951.  
  6952. wait(0.3)
  6953.  
  6954. if lastSensUpdate <= t0 then
  6955. Sens.Visible = false
  6956. end
  6957. end
  6958. end
  6959.  
  6960. function onScrollDown()
  6961. local newAimSensitivity = aimSensitivity - S.sensitivitySettings.Increment
  6962. aimSensitivity = (
  6963. newAimSensitivity < S.sensitivitySettings.Min and S.sensitivitySettings.Min or
  6964. newAimSensitivity > S.sensitivitySettings.Max and S.sensitivitySettings.Max or
  6965. newAimSensitivity
  6966. )
  6967. mouseSensitivity = (Aimed and aimSensitivity or mouseSensitivity)
  6968.  
  6969. Sens.Text = "S: "..aimSensitivity
  6970. if mainGUI:IsDescendantOf(game) then
  6971. Sens.Visible = true
  6972. local t0 = tick()
  6973. lastSensUpdate = t0
  6974.  
  6975. wait(0.3)
  6976.  
  6977. if lastSensUpdate <= t0 then
  6978. Sens.Visible = false
  6979. end
  6980. end
  6981. end
  6982.  
  6983. --------------------[ KEYBOARD FUNCTIONS ]--------------------------------------------
  6984.  
  6985. function keyDown(K)
  6986. local Key = string.lower(K)
  6987.  
  6988. if Key == S.Keys.lowerStance and S.canChangeStance then
  6989. if (not Running) then
  6990. if Stance == 0 then
  6991. if S.stanceSettings.Stances.Crouch then
  6992. Crouch()
  6993. elseif S.stanceSettings.Stances.Prone then
  6994. Prone()
  6995. end
  6996. elseif Stance == 1 then
  6997. if S.stanceSettings.Stances.Prone then
  6998. Prone()
  6999. end
  7000. end
  7001. elseif S.dolphinDive then
  7002. wait()
  7003. if Humanoid:GetState() ~= Enum.HumanoidStateType.Freefall and (not UIS:IsKeyDown("Space")) and runReady then
  7004. local tempConnection = Humanoid.Changed:connect(function()
  7005. Humanoid.Jump = false
  7006. end)
  7007. runReady = false
  7008. Dive()
  7009. Running = false
  7010. wait(S.diveSettings.rechargeTime)
  7011. tempConnection:disconnect()
  7012. runReady = true
  7013. end
  7014. end
  7015. end
  7016.  
  7017. if Key == S.Keys.raiseStance and S.canChangeStance then
  7018. if (not Running) then
  7019. if Stance == 2 then
  7020. if S.stanceSettings.Stances.Crouch then
  7021. Crouch()
  7022. else
  7023. Stand()
  7024. end
  7025. elseif Stance == 1 then
  7026. Stand()
  7027. end
  7028. end
  7029. end
  7030.  
  7031. if Key == S.Keys.ADS then
  7032. if S.aimSettings.holdToADS then
  7033. if (not AimingIn) and (not Aimed) then
  7034. AimingIn = true
  7035. aimGun()
  7036. AimingIn = false
  7037. end
  7038. else
  7039. if Aimed then
  7040. unAimGun()
  7041. else
  7042. aimGun()
  7043. end
  7044. end
  7045. end
  7046.  
  7047. if Key == S.Keys.selectFire and S.selectFire then
  7048. if canSelectFire then
  7049. canSelectFire = false
  7050. rawFireMode = rawFireMode + 1
  7051. modeGUI.Text = Modes[((rawFireMode - 1) % numModes) + 1]
  7052. if modeGUI.Text == "AUTO" then
  7053. fireFunction = autoFire
  7054. elseif modeGUI.Text == "BURST" then
  7055. fireFunction = burstFire
  7056. elseif modeGUI.Text == "SEMI" then
  7057. fireFunction = semiFire
  7058. else
  7059. fireFunction = nil
  7060. end
  7061. local speedAlpha = S.selectFireSettings.animSpeed / 0.6
  7062. if S.selectFireSettings.GUI then
  7063. spawn(function()
  7064. fireSelect.Visible = true
  7065. local prevRawFireMode = rawFireMode
  7066. local Increment = 1.5 / (speedAlpha * 0.25)
  7067. local X = 0
  7068. wait(speedAlpha * 0.1)
  7069. while true do
  7070. RS.RenderStepped:wait()
  7071. local newX = X + Increment
  7072. X = (newX > 90 and 90 or newX)
  7073. if prevRawFireMode ~= rawFireMode then break end
  7074. updateModeLabels(rawFireMode - 1, rawFireMode, X)
  7075. if X == 90 then break end
  7076. end
  7077. wait(speedAlpha * 0.25)
  7078. fireSelect.Visible = false
  7079. end)
  7080. end
  7081. if S.selectFireSettings.Animation and (not Aimed) and (not isRunning) and (not isCrawling) then
  7082. spawn(function()
  7083. local sequenceTable = {
  7084. function()
  7085. tweenJoint(RWeld2, nil, CFANG(0, RAD(5), 0), Sine, speedAlpha * 0.15)
  7086. tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-7), 0, RAD(-65)), Linear, speedAlpha * 0.15)
  7087. wait(speedAlpha * 0.2)
  7088. end;
  7089.  
  7090. function()
  7091. tweenJoint(LWeld, armC0[1], CF(0.1, 1, -0.3) * CFANG(RAD(-10), 0, RAD(-65)), Linear, speedAlpha * 0.1)
  7092. wait(speedAlpha * 0.2)
  7093. end;
  7094.  
  7095. function()
  7096. tweenJoint(RWeld2, nil, CF(), Sine, speedAlpha * 0.2)
  7097. tweenJoint(LWeld, armC0[1], S.unAimedC1.leftArm, Sine, speedAlpha * 0.2)
  7098. wait(speedAlpha * 0.2)
  7099. end;
  7100. }
  7101.  
  7102. for _, F in pairs(sequenceTable) do
  7103. if Aimed or isRunning or isCrawling or Reloading then
  7104. break
  7105. end
  7106. F()
  7107. end
  7108. end)
  7109. end
  7110. if S.selectFireSettings.Animation or S.selectFireSettings.GUI then
  7111. wait(S.selectFireSettings.animSpeed)
  7112. end
  7113. canSelectFire = true
  7114. end
  7115. end
  7116.  
  7117. if Key == S.Keys.Reload then
  7118. if (not Reloading) and (not isCrawling) then
  7119. Reload()
  7120. end
  7121. end
  7122.  
  7123. if Key == S.Keys.Sprint then
  7124. runKeyPressed = true
  7125. if runReady then
  7126. 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
  7127. monitorStamina()
  7128. end
  7129. end
  7130. end
  7131.  
  7132. if Key == S.Keys.scopeSteady then
  7133. steadyKeyPressed = true
  7134. if Aimed and (not Aiming) then
  7135. takingBreath = false
  7136. steadyCamera()
  7137. end
  7138. end
  7139.  
  7140. for _, PTable in pairs(Plugins.KeyDown) do
  7141. if Key == string.lower(PTable.Key) then
  7142. spawn(function()
  7143. PTable.Plugin()
  7144. end)
  7145. end
  7146. end
  7147. end
  7148.  
  7149. function keyUp(K)
  7150. local Key = string.lower(K)
  7151.  
  7152. if Key == S.Keys.ADS then
  7153. if S.aimSettings.holdToADS then
  7154. if (not AimingOut) and Aimed then
  7155. AimingOut = true
  7156. unAimGun()
  7157. AimingOut = false
  7158. end
  7159. end
  7160. end
  7161.  
  7162. if Key == S.Keys.Sprint then
  7163. runKeyPressed = false
  7164. Running = false
  7165. if (not chargingStamina) then
  7166. rechargeStamina()
  7167. end
  7168. end
  7169.  
  7170. if Key == S.Keys.scopeSteady then
  7171. steadyKeyPressed = false
  7172. end
  7173.  
  7174. for _, PTable in pairs(Plugins.KeyUp) do
  7175. if Key == string.lower(PTable.Key) then
  7176. spawn(function()
  7177. PTable.Plugin()
  7178. end)
  7179. end
  7180. end
  7181. end
  7182.  
  7183. --------------------[ END FUNCTIONS ]-------------------------------------------------
  7184.  
  7185. --------------------------------------------------------------------------------------
  7186. --------------------[ PRE-CONNECTIONS ]-----------------------------------------------
  7187. --------------------------------------------------------------------------------------
  7188.  
  7189. local function updateAnimVars()
  7190. wait()
  7191. Forward = (UIS:IsKeyDown("W") or UIS:IsKeyDown("Up"))
  7192. Backward = (UIS:IsKeyDown("S") or UIS:IsKeyDown("Down"))
  7193. local Right = UIS:IsKeyDown("D")
  7194. local Left = UIS:IsKeyDown("A")
  7195.  
  7196. local walkingForward = (Forward and (not Backward))
  7197. local walkingBackward = ((not Forward) and Backward)
  7198. local walkingRight = (Right and (not Left))
  7199. local walkingLeft = ((not Right) and Left)
  7200.  
  7201. if (Forward or Backward or Right or Left) then
  7202. Walking, Idling = true, false
  7203. if (not Running) and (not Aimed) then
  7204. spreadMotion = "Moving"
  7205. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7206. end
  7207. elseif (not (Forward and Backward and Right and Left)) then
  7208. Walking, Idling = false, true
  7209. if (not Aimed) then
  7210. spreadMotion = "Idling"
  7211. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7212. end
  7213. end
  7214.  
  7215. local newArmTilt = (
  7216. ((walkingForward or walkingBackward) and walkingRight) and 2.5 or
  7217. ((walkingForward or walkingBackward) and walkingLeft) and -2.5 or
  7218. ((not (walkingForward and walkingBackward)) and walkingRight) and 5 or
  7219. ((not (walkingForward and walkingBackward)) and walkingLeft) and -5 or 0
  7220. )
  7221. local newMoveAng = (
  7222. (walkingForward and (not (walkingRight or walkingLeft))) and 0 or
  7223. (walkingForward and walkingRight) and RAD(-45) or
  7224. ((not (walkingForward or walkingBackward)) and walkingRight) and RAD(-90) or
  7225. (walkingBackward and walkingRight) and RAD(-135) or
  7226. (walkingBackward and (not (walkingRight or walkingLeft))) and (moveAng < 0 and RAD(-180) or RAD(180)) or
  7227. (walkingBackward and walkingLeft) and RAD(135) or
  7228. ((not (walkingForward or walkingBackward)) and walkingLeft) and RAD(90) or
  7229. (walkingForward and walkingLeft) and RAD(45) or 0
  7230. )
  7231.  
  7232. local newAnimCode = math.random(-1e9, 1e9)
  7233. animCode = newAnimCode
  7234. local startTilt = armTilt
  7235. local startAng = (ABS(moveAng) == RAD(180)) and (newMoveAng > 0 and RAD(180) or RAD(-180)) or moveAng
  7236. local Increment = (startTilt == newArmTilt and 1.5 / 0.7 or 1.5 / (0.35 * ABS(startTilt - newArmTilt) / 5))
  7237. local X = 0
  7238. while true do
  7239. RS.RenderStepped:wait()
  7240. local newX = X + Increment
  7241. X = (newX > 90 and 90 or newX)
  7242. if animCode ~= newAnimCode then break end
  7243. armTilt = numLerp(startTilt, newArmTilt, Sine(X))
  7244. moveAng = numLerp(startAng, newMoveAng, Sine(X))
  7245. if X == 90 then break end
  7246. end
  7247. end
  7248.  
  7249. M2.KeyDown:connect(updateAnimVars)
  7250. M2.KeyUp:connect(updateAnimVars)
  7251. updateAnimVars()
  7252.  
  7253. --------------------------------------------------------------------------------------
  7254. --------------------[ TOOL SELECTION AND DESELECTION ]--------------------------------
  7255. --------------------------------------------------------------------------------------
  7256.  
  7257. function onEquipped()
  7258. wait()
  7259. if Humanoid.Health ~= 0 and (not Selected) and Gun.Parent == Char then
  7260. Selected = true
  7261. breakReload = false
  7262. equipAnimPlaying = true
  7263.  
  7264. math.randomseed(tick()) --This sets a new seed for the random function each time you select the gun
  7265.  
  7266. --------------------[ FAILSAFE RESETING ]-------------------------------------
  7267.  
  7268. for _, GM in pairs(ignoreModel:GetChildren()) do
  7269. if GM.Name == "gunIgnore_"..Player.Name then
  7270. GM:Destroy()
  7271. end
  7272. end
  7273.  
  7274. for _, c in pairs(Connections) do
  7275. c:disconnect()
  7276. end
  7277.  
  7278. Connections = {}
  7279.  
  7280. --------------------[ REMOTE GUN SETUP ]--------------------------------------
  7281.  
  7282. --[[local Vars = {
  7283. ignoreModel = ignoreModel;
  7284. Humanoid = Humanoid;
  7285. Shoulders = Shoulders;
  7286. Torso = Torso;
  7287. Head = Head;
  7288. armC0 = armC0;
  7289. leftArmC1 = S.equipSettings.leftArmC1;
  7290. rightArmC1 = S.equipSettings.rightArmC1;
  7291. LArm = LArm;
  7292. RArm = RArm;
  7293. gunParts = gunParts;
  7294. Handle = Handle;
  7295. }
  7296. gunIgnore, playerFolder, headWeld, headWeld2, animWeld, ABWeld, LWeld, RWeld, LWeld2, RWeld2, LLegWeld, RLegWeld, gunParts2 = gunSetup:InvokeServer(Vars)]]
  7297.  
  7298. --------------------[ CREATING IGNORE MODELS ]--------------------------------
  7299.  
  7300. gunIgnore = Instance.new("Model")
  7301. gunIgnore.Name = "gunIgnore_"..Player.Name
  7302. gunIgnore.Parent = ignoreModel
  7303.  
  7304. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  7305.  
  7306. Player.CameraMode = Enum.CameraMode.LockFirstPerson
  7307. Cam.CameraType = Enum.CameraType.Scriptable
  7308. Cam.FieldOfView = 80
  7309. UIS.MouseBehavior = Enum.MouseBehavior.LockCenter
  7310. UIS.MouseIconEnabled = false
  7311.  
  7312. local initialX, initialY = getYawPitch(Cam.CoordinateFrame)
  7313. camAng = -VEC2(initialX, initialY)
  7314.  
  7315. mainGUI.Parent = Player.PlayerGui
  7316.  
  7317. setUpGUI()
  7318. updateHealth()
  7319.  
  7320. if S.selectFire then
  7321. local currentMode = Modes[((rawFireMode - 1) % numModes) + 1]
  7322. if currentMode == "AUTO" then
  7323. fireFunction = autoFire
  7324. elseif currentMode == "BURST" then
  7325. fireFunction = burstFire
  7326. elseif currentMode == "SEMI" then
  7327. fireFunction = semiFire
  7328. else
  7329. fireFunction = nil
  7330. end
  7331. else
  7332. if S.gunType.Semi then
  7333. fireFunction = semiFire
  7334. elseif S.gunType.Auto then
  7335. fireFunction = autoFire
  7336. elseif S.gunType.Burst then
  7337. fireFunction = burstFire
  7338. else
  7339. fireFunction = nil
  7340. end
  7341. end
  7342.  
  7343. changePlayerTrans(Char, 1)
  7344.  
  7345. Humanoid.AutoRotate = false
  7346.  
  7347. Shoulders.Right.Part1 = nil
  7348. Shoulders.Left.Part1 = nil
  7349.  
  7350. playerFolder = Instance.new("Model")
  7351. playerFolder.Name = "playerFolder"
  7352. playerFolder.Parent = gunIgnore
  7353.  
  7354. local headBase = Instance.new("Part")
  7355. headBase.Transparency = 1
  7356. headBase.Name = "headBase"
  7357. headBase.CanCollide = false
  7358. headBase.FormFactor = Enum.FormFactor.Custom
  7359. headBase.Size = V3(0.2, 0.2, 0.2)
  7360. headBase.BottomSurface = Enum.SurfaceType.Smooth
  7361. headBase.TopSurface = Enum.SurfaceType.Smooth
  7362. headBase.Parent = playerFolder
  7363.  
  7364. headWeld = Instance.new("Weld")
  7365. headWeld.Part0 = Torso
  7366. headWeld.Part1 = headBase
  7367. headWeld.C0 = CF(0, 1.5, 0)
  7368. headWeld.Parent = Torso
  7369.  
  7370. headWeld2 = Instance.new("Weld")
  7371. headWeld2.Part0 = headBase
  7372. headWeld2.Part1 = Head
  7373. headWeld2.Parent = headBase
  7374.  
  7375. neckClone = Neck:Clone()
  7376.  
  7377. --[[local stanceBase = Instance.new("Part")
  7378. stanceBase.Transparency = 1
  7379. stanceBase.Name = "stanceBase"
  7380. stanceBase.CanCollide = false
  7381. stanceBase.FormFactor = Enum.FormFactor.Custom
  7382. stanceBase.Size = V3(0.2, 0.2, 0.2)
  7383. stanceBase.BottomSurface = Enum.SurfaceType.Smooth
  7384. stanceBase.TopSurface = Enum.SurfaceType.Smooth
  7385. stanceBase.Parent = playerFolder
  7386.  
  7387. stanceWeld = Instance.new("Weld")
  7388. stanceWeld.Part0 = stanceBase
  7389. stanceWeld.Part1 = Torso
  7390. stanceWeld.Parent = stanceBase]]
  7391.  
  7392. local animBase = Instance.new("Part")
  7393. animBase.Transparency = 1
  7394. animBase.Name = "animBase"
  7395. animBase.CanCollide = false
  7396. animBase.FormFactor = Enum.FormFactor.Custom
  7397. animBase.Size = V3(0.2, 0.2, 0.2)
  7398. animBase.BottomSurface = Enum.SurfaceType.Smooth
  7399. animBase.TopSurface = Enum.SurfaceType.Smooth
  7400. animBase.Parent = playerFolder
  7401.  
  7402. animWeld = Instance.new("Weld")
  7403. animWeld.Part0 = animBase
  7404. animWeld.Part1 = headBase
  7405. animWeld.Parent = animBase
  7406.  
  7407. local ArmBase = Instance.new("Part")
  7408. ArmBase.Transparency = 1
  7409. ArmBase.Name = "ArmBase"
  7410. ArmBase.CanCollide = false
  7411. ArmBase.FormFactor = Enum.FormFactor.Custom
  7412. ArmBase.Size = V3(0.2, 0.2, 0.2)
  7413. ArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7414. ArmBase.TopSurface = Enum.SurfaceType.Smooth
  7415. ArmBase.Parent = playerFolder
  7416.  
  7417. ABWeld = Instance.new("Weld")
  7418. ABWeld.Part0 = ArmBase
  7419. ABWeld.Part1 = animBase
  7420. ABWeld.Parent = ArmBase
  7421.  
  7422. local LArmBase = Instance.new("Part")
  7423. LArmBase.Transparency = 1
  7424. LArmBase.Name = "LArmBase"
  7425. LArmBase.CanCollide = false
  7426. LArmBase.FormFactor = Enum.FormFactor.Custom
  7427. LArmBase.Size = V3(0.2, 0.2, 0.2)
  7428. LArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7429. LArmBase.TopSurface = Enum.SurfaceType.Smooth
  7430. LArmBase.Parent = playerFolder
  7431.  
  7432. local RArmBase = Instance.new("Part")
  7433. RArmBase.Transparency = 1
  7434. RArmBase.Name = "RArmBase"
  7435. RArmBase.CanCollide = false
  7436. RArmBase.FormFactor = Enum.FormFactor.Custom
  7437. RArmBase.Size = V3(0.2, 0.2, 0.2)
  7438. RArmBase.BottomSurface = Enum.SurfaceType.Smooth
  7439. RArmBase.TopSurface = Enum.SurfaceType.Smooth
  7440. RArmBase.Parent = playerFolder
  7441.  
  7442. LWeld = Instance.new("Weld")
  7443. LWeld.Name = "LWeld"
  7444. LWeld.Part0 = ArmBase
  7445. LWeld.Part1 = LArmBase
  7446. LWeld.C0 = armC0[1]
  7447. LWeld.C1 = S.equipSettings.leftArmC1
  7448. LWeld.Parent = ArmBase
  7449.  
  7450. RWeld = Instance.new("Weld")
  7451. RWeld.Name = "RWeld"
  7452. RWeld.Part0 = ArmBase
  7453. RWeld.Part1 = RArmBase
  7454. RWeld.C0 = armC0[2]
  7455. RWeld.C1 = S.equipSettings.rightArmC1
  7456. RWeld.Parent = ArmBase
  7457.  
  7458. LWeld2 = Instance.new("Weld")
  7459. LWeld2.Name = "LWeld"
  7460. LWeld2.Part0 = LArmBase
  7461. LWeld2.Part1 = LArm
  7462. LWeld2.Parent = LArmBase
  7463.  
  7464. RWeld2 = Instance.new("Weld")
  7465. RWeld2.Name = "RWeld"
  7466. RWeld2.Part0 = RArmBase
  7467. RWeld2.Part1 = RArm
  7468. RWeld2.Parent = RArmBase
  7469.  
  7470. LLegWeld = Instance.new("Weld")
  7471. LLegWeld.Name = "LLegWeld"
  7472. LLegWeld.Part0 = Torso
  7473. LLegWeld.Part1 = nil
  7474. LLegWeld.C0 = CF(-0.5, -2, 0)
  7475. LLegWeld.Parent = Torso
  7476.  
  7477. RLegWeld = Instance.new("Weld")
  7478. RLegWeld.Name = "RLegWeld"
  7479. RLegWeld.Part0 = Torso
  7480. RLegWeld.Part1 = nil
  7481. RLegWeld.C0 = CF(0.5, -2, 0)
  7482. RLegWeld.Parent = Torso
  7483.  
  7484. if S.playerArms then
  7485. armModel = Instance.new("Model", workspace.FilteringEnabled and playerFolder or Cam)
  7486.  
  7487. fakeLArm = LArm:Clone()
  7488. fakeLArm.Parent = armModel
  7489. fakeLArm.Transparency = S.fakeArmSettings.Transparency
  7490. fakeLArm.CanCollide = false
  7491. fakeLArm.Size = S.fakeArmSettings.armSize
  7492. fakeLArm:BreakJoints()
  7493.  
  7494. --LArm.Transparency = 1
  7495.  
  7496. local fakeLWeld = Instance.new("Weld")
  7497. fakeLWeld.Part0 = fakeLArm
  7498. fakeLWeld.Part1 = LArm
  7499. fakeLWeld.Parent = fakeLArm
  7500.  
  7501. fakeRArm = RArm:Clone()
  7502. fakeRArm.Parent = armModel
  7503. fakeRArm.Transparency = S.fakeArmSettings.Transparency
  7504. fakeRArm.CanCollide = false
  7505. fakeRArm.Size = S.fakeArmSettings.armSize
  7506. fakeRArm:BreakJoints()
  7507.  
  7508. --RArm.Transparency = 1
  7509.  
  7510. local fakeRWeld = Instance.new("Weld")
  7511. fakeRWeld.Part0 = fakeRArm
  7512. fakeRWeld.Part1 = RArm
  7513. fakeRWeld.Parent = fakeRArm
  7514.  
  7515. Instance.new("Humanoid", armModel)
  7516.  
  7517. if S.fakeArmSettings.characterMeshes then
  7518. for _,Obj in pairs(Char:GetChildren()) do
  7519. if Obj:IsA("CharacterMesh") then
  7520. Obj:Clone().Parent = armModel
  7521. end
  7522. end
  7523. end
  7524. for _,Obj in pairs(Char:GetChildren()) do
  7525. if Obj:IsA("Shirt") then
  7526. Obj:Clone().Parent = armModel
  7527. end
  7528. end
  7529. else
  7530. armTable = createArms()
  7531. if workspace.FilteringEnabled then
  7532. armTable[1].Model.Parent = playerFolder
  7533. armTable[2].Model.Parent = playerFolder
  7534. else
  7535. armTable[1].Model.Parent = Cam--playerFolder
  7536. armTable[2].Model.Parent = Cam--playerFolder
  7537. end
  7538.  
  7539. fakeLArm = armTable[1].armPart
  7540.  
  7541. --LArm.Transparency = 1
  7542.  
  7543. local fakeLWeld = Instance.new("Weld")
  7544. fakeLWeld.Part0 = fakeLArm
  7545. fakeLWeld.Part1 = LArm
  7546. fakeLWeld.Parent = fakeLArm
  7547.  
  7548. fakeRArm = armTable[2].armPart
  7549.  
  7550. --RArm.Transparency = 1
  7551.  
  7552. local fakeRWeld = Instance.new("Weld")
  7553. fakeRWeld.Part0 = fakeRArm
  7554. fakeRWeld.Part1 = RArm
  7555. fakeRWeld.Parent = fakeRArm
  7556. end
  7557.  
  7558. --------------------[ MODIFYING THE GUN ]-------------------------------------
  7559.  
  7560. for _, Tab in pairs(gunParts) do
  7561. local Weld = Instance.new("Weld")
  7562. Weld.Name = "MainWeld"
  7563. Weld.Part0 = Handle
  7564. Weld.Part1 = Tab.Obj
  7565. Weld.C0 = Tab.Obj.weldCF.Value
  7566. Weld.Parent = Handle
  7567. Tab.Weld = Weld
  7568. end
  7569.  
  7570. Grip = RArm:WaitForChild("RightGrip")
  7571.  
  7572. local handleCF = Torso.CFrame * CF(0, 0.5, 0) * armC0[2] * S.aimedC1.rightArm:inverse() * Grip.C0
  7573. local handleOffset = AimPart.CFrame:toObjectSpace(Handle.CFrame)
  7574. aimedGripCF = ((Torso.CFrame * CF(headOffset.X, headOffset.Y, 0)) * handleOffset):toObjectSpace(handleCF)
  7575.  
  7576. Grip.C1 = S.equipSettings.GripC1
  7577.  
  7578. --------------------[ RUNNING PLUGINS ]---------------------------------------
  7579.  
  7580. for _, Plugin in pairs(Plugins.OnEquipped) do
  7581. spawn(function()
  7582. Plugin()
  7583. end)
  7584. end
  7585.  
  7586. --------------------[ GETTING PLAYER MASS ]-----------------------------------
  7587.  
  7588. local connectedParts = HRP:GetConnectedParts(true)
  7589. for _, v in pairs(connectedParts) do
  7590. if v:IsA("BasePart") then
  7591. playerMass = playerMass + v:GetMass()
  7592. end
  7593. end
  7594.  
  7595. --------------------[ CONNECTIONS ]-------------------------------------------
  7596.  
  7597. INSERT(Connections, Humanoid.Died:connect(function()
  7598. onUnequipped(true)
  7599. end))
  7600.  
  7601. INSERT(Connections, Humanoid.Jumping:connect(function()
  7602. if Stance ~= 0 then
  7603. Stand()
  7604. end
  7605. end))
  7606.  
  7607. INSERT(Connections, Humanoid.StateChanged:connect(onHumanoidStateChanged))
  7608.  
  7609. INSERT(Connections, Humanoid.HealthChanged:connect(updateHealth))
  7610.  
  7611. INSERT(Connections, M2.Button1Down:connect(onMB1Down))
  7612.  
  7613. INSERT(Connections, M2.Button1Up:connect(onMB1Up))
  7614.  
  7615. INSERT(Connections, M2.Button2Down:connect(onMB2Down))
  7616.  
  7617. INSERT(Connections, M2.Button2Up:connect(onMB2Up))
  7618.  
  7619. INSERT(Connections, M2.KeyDown:connect(keyDown))
  7620.  
  7621. INSERT(Connections, M2.KeyUp:connect(keyUp))
  7622.  
  7623. if S.sensitivitySettings.scrollToChange then
  7624. INSERT(Connections, M2.WheelForward:connect(onScrollUp))
  7625. INSERT(Connections, M2.WheelBackward:connect(onScrollDown))
  7626. end
  7627.  
  7628. if S.AutoKnife then
  7629. INSERT(Connections, RS.Stepped:connect(function()
  7630. local H, P = AdvRayCast(Head.CFrame.p, Head.CFrame.lookVector, S.AutoKnifeDist, nil)
  7631. if H then
  7632. local HitHuman = findFirstClass(H.Parent, "Humanoid")
  7633. if HitHuman and isEnemy(HitHuman) and HitHuman.Health ~= 0 then
  7634. Knife()
  7635. end
  7636. end
  7637. end))
  7638. end
  7639.  
  7640. INSERT(Connections, UIS.InputChanged:connect(function(inputObj)
  7641. if inputObj.UserInputType == Enum.UserInputType.MouseMovement then
  7642. local rawCamAng = camAng - (VEC2(RAD(inputObj.Delta.x), RAD(inputObj.Delta.y)) * mouseSensitivity * 0.25)
  7643. camAng = VEC2(rawCamAng.x, (rawCamAng.y > RAD(80) and RAD(80) or rawCamAng.y < RAD(-80) and RAD(-80) or rawCamAng.y))
  7644.  
  7645. desiredXOffset = math.min(math.max(inputObj.Delta.x, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
  7646. desiredYOffset = math.min(math.max(inputObj.Delta.y, -S.momentumSettings.maxInput), S.momentumSettings.maxInput)
  7647. end
  7648. end))
  7649.  
  7650. INSERT(Connections, M2.Idle:connect(function(inputObj)
  7651. desiredXOffset = 0
  7652. desiredYOffset = 0
  7653. end))
  7654.  
  7655. INSERT(Connections, RS.Stepped:connect(function()
  7656. if tick() - lastBeat > (Humanoid.Health / 75) then
  7657. lastBeat = tick()
  7658. HUD.Health.Tray.Beat:TweenPosition(
  7659. UDim2.new(0, -21, 0, 0),
  7660. Enum.EasingDirection.Out,
  7661. Enum.EasingStyle.Linear,
  7662. 0.7 - ((100 - Humanoid.Health) / 400),
  7663. false,
  7664. function()
  7665. HUD.Health.Tray.Beat.Position = UDim2.new(1, 0, 0, 0)
  7666. end
  7667. )
  7668. end
  7669. end))
  7670.  
  7671. INSERT(Connections, RS.RenderStepped:connect(function()
  7672. --Main animation
  7673. local animC0, animC1 = getAnimCF()
  7674. animWeld.C0 = animC0
  7675. animWeld.C1 = animC1
  7676.  
  7677. --Camera updating
  7678. renderCamera()
  7679. end))
  7680.  
  7681. --------------------[ ANIMATE GUN ]-------------------------------------------
  7682.  
  7683. tweenJoint(LWeld, nil, S.unAimedC1.leftArm, Sine, S.equipSettings.Time)
  7684. tweenJoint(RWeld, nil, S.unAimedC1.rightArm, Sine, S.equipSettings.Time)
  7685. tweenJoint(Grip, nil, S.unAimedC1.Grip, Sine, S.equipSettings.Time)
  7686. spawn(function()
  7687. local T = tick()
  7688. while true do
  7689. if tick() - T > S.equipSettings.Time then break end
  7690. if (not Selected) then break end
  7691. wait()
  7692. end
  7693. equipAnimPlaying = false
  7694. end)
  7695.  
  7696. Animate()
  7697. end
  7698. end
  7699.  
  7700. function onUnequipped(deleteTool)
  7701. if Selected then
  7702. Selected = false
  7703.  
  7704. breakReload = true
  7705.  
  7706. --------------------[ RUNNING PLUGINS ]---------------------------------------
  7707.  
  7708. for _, Plugin in pairs(Plugins.OnUnEquipped) do
  7709. spawn(function()
  7710. Plugin()
  7711. end)
  7712. end
  7713.  
  7714. --------------------[ MODIFYING THE PLAYER ]----------------------------------
  7715.  
  7716. Cam.FieldOfView = 70
  7717. Cam.CameraType = Enum.CameraType.Custom
  7718.  
  7719. UIS.MouseBehavior = Enum.MouseBehavior.Default
  7720. UIS.MouseIconEnabled = true
  7721.  
  7722. Player.CameraMode = Enum.CameraMode.Classic
  7723.  
  7724. if armTable then
  7725. armTable[1].Model:Destroy()
  7726. armTable[2].Model:Destroy()
  7727. elseif armModel then
  7728. armModel:Destroy()
  7729. end
  7730.  
  7731. LLegWeld:Destroy()
  7732. RLegWeld:Destroy()
  7733.  
  7734. changePlayerTrans(Char, 0)
  7735.  
  7736. mainGUI.Parent = script
  7737.  
  7738. Shoulders.Right.Part1 = RArm
  7739. Shoulders.Left.Part1 = LArm
  7740.  
  7741. neckClone.Parent = Torso
  7742. headWeld:Destroy()
  7743.  
  7744. Humanoid.WalkSpeed = 16
  7745. Humanoid.AutoRotate = true
  7746.  
  7747. --------------------[ RESETING THE TOOL ]-------------------------------------
  7748.  
  7749. gunIgnore:Destroy()
  7750.  
  7751. mouseSensitivity = S.sensitivitySettings.Default
  7752.  
  7753. MB1Down = false
  7754.  
  7755. playerMass = 0
  7756.  
  7757. Aimed = false
  7758.  
  7759. camOffsets = {
  7760. guiScope = {
  7761. Rot = V3();
  7762. };
  7763. Reload = {
  7764. Rot = V3();
  7765. Code = nil;
  7766. };
  7767. Recoil = {
  7768. Rot = V3();
  7769. Code = nil;
  7770. };
  7771. }
  7772.  
  7773. recoilAnim = {
  7774. Pos = V3();
  7775. Rot = V3();
  7776. Code = nil;
  7777. }
  7778.  
  7779. --Setting the aim variables to unaimed
  7780. spreadZoom = "unAimed"
  7781. scopeMain.Visible = false
  7782. scopeSteady.Visible = false
  7783. aimAlpha = 0
  7784. aimHeadOffset = 0
  7785. jumpAnimMultiplier = 1
  7786. translationDivisor = 7
  7787. rotationMultiplier = S.momentumSettings.Amplitude.unAimed
  7788. armTiltMultiplier = 1
  7789. Scope.BackgroundTransparency = 1
  7790. if S.guiScope then
  7791. spawn(function()
  7792. for _, Obj in pairs(Gun:GetChildren()) do
  7793. if Obj:IsA("BasePart") then
  7794. Obj.LocalTransparencyModifier = 0
  7795. end
  7796. end
  7797. end)
  7798. end
  7799.  
  7800. onGround = true
  7801.  
  7802. for _, Tab in pairs(gunParts) do
  7803. Tab.Weld:Destroy()
  7804. Tab.Weld = nil
  7805. end
  7806.  
  7807. for _,c in pairs(Connections) do
  7808. c:disconnect()
  7809. end
  7810.  
  7811. Connections = {}
  7812.  
  7813. if deleteTool then
  7814. Cam:ClearAllChildren()
  7815. Gun:Destroy()
  7816. end
  7817.  
  7818. wait() --This is here in case you dolphin dived and deselected the tool instantly
  7819.  
  7820. if S.stanceSettings.standOnDeselect and Stance ~= 0 then
  7821. crawlCamRot = 0
  7822. isCrawling = false
  7823. stanceSway = 1
  7824. spreadStance = "Stand"
  7825. Stand(true)
  7826. end
  7827. baseSpread = S.spreadSettings[spreadZoom][spreadStance][spreadMotion]
  7828. end
  7829. end
  7830.  
  7831. Gun.Equipped:connect(onEquipped)
  7832. Gun.Unequipped:connect(function() onUnequipped(false) end)
  7833.  
  7834. --------------------------------------------------------------------------------------
  7835. --------------------[ END PROGRAM ]---------------------------------------------------
  7836. --------------------------------------------------------------------------------------
  7837. end))
  7838. IntValue209.Name = "ignoreCode"
  7839. IntValue209.Parent = LocalScript208
  7840. Folder210.Name = "Server_Scripts"
  7841. Folder210.Parent = LocalScript208
  7842. ScreenGui211.Name = "mainGUI"
  7843. ScreenGui211.Parent = LocalScript208
  7844. ImageLabel212.Name = "hitMarker"
  7845. ImageLabel212.Parent = ScreenGui211
  7846. ImageLabel212.Transparency = 1
  7847. ImageLabel212.Size = UDim2.new(0, 26, 0, 26)
  7848. ImageLabel212.Position = UDim2.new(0.5, -13, 0.5, -31)
  7849. ImageLabel212.Visible = false
  7850. ImageLabel212.BackgroundTransparency = 1
  7851. ImageLabel212.ZIndex = 10
  7852. ImageLabel212.Image = "http://www.roblox.com/asset/?id=121173757"
  7853. NumberValue213.Name = "lastMark"
  7854. NumberValue213.Parent = ImageLabel212
  7855. Frame214.Name = "crossHair"
  7856. Frame214.Parent = ScreenGui211
  7857. Frame214.Position = UDim2.new(0.5, 0, 0.5, -18)
  7858. Frame214.BackgroundColor3 = Color3.new(1, 1, 1)
  7859. Frame214.BorderColor3 = Color3.new(0, 0, 0)
  7860. Frame214.BorderSizePixel = 0
  7861. ImageLabel215.Parent = Frame214
  7862. ImageLabel215.Transparency = 1
  7863. ImageLabel215.Size = UDim2.new(0, 300, 0, 300)
  7864. ImageLabel215.Position = UDim2.new(0, -150, 0, -150)
  7865. ImageLabel215.Visible = false
  7866. ImageLabel215.BackgroundColor3 = Color3.new(1, 1, 1)
  7867. ImageLabel215.BackgroundTransparency = 1
  7868. ImageLabel215.ZIndex = 2
  7869. ImageLabel215.Image = "http://www.roblox.com/asset/?id=68308747"
  7870. TextLabel216.Name = "Reload"
  7871. TextLabel216.Parent = Frame214
  7872. TextLabel216.Transparency = 1
  7873. TextLabel216.Size = UDim2.new(0, 100, 0, 20)
  7874. TextLabel216.Text = "RELOADING..."
  7875. TextLabel216.Position = UDim2.new(0, -50, 0, 70)
  7876. TextLabel216.Visible = false
  7877. TextLabel216.BackgroundColor3 = Color3.new(1, 1, 1)
  7878. TextLabel216.BackgroundTransparency = 1
  7879. TextLabel216.ZIndex = 2
  7880. TextLabel216.Font = Enum.Font.SourceSansBold
  7881. TextLabel216.FontSize = Enum.FontSize.Size18
  7882. TextLabel216.TextColor3 = Color3.new(1, 1, 1)
  7883. TextLabel216.TextStrokeTransparency = 0.5
  7884. Frame217.Name = "C"
  7885. Frame217.Parent = Frame214
  7886. Frame217.Transparency = 1
  7887. Frame217.Size = UDim2.new(0, 4, 0, 500)
  7888. Frame217.Position = UDim2.new(0, -2, 0, 0)
  7889. Frame217.BackgroundColor3 = Color3.new(1, 1, 1)
  7890. Frame217.BackgroundTransparency = 1
  7891. Frame217.ClipsDescendants = true
  7892. TextLabel218.Name = "Line"
  7893. TextLabel218.Parent = Frame217
  7894. TextLabel218.Size = UDim2.new(0, 2, 0, 15)
  7895. TextLabel218.Text = ""
  7896. TextLabel218.Position = UDim2.new(0.5, -1, 0, 10)
  7897. TextLabel218.BackgroundColor3 = Color3.new(1, 1, 1)
  7898. TextLabel218.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7899. TextLabel218.Font = Enum.Font.SourceSans
  7900. TextLabel218.FontSize = Enum.FontSize.Size14
  7901. Frame219.Name = "A"
  7902. Frame219.Parent = Frame214
  7903. Frame219.Transparency = 1
  7904. Frame219.Size = UDim2.new(0, 4, 0, 500)
  7905. Frame219.Position = UDim2.new(0, -2, 0, -500)
  7906. Frame219.BackgroundColor3 = Color3.new(1, 1, 1)
  7907. Frame219.BackgroundTransparency = 1
  7908. Frame219.ClipsDescendants = true
  7909. TextLabel220.Name = "Line"
  7910. TextLabel220.Parent = Frame219
  7911. TextLabel220.Size = UDim2.new(0, 2, 0, 15)
  7912. TextLabel220.Text = ""
  7913. TextLabel220.Position = UDim2.new(0.5, -1, 1, -25)
  7914. TextLabel220.BackgroundColor3 = Color3.new(1, 1, 1)
  7915. TextLabel220.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7916. TextLabel220.Font = Enum.Font.SourceSans
  7917. TextLabel220.FontSize = Enum.FontSize.Size14
  7918. Frame221.Name = "B"
  7919. Frame221.Parent = Frame214
  7920. Frame221.Transparency = 1
  7921. Frame221.Size = UDim2.new(0, 500, 0, 4)
  7922. Frame221.Position = UDim2.new(0, 0, 0, -2)
  7923. Frame221.BackgroundColor3 = Color3.new(1, 1, 1)
  7924. Frame221.BackgroundTransparency = 1
  7925. Frame221.ClipsDescendants = true
  7926. TextLabel222.Name = "Line"
  7927. TextLabel222.Parent = Frame221
  7928. TextLabel222.Size = UDim2.new(0, 15, 0, 2)
  7929. TextLabel222.Text = ""
  7930. TextLabel222.Position = UDim2.new(0, 10, 0.5, -1)
  7931. TextLabel222.BackgroundColor3 = Color3.new(1, 1, 1)
  7932. TextLabel222.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7933. TextLabel222.Font = Enum.Font.SourceSans
  7934. TextLabel222.FontSize = Enum.FontSize.Size14
  7935. Frame223.Name = "D"
  7936. Frame223.Parent = Frame214
  7937. Frame223.Transparency = 1
  7938. Frame223.Size = UDim2.new(0, 500, 0, 4)
  7939. Frame223.Position = UDim2.new(0, -500, 0, -2)
  7940. Frame223.BackgroundColor3 = Color3.new(1, 1, 1)
  7941. Frame223.BackgroundTransparency = 1
  7942. Frame223.ClipsDescendants = true
  7943. TextLabel224.Name = "Line"
  7944. TextLabel224.Parent = Frame223
  7945. TextLabel224.Size = UDim2.new(0, 15, 0, 2)
  7946. TextLabel224.Text = ""
  7947. TextLabel224.Position = UDim2.new(1, -25, 0.5, -1)
  7948. TextLabel224.BackgroundColor3 = Color3.new(1, 1, 1)
  7949. TextLabel224.BorderColor3 = Color3.new(0.392157, 0.392157, 0.392157)
  7950. TextLabel224.Font = Enum.Font.SourceSans
  7951. TextLabel224.FontSize = Enum.FontSize.Size14
  7952. Frame225.Name = "HUD"
  7953. Frame225.Parent = ScreenGui211
  7954. Frame225.Transparency = 0.30000001192093
  7955. Frame225.Size = UDim2.new(0, 175, 0, 90)
  7956. Frame225.Position = UDim2.new(1, -200, 1, -165)
  7957. Frame225.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7958. Frame225.BackgroundTransparency = 0.30000001192093
  7959. Frame225.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  7960. Frame225.BorderSizePixel = 5
  7961. Frame225.ZIndex = 10
  7962. Frame226.Name = "Ammo"
  7963. Frame226.Parent = Frame225
  7964. Frame226.Transparency = 1
  7965. Frame226.Size = UDim2.new(0, 175, 0, 40)
  7966. Frame226.Position = UDim2.new(0, 0, 0, 45)
  7967. Frame226.BackgroundTransparency = 1
  7968. Frame226.ZIndex = 10
  7969. TextLabel227.Name = "Slash"
  7970. TextLabel227.Parent = Frame226
  7971. TextLabel227.Transparency = 1
  7972. TextLabel227.Size = UDim2.new(0, 10, 0, 25)
  7973. TextLabel227.Text = "/"
  7974. TextLabel227.Position = UDim2.new(0, 90, 0, 0)
  7975. TextLabel227.BackgroundTransparency = 1
  7976. TextLabel227.ZIndex = 10
  7977. TextLabel227.Font = Enum.Font.ArialBold
  7978. TextLabel227.FontSize = Enum.FontSize.Size24
  7979. TextLabel227.TextColor3 = Color3.new(1, 1, 1)
  7980. TextLabel228.Name = "Stored"
  7981. TextLabel228.Parent = Frame226
  7982. TextLabel228.Transparency = 1
  7983. TextLabel228.Size = UDim2.new(0, 70, 0, 25)
  7984. TextLabel228.Text = "100"
  7985. TextLabel228.Position = UDim2.new(0, 105, 0, 0)
  7986. TextLabel228.BackgroundTransparency = 1
  7987. TextLabel228.ZIndex = 10
  7988. TextLabel228.Font = Enum.Font.ArialBold
  7989. TextLabel228.FontSize = Enum.FontSize.Size24
  7990. TextLabel228.TextColor3 = Color3.new(1, 1, 1)
  7991. TextLabel228.TextXAlignment = Enum.TextXAlignment.Left
  7992. TextLabel229.Name = "Background"
  7993. TextLabel229.Parent = TextLabel228
  7994. TextLabel229.Transparency = 1
  7995. TextLabel229.Size = UDim2.new(1, 0, 1, 0)
  7996. TextLabel229.Text = "000"
  7997. TextLabel229.BackgroundTransparency = 1
  7998. TextLabel229.ZIndex = 10
  7999. TextLabel229.Font = Enum.Font.ArialBold
  8000. TextLabel229.FontSize = Enum.FontSize.Size24
  8001. TextLabel229.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
  8002. TextLabel229.TextTransparency = 0.80000001192093
  8003. TextLabel229.TextWrapped = true
  8004. TextLabel229.TextXAlignment = Enum.TextXAlignment.Left
  8005. TextLabel230.Name = "Clip"
  8006. TextLabel230.Parent = Frame226
  8007. TextLabel230.Transparency = 1
  8008. TextLabel230.Size = UDim2.new(0, 85, 1, 0)
  8009. TextLabel230.Text = "9"
  8010. TextLabel230.BackgroundTransparency = 1
  8011. TextLabel230.ZIndex = 10
  8012. TextLabel230.Font = Enum.Font.ArialBold
  8013. TextLabel230.FontSize = Enum.FontSize.Size48
  8014. TextLabel230.TextColor3 = Color3.new(1, 1, 1)
  8015. TextLabel230.TextXAlignment = Enum.TextXAlignment.Right
  8016. TextLabel231.Name = "Background"
  8017. TextLabel231.Parent = TextLabel230
  8018. TextLabel231.Transparency = 1
  8019. TextLabel231.Size = UDim2.new(1, 0, 1, 0)
  8020. TextLabel231.Text = "000"
  8021. TextLabel231.BackgroundTransparency = 1
  8022. TextLabel231.ZIndex = 10
  8023. TextLabel231.Font = Enum.Font.ArialBold
  8024. TextLabel231.FontSize = Enum.FontSize.Size48
  8025. TextLabel231.TextColor3 = Color3.new(0.588235, 0.588235, 0.588235)
  8026. TextLabel231.TextTransparency = 0.80000001192093
  8027. TextLabel231.TextXAlignment = Enum.TextXAlignment.Right
  8028. Frame232.Name = "Mode"
  8029. Frame232.Parent = Frame225
  8030. Frame232.Transparency = 1
  8031. Frame232.Size = UDim2.new(0, 85, 0, 20)
  8032. Frame232.Position = UDim2.new(0, 90, 0, 65)
  8033. Frame232.BackgroundColor3 = Color3.new(1, 1, 1)
  8034. Frame232.BackgroundTransparency = 1
  8035. Frame232.ZIndex = 10
  8036. TextLabel233.Name = "Bracket"
  8037. TextLabel233.Parent = Frame232
  8038. TextLabel233.Transparency = 1
  8039. TextLabel233.Size = UDim2.new(0, 5, 0, 20)
  8040. TextLabel233.Text = "["
  8041. TextLabel233.BackgroundTransparency = 1
  8042. TextLabel233.ZIndex = 10
  8043. TextLabel233.Font = Enum.Font.ArialBold
  8044. TextLabel233.FontSize = Enum.FontSize.Size18
  8045. TextLabel233.TextColor3 = Color3.new(1, 1, 1)
  8046. TextLabel233.TextXAlignment = Enum.TextXAlignment.Left
  8047. TextLabel234.Name = "Bracket"
  8048. TextLabel234.Parent = Frame232
  8049. TextLabel234.Transparency = 1
  8050. TextLabel234.Size = UDim2.new(0, 5, 0, 20)
  8051. TextLabel234.Text = "]"
  8052. TextLabel234.Position = UDim2.new(1, -5, 0, 0)
  8053. TextLabel234.BackgroundTransparency = 1
  8054. TextLabel234.ZIndex = 10
  8055. TextLabel234.Font = Enum.Font.ArialBold
  8056. TextLabel234.FontSize = Enum.FontSize.Size18
  8057. TextLabel234.TextColor3 = Color3.new(1, 1, 1)
  8058. TextLabel234.TextXAlignment = Enum.TextXAlignment.Left
  8059. TextLabel235.Name = "Main"
  8060. TextLabel235.Parent = Frame232
  8061. TextLabel235.Transparency = 1
  8062. TextLabel235.Size = UDim2.new(1, 0, 0, 20)
  8063. TextLabel235.Text = "Auto"
  8064. TextLabel235.BackgroundTransparency = 1
  8065. TextLabel235.ZIndex = 10
  8066. TextLabel235.Font = Enum.Font.SourceSansBold
  8067. TextLabel235.FontSize = Enum.FontSize.Size18
  8068. TextLabel235.TextColor3 = Color3.new(1, 1, 1)
  8069. TextLabel235.TextWrapped = true
  8070. Frame236.Name = "Health"
  8071. Frame236.Parent = Frame225
  8072. Frame236.Transparency = 0.30000001192093
  8073. Frame236.Size = UDim2.new(1, 0, 0, 25)
  8074. Frame236.Position = UDim2.new(0, 0, 0, -40)
  8075. Frame236.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8076. Frame236.BackgroundTransparency = 0.30000001192093
  8077. Frame236.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8078. Frame236.BorderSizePixel = 5
  8079. Frame236.ZIndex = 10
  8080. TextLabel237.Name = "Num"
  8081. TextLabel237.Parent = Frame236
  8082. TextLabel237.Transparency = 1
  8083. TextLabel237.Size = UDim2.new(0, 50, 1, 0)
  8084. TextLabel237.Text = "100%"
  8085. TextLabel237.Position = UDim2.new(1, -50, 0, 0)
  8086. TextLabel237.BackgroundColor3 = Color3.new(0, 0, 0)
  8087. TextLabel237.BackgroundTransparency = 1
  8088. TextLabel237.BorderColor3 = Color3.new(0, 0, 0)
  8089. TextLabel237.BorderSizePixel = 0
  8090. TextLabel237.ZIndex = 10
  8091. TextLabel237.Font = Enum.Font.ArialBold
  8092. TextLabel237.FontSize = Enum.FontSize.Size24
  8093. TextLabel237.TextColor3 = Color3.new(1, 1, 1)
  8094. TextLabel237.TextStrokeTransparency = 0
  8095. TextLabel237.TextXAlignment = Enum.TextXAlignment.Right
  8096. Frame238.Name = "Tray"
  8097. Frame238.Parent = Frame236
  8098. Frame238.Transparency = 1
  8099. Frame238.Size = UDim2.new(1, -60, 0, 20)
  8100. Frame238.Position = UDim2.new(0, 2, 0.5, -10)
  8101. Frame238.BackgroundColor3 = Color3.new(0, 0, 0)
  8102. Frame238.BackgroundTransparency = 1
  8103. Frame238.BorderColor3 = Color3.new(0, 0, 0)
  8104. Frame238.BorderSizePixel = 0
  8105. Frame238.ZIndex = 10
  8106. Frame238.ClipsDescendants = true
  8107. Frame239.Name = "Beat"
  8108. Frame239.Parent = Frame238
  8109. Frame239.Transparency = 1
  8110. Frame239.Size = UDim2.new(0, 21, 1, 0)
  8111. Frame239.Position = UDim2.new(1, 0, 0, 0)
  8112. Frame239.BackgroundColor3 = Color3.new(0, 0, 0)
  8113. Frame239.BackgroundTransparency = 1
  8114. Frame239.BorderColor3 = Color3.new(0, 0, 0)
  8115. Frame239.BorderSizePixel = 0
  8116. Frame239.ZIndex = 10
  8117. Frame240.Name = "00"
  8118. Frame240.Parent = Frame239
  8119. Frame240.Size = UDim2.new(0.0476190485, 0, 0, 3)
  8120. Frame240.Position = UDim2.new(0, 0, 0.5, -2)
  8121. Frame240.BackgroundColor3 = Color3.new(1, 1, 1)
  8122. Frame240.BorderColor3 = Color3.new(0, 0, 0)
  8123. Frame240.BorderSizePixel = 0
  8124. Frame240.ZIndex = 10
  8125. Frame241.Name = "01"
  8126. Frame241.Parent = Frame239
  8127. Frame241.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8128. Frame241.Position = UDim2.new(0.0476190485, 0, 0.423076928, -2)
  8129. Frame241.BackgroundColor3 = Color3.new(1, 1, 1)
  8130. Frame241.BorderColor3 = Color3.new(0, 0, 0)
  8131. Frame241.BorderSizePixel = 0
  8132. Frame241.ZIndex = 10
  8133. Frame242.Name = "02"
  8134. Frame242.Parent = Frame239
  8135. Frame242.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8136. Frame242.Position = UDim2.new(0.095238097, 0, 0.346153855, -2)
  8137. Frame242.BackgroundColor3 = Color3.new(1, 1, 1)
  8138. Frame242.BorderColor3 = Color3.new(0, 0, 0)
  8139. Frame242.BorderSizePixel = 0
  8140. Frame242.ZIndex = 10
  8141. Frame243.Name = "03"
  8142. Frame243.Parent = Frame239
  8143. Frame243.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8144. Frame243.Position = UDim2.new(0.142857149, 0, 0.269230783, -2)
  8145. Frame243.BackgroundColor3 = Color3.new(1, 1, 1)
  8146. Frame243.BorderColor3 = Color3.new(0, 0, 0)
  8147. Frame243.BorderSizePixel = 0
  8148. Frame243.ZIndex = 10
  8149. Frame244.Name = "04"
  8150. Frame244.Parent = Frame239
  8151. Frame244.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8152. Frame244.Position = UDim2.new(0.190476194, 0, 0.192307696, -2)
  8153. Frame244.BackgroundColor3 = Color3.new(1, 1, 1)
  8154. Frame244.BorderColor3 = Color3.new(0, 0, 0)
  8155. Frame244.BorderSizePixel = 0
  8156. Frame244.ZIndex = 10
  8157. Frame245.Name = "05"
  8158. Frame245.Parent = Frame239
  8159. Frame245.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8160. Frame245.Position = UDim2.new(0.238095239, 0, 0.115384616, -2)
  8161. Frame245.BackgroundColor3 = Color3.new(1, 1, 1)
  8162. Frame245.BorderColor3 = Color3.new(0, 0, 0)
  8163. Frame245.BorderSizePixel = 0
  8164. Frame245.ZIndex = 10
  8165. Frame246.Name = "06"
  8166. Frame246.Parent = Frame239
  8167. Frame246.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8168. Frame246.Position = UDim2.new(0.285714298, 0, 0.0384615399, -2)
  8169. Frame246.BackgroundColor3 = Color3.new(1, 1, 1)
  8170. Frame246.BorderColor3 = Color3.new(0, 0, 0)
  8171. Frame246.BorderSizePixel = 0
  8172. Frame246.ZIndex = 10
  8173. Frame247.Name = "07"
  8174. Frame247.Parent = Frame239
  8175. Frame247.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8176. Frame247.Position = UDim2.new(0.333333343, 0, 0, -2)
  8177. Frame247.BackgroundColor3 = Color3.new(1, 1, 1)
  8178. Frame247.BorderColor3 = Color3.new(0, 0, 0)
  8179. Frame247.BorderSizePixel = 0
  8180. Frame247.ZIndex = 10
  8181. Frame248.Name = "08"
  8182. Frame248.Parent = Frame239
  8183. Frame248.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8184. Frame248.Position = UDim2.new(0.380952388, 0, 0.142857149, -2)
  8185. Frame248.BackgroundColor3 = Color3.new(1, 1, 1)
  8186. Frame248.BorderColor3 = Color3.new(0, 0, 0)
  8187. Frame248.BorderSizePixel = 0
  8188. Frame248.ZIndex = 10
  8189. Frame249.Name = "09"
  8190. Frame249.Parent = Frame239
  8191. Frame249.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8192. Frame249.Position = UDim2.new(0.428571433, 0, 0.285714298, -2)
  8193. Frame249.BackgroundColor3 = Color3.new(1, 1, 1)
  8194. Frame249.BorderColor3 = Color3.new(0, 0, 0)
  8195. Frame249.BorderSizePixel = 0
  8196. Frame249.ZIndex = 10
  8197. Frame250.Name = "10"
  8198. Frame250.Parent = Frame239
  8199. Frame250.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8200. Frame250.Position = UDim2.new(0.476190478, 0, 0.428571433, -2)
  8201. Frame250.BackgroundColor3 = Color3.new(1, 1, 1)
  8202. Frame250.BorderColor3 = Color3.new(0, 0, 0)
  8203. Frame250.BorderSizePixel = 0
  8204. Frame250.ZIndex = 10
  8205. Frame251.Name = "11"
  8206. Frame251.Parent = Frame239
  8207. Frame251.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8208. Frame251.Position = UDim2.new(0.523809552, 0, 0.571428597, -2)
  8209. Frame251.BackgroundColor3 = Color3.new(1, 1, 1)
  8210. Frame251.BorderColor3 = Color3.new(0, 0, 0)
  8211. Frame251.BorderSizePixel = 0
  8212. Frame251.ZIndex = 10
  8213. Frame252.Name = "12"
  8214. Frame252.Parent = Frame239
  8215. Frame252.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8216. Frame252.Position = UDim2.new(0.571428597, 0, 0.714285731, -2)
  8217. Frame252.BackgroundColor3 = Color3.new(1, 1, 1)
  8218. Frame252.BorderColor3 = Color3.new(0, 0, 0)
  8219. Frame252.BorderSizePixel = 0
  8220. Frame252.ZIndex = 10
  8221. Frame253.Name = "13"
  8222. Frame253.Parent = Frame239
  8223. Frame253.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8224. Frame253.Position = UDim2.new(0.619047642, 0, 0.857142866, -2)
  8225. Frame253.BackgroundColor3 = Color3.new(1, 1, 1)
  8226. Frame253.BorderColor3 = Color3.new(0, 0, 0)
  8227. Frame253.BorderSizePixel = 0
  8228. Frame253.ZIndex = 10
  8229. Frame254.Name = "14"
  8230. Frame254.Parent = Frame239
  8231. Frame254.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8232. Frame254.Position = UDim2.new(0.666666687, 0, 0.916666687, -2)
  8233. Frame254.BackgroundColor3 = Color3.new(1, 1, 1)
  8234. Frame254.BorderColor3 = Color3.new(0, 0, 0)
  8235. Frame254.BorderSizePixel = 0
  8236. Frame254.ZIndex = 10
  8237. Frame255.Name = "15"
  8238. Frame255.Parent = Frame239
  8239. Frame255.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8240. Frame255.Position = UDim2.new(0.714285731, 0, 0.833333313, -2)
  8241. Frame255.BackgroundColor3 = Color3.new(1, 1, 1)
  8242. Frame255.BorderColor3 = Color3.new(0, 0, 0)
  8243. Frame255.BorderSizePixel = 0
  8244. Frame255.ZIndex = 10
  8245. Frame256.Name = "16"
  8246. Frame256.Parent = Frame239
  8247. Frame256.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8248. Frame256.Position = UDim2.new(0.761904776, 0, 0.75, -2)
  8249. Frame256.BackgroundColor3 = Color3.new(1, 1, 1)
  8250. Frame256.BorderColor3 = Color3.new(0, 0, 0)
  8251. Frame256.BorderSizePixel = 0
  8252. Frame256.ZIndex = 10
  8253. Frame257.Name = "17"
  8254. Frame257.Parent = Frame239
  8255. Frame257.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8256. Frame257.Position = UDim2.new(0.809523821, 0, 0.666666687, -2)
  8257. Frame257.BackgroundColor3 = Color3.new(1, 1, 1)
  8258. Frame257.BorderColor3 = Color3.new(0, 0, 0)
  8259. Frame257.BorderSizePixel = 0
  8260. Frame257.ZIndex = 10
  8261. Frame258.Name = "18"
  8262. Frame258.Parent = Frame239
  8263. Frame258.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8264. Frame258.Position = UDim2.new(0.857142866, 0, 0.583333313, -2)
  8265. Frame258.BackgroundColor3 = Color3.new(1, 1, 1)
  8266. Frame258.BorderColor3 = Color3.new(0, 0, 0)
  8267. Frame258.BorderSizePixel = 0
  8268. Frame258.ZIndex = 10
  8269. Frame259.Name = "19"
  8270. Frame259.Parent = Frame239
  8271. Frame259.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8272. Frame259.Position = UDim2.new(0.90476191, 0, 0.5, -2)
  8273. Frame259.BackgroundColor3 = Color3.new(1, 1, 1)
  8274. Frame259.BorderColor3 = Color3.new(0, 0, 0)
  8275. Frame259.BorderSizePixel = 0
  8276. Frame259.ZIndex = 10
  8277. Frame260.Name = "20"
  8278. Frame260.Parent = Frame239
  8279. Frame260.Size = UDim2.new(0.0476190485, 0, 0, 4)
  8280. Frame260.Position = UDim2.new(0.952000022, 0, 0.49000001, -2)
  8281. Frame260.BackgroundColor3 = Color3.new(1, 1, 1)
  8282. Frame260.BorderColor3 = Color3.new(0, 0, 0)
  8283. Frame260.BorderSizePixel = 0
  8284. Frame260.ZIndex = 10
  8285. Frame261.Name = "Line"
  8286. Frame261.Parent = Frame239
  8287. Frame261.Size = UDim2.new(0, 200, 0, 3)
  8288. Frame261.Position = UDim2.new(1, 0, 0.5, -2)
  8289. Frame261.BackgroundColor3 = Color3.new(1, 1, 1)
  8290. Frame261.BorderColor3 = Color3.new(0, 0, 0)
  8291. Frame261.BorderSizePixel = 0
  8292. Frame261.ZIndex = 10
  8293. Frame262.Name = "Line"
  8294. Frame262.Parent = Frame239
  8295. Frame262.Size = UDim2.new(0, 200, 0, 3)
  8296. Frame262.Position = UDim2.new(0, -200, 0.5, -2)
  8297. Frame262.BackgroundColor3 = Color3.new(1, 1, 1)
  8298. Frame262.BorderColor3 = Color3.new(0, 0, 0)
  8299. Frame262.BorderSizePixel = 0
  8300. Frame262.ZIndex = 10
  8301. Frame263.Name = "Controls"
  8302. Frame263.Parent = Frame225
  8303. Frame263.Transparency = 0.30000001192093
  8304. Frame263.Size = UDim2.new(1, 0, 0, 120)
  8305. Frame263.Position = UDim2.new(0, 0, 0, -200)
  8306. Frame263.Visible = false
  8307. Frame263.BackgroundColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8308. Frame263.BackgroundTransparency = 0.30000001192093
  8309. Frame263.BorderColor3 = Color3.new(0.156863, 0.156863, 0.156863)
  8310. Frame263.BorderSizePixel = 5
  8311. Frame263.ZIndex = 10
  8312. TextLabel264.Name = "Title"
  8313. TextLabel264.Parent = Frame263
  8314. TextLabel264.Transparency = 1
  8315. TextLabel264.Size = UDim2.new(1, 0, 0, 15)
  8316. TextLabel264.Text = "CONTROLS"
  8317. TextLabel264.BackgroundColor3 = Color3.new(1, 1, 1)
  8318. TextLabel264.BackgroundTransparency = 1
  8319. TextLabel264.ZIndex = 10
  8320. TextLabel264.Font = Enum.Font.SourceSansBold
  8321. TextLabel264.FontSize = Enum.FontSize.Size14
  8322. TextLabel264.TextColor3 = Color3.new(1, 1, 1)
  8323. TextLabel265.Name = "Line"
  8324. TextLabel265.Parent = TextLabel264
  8325. TextLabel265.Size = UDim2.new(1, 0, 0, 2)
  8326. TextLabel265.Text = ""
  8327. TextLabel265.Position = UDim2.new(0, 0, 1, 1)
  8328. TextLabel265.BackgroundColor3 = Color3.new(1, 1, 0)
  8329. TextLabel265.BorderSizePixel = 0
  8330. TextLabel265.ZIndex = 10
  8331. TextLabel265.Font = Enum.Font.SourceSans
  8332. TextLabel265.FontSize = Enum.FontSize.Size14
  8333. Frame266.Name = "Grenades"
  8334. Frame266.Parent = Frame225
  8335. Frame266.Transparency = 1
  8336. Frame266.Size = UDim2.new(0, 175, 0, 25)
  8337. Frame266.Position = UDim2.new(0, 0, 0, 90)
  8338. Frame266.Visible = false
  8339. Frame266.BackgroundTransparency = 1
  8340. Frame266.ZIndex = 10
  8341. Frame267.Name = "Lethals"
  8342. Frame267.Parent = Frame266
  8343. Frame267.Transparency = 0.80000001192093
  8344. Frame267.Size = UDim2.new(0.5, -2, 1, 0)
  8345. Frame267.BackgroundColor3 = Color3.new(1, 1, 1)
  8346. Frame267.BackgroundTransparency = 0.80000001192093
  8347. Frame267.BorderSizePixel = 0
  8348. Frame267.ZIndex = 10
  8349. ImageLabel268.Name = "Icon"
  8350. ImageLabel268.Parent = Frame267
  8351. ImageLabel268.Transparency = 1
  8352. ImageLabel268.Size = UDim2.new(0, 21, 0, 21)
  8353. ImageLabel268.Position = UDim2.new(0, 7, 0, 2)
  8354. ImageLabel268.BackgroundColor3 = Color3.new(1, 1, 1)
  8355. ImageLabel268.BackgroundTransparency = 1
  8356. ImageLabel268.ZIndex = 10
  8357. TextLabel269.Name = "Mult"
  8358. TextLabel269.Parent = Frame267
  8359. TextLabel269.Transparency = 1
  8360. TextLabel269.Size = UDim2.new(0, 20, 1, 0)
  8361. TextLabel269.Text = "X"
  8362. TextLabel269.Position = UDim2.new(0.5, -10, 0, 0)
  8363. TextLabel269.BackgroundColor3 = Color3.new(1, 1, 1)
  8364. TextLabel269.BackgroundTransparency = 1
  8365. TextLabel269.BorderSizePixel = 0
  8366. TextLabel269.ZIndex = 10
  8367. TextLabel269.Font = Enum.Font.ArialBold
  8368. TextLabel269.FontSize = Enum.FontSize.Size18
  8369. TextLabel269.TextColor3 = Color3.new(1, 1, 1)
  8370. TextLabel270.Name = "Num"
  8371. TextLabel270.Parent = Frame267
  8372. TextLabel270.Transparency = 1
  8373. TextLabel270.Size = UDim2.new(0, 0, 1, 0)
  8374. TextLabel270.Text = "0"
  8375. TextLabel270.Position = UDim2.new(1, -7, 0, 0)
  8376. TextLabel270.BackgroundColor3 = Color3.new(1, 1, 1)
  8377. TextLabel270.BackgroundTransparency = 1
  8378. TextLabel270.ZIndex = 10
  8379. TextLabel270.Font = Enum.Font.ArialBold
  8380. TextLabel270.FontSize = Enum.FontSize.Size18
  8381. TextLabel270.TextColor3 = Color3.new(1, 1, 1)
  8382. TextLabel270.TextXAlignment = Enum.TextXAlignment.Right
  8383. Frame271.Name = "Tacticals"
  8384. Frame271.Parent = Frame266
  8385. Frame271.Transparency = 0.80000001192093
  8386. Frame271.Size = UDim2.new(0.5, -2, 1, 0)
  8387. Frame271.Position = UDim2.new(0.5, 2, 0, 0)
  8388. Frame271.BackgroundColor3 = Color3.new(1, 1, 1)
  8389. Frame271.BackgroundTransparency = 0.80000001192093
  8390. Frame271.BorderSizePixel = 0
  8391. Frame271.ZIndex = 10
  8392. ImageLabel272.Name = "Icon"
  8393. ImageLabel272.Parent = Frame271
  8394. ImageLabel272.Transparency = 1
  8395. ImageLabel272.Size = UDim2.new(0, 21, 0, 21)
  8396. ImageLabel272.Position = UDim2.new(0, 7, 0, 2)
  8397. ImageLabel272.BackgroundColor3 = Color3.new(1, 1, 1)
  8398. ImageLabel272.BackgroundTransparency = 1
  8399. ImageLabel272.ZIndex = 10
  8400. TextLabel273.Name = "Num"
  8401. TextLabel273.Parent = Frame271
  8402. TextLabel273.Transparency = 1
  8403. TextLabel273.Size = UDim2.new(0, 0, 1, 0)
  8404. TextLabel273.Text = "0"
  8405. TextLabel273.Position = UDim2.new(1, -7, 0, 0)
  8406. TextLabel273.BackgroundColor3 = Color3.new(1, 1, 1)
  8407. TextLabel273.BackgroundTransparency = 1
  8408. TextLabel273.ZIndex = 10
  8409. TextLabel273.Font = Enum.Font.ArialBold
  8410. TextLabel273.FontSize = Enum.FontSize.Size18
  8411. TextLabel273.TextColor3 = Color3.new(1, 1, 1)
  8412. TextLabel273.TextXAlignment = Enum.TextXAlignment.Right
  8413. TextLabel274.Name = "Mult"
  8414. TextLabel274.Parent = Frame271
  8415. TextLabel274.Transparency = 1
  8416. TextLabel274.Size = UDim2.new(0, 20, 1, 0)
  8417. TextLabel274.Text = "X"
  8418. TextLabel274.Position = UDim2.new(0.5, -10, 0, 0)
  8419. TextLabel274.BackgroundColor3 = Color3.new(1, 1, 1)
  8420. TextLabel274.BackgroundTransparency = 1
  8421. TextLabel274.BorderSizePixel = 0
  8422. TextLabel274.ZIndex = 10
  8423. TextLabel274.Font = Enum.Font.ArialBold
  8424. TextLabel274.FontSize = Enum.FontSize.Size18
  8425. TextLabel274.TextColor3 = Color3.new(1, 1, 1)
  8426. Frame275.Name = "gunName"
  8427. Frame275.Parent = Frame225
  8428. Frame275.Transparency = 1
  8429. Frame275.Size = UDim2.new(1, 0, 0, 36)
  8430. Frame275.BackgroundColor3 = Color3.new(0.972549, 0.972549, 0.972549)
  8431. Frame275.BackgroundTransparency = 1
  8432. Frame275.ZIndex = 10
  8433. TextLabel276.Name = "Line"
  8434. TextLabel276.Parent = Frame275
  8435. TextLabel276.Size = UDim2.new(0, 2, 1, 0)
  8436. TextLabel276.Text = ""
  8437. TextLabel276.BackgroundColor3 = Color3.new(1, 1, 1)
  8438. TextLabel276.BorderSizePixel = 0
  8439. TextLabel276.ZIndex = 10
  8440. TextLabel276.Font = Enum.Font.SourceSans
  8441. TextLabel276.FontSize = Enum.FontSize.Size14
  8442. TextLabel277.Name = "Line"
  8443. TextLabel277.Parent = Frame275
  8444. TextLabel277.Size = UDim2.new(1, 0, 0, 2)
  8445. TextLabel277.Text = ""
  8446. TextLabel277.Position = UDim2.new(0, 0, 1, 0)
  8447. TextLabel277.BackgroundColor3 = Color3.new(1, 1, 1)
  8448. TextLabel277.BorderSizePixel = 0
  8449. TextLabel277.ZIndex = 10
  8450. TextLabel277.Font = Enum.Font.SourceSans
  8451. TextLabel277.FontSize = Enum.FontSize.Size14
  8452. TextLabel278.Name = "Title"
  8453. TextLabel278.Parent = Frame275
  8454. TextLabel278.Transparency = 1
  8455. TextLabel278.Size = UDim2.new(1, -7, 1, 0)
  8456. TextLabel278.Text = "Gun"
  8457. TextLabel278.Position = UDim2.new(0, 7, 0, 0)
  8458. TextLabel278.BackgroundColor3 = Color3.new(1, 1, 1)
  8459. TextLabel278.BackgroundTransparency = 1
  8460. TextLabel278.ZIndex = 10
  8461. TextLabel278.Font = Enum.Font.SourceSansBold
  8462. TextLabel278.FontSize = Enum.FontSize.Size36
  8463. TextLabel278.TextColor3 = Color3.new(1, 1, 1)
  8464. TextLabel278.TextStrokeTransparency = 0
  8465. TextLabel278.TextXAlignment = Enum.TextXAlignment.Left
  8466. Frame279.Name = "fireSelect"
  8467. Frame279.Parent = ScreenGui211
  8468. Frame279.Transparency = 1
  8469. Frame279.Position = UDim2.new(0.5, 0, 0.5, -18)
  8470. Frame279.Visible = false
  8471. Frame279.BackgroundColor3 = Color3.new(1, 1, 1)
  8472. Frame279.BackgroundTransparency = 1
  8473. Frame280.Name = "Modes"
  8474. Frame280.Parent = Frame279
  8475. Frame280.Transparency = 1
  8476. Frame280.BackgroundColor3 = Color3.new(1, 1, 1)
  8477. Frame280.BackgroundTransparency = 1
  8478. ImageLabel281.Name = "Circle"
  8479. ImageLabel281.Parent = Frame279
  8480. ImageLabel281.Transparency = 1
  8481. ImageLabel281.Size = UDim2.new(0, 120, 0, 120)
  8482. ImageLabel281.Position = UDim2.new(0, -60, 0, -60)
  8483. ImageLabel281.BackgroundColor3 = Color3.new(1, 1, 1)
  8484. ImageLabel281.BackgroundTransparency = 1
  8485. ImageLabel281.Image = "http://www.roblox.com/asset/?id=55754953"
  8486. ImageLabel281.ImageTransparency = 0.5
  8487. ImageLabel282.Name = "Arrow"
  8488. ImageLabel282.Parent = Frame279
  8489. ImageLabel282.Transparency = 1
  8490. ImageLabel282.Size = UDim2.new(0, 40, 0, 20)
  8491. ImageLabel282.Position = UDim2.new(0, -20, 0, -140)
  8492. ImageLabel282.BackgroundColor3 = Color3.new(1, 1, 1)
  8493. ImageLabel282.BackgroundTransparency = 1
  8494. ImageLabel282.Image = "http://www.roblox.com/asset/?id=126877530"
  8495. Frame283.Name = "Scope"
  8496. Frame283.Parent = ScreenGui211
  8497. Frame283.Transparency = 1
  8498. Frame283.Size = UDim2.new(1, 0, 1, 36)
  8499. Frame283.Position = UDim2.new(0, 0, 0, -36)
  8500. Frame283.BackgroundColor3 = Color3.new(0, 0, 0)
  8501. Frame283.BackgroundTransparency = 1
  8502. TextLabel284.Name = "Steady"
  8503. TextLabel284.Parent = Frame283
  8504. TextLabel284.Transparency = 1
  8505. TextLabel284.Size = UDim2.new(0, 120, 0, 20)
  8506. TextLabel284.Text = ""
  8507. TextLabel284.Position = UDim2.new(0.5, -60, 0.5, 50)
  8508. TextLabel284.Visible = false
  8509. TextLabel284.BackgroundColor3 = Color3.new(1, 1, 1)
  8510. TextLabel284.BackgroundTransparency = 1
  8511. TextLabel284.ZIndex = 9
  8512. TextLabel284.Font = Enum.Font.ArialBold
  8513. TextLabel284.FontSize = Enum.FontSize.Size14
  8514. TextLabel284.TextColor3 = Color3.new(1, 1, 0)
  8515. TextLabel284.TextStrokeTransparency = 0
  8516. Frame285.Name = "Main"
  8517. Frame285.Parent = Frame283
  8518. Frame285.Transparency = 1
  8519. Frame285.Size = UDim2.new(1, 0, 1, 0)
  8520. Frame285.Visible = false
  8521. Frame285.BackgroundColor3 = Color3.new(1, 1, 1)
  8522. Frame285.BackgroundTransparency = 1
  8523. ImageLabel286.Name = "ScopeImg2"
  8524. ImageLabel286.Parent = Frame285
  8525. ImageLabel286.Transparency = 1
  8526. ImageLabel286.Size = UDim2.new(0, 20, 0, 20)
  8527. ImageLabel286.Position = UDim2.new(0.5, -10, 0, -10)
  8528. ImageLabel286.BackgroundColor3 = Color3.new(0, 0, 0)
  8529. ImageLabel286.BackgroundTransparency = 1
  8530. ImageLabel286.Image = "http://www.roblox.com/asset/?id=184922644"
  8531. ImageLabel287.Name = "ScopeImg1"
  8532. ImageLabel287.Parent = Frame285
  8533. ImageLabel287.Transparency = 1
  8534. ImageLabel287.Size = UDim2.new(0, 20, 0, 20)
  8535. ImageLabel287.Position = UDim2.new(0.5, -10, 0, -10)
  8536. ImageLabel287.BackgroundColor3 = Color3.new(0, 0, 0)
  8537. ImageLabel287.BackgroundTransparency = 1
  8538. ImageLabel287.Image = "http://www.roblox.com/asset/?id=72002022"
  8539. Frame288.Name = "F2"
  8540. Frame288.Parent = Frame285
  8541. Frame288.Size = UDim2.new(0, 0, 1, 20)
  8542. Frame288.Position = UDim2.new(0, -10, 0, -10)
  8543. Frame288.BackgroundColor3 = Color3.new(0, 0, 0)
  8544. Frame288.BorderColor3 = Color3.new(0, 0, 0)
  8545. Frame288.BorderSizePixel = 0
  8546. Frame289.Name = "F1"
  8547. Frame289.Parent = Frame285
  8548. Frame289.Size = UDim2.new(0, 0, 1, 20)
  8549. Frame289.Position = UDim2.new(0, -10, 0, -10)
  8550. Frame289.BackgroundColor3 = Color3.new(0, 0, 0)
  8551. Frame289.BorderColor3 = Color3.new(0, 0, 0)
  8552. Frame289.BorderSizePixel = 0
  8553. LocalScript290.Name = "Update"
  8554. LocalScript290.Parent = Frame285
  8555. table.insert(cors,sandbox(LocalScript290,function()
  8556. local GUI = script.Parent
  8557.  
  8558. function updateScopeDimension()
  8559. GUI.ScopeImg1.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
  8560. GUI.ScopeImg1.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
  8561. GUI.ScopeImg2.Position = UDim2.new(0.5, -10 - (GUI.AbsoluteSize.y / 2), 0, -10)
  8562. GUI.ScopeImg2.Size = UDim2.new(0, 20 + GUI.AbsoluteSize.y, 0, 20 + GUI.AbsoluteSize.y)
  8563. GUI.F1.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
  8564. GUI.F2.Size = UDim2.new(0, 20 + ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 1, 20)
  8565. GUI.F2.Position = UDim2.new(1, -10 - ((GUI.AbsoluteSize.x - GUI.AbsoluteSize.y) / 2), 0, -10)
  8566. end
  8567.  
  8568. wait()
  8569.  
  8570. GUI.Changed:connect(updateScopeDimension)
  8571.  
  8572. updateScopeDimension()
  8573. end))
  8574. TextLabel291.Name = "Sens"
  8575. TextLabel291.Parent = ScreenGui211
  8576. TextLabel291.Transparency = 1
  8577. TextLabel291.Size = UDim2.new(0, 100, 0, 20)
  8578. TextLabel291.Text = "S: 0.3"
  8579. TextLabel291.Position = UDim2.new(0.5, -50, 0.5, 50)
  8580. TextLabel291.Visible = false
  8581. TextLabel291.BackgroundColor3 = Color3.new(1, 1, 1)
  8582. TextLabel291.BackgroundTransparency = 1
  8583. TextLabel291.ZIndex = 10
  8584. TextLabel291.Font = Enum.Font.SourceSansBold
  8585. TextLabel291.FontSize = Enum.FontSize.Size28
  8586. TextLabel291.TextColor3 = Color3.new(1, 1, 1)
  8587. TextLabel291.TextStrokeTransparency = 0
  8588. Part292.Name = "ham"
  8589. Part292.Parent = Tool0
  8590. Part292.BrickColor = BrickColor.new("Mid gray")
  8591. Part292.Rotation = Vector3.new(179.98999, 89.9799957, -179.929993)
  8592. Part292.FormFactor = Enum.FormFactor.Plate
  8593. Part292.Size = Vector3.new(1, 0.800000012, 1)
  8594. 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)
  8595. Part292.BottomSurface = Enum.SurfaceType.Smooth
  8596. Part292.TopSurface = Enum.SurfaceType.Smooth
  8597. Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
  8598. Part292.Position = Vector3.new(1435.26599, 48.9021072, -1310.87195)
  8599. Part292.Orientation = Vector3.new(0, 90, 0.049999997)
  8600. Part292.Color = Color3.new(0.803922, 0.803922, 0.803922)
  8601. SpecialMesh293.Parent = Part292
  8602. SpecialMesh293.MeshId = "http://www.roblox.com/asset/?id=16646125"
  8603. SpecialMesh293.TextureId = "http://www.roblox.com/asset/?id=16432575"
  8604. SpecialMesh293.MeshType = Enum.MeshType.FileMesh
  8605. Weld294.Parent = Part292
  8606. 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)
  8607. 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)
  8608. Weld295.Parent = Part292
  8609. 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)
  8610. 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)
  8611. Weld296.Parent = Part292
  8612. 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)
  8613. 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)
  8614. Weld297.Parent = Part292
  8615. 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)
  8616. 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)
  8617. Weld298.Parent = Part292
  8618. 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)
  8619. 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)
  8620. Weld299.Parent = Part292
  8621. 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)
  8622. 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)
  8623. Weld300.Parent = Part292
  8624. 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)
  8625. 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)
  8626. Weld301.Parent = Part292
  8627. 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)
  8628. 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)
  8629. Weld302.Parent = Part292
  8630. 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)
  8631. 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)
  8632. Weld303.Parent = Part292
  8633. 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)
  8634. 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)
  8635. Weld304.Parent = Part292
  8636. 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)
  8637. 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)
  8638. Weld305.Parent = Part292
  8639. 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)
  8640. 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)
  8641. Weld306.Parent = Part292
  8642. 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)
  8643. 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)
  8644. Weld307.Parent = Part292
  8645. 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)
  8646. 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)
  8647. Weld308.Parent = Part292
  8648. 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)
  8649. 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)
  8650. Weld309.Parent = Part292
  8651. 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)
  8652. 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)
  8653. Weld310.Parent = Part292
  8654. 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)
  8655. 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)
  8656. Weld311.Parent = Part292
  8657. 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)
  8658. 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)
  8659. Weld312.Parent = Part292
  8660. 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)
  8661. 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)
  8662. Weld313.Parent = Part292
  8663. 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)
  8664. 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)
  8665. Weld314.Parent = Part292
  8666. 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)
  8667. 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)
  8668. Weld315.Parent = Part292
  8669. 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)
  8670. 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)
  8671. Weld316.Parent = Part292
  8672. 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)
  8673. 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)
  8674. Weld317.Parent = Part292
  8675. 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)
  8676. 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)
  8677. Weld318.Parent = Part292
  8678. 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)
  8679. 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)
  8680. Weld319.Parent = Part292
  8681. 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)
  8682. 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)
  8683. Weld320.Parent = Part292
  8684. 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)
  8685. 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)
  8686. Weld321.Parent = Part292
  8687. 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)
  8688. 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)
  8689. Weld322.Parent = Part292
  8690. 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)
  8691. 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)
  8692. Weld323.Parent = Part292
  8693. 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)
  8694. 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)
  8695. Weld324.Parent = Part292
  8696. 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)
  8697. 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)
  8698. Weld325.Parent = Part292
  8699. 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)
  8700. 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)
  8701. Weld326.Parent = Part292
  8702. 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)
  8703. 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)
  8704. Weld327.Parent = Part292
  8705. 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)
  8706. 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)
  8707. Weld328.Parent = Part292
  8708. 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)
  8709. 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)
  8710. Weld329.Parent = Part292
  8711. 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)
  8712. 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)
  8713. Weld330.Parent = Part292
  8714. 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)
  8715. 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)
  8716. Weld331.Parent = Part292
  8717. 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)
  8718. 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)
  8719. Weld332.Parent = Part292
  8720. 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)
  8721. 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)
  8722. Weld333.Parent = Part292
  8723. 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)
  8724. 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)
  8725. Weld334.Parent = Part292
  8726. 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)
  8727. 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)
  8728. Weld335.Parent = Part292
  8729. 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)
  8730. 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)
  8731. Weld336.Parent = Part292
  8732. 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)
  8733. 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)
  8734. Weld337.Parent = Part292
  8735. 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)
  8736. 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)
  8737. Weld338.Parent = Part292
  8738. 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)
  8739. 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)
  8740. Weld339.Parent = Part292
  8741. 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)
  8742. 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)
  8743. Weld340.Parent = Part292
  8744. 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)
  8745. 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)
  8746. Weld341.Parent = Part292
  8747. 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)
  8748. 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)
  8749. Weld342.Parent = Part292
  8750. 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)
  8751. 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)
  8752. Weld343.Parent = Part292
  8753. 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)
  8754. 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)
  8755. Weld344.Parent = Part292
  8756. 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)
  8757. 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)
  8758. Weld345.Parent = Part292
  8759. 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)
  8760. 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)
  8761. Weld346.Parent = Part292
  8762. 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)
  8763. 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)
  8764. Weld347.Parent = Part292
  8765. 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)
  8766. 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)
  8767. Weld348.Parent = Part292
  8768. 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)
  8769. 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)
  8770. Weld349.Parent = Part292
  8771. 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)
  8772. 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)
  8773. Weld350.Parent = Part292
  8774. 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)
  8775. 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)
  8776. Weld351.Parent = Part292
  8777. 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)
  8778. 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)
  8779. Weld352.Parent = Part292
  8780. 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)
  8781. 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)
  8782. Weld353.Parent = Part292
  8783. 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)
  8784. 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)
  8785. Weld354.Parent = Part292
  8786. 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)
  8787. 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)
  8788. Weld355.Parent = Part292
  8789. 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)
  8790. 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)
  8791. Weld356.Parent = Part292
  8792. 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)
  8793. 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)
  8794. Weld357.Parent = Part292
  8795. 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)
  8796. 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)
  8797. Weld358.Parent = Part292
  8798. 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)
  8799. 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)
  8800. Weld358.Part0 = Part292
  8801. Weld358.Part1 = Part292
  8802. Weld359.Parent = Part292
  8803. 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)
  8804. 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)
  8805. Weld359.Part0 = Part292
  8806. Weld359.Part1 = Part292
  8807. Weld360.Parent = Part292
  8808. 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)
  8809. 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)
  8810. Weld360.Part0 = Part292
  8811. Weld360.Part1 = Part292
  8812. Weld361.Parent = Part292
  8813. 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)
  8814. 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)
  8815. Weld361.Part0 = Part292
  8816. Weld361.Part1 = Part292
  8817. Weld362.Parent = Part292
  8818. 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)
  8819. 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)
  8820. Weld362.Part0 = Part292
  8821. Weld362.Part1 = Part292
  8822. Weld363.Parent = Part292
  8823. 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)
  8824. 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)
  8825. Weld363.Part0 = Part292
  8826. Weld363.Part1 = Part292
  8827. Weld364.Parent = Part292
  8828. 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)
  8829. 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)
  8830. Weld364.Part0 = Part292
  8831. Weld364.Part1 = Part292
  8832. Weld365.Parent = Part292
  8833. 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)
  8834. 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)
  8835. Weld365.Part0 = Part292
  8836. Weld365.Part1 = Part292
  8837. Weld366.Parent = Part292
  8838. 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)
  8839. 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)
  8840. Weld366.Part0 = Part292
  8841. Weld366.Part1 = Part292
  8842. Part367.Name = "BoltBack"
  8843. Part367.Parent = Tool0
  8844. Part367.BrickColor = BrickColor.new("Really black")
  8845. Part367.Transparency = 1
  8846. Part367.Rotation = Vector3.new(179.979996, 0, -180)
  8847. Part367.Anchored = true
  8848. Part367.CanCollide = false
  8849. Part367.FormFactor = Enum.FormFactor.Custom
  8850. Part367.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  8851. Part367.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
  8852. Part367.BottomSurface = Enum.SurfaceType.Smooth
  8853. Part367.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  8854. Part367.TopSurface = Enum.SurfaceType.Smooth
  8855. Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8856. Part367.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
  8857. Part367.Orientation = Vector3.new(0.0199999996, 180, 0)
  8858. Part367.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8859. Sound368.Name = "FireSound"
  8860. Sound368.Parent = Part367
  8861. Sound368.SoundId = "rbxassetid://135039581"
  8862. Sound368.Volume = 1
  8863. Sound369.Name = "ReloadSound"
  8864. Sound369.Parent = Part367
  8865. Sound369.SoundId = "rbxassetid://255061162"
  8866. Sound369.Volume = 1
  8867. Part370.Name = "Bolt"
  8868. Part370.Parent = Tool0
  8869. Part370.BrickColor = BrickColor.new("Really black")
  8870. Part370.Transparency = 1
  8871. Part370.Rotation = Vector3.new(179.979996, 0, -180)
  8872. Part370.Anchored = true
  8873. Part370.CanCollide = false
  8874. Part370.FormFactor = Enum.FormFactor.Custom
  8875. Part370.Size = Vector3.new(0.200000003, 0.200000003, 0.200000003)
  8876. Part370.CFrame = CFrame.new(1436.87451, 48.6733093, -1310.87573, -1, 0, 0, 0, 1, -0.000345999986, 0, -0.000345999986, -1)
  8877. Part370.BottomSurface = Enum.SurfaceType.Smooth
  8878. Part370.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
  8879. Part370.TopSurface = Enum.SurfaceType.Smooth
  8880. Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8881. Part370.Position = Vector3.new(1436.87451, 48.6733093, -1310.87573)
  8882. Part370.Orientation = Vector3.new(0.0199999996, 180, 0)
  8883. Part370.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
  8884. Sound371.Name = "FireSound"
  8885. Sound371.Parent = Part370
  8886. Sound371.SoundId = "rbxassetid://135039581"
  8887. Sound371.Volume = 1
  8888. Sound372.Name = "ReloadSound"
  8889. Sound372.Parent = Part370
  8890. Sound372.SoundId = "rbxassetid://255061162"
  8891. Sound372.Volume = 1
  8892. Model373.Name = "Nigger"
  8893. Model373.Parent = Tool0
  8894. Part374.Name = "Right Leg"
  8895. Part374.Parent = Model373
  8896. Part374.BrickColor = BrickColor.new("Reddish brown")
  8897. Part374.Rotation = Vector3.new(0, -90, 0)
  8898. Part374.Anchored = true
  8899. Part374.CanCollide = false
  8900. Part374.FormFactor = Enum.FormFactor.Symmetric
  8901. Part374.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8902. Part374.CFrame = CFrame.new(1434.75476, 44.2668762, -1310.34082, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8903. Part374.BottomSurface = Enum.SurfaceType.Smooth
  8904. Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8905. Part374.Position = Vector3.new(1434.75476, 44.2668762, -1310.34082)
  8906. Part374.Orientation = Vector3.new(0, -90, 0)
  8907. Part374.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8908. Decal375.Parent = Part374
  8909. Decal375.Texture = "http://www.roblox.com/asset/?id=513989292"
  8910. Part376.Name = "Torso"
  8911. Part376.Parent = Model373
  8912. Part376.BrickColor = BrickColor.new("Reddish brown")
  8913. Part376.Rotation = Vector3.new(0, -90, 0)
  8914. Part376.Anchored = true
  8915. Part376.FormFactor = Enum.FormFactor.Symmetric
  8916. Part376.Size = Vector3.new(0.53363061, 0.53363061, 0.266815305)
  8917. Part376.CFrame = CFrame.new(1434.75476, 44.8004494, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8918. Part376.LeftSurface = Enum.SurfaceType.Weld
  8919. Part376.RightSurface = Enum.SurfaceType.Weld
  8920. Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8921. Part376.Position = Vector3.new(1434.75476, 44.8004494, -1310.47424)
  8922. Part376.Orientation = Vector3.new(0, -90, 0)
  8923. Part376.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8924. Decal377.Name = "roblox"
  8925. Decal377.Parent = Part376
  8926. Motor378.Name = "Right Shoulder"
  8927. Motor378.Parent = Part376
  8928. Motor378.C0 = CFrame.new(0.266815305, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8929. Motor378.C1 = CFrame.new(-0.133407652, 0.133407652, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8930. Motor378.Part0 = Part376
  8931. Motor378.Part1 = Part383
  8932. Motor378.MaxVelocity = 0.5
  8933. Motor379.Name = "Left Shoulder"
  8934. Motor379.Parent = Part376
  8935. Motor379.C0 = CFrame.new(-0.266815305, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8936. Motor379.C1 = CFrame.new(0.133407652, 0.133407652, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8937. Motor379.Part0 = Part376
  8938. Motor379.Part1 = Part385
  8939. Motor379.MaxVelocity = 0.5
  8940. Motor380.Name = "Right Hip"
  8941. Motor380.Parent = Part376
  8942. Motor380.C0 = CFrame.new(0.266815305, -0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8943. Motor380.C1 = CFrame.new(0.133407652, 0.266815305, 0, 0, 0, 1, 0, 1, -0, -1, 0, 0)
  8944. Motor380.Part0 = Part376
  8945. Motor380.Part1 = Part374
  8946. Motor380.MaxVelocity = 0.10000000149012
  8947. Motor381.Name = "Left Hip"
  8948. Motor381.Parent = Part376
  8949. Motor381.C0 = CFrame.new(-0.266815305, -0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8950. Motor381.C1 = CFrame.new(-0.133407652, 0.266815305, 0, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8951. Motor381.Part0 = Part376
  8952. Motor381.Part1 = Part384
  8953. Motor381.MaxVelocity = 0.10000000149012
  8954. Motor382.Name = "Neck"
  8955. Motor382.Parent = Part376
  8956. Motor382.C0 = CFrame.new(0, 0.266815305, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  8957. Motor382.C1 = CFrame.new(0, -0.133407652, 0, -1, 0, 0, 0, 0, 1, 0, 1, -0)
  8958. Motor382.Part0 = Part376
  8959. Motor382.Part1 = Part386
  8960. Motor382.MaxVelocity = 0.10000000149012
  8961. Part383.Name = "Right Arm"
  8962. Part383.Parent = Model373
  8963. Part383.BrickColor = BrickColor.new("Reddish brown")
  8964. Part383.Rotation = Vector3.new(0, -90, 0)
  8965. Part383.Anchored = true
  8966. Part383.CanCollide = false
  8967. Part383.FormFactor = Enum.FormFactor.Symmetric
  8968. Part383.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8969. Part383.CFrame = CFrame.new(1434.75476, 44.8004532, -1310.07397, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8970. Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8971. Part383.Position = Vector3.new(1434.75476, 44.8004532, -1310.07397)
  8972. Part383.Orientation = Vector3.new(0, -90, 0)
  8973. Part383.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8974. Part384.Name = "Left Leg"
  8975. Part384.Parent = Model373
  8976. Part384.BrickColor = BrickColor.new("Reddish brown")
  8977. Part384.Rotation = Vector3.new(0, -90, 0)
  8978. Part384.Anchored = true
  8979. Part384.CanCollide = false
  8980. Part384.FormFactor = Enum.FormFactor.Symmetric
  8981. Part384.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8982. Part384.CFrame = CFrame.new(1434.75476, 44.2668228, -1310.60767, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8983. Part384.BottomSurface = Enum.SurfaceType.Smooth
  8984. Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8985. Part384.Position = Vector3.new(1434.75476, 44.2668228, -1310.60767)
  8986. Part384.Orientation = Vector3.new(0, -90, 0)
  8987. Part384.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8988. Part385.Name = "Left Arm"
  8989. Part385.Parent = Model373
  8990. Part385.BrickColor = BrickColor.new("Reddish brown")
  8991. Part385.Rotation = Vector3.new(0, -90, 0)
  8992. Part385.Anchored = true
  8993. Part385.CanCollide = false
  8994. Part385.FormFactor = Enum.FormFactor.Symmetric
  8995. Part385.Size = Vector3.new(0.266815305, 0.53363061, 0.266815305)
  8996. Part385.CFrame = CFrame.new(1434.75476, 44.8004341, -1310.87451, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  8997. Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
  8998. Part385.Position = Vector3.new(1434.75476, 44.8004341, -1310.87451)
  8999. Part385.Orientation = Vector3.new(0, -90, 0)
  9000. Part385.Color = Color3.new(0.411765, 0.25098, 0.156863)
  9001. Part386.Name = "Head"
  9002. Part386.Parent = Model373
  9003. Part386.BrickColor = BrickColor.new("Reddish brown")
  9004. Part386.Rotation = Vector3.new(0, -90, 0)
  9005. Part386.Anchored = true
  9006. Part386.FormFactor = Enum.FormFactor.Symmetric
  9007. Part386.Size = Vector3.new(0.53363061, 0.266815305, 0.266815305)
  9008. Part386.CFrame = CFrame.new(1434.75476, 45.2006721, -1310.47424, 0, 0, -1, 0, 1, 0, 1, 0, 0)
  9009. Part386.TopSurface = Enum.SurfaceType.Smooth
  9010. Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
  9011. Part386.Position = Vector3.new(1434.75476, 45.2006721, -1310.47424)
  9012. Part386.Orientation = Vector3.new(0, -90, 0)
  9013. Part386.Color = Color3.new(0.411765, 0.25098, 0.156863)
  9014. SpecialMesh387.Parent = Part386
  9015. SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
  9016. SpecialMesh387.Scale = Vector3.new(1.25, 1.25, 1.25)
  9017. Decal388.Parent = Part386
  9018. Decal388.Texture = "http://www.roblox.com/asset/?id=42030236"
  9019. Decal389.Parent = Part386
  9020. Decal389.Texture = "http://www.roblox.com/asset/?id=513989292"
  9021. Humanoid390.Parent = Model373
  9022. Humanoid390.RightLeg = Part374
  9023. Humanoid390.LeftLeg = Part384
  9024. Humanoid390.Torso = Part376
  9025. Humanoid390.MaxHealth = 0
  9026. Script391.Name = "Humaniod"
  9027. Script391.Parent = Model373
  9028. table.insert(cors,sandbox(Script391,function()
  9029. local Model = script.Parent
  9030. local Backup = Model:clone()
  9031.  
  9032. function Respawn()
  9033. Model:breakJoints()
  9034.  
  9035. wait(5)
  9036.  
  9037. script.Parent = Model.Parent
  9038.  
  9039. Model:remove()
  9040. Model = Backup:clone()
  9041. Model.Parent = script.Parent
  9042. Model:makeJoints()
  9043.  
  9044. script:remove()
  9045. end
  9046.  
  9047. Model.Humanoid.Died:connect(Respawn)
  9048.  
  9049. function waitForChild(parent, childName)
  9050. local child = parent:findFirstChild(childName)
  9051.  
  9052. if child then
  9053. return child
  9054. end
  9055.  
  9056. while true do
  9057. print(childName)
  9058.  
  9059. child = parent.ChildAdded:wait()
  9060.  
  9061. if child.Name==childName then
  9062. return child
  9063. end
  9064. end
  9065. end
  9066.  
  9067. -- declarations
  9068.  
  9069. local Figure = script.Parent
  9070. local Head = waitForChild(Figure, "Head")
  9071. local Humanoid = waitForChild(Figure, "Humanoid")
  9072.  
  9073. Figure.PrimaryPart = Head
  9074.  
  9075. -- ANIMATION
  9076.  
  9077. function Joint(Name, Part0, Part1, C0, C1, MaxVelocity)
  9078. local Motor = Instance.new("Motor")
  9079.  
  9080. Motor.C0 = C0
  9081. Motor.C1 = C1
  9082. Motor.MaxVelocity = MaxVelocity
  9083. Motor.Name = Name
  9084. Motor.Parent = Part0
  9085. Motor.Part0 = Part0
  9086. Motor.Part1 = Part1
  9087. end
  9088.  
  9089. -- declarations
  9090.  
  9091. local Torso = waitForChild(Figure, "Torso")
  9092. local LeftArm = waitForChild(Figure, "Left Arm")
  9093. local LeftLeg = waitForChild(Figure, "Left Leg")
  9094. local RightArm = waitForChild(Figure, "Right Arm")
  9095. local RightLeg = waitForChild(Figure, "Right Leg")
  9096.  
  9097. local Joints = {
  9098. {"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},
  9099. {"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},
  9100. {"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},
  9101. {"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},
  9102. {"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}}
  9103.  
  9104. Torso:breakJoints()
  9105.  
  9106. for _, v in pairs(Joints) do
  9107. Joint(unpack(v))
  9108. end
  9109.  
  9110. local RightShoulder = waitForChild(Torso, "Right Shoulder")
  9111. local LeftShoulder = waitForChild(Torso, "Left Shoulder")
  9112. local RightHip = waitForChild(Torso, "Right Hip")
  9113. local LeftHip = waitForChild(Torso, "Left Hip")
  9114. local Neck = waitForChild(Torso, "Neck")
  9115. local Humanoid = waitForChild(Figure, "Humanoid")
  9116. local pose = "Standing"
  9117.  
  9118. local toolAnim = "None"
  9119. local toolAnimTime = 0
  9120.  
  9121. -- functions
  9122.  
  9123. function onRunning(speed)
  9124. if speed>0 then
  9125. pose = "Running"
  9126. else
  9127. pose = "Standing"
  9128. end
  9129. end
  9130.  
  9131. function onDied()
  9132. pose = "Dead"
  9133. end
  9134.  
  9135. function onJumping()
  9136. pose = "Jumping"
  9137. end
  9138.  
  9139. function onClimbing()
  9140. pose = "Climbing"
  9141. end
  9142.  
  9143. function onGettingUp()
  9144. pose = "GettingUp"
  9145. end
  9146.  
  9147. function onFreeFall()
  9148. pose = "FreeFall"
  9149. end
  9150.  
  9151. function onFallingDown()
  9152. pose = "FallingDown"
  9153. end
  9154.  
  9155. function onSeated()
  9156. pose = "Seated"
  9157. end
  9158.  
  9159. function onPlatformStanding()
  9160. pose = "PlatformStanding"
  9161. end
  9162.  
  9163. function moveJump()
  9164. RightShoulder.MaxVelocity = 0.5
  9165. LeftShoulder.MaxVelocity = 0.5
  9166. RightShoulder.DesiredAngle = 3.14
  9167. LeftShoulder.DesiredAngle = -3.14
  9168. RightHip.DesiredAngle = 0
  9169. LeftHip.DesiredAngle = 0
  9170. end
  9171.  
  9172.  
  9173. -- same as jump for now
  9174.  
  9175. function moveFreeFall()
  9176. RightShoulder.MaxVelocity = 0.5
  9177. LeftShoulder.MaxVelocity = 0.5
  9178. RightShoulder.DesiredAngle = 3.14
  9179. LeftShoulder.DesiredAngle = -3.14
  9180. RightHip.DesiredAngle = 0
  9181. LeftHip.DesiredAngle = 0
  9182. end
  9183.  
  9184. function moveSit()
  9185. RightShoulder.MaxVelocity = 0.15
  9186. LeftShoulder.MaxVelocity = 0.15
  9187. RightShoulder.DesiredAngle = 3.14 /2
  9188. LeftShoulder.DesiredAngle = -3.14 /2
  9189. RightHip.DesiredAngle = 3.14 /2
  9190. LeftHip.DesiredAngle = -3.14 /2
  9191. end
  9192.  
  9193. function getTool()
  9194. for _, kid in ipairs(Figure:GetChildren()) do
  9195. if kid.className == "Tool" then return kid end
  9196. end
  9197. return nil
  9198. end
  9199.  
  9200. function getToolAnim(tool)
  9201. for _, c in ipairs(tool:GetChildren()) do
  9202. if c.Name == "toolanim" and c.className == "StringValue" then
  9203. return c
  9204. end
  9205. end
  9206. return nil
  9207. end
  9208.  
  9209. function animateTool()
  9210.  
  9211. if (toolAnim == "None") then
  9212. RightShoulder.DesiredAngle = 1.57
  9213. return
  9214. end
  9215.  
  9216. if (toolAnim == "Slash") then
  9217. RightShoulder.MaxVelocity = 0.5
  9218. RightShoulder.DesiredAngle = 0
  9219. return
  9220. end
  9221.  
  9222. if (toolAnim == "Lunge") then
  9223. RightShoulder.MaxVelocity = 0.5
  9224. LeftShoulder.MaxVelocity = 0.5
  9225. RightHip.MaxVelocity = 0.5
  9226. LeftHip.MaxVelocity = 0.5
  9227. RightShoulder.DesiredAngle = 1.57
  9228. LeftShoulder.DesiredAngle = 1.0
  9229. RightHip.DesiredAngle = 1.57
  9230. LeftHip.DesiredAngle = 1.0
  9231. return
  9232. end
  9233. end
  9234.  
  9235. function move(time)
  9236. local amplitude
  9237. local frequency
  9238.  
  9239. if (pose == "Jumping") then
  9240. moveJump()
  9241. return
  9242. end
  9243.  
  9244. if (pose == "FreeFall") then
  9245. moveFreeFall()
  9246. return
  9247. end
  9248.  
  9249. if (pose == "Seated") then
  9250. moveSit()
  9251. return
  9252. end
  9253.  
  9254. local climbFudge = 0
  9255.  
  9256. if (pose == "Running") then
  9257. RightShoulder.MaxVelocity = 0.15
  9258. LeftShoulder.MaxVelocity = 0.15
  9259. amplitude = 1
  9260. frequency = 9
  9261. elseif (pose == "Climbing") then
  9262. RightShoulder.MaxVelocity = 0.5
  9263. LeftShoulder.MaxVelocity = 0.5
  9264. amplitude = 1
  9265. frequency = 9
  9266. climbFudge = 3.14
  9267. else
  9268. amplitude = 0.1
  9269. frequency = 1
  9270. end
  9271.  
  9272. desiredAngle = amplitude * math.sin(time*frequency)
  9273.  
  9274. RightShoulder.DesiredAngle = desiredAngle + climbFudge
  9275. LeftShoulder.DesiredAngle = desiredAngle - climbFudge
  9276. RightHip.DesiredAngle = -desiredAngle
  9277. LeftHip.DesiredAngle = -desiredAngle
  9278.  
  9279.  
  9280. local tool = getTool()
  9281.  
  9282. if tool then
  9283.  
  9284. animStringValueObject = getToolAnim(tool)
  9285.  
  9286. if animStringValueObject then
  9287. toolAnim = animStringValueObject.Value
  9288. -- message recieved, delete StringValue
  9289. animStringValueObject.Parent = nil
  9290. toolAnimTime = time + .3
  9291. end
  9292.  
  9293. if time > toolAnimTime then
  9294. toolAnimTime = 0
  9295. toolAnim = "None"
  9296. end
  9297.  
  9298. animateTool()
  9299.  
  9300.  
  9301. else
  9302. toolAnim = "None"
  9303. toolAnimTime = 0
  9304. end
  9305. end
  9306.  
  9307.  
  9308. -- connect events
  9309.  
  9310. Humanoid.Died:connect(onDied)
  9311. Humanoid.Running:connect(onRunning)
  9312. Humanoid.Jumping:connect(onJumping)
  9313. Humanoid.Climbing:connect(onClimbing)
  9314. Humanoid.GettingUp:connect(onGettingUp)
  9315. Humanoid.FreeFalling:connect(onFreeFall)
  9316. Humanoid.FallingDown:connect(onFallingDown)
  9317. Humanoid.Seated:connect(onSeated)
  9318. Humanoid.PlatformStanding:connect(onPlatformStanding)
  9319.  
  9320. -- util
  9321.  
  9322. function waitForChild(parent, childName)
  9323. local child = parent:findFirstChild(childName)
  9324. if child then return child end
  9325. while true do
  9326. child = parent.ChildAdded:wait()
  9327. if child.Name==childName then return child end
  9328. end
  9329. end
  9330.  
  9331. function newSound(id)
  9332. local sound = Instance.new("Sound")
  9333. sound.SoundId = id
  9334. sound.archivable = false
  9335. sound.Parent = script.Parent.Head
  9336. return sound
  9337. end
  9338.  
  9339. -- declarations
  9340.  
  9341. local sDied = newSound("rbxasset://sounds/uuhhh.wav")
  9342. local sFallingDown = newSound("rbxasset://sounds/splat.wav")
  9343. local sFreeFalling = newSound("rbxasset://sounds/swoosh.wav")
  9344. local sGettingUp = newSound("rbxasset://sounds/hit.wav")
  9345. local sJumping = newSound("rbxasset://sounds/button.wav")
  9346. local sRunning = newSound("rbxasset://sounds/bfsl-minifigfoots1.mp3")
  9347. sRunning.Looped = true
  9348.  
  9349. -- functions
  9350.  
  9351. function onSoundDied()
  9352. sDied:Play()
  9353. end
  9354.  
  9355. function onState(state, sound)
  9356. if state then
  9357. sound:Play()
  9358. else
  9359. sound:Pause()
  9360. end
  9361. end
  9362.  
  9363. function onSoundRunning(speed)
  9364. if speed>0 then
  9365. sRunning:Play()
  9366. else
  9367. sRunning:Pause()
  9368. end
  9369. end
  9370.  
  9371. -- connect up
  9372.  
  9373. Humanoid.Died:connect(onSoundDied)
  9374. Humanoid.Running:connect(onSoundRunning)
  9375. Humanoid.Jumping:connect(function(state) onState(state, sJumping) end)
  9376. Humanoid.GettingUp:connect(function(state) onState(state, sGettingUp) end)
  9377. Humanoid.FreeFalling:connect(function(state) onState(state, sFreeFalling) end)
  9378. Humanoid.FallingDown:connect(function(state) onState(state, sFallingDown) end)
  9379.  
  9380. local runService = game:service("RunService");
  9381.  
  9382. delay(0, function()
  9383. while Figure.Parent~=nil do
  9384. local _, time = wait(0.1)
  9385. move(time)
  9386. end
  9387. end)
  9388.  
  9389. -- regeneration
  9390. while true do
  9391. local s = wait(1)
  9392. local health = Humanoid.Health
  9393.  
  9394. if health > 0 and health < Humanoid.MaxHealth then
  9395. health = health + 0.01 * s * Humanoid.MaxHealth
  9396.  
  9397. if health * 1.05 < Humanoid.MaxHealth then
  9398. Humanoid.Health = health
  9399. else
  9400. Humanoid.Health = Humanoid.MaxHealth
  9401. end
  9402. end
  9403. end
  9404. end))
  9405. Shirt392.Name = "Shirt"
  9406. Shirt392.Parent = Model373
  9407. Shirt392.ShirtTemplate = "http://www.roblox.com/asset/?id=22746098"
  9408. Pants393.Parent = Model373
  9409. Pants393.PantsTemplate = "http://www.roblox.com/asset/?id=8173404"
  9410. Part394.Name = "hanger"
  9411. Part394.Parent = Model373
  9412. Part394.Material = Enum.Material.Fabric
  9413. Part394.BrickColor = BrickColor.new("Brick yellow")
  9414. Part394.Rotation = Vector3.new(0, 90, 0)
  9415. Part394.Anchored = true
  9416. Part394.Size = Vector3.new(0.0533630624, 3.41790414, 0.0827127546)
  9417. Part394.CFrame = CFrame.new(1434.76477, 47.0219231, -1310.42761, 0, 0, 1, 0, 1, 0, -1, 0, 0)
  9418. Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
  9419. Part394.Position = Vector3.new(1434.76477, 47.0219231, -1310.42761)
  9420. Part394.Orientation = Vector3.new(0, 90, 0)
  9421. Part394.Color = Color3.new(0.843137, 0.772549, 0.603922)
  9422. for i,v in pairs(mas:GetChildren()) do
  9423. v.Parent = game:GetService("Players").LocalPlayer.Backpack
  9424. pcall(function() v:MakeJoints() end)
  9425. end
  9426. mas:Destroy()
  9427. for i,v in pairs(cors) do
  9428. spawn(function()
  9429. pcall(v)
  9430. end)
  9431. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement