Advertisement
lafur

Untitled

Dec 24th, 2018
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --https://github.com/Mokiros/roblox-FE-compatibility
  2. if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
  3. local Player,Mouse,mouse,UserInputService,ContextActionService = owner
  4. local RealPlayer = Player
  5. do print("FE Compatibility code by Mokiros")local a=RealPlayer;script.Parent=a.Character;local b=Instance.new("RemoteEvent")b.Name="UserInput_Event"local function c()local d={_fakeEvent=true,Functions={},Connect=function(self,e)table.insert(self.Functions,e)end}d.connect=d.Connect;return d end;local f={Target=nil,Hit=CFrame.new(),KeyUp=c(),KeyDown=c(),Button1Up=c(),Button1Down=c(),Button2Up=c(),Button2Down=c()}local g={InputBegan=c(),InputEnded=c()}local CAS={Actions={},BindAction=function(self,h,i,j,...)CAS.Actions[h]=i and{Name=h,Function=i,Keys={...}}or nil end}CAS.UnbindAction=CAS.BindAction;local function k(self,l,...)local d=f[l]if d and d._fakeEvent then for m,e in pairs(d.Functions)do e(...)end end end;f.TrigEvent=k;g.TrigEvent=k;b.OnServerEvent:Connect(function(n,o)if n~=a then return end;f.Target=o.Target;f.Hit=o.Hit;if not o.isMouse then local p=o.UserInputState==Enum.UserInputState.Begin;if o.UserInputType==Enum.UserInputType.MouseButton1 then return f:TrigEvent(p and"Button1Down"or"Button1Up")end;if o.UserInputType==Enum.UserInputType.MouseButton2 then return f:TrigEvent(p and"Button2Down"or"Button2Up")end;for m,d in pairs(CAS.Actions)do for m,q in pairs(d.Keys)do if q==o.KeyCode then d.Function(d.Name,o.UserInputState,o)end end end;f:TrigEvent(p and"KeyDown"or"KeyUp",o.KeyCode.Name:lower())g:TrigEvent(p and"InputBegan"or"InputEnded",o,false)end end)b.Parent=NLS([==[local a=game:GetService("Players").LocalPlayer;local b=script:WaitForChild("UserInput_Event")local c=a:GetMouse()local d=game:GetService("UserInputService")local e=function(f,g)if g then return end;b:FireServer({KeyCode=f.KeyCode,UserInputType=f.UserInputType,UserInputState=f.UserInputState,Hit=c.Hit,Target=c.Target})end;d.InputBegan:Connect(e)d.InputEnded:Connect(e)local h,i;while wait(1/30)do if h~=c.Hit or i~=c.Target then h,i=c.Hit,c.Target;b:FireServer({isMouse=true,Target=i,Hit=h})end end]==],Player.Character)local r=game;local s={__index=function(self,q)local t=rawget(self,"_RealService")if t then return typeof(t[q])=="function"and function(m,...)return t[q](t,...)end or t[q]end end,__newindex=function(self,q,u)local t=rawget(self,"_RealService")if t then t[q]=u end end}local function v(d,w)d._RealService=typeof(w)=="string"and r:GetService(w)or w;return setmetatable(d,s)end;local x={GetService=function(self,t)return rawget(self,t)or r:GetService(t)end,Players=v({LocalPlayer=v({GetMouse=function(self)return f end},Player)},"Players"),UserInputService=v(g,"UserInputService"),ContextActionService=v(CAS,"ContextActionService"),RunService=v({_btrs={},RenderStepped=r:GetService("RunService").Heartbeat,BindToRenderStep=function(self,h,m,i)self._btrs[h]=self.Heartbeat:Connect(i)end,UnbindFromRenderStep=function(self,h)self._btrs[h]:Disconnect()end},"RunService")}rawset(x.Players,"localPlayer",x.Players.LocalPlayer)x.service=x.GetService;v(x,game)game,owner=x,x.Players.LocalPlayer end print("wait 1 second")
  6. wait(1)
  7. _G.mantisReload = function()
  8.  
  9. local plr = game:service'Players'.LocalPlayer
  10. local pg = plr:WaitForChild("PlayerGui")
  11. local mouse = plr:GetMouse()
  12. local char = plr.Character
  13. local root = char:WaitForChild'HumanoidRootPart'
  14. local head = char:WaitForChild'Head'
  15. local tor = char:WaitForChild'Torso'
  16. local la,ra = char["Left Arm"],char["Right Arm"]
  17. local ll,rl = char["Left Leg"],char["Right Leg"]
  18. tor.CFrame = tor.CFrame + Vector3.new(0,5,0)
  19.  
  20. local hum = char.Humanoid
  21. local step = game:GetService("RunService").RenderStepped
  22.  
  23. pcall(function() workspace["vmodel"..plr.Name]:Destroy() end)
  24. pcall(function() pg.bgui:Destroy() end)
  25. if not script:IsA("ModuleScript") then
  26. pcall(function() script.Parent.vehicularScript:Destroy() end)
  27. script.Name = "vehicularScript"
  28. end
  29.  
  30. local sg = Instance.new("ScreenGui",pg)
  31. sg.Name = "bgui"
  32. local p = Instance.new("ImageLabel",sg)
  33. p.Size = UDim2.new(0,6,0,6)
  34. p.Position = UDim2.new(.5,-3,.5,-3)
  35. p.BackgroundColor3 = Color3.new(1,1,1)
  36. p.BackgroundTransparency = .6
  37. local p2 = p:Clone()
  38. p2.Parent = sg
  39. p2.Rotation = 45
  40. local m = Instance.new("Model",workspace)
  41. m.Name = "vmodel"..plr.Name
  42. Instance.new("Humanoid",m).Name = "Shadow"
  43. local hval = Instance.new("NumberValue",m)
  44. hval.Value = 100
  45. hval.Name = "hp"
  46.  
  47. function weld(a,b,c,d)
  48. local w = Instance.new("Motor6D",a)
  49. w.Part0,w.Part1,w.C0,w.C1 = a,b,c or CFrame.new(),d or CFrame.new()
  50. return w
  51. end
  52.  
  53. do
  54. local function QuaternionFromCFrame(cf)
  55. local mx, my, mz, m00, m01, m02, m10, m11, m12, m20, m21, m22 = cf:components()
  56. local trace = m00 + m11 + m22
  57. if trace > 0 then
  58. local s = math.sqrt(1 + trace)
  59. local recip = 0.5/s
  60. return (m21-m12)*recip, (m02-m20)*recip, (m10-m01)*recip, s*0.5
  61. else
  62. local i = 0
  63. if m11 > m00 then
  64. i = 1
  65. end
  66. if m22 > (i == 0 and m00 or m11) then
  67. i = 2
  68. end
  69. if i == 0 then
  70. local s = math.sqrt(m00-m11-m22+1)
  71. local recip = 0.5/s
  72. return 0.5*s, (m10+m01)*recip, (m20+m02)*recip, (m21-m12)*recip
  73. elseif i == 1 then
  74. local s = math.sqrt(m11-m22-m00+1)
  75. local recip = 0.5/s
  76. return (m01+m10)*recip, 0.5*s, (m21+m12)*recip, (m02-m20)*recip
  77. elseif i == 2 then
  78. local s = math.sqrt(m22-m00-m11+1)
  79. local recip = 0.5/s return (m02+m20)*recip, (m12+m21)*recip, 0.5*s, (m10-m01)*recip
  80. end
  81. end
  82. end
  83. local function QuaternionToCFrame(px, py, pz, x, y, z, w)
  84. local xs, ys, zs = x + x, y + y, z + z
  85. local wx, wy, wz = w*xs, w*ys, w*zs
  86. local xx = x*xs
  87. local xy = x*ys
  88. local xz = x*zs
  89. local yy = y*ys
  90. local yz = y*zs
  91. local zz = z*zs
  92. return CFrame.new(px, py, pz,1-(yy+zz), xy - wz, xz + wy,xy + wz, 1-(xx+zz), yz - wx, xz - wy, yz + wx, 1-(xx+yy))
  93. end
  94. local function QuaternionSlerp(a, b, t)
  95. local cosTheta = a[1]*b[1] + a[2]*b[2] + a[3]*b[3] + a[4]*b[4]
  96. local startInterp, finishInterp;
  97. if cosTheta >= 0.0001 then
  98. if (1 - cosTheta) > 0.0001 then
  99. local theta = math.acos(cosTheta)
  100. local invSinTheta = 1/math.sin(theta)
  101. startInterp = math.sin((1-t)*theta)*invSinTheta
  102. finishInterp = math.sin(t*theta)*invSinTheta
  103. else
  104. startInterp = 1-t
  105. finishInterp = t
  106. end
  107. else
  108. if (1+cosTheta) > 0.0001 then
  109. local theta = math.acos(-cosTheta)
  110. local invSinTheta = 1/math.sin(theta)
  111. startInterp = math.sin((t-1)*theta)*invSinTheta
  112. finishInterp = math.sin(t*theta)*invSinTheta
  113. else
  114. startInterp = t-1
  115. finishInterp = t
  116. end
  117. end
  118. return a[1]*startInterp + b[1]*finishInterp, a[2]*startInterp + b[2]*finishInterp, a[3]*startInterp + b[3]*finishInterp, a[4]*startInterp + b[4]*finishInterp
  119. end
  120. function clerp(a,b,t)
  121. local qa = {QuaternionFromCFrame(a)}
  122. local qb = {QuaternionFromCFrame(b)}
  123. local ax, ay, az = a.x, a.y, a.z
  124. local bx, by, bz = b.x, b.y, b.z
  125. local _t = 1-t
  126. return QuaternionToCFrame(_t*ax + t*bx, _t*ay + t*by, _t*az + t*bz,QuaternionSlerp(qa, qb, t))
  127. end
  128. end
  129.  
  130. function lerp(a,b,t)
  131. return a+(b-a)*t
  132. end
  133.  
  134. local cancollide = true
  135. local par = m
  136. function Part(Part0,C0,C1,Size,Color,Ref,Trans,Mesh,Material)
  137. local p = Instance.new("Part",par)
  138. p.FormFactor = "Custom"
  139. p.TopSurface,p.BottomSurface,p.BackSurface,p.FrontSurface,p.RightSurface,p.LeftSurface = 10,10,10,10,10,10
  140. p.Size = Size or Vector3.new()
  141. p.Material = "SmoothPlastic"
  142. p.CanCollide = cancollide
  143. p.Locked = true
  144. if p.Size ~= Size or Mesh then
  145. local bm = Mesh or Instance.new("BlockMesh")
  146. bm.Parent = p
  147. bm.Scale = Size/p.Size*bm.Scale
  148. bm.Parent = p
  149. end
  150. p.BrickColor = Color or BrickColor.new(1001)
  151. p.Reflectance = Ref or 0
  152. p.Transparency = Trans or 0
  153. p.Material = Material or p.Material
  154. local w;
  155. if Part0 then
  156. w = weld(Part0,p,C0,C1)
  157. end
  158. return p,w
  159. end
  160.  
  161. function Mesh(type,scale,arg1,arg2,arg3,arg4,arg5)
  162. local m = Instance.new(type)
  163. m.Scale = scale or Vector3.new(1,1,1)
  164. if type == "SpecialMesh" then
  165. m.MeshType = arg1
  166. if arg1=="FileMesh" then
  167. m.MeshId = arg2 or m.MeshId
  168. m.TextureId = arg3 or m.TextureId
  169. m.Offset = arg4 or m.Offset
  170. m.VertexColor = arg5 or m.VertexColor
  171. else
  172. m.VertexColor = arg3 or m.VertexColor
  173. m.Offset = arg2 or m.Offset
  174. end
  175. else
  176. m.Offset = arg1 or m.Offset
  177. m.VertexColor = arg2 or m.VertexColor
  178. end
  179. return m
  180. end
  181.  
  182. local b = BrickColor.new
  183. local cols = {b(21),b(23),b(141),b(104),b(106),b(24),b(9),b(5)}
  184. function gcol(plr)
  185. if teamColorsEnabled and pcall(function() assert(plr.AccountAge ~= nil) end) and not plr.Neutral then
  186. return plr.TeamColor.Color
  187. else
  188. local v=0;
  189. local n=tostring(plr);
  190. local a=#n;
  191. for i in n:gmatch(".") do
  192. v = v + ((a+(#n%2==1 and -1 or 0))%4 > 1 and -1 or 1)*i:byte()
  193. a = a - 1
  194. end
  195. return cols[(v%8)+1].Color
  196. end
  197. end
  198.  
  199.  
  200. local body = BrickColor.new("Sand green")
  201. local body2 = BrickColor.new("Institutional white")
  202. local body3 = BrickColor.new("Sand green")
  203. local bodyref = .2
  204. local body2ref = .2
  205. local body3ref = .5
  206.  
  207. local pipe = BrickColor.new("Dark stone grey")
  208. local pipe2 = body2--BrickColor.new("Institutional white")
  209. local pipe3 = body--BrickColor.new("Really black")
  210. local piperef = .25
  211. local pipe2ref = .2
  212. local pipe3ref = .25
  213.  
  214. hum.Sit = true
  215.  
  216.  
  217. local fc = Instance.new("Model",m)
  218. par = fc
  219. local tr = Part(tor,CFrame.new(),CFrame.new(),Vector3.new(),BrickColor.new(),0,1)
  220. tr.Name = "Torso"
  221. Part(tr,CFrame.new(),CFrame.new(),Vector3.new(),BrickColor.new(),0,1).Name = "Head"
  222. Part(ra,CFrame.new(),CFrame.new(),Vector3.new(),ra.BrickColor,0,0).Name = "Right Arm"
  223. Part(la,CFrame.new(),CFrame.new(),Vector3.new(),la.BrickColor,0,0).Name = "Left Arm"
  224. Part(rl,CFrame.new(),CFrame.new(),Vector3.new(),rl.BrickColor,0,0).Name = "Right Leg"
  225. Part(ll,CFrame.new(),CFrame.new(),Vector3.new(),ll.BrickColor,0,0).Name = "Left Leg"
  226. local hm = Instance.new("Humanoid",fc)
  227. hm.MaxHealth = math.huge
  228. hm.PlatformStand = true
  229. for i,v in pairs(char:GetChildren()) do
  230. if v:IsA("Clothing") or v:IsA("CharacterMesh") then
  231. v:Clone().Parent = fc
  232. if v:IsA("Shirt") then
  233. pcall(game.Destroy,tr:FindFirstChild("Mesh"))
  234. pcall(game.Destroy,fc["Right Arm"]:FindFirstChild("Mesh"))
  235. pcall(game.Destroy,fc["Left Arm"]:FindFirstChild("Mesh"))
  236. elseif v:IsA("Pants") then
  237. pcall(game.Destroy,tr:FindFirstChild("Mesh"))
  238. pcall(game.Destroy,fc["Right Leg"]:FindFirstChild("Mesh"))
  239. pcall(game.Destroy,fc["Left Leg"]:FindFirstChild("Mesh"))
  240. end
  241. end
  242. end
  243. local h = Instance.new("Hat",fc)
  244. par = h
  245. Part(tr,CFrame.new(),CFrame.new(),Vector3.new(),BrickColor.new(),0,1).Name = "Handle"
  246. par = m
  247.  
  248. local main,mainweld = Part(tor,CFrame.new(0,-2.25,0)*CFrame.Angles(0,0,0),CFrame.new(0,0,0),Vector3.new(3,1,2),body,bodyref,0)
  249. Part(main,CFrame.new(0,.5,-.4),CFrame.new(),Vector3.new(2.3,.2,1.3),body2,0,0)
  250. local p = Part(main,CFrame.new(0,-.5,1)*CFrame.Angles(-1.4,0,0)*CFrame.new(0,.5,1.25),CFrame.new(),Vector3.new(2.3,.75,2.5),body,bodyref)
  251. Part(p,CFrame.new(0,.375,0),CFrame.new(),Vector3.new(2.2,.2,1.4),body2,0,0)
  252. p = Part(p,CFrame.new(0,-.375,1.25)*CFrame.Angles(-.15,0,0)*CFrame.new(0,.375,.8),CFrame.new(),Vector3.new(2.3,.75,1.6),body,bodyref)
  253. p.CanCollide = false
  254. Part(p,CFrame.new(0,.375,0),CFrame.new(),Vector3.new(2.2,.2,1.2),body2,0,0).CanCollide = false
  255. local back = Part(main,CFrame.new(0,1.4,1)*CFrame.Angles(.15,math.pi,0),CFrame.new(),Vector3.new(2,2,3),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(3,3.8,6.5),"FileMesh","rbxassetid://9944765"))
  256. Part(main,CFrame.new(0,-.5,1.75)*CFrame.Angles(-1.1,0,0)*CFrame.new(0,.5,1.25),CFrame.new(),Vector3.new(1.75,1.5,2.25),body,bodyref)
  257. Part(main,CFrame.new(0,0,1.25),CFrame.new(),Vector3.new(1.75,1.1,1.5),body,bodyref)
  258. local p = Part(main,CFrame.new(0,.5,-1)*CFrame.Angles(-.2,0,0)*CFrame.new(0,-.375,-.5),CFrame.new(),Vector3.new(2.75,.75,1),body,bodyref)
  259. Part(p,CFrame.new(0,.375,.05),CFrame.new(),Vector3.new(2.3,.2,.95),body2,0,0)
  260. Part(p,CFrame.new(0,.8,-.45),CFrame.new(),Vector3.new(2.3,1,.3),body2,0,0)
  261. Part(p,CFrame.new(0,1.5,-.4)*CFrame.Angles(.2,0,0),CFrame.new(),Vector3.new(2.3,.5,.3),body2,0,0)
  262. local p = Part(main,CFrame.new(0,2.1,-2.9)*CFrame.Angles(.9,0,0),CFrame.new(),Vector3.new(1.5,2.5,1),body,bodyref,0)
  263. local p = Part(p,CFrame.new(0,1.25,.5)*CFrame.Angles(-.9,0,0)*CFrame.new(0,.5,-.7),CFrame.new(),Vector3.new(1.501,1,1.4),body,bodyref,0)
  264. local h = Part(p,CFrame.new(.4,-.2,.7)*CFrame.Angles(0,1.425,0)*CFrame.new(.175,0,.9),CFrame.new(),Vector3.new(.35,.35,1.8),body,bodyref,0)
  265. Part(h,CFrame.new(0,0,.225),CFrame.new(),Vector3.new(.4,.4,1.3),body2,body2ref,0)
  266. Part(h,CFrame.new(0,0,.9),CFrame.new(),Vector3.new(.45,.45,.1),body3,body3ref,0)
  267. Part(h,CFrame.new(0,0,-.45),CFrame.new(),Vector3.new(.425,.425,.1),body3,body3ref,0)
  268. Part(h,CFrame.new(0,0,.75),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  269. Part(h,CFrame.new(0,0,.6),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  270. Part(h,CFrame.new(0,0,.45),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  271. Part(h,CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  272. Part(h,CFrame.new(0,0,.15),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  273. Part(h,CFrame.new(0,0,0),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  274. Part(h,CFrame.new(0,0,-.15),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  275. Part(h,CFrame.new(0,0,-.3),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  276. local h = Part(p,CFrame.new(-.4,-.2,.7)*CFrame.Angles(0,-1.425,0)*CFrame.new(-.175,0,.9),CFrame.new(),Vector3.new(.35,.35,1.8),body,bodyref,0)
  277. Part(h,CFrame.new(0,0,.225),CFrame.new(),Vector3.new(.4,.4,1.3),body2,body2ref,0)
  278. Part(h,CFrame.new(0,0,.9),CFrame.new(),Vector3.new(.45,.45,.1),body3,body3ref,0)
  279. Part(h,CFrame.new(0,0,-.45),CFrame.new(),Vector3.new(.425,.425,.1),body3,body3ref,0)
  280. Part(h,CFrame.new(0,0,.75),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  281. Part(h,CFrame.new(0,0,.6),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  282. Part(h,CFrame.new(0,0,.45),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  283. Part(h,CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  284. Part(h,CFrame.new(0,0,.15),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  285. Part(h,CFrame.new(0,0,0),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  286. Part(h,CFrame.new(0,0,-.15),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  287. Part(h,CFrame.new(0,0,-.3),CFrame.new(),Vector3.new(.415,.415,.025),body3,body3ref,0)
  288.  
  289. local e = Part(main,CFrame.new(0,1,-4.6)*CFrame.Angles(-.2,-math.pi/2,0)*CFrame.new(0,-.2,0),CFrame.new(),Vector3.new(5,5,5),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  290. p = Part(e,CFrame.new(-2.25,2.25,0)*CFrame.Angles(0,-math.pi/2,0)*CFrame.Angles(-.05,0,0),CFrame.new(),Vector3.new(2,2,3),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(2,1.75,9.5),"FileMesh","rbxassetid://9944765"))
  291. p = Part(p,CFrame.new(0,-.2,.4)*CFrame.Angles(0,0,0)*CFrame.Angles(-.175,0,0),CFrame.new(),Vector3.new(1,1,1),body2,body2ref,0,Mesh("SpecialMesh",Vector3.new(2.3,2.3,2),"FileMesh","rbxassetid://9944765"))
  292.  
  293. p = Part(e,CFrame.new(2,.25,2)*CFrame.Angles(1.35,math.pi/2,0)*CFrame.Angles(0,0,0),CFrame.new(),Vector3.new(2,2,3),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(2.5,2.5,9.5),"FileMesh","rbxassetid://9944765"))
  294. p = Part(p,CFrame.new(0,.2,-4.55)*CFrame.Angles(0,math.pi,-.1),CFrame.new(),Vector3.new(1,1,1),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(1.6,1.1,9),"FileMesh","rbxassetid://9944765"))
  295.  
  296. p = Part(e,CFrame.new(2,.25,-2)*CFrame.Angles(-1.35,math.pi/2,0)*CFrame.Angles(0,0,0),CFrame.new(),Vector3.new(2,2,3),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(2.5,2.5,9.5),"FileMesh","rbxassetid://9944765"))
  297. p = Part(p,CFrame.new(0,.2,-4.55)*CFrame.Angles(0,math.pi,-.1),CFrame.new(),Vector3.new(1,1,1),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(1.6,1.1,9),"FileMesh","rbxassetid://9944765"))
  298.  
  299.  
  300.  
  301. local e2 = Part(e,CFrame.new(-2.5,0,0)*CFrame.Angles(0,math.pi/2,0),CFrame.new(),Vector3.new(5,5,1),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Sphere"))
  302. local et = Part(e2,CFrame.new(0,.05,-.6)*CFrame.Angles(-math.pi/2+.05,0,0),CFrame.new(),Vector3.new(5,5,1),body,bodyref,0,Mesh("SpecialMesh",Vector3.new(3.45,5,3.45),"FileMesh","rbxassetid://16659502"))
  303. local g1 = Part(et,CFrame.new(0,-.5,0)*CFrame.Angles(math.pi/2,0,0),CFrame.new(),Vector3.new(2.5,2.5,2.5),body2,body2ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Sphere"))
  304. local g2 = Part(g1,CFrame.new(0,0,-1)*CFrame.Angles(.15,math.pi/2,0),CFrame.new(),Vector3.new(.75,.6,.6),body2,body2ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  305. local t1 = Part(g2,CFrame.new(.9,.05,0)*CFrame.Angles(0,0,0),CFrame.new(),Vector3.new(1,.4,.4),body3,body3ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  306. local t1s = Instance.new("Sound",t1)
  307. t1s.SoundId = "rbxassetid://78498351"
  308. t1s.Volume = 0.5
  309. t1s.Pitch = 1.5
  310.  
  311. Part(t1,CFrame.Angles(.75,0,0)*CFrame.new(.3,.2,0)*CFrame.Angles(0,0,math.pi/2),CFrame.new(),Vector3.new(.025,.15,.15),BrickColor.new(1003),0,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  312. Part(t1,CFrame.Angles(.75,0,0)*CFrame.new(0,.2,0)*CFrame.Angles(0,0,math.pi/2),CFrame.new(),Vector3.new(.025,.15,.15),BrickColor.new(1003),0,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  313. Part(t1,CFrame.Angles(.75,0,0)*CFrame.new(-.3,.2,0)*CFrame.Angles(0,0,math.pi/2),CFrame.new(),Vector3.new(.025,.15,.15),BrickColor.new(1003),0,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  314. Part(t1,CFrame.Angles(-.75,0,0)*CFrame.new(.3,.2,0)*CFrame.Angles(0,0,math.pi/2),CFrame.new(),Vector3.new(.025,.15,.15),BrickColor.new(1003),0,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  315. Part(t1,CFrame.Angles(-.75,0,0)*CFrame.new(0,.2,0)*CFrame.Angles(0,0,math.pi/2),CFrame.new(),Vector3.new(.025,.15,.15),BrickColor.new(1003),0,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  316. Part(t1,CFrame.Angles(-.75,0,0)*CFrame.new(-.3,.2,0)*CFrame.Angles(0,0,math.pi/2),CFrame.new(),Vector3.new(.025,.15,.15),BrickColor.new(1003),0,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  317. Part(t1,CFrame.new(.5,0,0),CFrame.new(),Vector3.new(.01,.225,.225),BrickColor.new(1003),0,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  318.  
  319. local b = Part(main,CFrame.new(0,-.65,-2.9),CFrame.new(),Vector3.new(2.8,2,7.9),body,bodyref,0)
  320. local b2 = Part(b,CFrame.new(0,-.5,-2.5),CFrame.new(),Vector3.new(7,1,2),body,bodyref,0)
  321.  
  322. local w = Part(b2,CFrame.new(-3.5,0,0),CFrame.new(),Vector3.new(1.2,1.05,2),body,bodyref,0)
  323. local w = Part(w,CFrame.new(.6,0,-1)*CFrame.Angles(0,.5,0)*CFrame.new(-.6,0,-1),CFrame.new(),Vector3.new(1.2,1.049,2),body,bodyref,0)
  324. Part(w,CFrame.new(.6,0,0),CFrame.new(),Vector3.new(.5,1.1,2.07),body2,body2ref,0)
  325. local w = Part(w,CFrame.new(.6,0,-1)*CFrame.Angles(0,.5,0)*CFrame.new(-.6,0,-.95),CFrame.new(),Vector3.new(1.2,1.05,1.9),body,bodyref,0)
  326. Part(w,CFrame.new(.6,0,0),CFrame.new(),Vector3.new(.5,1.095,2.05),body2,body2ref,0)
  327. local w = Part(w,CFrame.new(.6,0,-.95)*CFrame.Angles(0,.57,0)*CFrame.new(-.65,0,-1.2),CFrame.new(),Vector3.new(1.3,1.049,2.4),body,bodyref,0)
  328. Part(w,CFrame.new(.65,0,.8),CFrame.new(),Vector3.new(.5,1.1,.95),body2,body2ref,0)
  329. local w = Part(w,CFrame.new(-.6,0,-1.2)*CFrame.Angles(0,-1.57,0)*CFrame.new(.8,0,-1.25),CFrame.new(),Vector3.new(1.6,1.05,2.5),body,bodyref,0)
  330. local w = Part(w,CFrame.new(-.8,0,-1.25)*CFrame.Angles(0,-.4,0)*CFrame.new(.7,0,1.25),CFrame.new(),Vector3.new(1.4,1.049,2.5),body,bodyref,0)
  331. local w = Part(w,CFrame.new(.7,0,1.25)*CFrame.Angles(0,-.45,0)*CFrame.new(-.7,0,1),CFrame.new(),Vector3.new(1.4,1.05,2),body,bodyref,0)
  332. local w = Part(w,CFrame.new(-.7,0,1)*CFrame.Angles(0,.6,0)*CFrame.new(.7,0,1),CFrame.new(),Vector3.new(1.4,1.049,2),body,bodyref,0)
  333. local w = Part(w,CFrame.new(-.7,0,1)*CFrame.Angles(0,.55,0)*CFrame.new(.7,0,1),CFrame.new(),Vector3.new(1.4,1.05,2),body,bodyref,0)
  334. local w = Part(w,CFrame.new(-.7,0,1)*CFrame.Angles(0,.5,0)*CFrame.new(.7,0,1),CFrame.new(),Vector3.new(1.4,1.049,2),body,bodyref,0)
  335. local w = Part(w,CFrame.new(-.7,0,1)*CFrame.Angles(0,.45,0)*CFrame.new(.6,0,.5),CFrame.new(),Vector3.new(1.5,1.05,1),body,bodyref,0)
  336. local w = Part(w,CFrame.new(-.75,0,.5)*CFrame.Angles(0,.325,0)*CFrame.new(.5,0,1.3),CFrame.new(),Vector3.new(1.6,1.049,2.6),body,bodyref,0)
  337. local w = Part(w,CFrame.new(-.2,0,1.3)*CFrame.Angles(0,.65,0)*CFrame.new(.5,0,.8),CFrame.new(),Vector3.new(1,1.05,1.6),body,bodyref,0)
  338. local w = Part(w,CFrame.new(-.5,0,.8)*CFrame.Angles(0,.45,0)*CFrame.new(.5,0,1),CFrame.new(),Vector3.new(1,1.05,2),body,bodyref,0)
  339.  
  340.  
  341. cancollide = false
  342. Part(b2,CFrame.new(-3.5-3,.125,0)*CFrame.Angles(-math.pi/2,0,0),CFrame.new(),Vector3.new(3,3,1),body2,body2ref,0,Mesh("SpecialMesh",Vector3.new(5,5,6),"FileMesh","rbxassetid://3270017"),"DiamondPlate")
  343. Part(b2,CFrame.new(-3.5-3,-.125,0)*CFrame.Angles(-math.pi/2,0,0),CFrame.new(),Vector3.new(3,3,1),body2,body2ref,0,Mesh("SpecialMesh",Vector3.new(5,5,6),"FileMesh","rbxassetid://3270017"))
  344. cancollide = true
  345.  
  346. local propl,proplw = Part(b2,CFrame.new(-6.5,0,0),CFrame.new(),Vector3.new(.4,.75,.4),body2,body2ref,0,Mesh("CylinderMesh",Vector3.new(1,1,1)),"DiamondPlate")
  347. Part(propl,CFrame.new(0,.35,0),CFrame.new(),Vector3.new(.6,.25,.6),body3,body3ref,0,Mesh("CylinderMesh",Vector3.new(1,1,1)),"DiamondPlate")
  348. Part(propl,CFrame.new(0,-.35,0),CFrame.new(),Vector3.new(.5,.15,.5),body3,body3ref,0,Mesh("CylinderMesh",Vector3.new(1,1,1)),"DiamondPlate")
  349. Part(propl,CFrame.Angles(0,0*math.pi*2/3,0)*CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.15,.65,.3),body3,body3ref,0,nil,"DiamondPlate")
  350. Part(propl,CFrame.Angles(0,1*math.pi*2/3,0)*CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.15,.65,.3),body3,body3ref,0,nil,"DiamondPlate")
  351. Part(propl,CFrame.Angles(0,2*math.pi*2/3,0)*CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.15,.65,.3),body3,body3ref,0,nil,"DiamondPlate")
  352. propl.Name = "SoundPlayer1"
  353. local ps2 = Instance.new("Sound",propl)
  354. ps2.SoundId = "rbxassetid://134145308"
  355. ps2.Pitch = 2
  356. ps2.Volume = 1
  357. ps2.Looped = true
  358. ps2:Play()
  359.  
  360.  
  361. local p = Part(propl,CFrame.Angles(0,0*math.pi*2/3,0)*CFrame.new(0,0,.35+.8)*CFrame.Angles(0,0,-1.3),CFrame.new(),Vector3.new(.05,.5,1.7),body2,body2ref,0,nil,"Plastic")
  362. Part(p,CFrame.Angles(0,0,1.3)*CFrame.new(-.125,0,.85),CFrame.new(),Vector3.new(.7,.25,.05),body2,body2ref,0,nil,"Plastic")
  363. local p = Part(propl,CFrame.Angles(0,1*math.pi*2/3,0)*CFrame.new(0,0,.35+.8)*CFrame.Angles(0,0,-1.3),CFrame.new(),Vector3.new(.05,.5,1.7),body2,body2ref,0,nil,"Plastic")
  364. Part(p,CFrame.Angles(0,0,1.3)*CFrame.new(-.125,0,.85),CFrame.new(),Vector3.new(.7,.25,.05),body2,body2ref,0,nil,"Plastic")
  365. local p = Part(propl,CFrame.Angles(0,2*math.pi*2/3,0)*CFrame.new(0,0,.35+.8)*CFrame.Angles(0,0,-1.3),CFrame.new(),Vector3.new(.05,.5,1.7),body2,body2ref,0,nil,"Plastic")
  366. Part(p,CFrame.Angles(0,0,1.3)*CFrame.new(-.125,0,.85),CFrame.new(),Vector3.new(.7,.25,.05),body2,body2ref,0,nil,"Plastic")
  367.  
  368.  
  369. local w = Part(b2,CFrame.new(3.5,0,0),CFrame.new(),Vector3.new(1.2,1.05,2),body,bodyref,0)
  370. local w = Part(w,CFrame.new(-.6,0,-1)*CFrame.Angles(0,-.5,0)*CFrame.new(.6,0,-1),CFrame.new(),Vector3.new(1.2,1.049,2),body,bodyref,0)
  371. Part(w,CFrame.new(-.6,0,0),CFrame.new(),Vector3.new(.5,1.1,2.07),body2,body2ref,0)
  372. local w = Part(w,CFrame.new(-.6,0,-1)*CFrame.Angles(0,-.5,0)*CFrame.new(.6,0,-.95),CFrame.new(),Vector3.new(1.2,1.05,1.9),body,bodyref,0)
  373. Part(w,CFrame.new(-.6,0,0),CFrame.new(),Vector3.new(.5,1.095,2.05),body2,body2ref,0)
  374. local w = Part(w,CFrame.new(-.6,0,-.95)*CFrame.Angles(0,-.57,0)*CFrame.new(.65,0,-1.2),CFrame.new(),Vector3.new(1.3,1.049,2.4),body,bodyref,0)
  375. Part(w,CFrame.new(-.65,0,.8),CFrame.new(),Vector3.new(.5,1.1,.95),body2,body2ref,0)
  376. local w = Part(w,CFrame.new(.6,0,-1.2)*CFrame.Angles(0,1.57,0)*CFrame.new(-.8,0,-1.25),CFrame.new(),Vector3.new(1.6,1.05,2.5),body,bodyref,0)
  377. local w = Part(w,CFrame.new(.8,0,-1.25)*CFrame.Angles(0,.4,0)*CFrame.new(-.7,0,1.25),CFrame.new(),Vector3.new(1.4,1.049,2.5),body,bodyref,0)
  378. local w = Part(w,CFrame.new(-.7,0,1.25)*CFrame.Angles(0,.45,0)*CFrame.new(.7,0,1),CFrame.new(),Vector3.new(1.4,1.05,2),body,bodyref,0)
  379. local w = Part(w,CFrame.new(.7,0,1)*CFrame.Angles(0,-.6,0)*CFrame.new(-.7,0,1),CFrame.new(),Vector3.new(1.4,1.049,2),body,bodyref,0)
  380. local w = Part(w,CFrame.new(.7,0,1)*CFrame.Angles(0,-.55,0)*CFrame.new(-.7,0,1),CFrame.new(),Vector3.new(1.4,1.05,2),body,bodyref,0)
  381. local w = Part(w,CFrame.new(.7,0,1)*CFrame.Angles(0,-.5,0)*CFrame.new(-.7,0,1),CFrame.new(),Vector3.new(1.4,1.049,2),body,bodyref,0)
  382. local w = Part(w,CFrame.new(.7,0,1)*CFrame.Angles(0,-.45,0)*CFrame.new(-.6,0,.5),CFrame.new(),Vector3.new(1.5,1.05,1),body,bodyref,0)
  383. local w = Part(w,CFrame.new(.75,0,.5)*CFrame.Angles(0,-.325,0)*CFrame.new(-.5,0,1.3),CFrame.new(),Vector3.new(1.6,1.049,2.6),body,bodyref,0)
  384. local w = Part(w,CFrame.new(.2,0,1.3)*CFrame.Angles(0,-.65,0)*CFrame.new(-.5,0,.8),CFrame.new(),Vector3.new(1,1.05,1.6),body,bodyref,0)
  385. local w = Part(w,CFrame.new(.5,0,.8)*CFrame.Angles(0,-.45,0)*CFrame.new(-.5,0,1),CFrame.new(),Vector3.new(1,1.05,2),body,bodyref,0)
  386.  
  387.  
  388. cancollide = false
  389. Part(b2,CFrame.new(3.5+3,.125,0)*CFrame.Angles(-math.pi/2,0,0),CFrame.new(),Vector3.new(3,3,1),body2,body2ref,0,Mesh("SpecialMesh",Vector3.new(5,5,6),"FileMesh","rbxassetid://3270017"),"DiamondPlate")
  390. Part(b2,CFrame.new(3.5+3,-.125,0)*CFrame.Angles(-math.pi/2,0,0),CFrame.new(),Vector3.new(3,3,1),body2,body2ref,0,Mesh("SpecialMesh",Vector3.new(5,5,6),"FileMesh","rbxassetid://3270017"))
  391. cancollide = true
  392.  
  393. local propr,proprw = Part(b2,CFrame.new(6.5,0,0),CFrame.new(),Vector3.new(.4,.75,.4),body2,body2ref,0,Mesh("CylinderMesh",Vector3.new(1,1,1)),"DiamondPlate")
  394. Part(propr,CFrame.new(0,.35,0),CFrame.new(),Vector3.new(.6,.25,.6),body3,body3ref,0,Mesh("CylinderMesh",Vector3.new(1,1,1)),"DiamondPlate")
  395. Part(propr,CFrame.new(0,-.35,0),CFrame.new(),Vector3.new(.5,.15,.5),body3,body3ref,0,Mesh("CylinderMesh",Vector3.new(1,1,1)),"DiamondPlate")
  396. Part(propr,CFrame.Angles(0,0*math.pi*2/3,0)*CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.15,.65,.3),body3,body3ref,0,nil,"DiamondPlate")
  397. Part(propr,CFrame.Angles(0,1*math.pi*2/3,0)*CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.15,.65,.3),body3,body3ref,0,nil,"DiamondPlate")
  398. Part(propr,CFrame.Angles(0,2*math.pi*2/3,0)*CFrame.new(0,0,.3),CFrame.new(),Vector3.new(.15,.65,.3),body3,body3ref,0,nil,"DiamondPlate")
  399. propr.Name = "SoundPlayer2"
  400. local ps = Instance.new("Sound",propr)
  401. ps.SoundId = "rbxassetid://134145308"
  402. ps.Pitch = 2
  403. ps.Volume = 1
  404. ps.Looped = true
  405. ps:Play()
  406.  
  407. local p = Part(propr,CFrame.Angles(0,0*math.pi*2/3,0)*CFrame.new(0,0,.35+.8)*CFrame.Angles(0,0,1.3),CFrame.new(),Vector3.new(.05,.5,1.7),body2,body2ref,0,nil,"Plastic")
  408. Part(p,CFrame.Angles(0,0,-1.3)*CFrame.new(.125,0,.85),CFrame.new(),Vector3.new(.7,.25,.05),body2,body2ref,0,nil,"Plastic")
  409. local p = Part(propr,CFrame.Angles(0,1*math.pi*2/3,0)*CFrame.new(0,0,.35+.8)*CFrame.Angles(0,0,1.3),CFrame.new(),Vector3.new(.05,.5,1.7),body2,body2ref,0,nil,"Plastic")
  410. Part(p,CFrame.Angles(0,0,-1.3)*CFrame.new(.125,0,.85),CFrame.new(),Vector3.new(.7,.25,.05),body2,body2ref,0,nil,"Plastic")
  411. local p = Part(propr,CFrame.Angles(0,2*math.pi*2/3,0)*CFrame.new(0,0,.35+.8)*CFrame.Angles(0,0,1.3),CFrame.new(),Vector3.new(.05,.5,1.7),body2,body2ref,0,nil,"Plastic")
  412. Part(p,CFrame.Angles(0,0,-1.3)*CFrame.new(.125,0,.85),CFrame.new(),Vector3.new(.7,.25,.05),body2,body2ref,0,nil,"Plastic")
  413.  
  414.  
  415.  
  416. local p1 = Part(main,CFrame.new(-1.85,.35,-1.1)*CFrame.Angles(0,math.pi/2,0),CFrame.new(),Vector3.new(1.25,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  417. Part(p1,CFrame.new(.5,0,.025),CFrame.new(),Vector3.new(1.5,1,1),pipe2,pipe2ref,0,Mesh("SpecialMesh",Vector3.new(.7,.85,.85),"Cylinder"),"DiamondPlate")
  418. Part(p1,CFrame.new(-.625,0,0),CFrame.new(),Vector3.new(.7,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Sphere"))
  419. local p1 = Part(p1,CFrame.new(-.625,0,0)*CFrame.Angles(0,0,-1)*CFrame.new(-.95,0,0),CFrame.new(),Vector3.new(1.9,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  420. Part(p1,CFrame.new(-.95,0,0),CFrame.new(),Vector3.new(.7,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Sphere"))
  421. local p1 = Part(p1,CFrame.new(-.95,0,0)*CFrame.Angles(0,0,1)*CFrame.new(-1.25,0,0),CFrame.new(),Vector3.new(2.5,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  422. local p = Part(p1,CFrame.new(-.3,0,.01),CFrame.new(),Vector3.new(1.5,1,1),pipe2,pipe2ref,0,Mesh("SpecialMesh",Vector3.new(1,.8,.8),"Cylinder"),"DiamondPlate")
  423. Part(p,CFrame.new(.6,0,0),CFrame.new(),Vector3.new(.15,.9,.9),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  424. Part(p,CFrame.new(-.6,0,0),CFrame.new(),Vector3.new(.15,.9,.9),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  425. Part(p,CFrame.new(0,0,.65),CFrame.new(),Vector3.new(1.3,.3,.5),pipe3,pipe3ref,0)
  426. Part(p1,CFrame.new(-1.25,0,0),CFrame.new(),Vector3.new(.15,.65,.65),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  427. local p = Part(p1,CFrame.new(-1.35,0,0)*CFrame.Angles(math.pi/2,0,math.pi/2),CFrame.new(),Vector3.new(1,1,1),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(.5,2,.5),"FileMesh","rbxassetid://16659502"))
  428. local firel = Instance.new("Fire",p)
  429. local lightl = Instance.new("PointLight",p)
  430.  
  431. local p1 = Part(main,CFrame.new(1.85,.35,-1.1)*CFrame.Angles(0,math.pi/2,0),CFrame.new(),Vector3.new(1.25,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  432. Part(p1,CFrame.new(.5,0,-.025),CFrame.new(),Vector3.new(1.5,1,1),pipe2,pipe2ref,0,Mesh("SpecialMesh",Vector3.new(.7,.85,.85),"Cylinder"),"DiamondPlate")
  433. Part(p1,CFrame.new(-.625,0,0),CFrame.new(),Vector3.new(.7,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Sphere"))
  434. local p1 = Part(p1,CFrame.new(-.625,0,0)*CFrame.Angles(0,0,-1)*CFrame.new(-.95,0,0),CFrame.new(),Vector3.new(1.9,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  435. Part(p1,CFrame.new(-.95,0,0),CFrame.new(),Vector3.new(.7,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Sphere"))
  436. local p1 = Part(p1,CFrame.new(-.95,0,0)*CFrame.Angles(0,0,1)*CFrame.new(-1.25,0,0),CFrame.new(),Vector3.new(2.5,.7,.7),pipe,piperef,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  437. local p = Part(p1,CFrame.new(-.3,0,-.01),CFrame.new(),Vector3.new(1.5,1,1),pipe2,pipe2ref,0,Mesh("SpecialMesh",Vector3.new(1,.8,.8),"Cylinder"),"DiamondPlate")
  438. Part(p,CFrame.new(.6,0,0),CFrame.new(),Vector3.new(.15,.9,.9),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  439. Part(p,CFrame.new(-.6,0,0),CFrame.new(),Vector3.new(.15,.9,.9),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  440. Part(p,CFrame.new(0,0,-.65),CFrame.new(),Vector3.new(1.3,.3,.5),pipe3,pipe3ref,0)
  441. Part(p1,CFrame.new(-1.25,0,0),CFrame.new(),Vector3.new(.15,.65,.65),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(1,1,1),"Cylinder"))
  442. local p = Part(p1,CFrame.new(-1.35,0,0)*CFrame.Angles(math.pi/2,0,math.pi/2),CFrame.new(),Vector3.new(1,1,1),pipe3,pipe3ref,0,Mesh("SpecialMesh",Vector3.new(.5,2,.5),"FileMesh","rbxassetid://16659502"))
  443. local firer = Instance.new("Fire",p)
  444. local lightr = Instance.new("PointLight",p)
  445.  
  446. cancollide = false
  447. local s = Part(main,CFrame.new(1.05,3,-2.7)*CFrame.Angles(-.5,0,0)*CFrame.new(0,0,.75),CFrame.new(),Vector3.new(.3,.3,1.5),body,bodyref,0)
  448. local s = Part(s,CFrame.new(0,.15,.75)*CFrame.Angles(.55,0,0)*CFrame.new(0,-.15,1.5),CFrame.new(),Vector3.new(.299,.3,3),body,bodyref,0)
  449. local s = Part(s,CFrame.new(0,.15,1.5)*CFrame.Angles(1.05,0,0)*CFrame.new(0,-.15,1),CFrame.new(),Vector3.new(.3,.3,2),body,bodyref,0)
  450. Part(s,CFrame.new(0,0,.75),CFrame.new(),Vector3.new(.4,.4,.4),pipe3,pipe3ref,0)
  451.  
  452. local s = Part(main,CFrame.new(-1.05,3,-2.7)*CFrame.Angles(-.5,0,0)*CFrame.new(0,0,.75),CFrame.new(),Vector3.new(.3,.3,1.5),body,bodyref,0)
  453. local s = Part(s,CFrame.new(0,.15,.75)*CFrame.Angles(.55,0,0)*CFrame.new(0,-.15,1.5),CFrame.new(),Vector3.new(.299,.3,3),body,bodyref,0)
  454. local s = Part(s,CFrame.new(0,.15,1.5)*CFrame.Angles(1.05,0,0)*CFrame.new(0,-.15,1),CFrame.new(),Vector3.new(.3,.3,2),body,bodyref,0)
  455. Part(s,CFrame.new(0,0,.75),CFrame.new(),Vector3.new(.4,.4,.4),pipe3,pipe3ref,0)
  456. cancollide = true
  457.  
  458. local hp = Instance.new("Part",m)
  459. hp.Anchored = true
  460. hp.TopSurface,hp.BottomSurface =0,0
  461. hp.BrickColor = BrickColor.new("Dark red")
  462. hp.FormFactor = "Custom"
  463. hp.CanCollide = false
  464. hp.Size = Vector3.new(8,1.5,.5)
  465.  
  466. local hptop = hp:Clone()
  467. hptop.Parent = m
  468. hptop.BrickColor = BrickColor.new("Dark green")
  469.  
  470. firer.Size = .01
  471. firer.Heat = 1000
  472. firel.Size = .01
  473. firel.Heat = 1000
  474.  
  475. local hm = Instance.new("Sound",sg)
  476. hm.SoundId = "rbxassetid://131864673"
  477. hm.Pitch = .8
  478.  
  479. --[[coroutine.wrap(function()
  480. wait(.2)
  481. while wait(.6) do
  482. ps.Pitch = -ps.Pitch
  483. ps2.Pitch = -ps2.Pitch
  484. end
  485. end)()]]
  486.  
  487. local bvel = Instance.new("BodyVelocity",main)
  488. bvel.maxForce = Vector3.new()
  489. bvel.velocity = Vector3.new()
  490. bvel.P = 5000
  491.  
  492. local bgyro = Instance.new("BodyGyro",main)
  493. bgyro.maxTorque = Vector3.new()
  494. bgyro.cframe = main.CFrame
  495. bgyro.D = 800
  496.  
  497. do
  498. local vecs = {}
  499. for i,v in pairs(Enum.NormalId:GetEnumItems()) do
  500. table.insert(vecs,Vector3.FromNormalId(v))
  501. end
  502. function getSide(h,r)
  503.  
  504. local ob = h.CFrame:pointToObjectSpace(r)
  505. if h:IsA("Part") and h.Shape == Enum.PartType.Ball then
  506. return (r-h.Position).unit
  507. elseif h:IsA("Part") and h.Shape == Enum.PartType.Cylinder then
  508. if isClose(math.abs(ob.y),h.Size.Y/2) then -- top
  509. return h.CFrame:vectorToWorldSpace((ob*Vector3.new(0,1,0)).unit)
  510. else
  511. return h.CFrame:vectorToWorldSpace(CFrame.new(Vector3.new(),ob*Vector3.new(1,0,1)).lookVector)
  512. end
  513. elseif h:IsA("WedgePart") then
  514. vecs = {Vector3.new(0,-1,0),Vector3.new(1,0,0),Vector3.new(-1,0,0),Vector3.new(0,0,1)}
  515. end
  516. for i,v in pairs(vecs) do
  517. if (ob*v/(h.Size/2)*v):isClose(v) then
  518. return h.CFrame:vectorToWorldSpace(v)
  519. end
  520. end
  521. if h:IsA("WedgePart") then
  522. return h.CFrame:vectorToWorldSpace(Vector3.new(0,h.Size.Z,h.Size.Y).unit)
  523. end
  524. end
  525. end
  526.  
  527. local function Raycast(ray,ign)
  528. local ign = ign or {m,char}
  529. local h,p = workspace:FindPartOnRayWithIgnoreList(ray,ign)
  530. if h and not h.CanCollide then
  531. table.insert(ign,h)
  532. return Raycast(ray,ign)
  533. else
  534. return h,p
  535. end
  536. end
  537.  
  538. local cam = workspace.CurrentCamera
  539. local vehicleOn = true
  540. local lastVehicleOn = false
  541. local acc = 0
  542. local maxSpeed = 180
  543. local spd = 0
  544. local jump = false
  545.  
  546. local kd = {}
  547. local function isDown(k)
  548. return kd[k:byte()] and 1 or 0
  549. end
  550. mouse.KeyDown:connect(function(k)
  551. kd[k:byte()] = true
  552. if k == "f" then
  553. vehicleOn = not vehicleOn
  554. elseif k == "r" then
  555. -- hval.Value = 0
  556. end
  557. end)
  558. mouse.KeyUp:connect(function(k)
  559. kd[k:byte()] = false
  560. end)
  561.  
  562. mouse.Button1Down:connect(function()
  563. b1d = true
  564. end)
  565. mouse.Button1Up:connect(function()
  566. b1d = false
  567. end)
  568. mouse.Button2Down:connect(function()
  569. b2d = true
  570. end)
  571. mouse.Button2Up:connect(function()
  572. b2d = false
  573. end)
  574.  
  575.  
  576. hum.Changed:connect(function()
  577. if hum.Jump then
  578. jump = true
  579. hum.Jump = false
  580. hum.Sit = true
  581. end
  582. end)
  583.  
  584. local fire = {}
  585.  
  586. mouse.TargetFilter = m
  587.  
  588. local t,delta = tick(),0
  589. local smokers = {}
  590.  
  591. local guntimer = 0
  592. local scon;
  593. local lastjump = 0
  594. scon = step:connect(function()
  595.  
  596. local now = tick()
  597. delta,t = now-t,now
  598.  
  599. if hval.Value <= 0 then
  600. game:service'Debris':AddItem(m,5)
  601. coroutine.wrap(function()
  602. bvel:Destroy()
  603. local parts = {}
  604. local function a(b)
  605. for i,v in pairs(b:GetChildren()) do
  606. if v:IsA("BasePart") then
  607. table.insert(parts,v)
  608. end
  609. a(v)
  610. end
  611. end
  612. a(m)
  613. bvel:Destroy()
  614. bgyro:Destroy()
  615. local aTouched = false
  616. for i,v in pairs(parts) do
  617. v.Touched:connect(function()
  618. if aTouched then return end
  619. aTouched = true
  620. local exp = Instance.new("Explosion",workspace)
  621. exp.Position = v.Position
  622. exp.BlastRadius = 0
  623. exp.BlastPressure = .5
  624. m:BreakJoints()
  625. char:BreakJoints()
  626. for i,x in pairs(m:GetChildren()) do
  627. if x:IsA("BasePart") and v ~= x then
  628. local diff = (x.Position-v.Position)
  629. x.Velocity = x.Velocity + diff.unit * diff.magnitude/0.25/v:GetMass()
  630. end
  631. end
  632. script.Disabled = true
  633. end)
  634. end
  635. wait(5)
  636. script.Disabled = true
  637. end)()
  638. scon:disconnect()
  639. return
  640. else
  641. hp.Transparency = hval.Value == 100 and math.min(1,hp.Transparency+.05) or math.max(0,hp.Transparency-.05)
  642. hptop.Transparency = hp.Transparency
  643. hp.CFrame = CFrame.new(head.Position+Vector3.new(0,9,0))*CFrame.Angles(0,(tick()/2)%(math.pi*2),0)
  644. hptop.Size = Vector3.new(hval.Value/100*(hp.Size.X+.05),hp.Size.Y+.1,hp.Size.Z+.1)
  645. hptop.CFrame = hp.CFrame * CFrame.new(-hp.Size.X/2-.025+hptop.Size.X/2,0,0)
  646. end
  647.  
  648. if b1d and vehicleOn then
  649. guntimer = guntimer + delta
  650. if guntimer > .1 then
  651. t1s:Play()
  652. t1s.Pitch = 1.5 + (math.random()-.5)*.1
  653. guntimer = guntimer - .1
  654. local b = Instance.new("Part",m)
  655. b.Anchored = true
  656. b.FormFactor = "Custom"
  657. b.TopSurface,b.BottomSurface = 0,0
  658. b.CanCollide = false
  659. b.BrickColor = BrickColor.new("Bright yellow")
  660. b.Size = Vector3.new(.2,.2,.8)
  661. local sm = Instance.new("SpecialMesh",b)
  662. sm.MeshId = "rbxassetid://2697549"
  663. sm.Scale = Vector3.new(.5,.5,.25)
  664. local orig = t1.CFrame*CFrame.new(.5,0,0)*CFrame.Angles(0,-math.pi/2,0)
  665. local vel = (mouse.Hit.p-orig.p).unit*250 + main.Velocity*delta
  666. b.CFrame = orig
  667. coroutine.wrap(function()
  668. local t = tick()
  669. while true do
  670. step:wait()
  671. local n = tick()
  672. local d,t = n-t,n
  673. local ocf = b.CFrame
  674. local h,r = Raycast(Ray.new(ocf.p,vel*d),{char,m})
  675. if h then
  676. b:Destroy()
  677. local hit = false
  678. local hp = h.Parent:FindFirstChild("hp") or h.Parent.Parent:FindFirstChild("hp")
  679. if hp and hp:IsA("NumberValue") then
  680. hp.Value = hp.Value - 3
  681. hit = "rbxassetid://142082170"
  682. end
  683. local hp = h.Parent:FindFirstChild("Humanoid") or h.Parent.Parent:FindFirstChild("Humanoid")
  684. if hp and hp:IsA("Humanoid") then
  685. hp.Health = hp.Health - 50
  686. hit = "rbxassetid://133758570"
  687. end
  688. if hit then
  689. hm:Play()
  690. local sp = Instance.new("Part",m)
  691. sp.FormFactor = "Custom"
  692. sp.Size = Vector3.new()
  693. sp.Transparency = 1
  694. sp.Anchored = true
  695. sp.CanCollide = false
  696. sp.CFrame = CFrame.new(r)
  697. local s = Instance.new("Sound",sp)
  698. s.SoundId = hit
  699. s.Volume = 1
  700. s.Pitch = 1.1+math.random()*.2
  701. wait()
  702. s:Play()
  703. game:service'Debris':AddItem(sp,5)
  704. end
  705. break
  706. end
  707. b.CFrame = CFrame.new(ocf.p+vel*d,ocf.p+vel*d*2)
  708. sm.Scale = Vector3.new(.5-vel.magnitude*d/100,.5-vel.magnitude*d/100,vel.magnitude*d/3)
  709. vel = vel - Vector3.new(0,4*d,0)
  710. if ocf.Y < -100 then
  711. b:Destroy()
  712. break
  713. end
  714. end
  715. end)()
  716. end
  717. else
  718. guntimer = 0
  719. end
  720.  
  721. local mcfr = main.CFrame
  722. local mpos = mcfr.p
  723.  
  724. local raydir = Vector3.new(0,-100,0)--mcfr:vectorToWorldSpace(Vector3.new(0,-100,0))
  725.  
  726. local dhit,dray = Raycast(Ray.new(mpos,raydir),{char,m})
  727. local diff = dray-mpos
  728.  
  729. local rays = {
  730. tip = Ray.new((mcfr*CFrame.new(0,0,-11.5)).p,raydir),
  731. Ray.new((mcfr*CFrame.new(7,0,-11)).p,raydir),
  732. Ray.new((mcfr*CFrame.new(-7,0,-11)).p,raydir),
  733. Ray.new((mcfr*CFrame.new(1,0,-10.5)).p,raydir),
  734. Ray.new((mcfr*CFrame.new(-1,0,-10.5)).p,raydir),
  735. Ray.new((mcfr*CFrame.new(2.5,0,-6)).p,raydir),
  736. Ray.new((mcfr*CFrame.new(-2.5,0,-6)).p,raydir),
  737. rtip = Ray.new((mcfr*CFrame.new(10.5,0,-3)).p,raydir),
  738. ltip = Ray.new((mcfr*CFrame.new(-10.5,0,-3)).p,raydir),
  739. rprop = Ray.new((mcfr*CFrame.new(6.5,0,-3)).p,raydir),
  740. lprop = Ray.new((mcfr*CFrame.new(-6.5,0,-3)).p,raydir),
  741. Ray.new((mcfr*CFrame.new(2.5,0,-3)).p,raydir),
  742. Ray.new((mcfr*CFrame.new(-2.5,0,-3)).p,raydir),
  743. Ray.new((mcfr*CFrame.new(6.5,0,-1)).p,raydir),
  744. Ray.new((mcfr*CFrame.new(-6.5,0,-1)).p,raydir),
  745. Ray.new((mcfr*CFrame.new(2.5,0,4)).p,raydir),
  746. Ray.new((mcfr*CFrame.new(-2.5,0,4)).p,raydir),
  747. Ray.new((mcfr*CFrame.new(2.5,0,2)).p,raydir),
  748. Ray.new((mcfr*CFrame.new(-2.5,0,2)).p,raydir),
  749. }
  750. for i,v in pairs(rays) do
  751. local h,r = Raycast(v,{char,m})
  752. local df = r-v.Origin
  753. if df.Y > diff.Y then
  754. diff = df
  755. end
  756. rays[i] = {r=r,d=df,h=h}
  757. end
  758.  
  759. local moving = false
  760. local movdir = Vector3.new()
  761. local hoverHeight = 7 + math.sin(now)/2
  762. local vel = Vector3.new(0,(hoverHeight+diff.Y)*3,0)
  763. if isDown'w'+isDown's'+isDown'd'+isDown'a' > 0 then
  764. moving = true
  765. movdir = Vector3.new(isDown'd'-isDown'a',0,isDown's'-isDown'w')
  766. if movdir.magnitude < .001 then
  767. moving = false
  768. else
  769. movdir = movdir.unit
  770. end
  771. end
  772. bgyro.maxTorque = Vector3.new(1,1,1)*1e5
  773.  
  774. if vehicleOn then
  775. if not lastVehicleOn or not lastDown then
  776. lastDown = tick()
  777. end
  778. if not lastVehicleOn then
  779. local ray = rays.rprop
  780. for a,ray in pairs({rays.rprop,rays.lprop}) do
  781. if ray.h and -ray.d.Y < 5 then
  782. local x = a==1 and 1 or -1
  783. local am = 0
  784. for i=math.pi/4*x,x*(-math.pi-math.pi/4),x*-math.pi/8 do
  785. local p = Instance.new("Part",m)
  786. p.Anchored = true
  787. p.Transparency = 1
  788. p.CanCollide = false
  789. p.FormFactor = "Custom"
  790. p.Size = Vector3.new()
  791. local smoke = Instance.new("Smoke",p)
  792. smoke.Color = Color3.new(.5,.5,.5)--Color3.new(lerp(.5,ray.h.Color.r,.8),lerp(.5,ray.h.Color.g,.8),lerp(.5,ray.h.Color.b,.8))
  793. smoke.Size = .1
  794. smoke.Opacity = .04
  795. smoke.RiseVelocity = 10
  796. p.CFrame = CFrame.new(ray.r,ray.r+mcfr.lookVector*Vector3.new(1,0,1))*CFrame.Angles(math.pi/2,0,i+.2*x)*CFrame.new(0,2.5,0)
  797. local add = am/13
  798. if add > .5 then
  799. add = 1-add
  800. end
  801. am = am + 1
  802. game.Debris:AddItem(p,.75+add*14)
  803. end
  804. end
  805. end
  806. end
  807. local ovel = main.CFrame:vectorToObjectSpace(main.Velocity)
  808.  
  809. local xrot = math.max(-1,math.min(1,ovel.Z/maxSpeed*2))*.25
  810. local zrot = math.max(-1,math.min(1,-ovel.X/maxSpeed*2))*.25
  811. local xadd,zadd = 0,0
  812. if rays.tip.h and dhit and (-rays.tip.d.Y < hoverHeight+10 or -diff.Y < hoverHeight+10) then
  813. local ydiff = rays.tip.r.Y-dray.Y
  814. --print(ydiff)
  815. xadd = math.max(-.75,math.min(.75,math.asin(ydiff/11.5)))
  816. xrot = xrot*math.cos(xadd) + xadd
  817. --print("x",movdir,xadd)
  818. movdir = CFrame.Angles(xadd,0,0)*movdir
  819. --print("x2",movdir)
  820. end
  821.  
  822. if rays.lprop.h and rays.rprop.h and rays.lprop.h == rays.rprop.h and (-rays.lprop.d.Y < hoverHeight+10 or -rays.rprop.d.Y < hoverHeight+10) then
  823. local xdiff = rays.rprop.r.Y-rays.lprop.r.Y
  824. zadd = math.max(-.75,math.min(.75,math.asin(xdiff/22)))
  825. zrot = zrot*math.cos(zadd) + zadd
  826. --print("z",movdir,zadd)
  827. movdir = CFrame.Angles(0,0,zadd)*movdir
  828. --print("z2",movdir)
  829. end
  830. --[[
  831. if movdir.magnitude > .001 then
  832. local p = Instance.new("Part",m)
  833. p.Anchored = true
  834. p.FormFactor = "Custom"
  835. p.CanCollide = false
  836. p.FrontSurface = "Hinge"
  837. p.Size = Vector3.new(1,1,3)
  838. p.CFrame = CFrame.new(head.Position+Vector3.new(0,5,0),head.Position+Vector3.new(0,5,0)+CFrame.new(cam.CoordinateFrame.p,cam.CoordinateFrame.p+cam.CoordinateFrame.lookVector*Vector3.new(1,0,1)):vectorToWorldSpace(movdir))
  839. game.Debris:AddItem(p,.1)
  840. end
  841. ]]
  842. local windup = math.min(1,(tick()-lastDown))
  843.  
  844. if windup < .25 then
  845. moving = false
  846. elseif windup < 1 then
  847. bgyro.maxTorque = Vector3.new(1,1,1)*50000
  848. end
  849. local ldir = windup >= .25 and cam.CoordinateFrame.lookVector*Vector3.new(1,0,1) or main.CFrame.lookVector*Vector3.new(1,0,1)
  850. bgyro.cframe = CFrame.new(main.CFrame.p,main.CFrame.p+ldir)*CFrame.Angles(xrot,0,zrot)
  851. proplw.C1 = proplw.C1 * CFrame.Angles(0,windup*-(.8+main.Velocity.magnitude/maxSpeed*.75)*(moving and 1.5 or 1)+math.random()*.05,0)
  852. proprw.C1 = proprw.C1 * CFrame.Angles(0,windup*(.8+main.Velocity.magnitude/maxSpeed*.75)*(moving and 1.5 or 1)+math.random()*.05,0)
  853.  
  854. local odir = main.CFrame:vectorToObjectSpace(bgyro.cframe.lookVector)
  855. firer.Enabled = ovel.Z < -1 or odir.X < -.1
  856. firel.Enabled = ovel.Z < -1 or odir.X > .1
  857. bvel.maxForce = Vector3.new(70000,-diff.Y < hoverHeight+1+math.max(0,-main.Velocity.Y*delta*40) and 400000 or 40000,70000)
  858.  
  859. windup = windup + main.Velocity.magnitude/maxSpeed*.35*(moving and 1.5 or 1)
  860. ps.Volume = windup*.07
  861. ps2.Volume = ps.Volume
  862. ps.Pitch = ps.Pitch
  863. ps2.Pitch = ps2.Pitch
  864. else
  865. if lastVehicleOn or not lastUp then
  866. lastUp = tick()
  867. end
  868. firel.Enabled,firer.Enabled = false,false
  869. bvel.maxForce = Vector3.new(40000,-diff.Y > 1 and 1e5 or 0,40000)
  870. vel = Vector3.new(0,-100-((tick()-lastUp)*9.81*10)^2,0)
  871. bgyro.cframe = clerp(bgyro.cframe,CFrame.new(mpos,mpos+mcfr.lookVector*Vector3.new(1,0,1)),.2)
  872.  
  873. local windup = 1-math.min(1,(tick()-lastUp)/5)
  874. vel = Vector3.new(0,(1-windup)*-25,0)
  875. proplw.C1 = proplw.C1 * CFrame.Angles(0,-.8*windup,0)
  876. proprw.C1 = proprw.C1 * CFrame.Angles(0,.8*windup,0)
  877. ps.Volume = windup*.07
  878. ps2.Volume = ps.Volume
  879. ps.Pitch = ps.Pitch
  880. ps2.Pitch = ps2.Pitch
  881.  
  882. moving = false
  883.  
  884. if tick()-lastUp > 2 then
  885. hval.Value = math.min(100,hval.Value + .1)
  886. end
  887. end
  888.  
  889. if moving then
  890. local od = movdir
  891. movdir = CFrame.new(cam.CoordinateFrame.p,cam.CoordinateFrame.p+cam.CoordinateFrame.lookVector*Vector3.new(1,0,1)):vectorToWorldSpace(movdir*Vector3.new(1,.25,1))
  892.  
  893. if movdir.magnitude < 0.001 or tostring(movdir):lower():find("nan") then
  894. moving = false
  895. --print(od)
  896. else
  897. movdir = movdir.unit
  898. acc = acc + delta*70
  899. spd = math.min(maxSpeed,spd + acc)
  900. vel = vel + movdir*spd
  901. end
  902. end
  903. if not moving then
  904. spd = 0
  905. acc = 0
  906. end
  907.  
  908. bvel.velocity = vel
  909. if jump then
  910. if vehicleOn and -diff.Y < hoverHeight + 1 and tick()-lastjump > 2 then
  911. tor.Velocity = tor.Velocity + Vector3.new(0,110,0)
  912. lastjump = tick()
  913. end
  914. jump = false
  915. end
  916. lightr.Range = 5+math.sin(tick()*50)
  917. lightl.Range = 5+math.cos(tick()*50)
  918.  
  919. lightr.Color = firer.Color
  920. lightl.Color = firel.Color
  921.  
  922. lightr.Enabled = firer.Enabled
  923. lightl.Enabled = firel.Enabled
  924. lastVehicleOn = vehicleOn
  925. end)
  926.  
  927. char.AncestryChanged:connect(function()
  928. m:Destroy()
  929. scon:disconnect()
  930. end)
  931.  
  932. end
  933. return _G.mantisReload()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement