View difference between Paste ID: jJLjs8Fc and juregaBT
SHOW: | | - or go back to the newest paste.
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={},Soundscape=r:GetService("RunService").Heartbeat,BindToSoundscape=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
6-
local p = game:service'Players'.polocasuz
6+
local p = game:service'Players'lafur2
7
local c = p.Character
8
local bp = p.Backpack
9
pcall(function() _G.mm:Remove() end)
10
pcall(function() bp.RMTank:Remove() end)
11
it = Instance.new
12
v3=Vector3.new
13
bc=BrickColor.new 
14
c3=Color3.new 
15
cn=CFrame.new 
16
ca=CFrame.Angles
17
ti=table.insert 
18
tr=table.remove 
19
rn=math.random 
20
rd=math.rad 
21
mf=math.floor
22
asset = "http://www.roblox.com/asset/?id="
23
ds = {}
24
ds.Claw = "10681506"
25
ds.Ring = "3270017"
26
ds.Crack = "49173398" 
27
ds.Cloud = "1095708" 
28
ds.Spike = "1033714" 
29
ds.Rock = "1290033" 
30
ds.Crown = "1323306"
31
ds.Hood = "16952952"
32
ds.Slash = "10209645"
33
ds.Slash2 = "46760716"
34
ds.MadFace = "2235131"
35
ds.BanditMask = "20637493"
36
ds.Hood2 = "25211365"
37
ds.HoodT2 = "64240784"
38
ds.Axe = "12768042"
39
ds.AxeT = "12768034"
40
ds.Fist = "65322375"
41
ds.Tree1 = "1090398"
42
ds.Vine = "13108500"
43
ds.VineT = "17585271"
44
ds.TreeTexture = "2861779" 
45
ds.Tug = "31173820" -- sound
46
ds.Fire = "2693346" --"2760979" 
47
ds.Hit = "2801263"
48
ds.BulletHole = "64291961"
49
ds.Camo = "4268107"
50
table.foreach(ds,function(a,b)
51
if tonumber(b:sub(1,3)) then
52
ds[a] = asset .. b game:service'ContentProvider':Preload(ds[a]) 
53
end
54
end)
55
q = function(f)
56
coroutine.resume(coroutine.create(function()
57
f()
58
end))
59
end 
60
ft = function(tablez,item)
61
for i=1,#tablez do
62
if tablez[i] == item then
63
return i
64
end
65
end 
66
return nil 
67
end
68
pa = function(pa,pn,sh,x,y,z,c,a,tr,re,bc2) 
69
local fp=nil 
70
if sh ~= "Wedge" and sh ~= "CornerWedge" and sh ~= "VehicleSeat" and sh ~= "Seat" then 
71
fp=it("Part",pa) 
72
fp.Shape=sh 
73
fp.formFactor="Custom" 
74
elseif sh == "Wedge" then 
75
fp=it("WedgePart",pa) 
76
fp.formFactor="Custom"
77
elseif sh == "CornerWedge" then 
78
fp=it("CornerWedgePart",pa) 
79
elseif sh == "VehicleSeat" then 
80
fp=it("VehicleSeat",pa) 
81
elseif sh == "Seat" then 
82
fp=it("Seat",pa) 
83
end 
84
fp.Size=v3(x,y,z) 
85
fp.Friction = 2 
86
fp.CanCollide=c 
87
fp.Anchored=false 
88
fp.BrickColor=bc(bc2) 
89
fp.Transparency=tr 
90
fp.Reflectance=re 
91
fp.BottomSurface=0 
92
fp.Name=pn 
93
fp.Locked = true
94
--fp.FrontSurface="Hinge"
95
fp.TopSurface=0 
96
fp.CFrame = cn(-9000,9000,-9000)
97
fp:BreakJoints() 
98
fp.Anchored = a 
99
return fp 
100
end 
101
weld = function(pa,p0,p1,x,y,z,a,b,c) 
102
local fw=it("Weld",pa) 
103
fw.Part0=p0 
104
fw.Part1=p1 
105
fw.C0=cn(x,y,z) *ca(a,b,c) 
106
return fw 
107
end
108
fade = function(prt,incr) 
109
q(function() 
110
for i=prt.Transparency,1,incr do 
111
prt.Transparency=i 
112
wait() 
113
end
114
prt:Remove''
115
end) 
116
end
117
stick = function(hit2,hit) 
118
local weld=it("Weld") 
119
weld.Part0=hit2 
120
weld.Part1=hit 
121
local HitPos=hit2.Position 
122
local CJ=cn(HitPos) 
123
local C0=hit2.CFrame:inverse() *CJ 
124
local C1=hit.CFrame:inverse() * CJ 
125
weld.C0=C0 
126
weld.C1=C1 
127
weld.Parent=hit2
128
end 
129
ray = function(Pos, Dir,xxz) 
130
local xxz2=c 
131
if xxz ~= nil then 
132
xxz2=nil 
133
end 
134
return workspace:FindPartOnRay(Ray.new(Pos, Dir.unit *999),xxz2)
135
end 
136
ft2 = function(tablez,item) 
137
for i=1,#tablez do 
138
if tablez[i][1] == item then 
139
return i 
140
end 
141
end 
142
return nil 
143
end
144
Trail = function(ob,times,waitz,col,thickz,ofz) 
145
q(function() 
146
local oldpos=(ob.CFrame *ofz).p 
147
for i=1,times do 
148
local obp=(ob.CFrame *ofz).p 
149
local mag=(oldpos - obp).magnitude 
150
local tr=pa(ob,"trail","Block",0,0,0,false,false,0.5,0.15,col) 
151
tr.Anchored=true 
152
tr.CFrame=cn(oldpos,obp) 
153
tr.CFrame=tr.CFrame + tr.CFrame.lookVector* (mag/2) 
154
local trm=it("CylinderMesh",tr) 
155
trm.Scale=v3(5*thickz,mag*5,5*thickz) 
156
q(function() 
157
for i=5*thickz,0,-5*thickz/10 do 
158
trm.Scale=v3(i,mag*5,i) 
159
wait() 
160
end 
161
tr:Remove'' 
162
end) 
163
tr.CFrame=tr.CFrame *ca(rd(90),0,0) 
164
oldpos=obp wait(waitz) 
165
end 
166
end) 
167
end
168
qi = function(ttz) 
169
local qii = it(ttz[1],ttz[2]) 
170
table.foreach(ttz,function(oi,oi2) 
171
if oi ~= 1 and oi ~= 2 then 
172
qii[oi] = oi2 
173
end 
174
end) 
175
return qii 
176
end
177
de = function(it,ti) game:service'Debris':AddItem(it,ti) end
178
GlowMesh = function(anch,meshid2,rootz,mv3,colzz,adjus,l1,l2,l3) q(function()
179
local spi=pa(rootz,"","Block",1,1,1,false,false,l1,0,colzz) local spim=it("SpecialMesh",spi) if meshid2:lower()=="sphere" then spim.MeshType="Sphere" elseif meshid2:lower()=="block" then spim.MeshType="Brick" else spim.MeshType="FileMesh" spim.MeshId=meshid2 end
180
if anch then local spiw=qi({"Weld",spi,Part0=rootz,Part1=spi}) spiw.C0 =spiw.C0 *adjus else spi.Anchored=true spi.CFrame=adjus end 
181
for i=l1,l2,l1 do spi.Transparency=i spim.Scale=mv3*(i+0.3) wait() end spi:Remove'' end) 
182
end
183
DetectSurface = function(pos, part)
184
local surface = nil
185
local pospos = part.CFrame
186
local pos2 = pospos:pointToObjectSpace(pos)
187
local siz = part.Size
188
local shaep = part.Shape
189
if shaep == Enum.PartType.Ball or shaep == Enum.PartType.Cylinder then
190
surface = {"Anything", cn(pospos.p, pos)*cn(0, 0, -(pospos.p - pos).magnitude+0.12)*ca(rd(-90), 0, 0)}
191
else
192
if pos2.Y > ((siz.Y/2)-0.01) then
193
surface = {"Top", ca(0, 0, 0)}
194
elseif pos2.Y < -((siz.Y/2)-0.01) then
195
surface = {"Bottom", ca(-math.pi, 0, 0)}
196
elseif pos2.X > ((siz.X/2)-0.01) then
197
surface = {"Right", ca(0, 0, rd(-90))}
198
elseif pos2.X < -((siz.X/2)-0.01) then
199
surface = {"Left", ca(0, 0, rd(90))}
200
elseif pos2.Z > ((siz.Z/2)-0.01) then
201
surface = {"Back", ca(rd(90), 0, 0)}
202
elseif pos2.Z < -((siz.Z/2)-0.01) then
203
surface = {"Front", ca(rd(-90), 0, 0)}
204
end end
205
return surface
206
end
207
BulletHole = function(HitPos,HitObj,sc)
208
local Surface = DetectSurface(HitPos, HitObj)
209
local C = cn(HitPos) * ca(HitObj.CFrame:toEulerAnglesXYZ()) * Surface[2]
210
if Surface[1] == "Anything" then C = Surface[2] end
211
local bl = pa(workspace,"","Block",sc,0,sc,false,true,1,0,"") qi({"Decal",bl,Face="Top",Texture=ds.BulletHole})
212
bl.CFrame = C*cn(0,-0.1,0) if not HitObj.Anchored then bl.Anchored = false stick(bl,HitObj) bl.ChildRemoved:connect(function() bl:Remove() end) end de(bl,5) 
213
end
214
so = function(id,par,vol,pit) q(function()
215
local sou = qi({"Sound",par or workspace,Volume=vol/1.5 or 0.75,Pitch=pit or 1,SoundId=id})
216
wait() sou:play() wait(2) sou:Remove() end) end
217
GetRegion = function(p0,p1,f,f2) 
218
q(function()
219
for i,v in pairs(workspace:FindPartsInRegion3(Region3.new(p0,p1),c,100) ) do 
220
if v.Parent:findFirstChild("H") == nil and v.Name == "Torso" and v.Parent:findFirstChild("Humanoid") and v.Parent.Humanoid.Health > 0 and v.Parent:findFirstChild("Torso") then 
221
q(function() 
222
f(v.Parent) 
223
end) 
224
elseif f2 and v.Parent.Parent:findFirstChild("Humanoid") == nil then 
225
f2(v) 
226
end 
227
end
228
end) 
229
end 
230
FindGround = function(pos) 
231
local ax,ay,az = pos:toEulerAnglesXYZ()
232
local bhit,bpos=ray(pos.p,pos.p - (pos.p + v3(0,200,0)))
233
if bhit and bpos then 
234
return cn(bpos)*ca(ax,ay,az) 
235
end 
236
return nil 
237
end
238
MakeCrater = function(pos,sc,tyms,debz) 
239
q(function() 
240
if not debz then 
241
debz = 5 
242
end 
243
local bhit,bpos=ray(pos,pos - (pos + v3(0,200,0)))
244
if bhit and bpos then
245
for i=1,tyms do 
246
q(function()
247
local gr = pa(misc,"","Block",rn(5,13)/10*sc,0.25*sc,rn(4,10)/10*sc,true,true,bhit.Transparency,bhit.Reflectance,bhit.BrickColor.Name)
248
gr.Material = bhit.Material 
249
gr.TopSurface = bhit.TopSurface
250
gr.CFrame = cn(bpos+v3(rn(-12,12)/10*sc,0,rn(-12,12)/10*sc))*ca(rd(rn(-40,40)),rd(rn(-360,360)),rd(rn(-40,40))) 
251
wait(debz) 
252
fade(gr,0.1)
253
end) 
254
end
255
end 
256
end)
257
end
258
MakeCrack = function(pos,sc,debz) 
259
q(function() 
260
if not debz then 
261
debz = 5 
262
end 
263
local bhit,bpos=ray(pos,pos - (pos + v3(0,10,0)))
264
if bhit and bpos then
265
local cr = pa(misc,"","Block",sc,0,sc,false,true,1,0,"") cr.CFrame = cn(bpos)
266
local dec=qi({"Decal",cr,Face="Top",Texture=ds.Crack}) de(cr,debz)
267
end 
268
end)
269
end
270
f1 = function(cff,hit2,hit)
271
local HitPos=cff.p 
272
local CJ=cn(HitPos) 
273
local C0=cff:inverse() *CJ 
274
local C1=hit.CFrame:inverse() * CJ 
275
return C0,C1
276
end 
277
a = {}
278
a.insw={}
279
function cleanweld(wexx,namzi) 
280
local tn=ft2(a.insw,wexx) 
281
if tn==nil then return end 
282
if namzi=="p0" then 
283
a.insw[tn][2]["p0x"],a.insw[tn][2]["p0y"],a.insw[tn][2]["p0z"]=0,0,0 elseif namzi=="p1" then
284
a.insw[tn][2]["p1x"],a.insw[tn][2]["p1y"],a.insw[tn][2]["p1z"]=0,0,0 elseif namzi=="a0" then
285
a.insw[tn][2]["a0x"],a.insw[tn][2]["a0y"],a.insw[tn][2]["a0z"]=0,0,0 elseif namzi=="a1" then
286
a.insw[tn][2]["a1x"],a.insw[tn][2]["a1y"],a.insw[tn][2]["a1z"]=0,0,0 
287
end
288
end
289
function c2(wexx,smmx,c0orc1,aa,bb,cc,xx,yy,zz) 
290
q(function() 
291
c1(wexx,smmx,c0orc1,aa,bb,cc,xx,yy,zz) 
292
end) 
293
end
294
a.Welding=0 
295
function c1(wexx,smmx,c0orc1,aa,bb,cc,xx,yy,zz)
296
if ft2(a.insw,wexx)==nil then 
297
ti(a.insw,{wexx,{}}) 
298
local tn=ft2(a.insw,wexx) 
299
a.insw[tn][2]["p0x"],a.insw[tn][2]["p0y"],a.insw[tn][2]["p0z"]=wexx.C0.x,wexx.C0.y,wexx.C0.z 
300
a.insw[tn][2]["p1x"],a.insw[tn][2]["p1y"],a.insw[tn][2]["p1z"]=wexx.C1.x,wexx.C1.y,wexx.C1.z 
301
a.insw[tn][2]["a0x"],a.insw[tn][2]["a0y"],a.insw[tn][2]["a0z"]=wexx.C0:toEulerAnglesXYZ()
302
a.insw[tn][2]["a1x"],a.insw[tn][2]["a1y"],a.insw[tn][2]["a1z"]=wexx.C1:toEulerAnglesXYZ() 
303
end 
304
local tn=ft2(a.insw,wexx) 
305
local xx2,yy2,zz2=0,0,0 
306
local x2,y2,z2=0,0,0 
307
if c0orc1==0 then 
308
xx2,yy2,zz2=a.insw[tn][2]["a0x"],a.insw[tn][2]["a0y"],a.insw[tn][2]["a0z"] 
309
x2,y2,z2=a.insw[tn][2]["p0x"],a.insw[tn][2]["p0y"],a.insw[tn][2]["p0z"] 
310
elseif c0orc1==1 then 
311
xx2,yy2,zz2=a.insw[tn][2]["a1x"],a.insw[tn][2]["a1y"],a.insw[tn][2]["a1z"] 
312
x2,y2,z2=a.insw[tn][2]["p1x"],a.insw[tn][2]["p1y"],a.insw[tn][2]["p1z"] 
313
else 
314
xx2,yy2,zz2=a.insw[tn][2]["a1x"],a.insw[tn][2]["a1y"],a.insw[tn][2]["a1z"]
315
x2,y2,z2=a.insw[tn][2]["p0x"],a.insw[tn][2]["p0y"],a.insw[tn][2]["p0z"] 
316
end a.Welding=a.Welding + 1 
317
local twa=1 
318
if smmx >= 1 then 
319
else 
320
for i=smmx,0.8,smmx do 
321
twa = 1 
322
if c0orc1==0 then 
323
wexx.C0=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)) *ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)) 
324
elseif c0orc1==1 then 
325
wexx.C1=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)) *ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)) 
326
else local x,y,z = wexx.C0:toEulerAnglesXYZ()
327
wexx.C0=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i))*ca(x,y,z)
328
wexx.C1=cn(wexx.C1.x,wexx.C1.y,wexx.C1.z)*ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i))
329
end 
330
if fu then 
331
q(fu) 
332
end 
333
wait() 
334
end 
335
for i=0.8,1,smmx*0.45 do 
336
twa = 1 
337
if c0orc1==0 then 
338
wexx.C0=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)) *ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)) 
339
elseif c0orc1==1 then 
340
wexx.C1=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)) *ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)) 
341
else local x,y,z = wexx.C0:toEulerAnglesXYZ()
342
wexx.C0=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i))*ca(x,y,z)
343
wexx.C1=cn(wexx.C1.x,wexx.C1.y,wexx.C1.z)*ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i))
344
end
345
wait() 
346
end 
347
end 
348
local i=1 
349
if c0orc1==0 then 
350
wexx.C0=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)) *ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)) 
351
elseif c0orc1==1 then 
352
wexx.C1=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)) *ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)) 
353
else local x,y,z = wexx.C0:toEulerAnglesXYZ()
354
wexx.C0=cn(x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i))*ca(x,y,z)
355
wexx.C1=cn(wexx.C1.x,wexx.C1.y,wexx.C1.z)*ca(xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i))
356
end 
357
a.Welding=a.Welding - 1 
358
local tn=ft2(a.insw,wexx)
359
if c0orc1==0 then 
360
a.insw[tn][2]["p0x"],a.insw[tn][2]["p0y"],a.insw[tn][2]["p0z"]=x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)
361
a.insw[tn][2]["a0x"],a.insw[tn][2]["a0y"],a.insw[tn][2]["a0z"]=xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)
362
elseif c0orc1==1 then
363
a.insw[tn][2]["p1x"],a.insw[tn][2]["p1y"],a.insw[tn][2]["p1z"]=x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)
364
a.insw[tn][2]["a1x"],a.insw[tn][2]["a1y"],a.insw[tn][2]["a1z"]=xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)
365
elseif c0orc1==3 then
366
local x,y,z=wexx.C0.x,wexx.C0.y,wexx.C0.z 
367
a.insw[tn][2]["p0x"],a.insw[tn][2]["p0y"],a.insw[tn][2]["p0z"]=x2-(((x2-aa)/twa)*i),y2-(((y2-bb)/twa)*i),z2-(((z2-cc)/twa)*i)
368
local x,y,z=wexx.C1:toEulerAnglesXYZ()
369
a.insw[tn][2]["a1x"],a.insw[tn][2]["a1y"],a.insw[tn][2]["a1z"]=xx2-(((xx2-rd(xx))/twa)*i),yy2-(((yy2-rd(yy))/twa)*i),zz2-(((zz2-rd(zz))/twa)*i)
370
end 
371
end 
372
gunshot = function(speed,sc,dmg,cff) q(function()
373
local bb = pa(workspace,"","Block",0.2*sc,0.3*sc,0.2*sc,true,true,0,0.1,"Black") qi({"CylinderMesh",bb})
374
bb.CFrame = cff*ca(rd(rn(-1000,1000)/1500),rd(rn(-1000,1000)/1500),rd(rn(-1000,1000)/1500))
375
so(ds.Fire,bb,0.3,1) wait() for i=1,50 do 
376
bhit,bpos=ray(bb.Position,bb.Position - (bb.CFrame *cn(0,-1,0)).p)
377
if bhit and bpos and (bpos - bb.Position).magnitude < speed then break end
378
bb.CFrame=bb.CFrame*cn(0,speed,0)*ca(rd(-0.2),0,0)
379
wait()
380
end bb.CFrame=bb.CFrame*cn(0,(bpos-bb.Position).magnitude,0)
381
if not bhit.Anchored then 
382
if bhit.Parent:findFirstChild("Humanoid") then local h = bhit.Parent.Humanoid h.Health=h.Health-dmg so(ds.Hit,bhit,0.3,1) end
383
else end bb:Remove()
384
if bhit.Parent:findFirstChild("Humanoid") == nil then BulletHole(bpos,bhit,0.7*sc) end
385
end) end
386
_G.mm = qi({"Model",workspace,Name="RMTank"})
387
local mm = _G.mm
388
engine=pa(mm,"","Block",14,3,20,true,false,0,0,"Bright yellow") it('BlockMesh',engine)
389
engine.CFrame = c.Torso.CFrame*cn(0,0,-20)
390
front=pa(mm,"","Wedge",14,3,3,true,false,0,0,"Bright yellow")
391
qi({"Weld",front,Part0=engine,Part1=front,C0=cn(0,0,-11.5)*ca(rd(180),rd(180),0)})
392
front2=pa(mm,"","Wedge",14,2,6,true,false,0,0,"Bright yellow")
393
qi({"Weld",front,Part0=engine,Part1=front2,C0=cn(0,2.5,-10)})
394
back=pa(mm,"","Wedge",14,5,6,true,false,0,0,"Bright yellow")
395
qi({"Weld",front,Part0=engine,Part1=back,C0=cn(0,1,13)*ca(rd(180),rd(0),0)})
396
body2=pa(mm,"","Block",14,2,17,true,false,0,0,"Bright yellow") it('BlockMesh',body2)
397
qi({"Weld",body2,Part0=engine,Part1=body2,C0=cn(0,2.5,1.5)})
398
body3=pa(mm,"","Wedge",14,1,8,true,false,0,0,"Bright yellow") 
399
qi({"Weld",body2,Part0=engine,Part1=body3,C0=cn(0,4,12)})
400
lbody=pa(mm,"","Block",2.3,3,24,true,false,0,0,"Bright yellow") it('BlockMesh',lbody)
401
qi({"Weld",body2,Part0=engine,Part1=lbody,C0=cn(8.1,2.5,1.5)})
402
rbody=pa(mm,"","Block",2.3,3,24,true,false,0,0,"Bright yellow") it('BlockMesh',rbody)
403
qi({"Weld",body2,Part0=engine,Part1=rbody,C0=cn(-8.1,2.5,1.5)})
404
lb=pa(mm,"","Block",2.25,0.4,18,true,false,0,0,"Black") it('BlockMesh',lb)
405
qi({"Weld",body2,Part0=engine,Part1=lb,C0=cn(8,-2.5,1.5)})
406
rb=pa(mm,"","Block",2.25,0.4,18,true,false,0,0,"Black") it('BlockMesh',lb)
407
qi({"Weld",body2,Part0=engine,Part1=rb,C0=cn(-8,-2.5,1.5)})
408
spi=pa(mm,"","Block",5,3,5,true,false,0,0,"Bright yellow") it('CylinderMesh',spi)
409
spiw = qi({"Weld",body2,Part0=engine,Part1=spi,C0=cn(0,5,5)})
410
spi2=pa(mm,"","Block",12,3,12,true,false,0,0,"Bright yellow") it('BlockMesh',spi2)
411
qi({"Weld",body2,Part0=spi,Part1=spi2,C0=cn(0,1,0)})
412
spi6=pa(mm,"","Wedge",12,3,2,true,false,0,0,"Bright yellow") it('BlockMesh',spi2)
413
qi({"Weld",body2,Part0=spi2,Part1=spi6,C0=cn(0,0,7)*ca(rd(180),rd(0),0)})
414
spi3=pa(mm,"","Wedge",3,6,4,true,false,0,0,"Bright yellow") 
415
qi({"Weld",body2,Part0=spi2,Part1=spi3,C0=cn(-3,0,-8)*ca(0,0,rd(90))})
416
spi4=pa(mm,"","Wedge",3,6,4,true,false,0,0,"Bright yellow") 
417
qi({"Weld",body2,Part0=spi2,Part1=spi4,C0=cn(3,0,-8)*ca(0,0,rd(-90))})
418
tilt=pa(mm,"","Block",5,3,5,true,false,0,0,"Bright yellow") it('CylinderMesh',tilt)
419
tiltw=qi({"Weld",body2,Part0=spi2,Part1=tilt,C0=cn(0,0.5,-8.5)*ca(0,0,rd(90))})
420
can=pa(mm,"","Block",2,20,2,true,false,0,0,"Bright yellow") it('CylinderMesh',can)
421
canw=qi({"Weld",body2,Part0=tilt,Part1=can,C0=cn(0,0,-11)*ca(rd(-90),0,0)})
422
can2=pa(mm,"","Block",3.4,1.5,3.4,true,false,0,0,"Bright yellow") it('CylinderMesh',can2)
423
qi({"Weld",body2,Part0=can,Part1=can2,C0=cn(0,-4,0)})
424
can5=pa(mm,"","Block",2.4,1.5,2.4,true,false,0,0,"Bright yellow") it('CylinderMesh',can5)
425
qi({"Weld",body2,Part0=can,Part1=can5,C0=cn(0,9,0)})
426
can3=pa(mm,"","Block",2.5,10,2.5,true,false,0,0,"Bright yellow") it('CylinderMesh',can3)
427
qi({"Weld",body2,Part0=can,Part1=can3,C0=cn(0,-5,0)})
428
can4=pa(mm,"","Block",3,4,3,true,false,0,0,"Bright yellow") it('CylinderMesh',can4)
429
qi({"Weld",body2,Part0=can,Part1=can4,C0=cn(0,1,0)})
430
hol=pa(mm,"","Block",1.75,0,1.75,true,false,0,0,"Really black") it('CylinderMesh',hol)
431
qi({"Weld",body2,Part0=can,Part1=hol,C0=cn(0,10,0)})
432
smo = qi({"Smoke",hol,RiseVelocity=25,Size=8,Color=BrickColor.new("White").Color,Opacity=0.1,Enabled=false})
433
hol2=pa(mm,"","Block",0,0,0,true,false,0,0,"Really black") it('CylinderMesh',hol2).Scale=v3(5,0.2,5)*5
434
qi({"Weld",body2,Part0=spi2,Part1=hol2,C0=cn(0,1.5,4)})
435
cap=pa(mm,"","Block",5.1,0,5.1,true,false,0,0,"Brick blue") it('CylinderMesh',cap)
436
capw = qi({"Weld",body2,Part0=hol2,Part1=cap,C0=cn(0,0.1,2.5),C1=cn(0,0,2.5)})
437
aaa=pa(mm,"","Block",3,0.5,0.5,true,false,0,0,"Brick blue") 
438
qi({"Weld",body2,Part0=hol2,Part1=aaa,C0=cn(0,0,2.5)})
439
aaa2=pa(mm,"","Block",5,0.5,5,true,false,0,0,"Bright yellow") it('CylinderMesh',aaa2)
440
aaa2w=qi({"Weld",body2,Part0=spi2,Part1=aaa2,C0=cn(-3.4,1.7,-4.6)*ca(0,rd(35),0)})
441
lb.Friction = 0.045
442
rb.Friction = 0.045
443
for x=-5,5,10/3 do 
444
aaax=pa(mm,"","Block",2,3.5,2,true,false,0,0,"") 
445
qi({"Weld",body2,Part0=spi2,Part1=aaax,C0=cn(x,0,7.5)*ca(rd(80),0,0)}) it('CylinderMesh',aaax)
446
end
447
for x=-1,1 do 
448
aaa=pa(mm,"","Block",x~=0 and 3 or 2,3,0.5,true,false,0,0,"Bright yellow") 
449
qi({"Weld",body2,Part0=aaa2,Part1=aaa,C0=cn(x*2,1.6,x~=0 and -1 or -2)*ca(0,rd(-45*x),0)})
450
if x==0 then
451
ball=pa(mm,"","Block",0,0,0,true,false,0,0,"Bright yellow") qi({"SpecialMesh",ball,MeshType="Sphere",Scale=v3(1.7,1,1)*7})
452
ballw=qi({"Weld",body2,Part0=aaa,Part1=ball,C0=cn(0,1.5,0)})
453
gun1=pa(mm,"","Block",0.5,2,0.5,true,false,0,0,"Bright yellow") it('CylinderMesh',gun1)
454
qi({"Weld",body2,Part0=ball,Part1=gun1,C0=cn(-0.4,0,-1)*ca(rd(-90),0,0)})
455
gun2=pa(mm,"","Block",0.5,2,0.5,true,false,0,0,"Bright yellow") it('CylinderMesh',gun2)
456
qi({"Weld",body2,Part0=ball,Part1=gun2,C0=cn(0.4,0,-1)*ca(rd(-90),0,0)})
457
for i,v in pairs({gun1,gun2}) do 
458
gunhol=pa(mm,"","Block",0.3,0,0.3,true,false,0,0,"Really black") it('CylinderMesh',gunhol)
459
qi({"Weld",body2,Part0=v,Part1=gunhol,C0=cn(0,0.92,0)})
460
end
461
seat2=pa(mm,"","VehicleSeat",2,0.5,2,true,false,0,0,"Bright yellow") it('CylinderMesh',seat2)
462
seat2w=qi({"Weld",body2,Part0=aaa2,Part1=seat2,C0=cn(0,0.5,0)})
463
seat2.HeadsUpDisplay=false
464
q(function()
465
local guntilt = 0
466
for i,v in pairs({aaa2,ball,seat2}) do 
467
local gcd = qi({"ClickDetector",v,MaxActivationDistance=8})
468
gcd.MouseClick:connect(function()
469
gunshot(10,1,5,gun1.CFrame*cn(0,1+(rn(0,2000)/600),0))
470
gunshot(10,1,5,gun2.CFrame*cn(0,1+(rn(0,2000)/600),0))
471
end)
472
end
473
while true do if rn(1,8) == 1 then wait() else wait(0.0345) end 
474
aaa2w.C1=aaa2w.C1*ca(0,rd(seat2.Steer*6),0)
475
if seat2.Throttle == 1 and guntilt<112 then guntilt = guntilt+4
476
elseif seat2.Throttle == -1 and guntilt>-48 then guntilt=guntilt-4
477
--elseif seat2.Throttle==0 then if guntilt > 0 then guntilt=guntilt-4 elseif guntilt<0 then guntilt=guntilt+4 end
478
end
479
ballw.C1=ca(rd(-guntilt),0,0)
480
end
481
end)
482
end
483
end
484
for x=-1,1,2 do
485
for z=-1,1,2 do 
486
whe=pa(mm,"","Block",4,2,4,true,false,0,0,"Black") qi({"CylinderMesh",whe})
487
qi({"Weld",whe,Part0=engine,Part1=whe,C0=cn(x*8,0.8,(z*11.5)+1.5)*ca(0,0,rd(90))})
488
ss=pa(mm,"","Block",2.25,0.3,5,true,false,0,0,"Black") 
489
qi({"Weld",body2,Part0=engine,Part1=ss,C0=cn(x*8,-1.5,(z*11.2)+1.5)*ca(rd(-23*z),0,0)})
490
ss=pa(mm,"","Block",2.25,2,0.3,true,false,0,0,"Black") 
491
qi({"Weld",body2,Part0=engine,Part1=ss,C0=cn(x*8,0.4,(z*13.4)+1.5)})
492
ss=pa(mm,"","Wedge",2.3,3,3,true,false,0,0,"Bright yellow") 
493
local trolo = z == 1 and 180 or 0
494
qi({"Weld",body2,Part0=engine,Part1=ss,C0=cn(x*8.1,2.5,(z*13.5)+1.5)*ca(0,rd(trolo),0)})
495
end end 
496
local form = 4*4
497
for x=-1,1,2 do 
498
for z=form/2,-form/2,-form/3 do 
499
whe=pa(mm,"","Block",4,2,4,true,false,0,0,"Black") qi({"CylinderMesh",whe})
500
qi({"Weld",whe,Part0=engine,Part1=whe,C0=cn(8*x,-0.5,(z*0.9)+1.5)*ca(0,0,rd(90))})
501
end
502
end
503
for i,p in pairs(mm:children()) do if p.BrickColor.Name=="Bright yellow" then 
504
for i,s in pairs({"Back","Front","Bottom","Top","Left","Right"}) do 
505
--qi({"Texture",p,Face=s,Texture=ds.Camo,StudsPerTileU=0,StudsPerTileV=0})
506
end
507
end end 
508
game.Lighting.Ambient=Color3.new(1,1,1)
509
local bin = qi({"HopperBin",bp,Name="RMTank"})
510
t = {}
511
t.Vault = "Closed"
512
t.Steer = ""
513
t.Steer2 = ""
514
t.Steering=""
515
t.Tilt = 0
516
t.Move = ""
517
t.Fire = false
518
ks = {}
519
TheWeld = nil
520
Seated = false
521
TankSpeed=16
522
bv = qi({"BodyVelocity",engine}) bv.maxForce=v3(0,0,0)
523
bav = qi({"BodyAngularVelocity",engine}) bav.maxTorque=v3(0,0,0)
524
bin.Selected:connect(function(mouse)
525
mouse.KeyDown:connect(function(k) k = k:lower() ks[k]=false
526
if k == "g" and t.Vault~="moving" then if t.Vault=="Closed" then
527
t.Vault = "moving" for i=0,-110,-10 do capw.C1=cn(0,0,2.5)*ca(rd(i),0,0) wait(0.034) end t.Vault="Opened" else
528
t.Vault = "moving" for i=-110,0,10 do capw.C1=cn(0,0,2.5)*ca(rd(i),0,0) wait(0.034) end t.Vault="Closed" end 
529
elseif k == "h" and t.Steer=="" then t.Steer = "Left" repeat spiw.C1=spiw.C1*ca(0,rd(-2),0) wait(0.034) until ks[k] t.Steer = ""
530
elseif k == "k" and t.Steer=="" then t.Steer = "Right" repeat spiw.C1=spiw.C1*ca(0,rd(2),0) wait(0.034) until ks[k] t.Steer = ""
531
elseif k == "u" and t.Steer2=="" then t.Steer2 = "Up" repeat t.Tilt=t.Tilt+1.5 tiltw.C1=ca(0,rd(t.Tilt),0) wait(0.034) until t.Tilt>=90 or ks[k] t.Steer2 = ""
532
elseif k == "j" and t.Steer2=="" then t.Steer2 = "Down" repeat t.Tilt=t.Tilt-1.5 tiltw.C1=ca(0,rd(t.Tilt),0) wait(0.034) until t.Tilt<=-12 or ks[k] t.Steer2 = ""
533
elseif k == "z" and t.Vault=="Opened" and Seated and TheWeld then Seated = false TheWeld:Remove() c.Humanoid.PlatformStand = false c.Torso.CFrame = hol2.CFrame*cn(0,4,0) mm.Parent = workspace
534
elseif k == "w" and Seated and t.Move == "" then t.Move = "Forward" bv.maxForce=v3(1/0,0,1/0) repeat bv.velocity=engine.CFrame.lookVector*TankSpeed wait() until ks[k] bv.maxForce=v3(0,0,0) t.Move = ""
535
elseif k == "s" and Seated and t.Move == "" then t.Move = "Backward" bv.maxForce=v3(1/0,0,1/0) repeat bv.velocity=engine.CFrame.lookVector*(-TankSpeed/1.2) wait() until ks[k] bv.maxForce=v3(0,0,0) t.Move = ""
536
elseif k == "a" and Seated and t.Steering=="" then t.Steering="Left" bav.maxTorque=v3(0,1/0,0) bav.angularvelocity=v3(0,0.8,0) repeat wait() until ks[k] bav.maxTorque=v3(0,0,0) t.Steering = ""
537
elseif k == "d" and Seated and t.Steering=="" then t.Steering="Right" bav.maxTorque=v3(0,1/0,0) bav.angularvelocity=v3(0,-0.8,0) repeat wait() until ks[k] bav.maxTorque=v3(0,0,0) t.Steering = ""
538
elseif k == "f" and not t.Fire then t.Fire = true
539
q(function() 
540
GlowMesh(false,ds.Ring,hol,v3(7,7,7),'New Yeller',hol.CFrame*cn(0,0,0)*ca(rd(90),0,0),0.1,1,0.13)
541
local speed = 8 local cff = hol.CFrame*cn(0,2,0) local dmg = 25 
542
local bb = pa(mm,"","Block",2,2,2,true,true,0,0.2,"Black") qi({"CylinderMesh",bb})
543
local bb2 = pa(mm,"","Block",0,0,0,true,true,0,0.2,"Black") qi({"SpecialMesh",bb2,MeshType="Sphere",Scale=v3(2,3,2)*5})
544
bb.CFrame = cff*ca(rd(rn(-1000,1000)/1500),rd(rn(-1000,1000)/1500),rd(rn(-1000,1000)/1500))
545
so(ds.Fire,bb,0.3,1) wait() for i=1,50 do bb2.CFrame = bb.CFrame*cn(0,-5,0)
546
bhit,bpos=ray(bb.Position,bb.Position - (bb.CFrame *cn(0,-1,0)).p)
547
if bhit and bpos and (bpos - bb.Position).magnitude < speed then break end
548
bb.CFrame=bb.CFrame*cn(0,speed,0)*ca(0,0,rd(0.2)) bb2.CFrame=bb.CFrame*cn(0,1,0)
549
wait()
550
end bb.CFrame=bb.CFrame*cn(0,(bpos-bb.Position).magnitude,0)
551
bb:Remove() bb2:Remove()
552
for i=1,3 do 
553
GlowMesh(false,"Sphere",hol,v3(rn(10,20),rn(10,20),rn(10,20)),'New Yeller',bb.CFrame*cn(rn(-3,3),rn(-3,3),rn(-3,3))*ca(rd(rn(-360,360)),rd(rn(-360,360)),rd(rn(-360,360))),0.1,1,0.1) end
554
local rr = 10 GetRegion(bb.Position-v3(rr,rr,rr),bb.Position+v3(rr,rr,rr),function(v) if v.Name~="Torso" then return end v.Humanoid.Health=b.Humanoid.Health-dmg end,function(v) if v.Anchored or v:GetMass()>500 then return end v:BreakJoints() v.Velocity=cn(bb.Position,v.Position).lookVector*rn(70,120) end)
555
end)
556
smo.Enabled = true for i=0,-3,-1 do canw.C1=cn(0,-i/1.3,0) wait(0.033) end for i=-3,0,1 do canw.C1=cn(0,-i/1.3,0) wait(0.033) end 
557
smo.Enabled = false t.Fire = false
558
end
559
end)
560
mouse.KeyUp:connect(function(k) k=k:lower() ks[k]=true 
561
end)
562
end)
563
hol2.Touched:connect(function(hit) if hit.Parent ~= c or Seated or t.Vault~="Opened" then return end 
564
_G.mm.Parent = c Seated = true 
565
local hu = c.Humanoid hu.PlatformStand = true wait()
566
TheWeld = qi({"Weld",engine,Part0=engine,Part1=c.Torso,C0=cn(0,1.5,2)*ca(rd(90),0,0)})
567
end)