View difference between Paste ID: ktVYSi5d and k1BPHcRw
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,game,owner = owner,game
4
local RealPlayer = Player
5
do
6
	print("FE Compatibility code V2 by Mokiros")
7
	local RealPlayer = RealPlayer
8
	script.Parent = RealPlayer.Character
9
10
	--Fake event to make stuff like Mouse.KeyDown work
11
	local Disconnect_Function = function(this)
12
		this[1].Functions[this[2]] = nil
13
	end
14
	local Disconnect_Metatable = {__index={disconnect=Disconnect_Function,Disconnect=Disconnect_Function}}
15
	local FakeEvent_Metatable = {__index={
16
		Connect = function(this,f)
17
			local i = tostring(math.random(0,10000))
18
			while this.Functions[i] do
19
				i = tostring(math.random(0,10000))
20
			end
21
			this.Functions[i] = f
22
			return setmetatable({this,i},Disconnect_Metatable)
23
		end
24
	}}
25
	FakeEvent_Metatable.__index.connect = FakeEvent_Metatable.__index.Connect
26
	local function fakeEvent()
27
		return setmetatable({Functions={}},FakeEvent_Metatable)
28
	end
29
30
	--Creating fake input objects with fake variables
31
    local FakeMouse = {Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
32
    FakeMouse.keyUp = FakeMouse.KeyUp
33
    FakeMouse.keyDown = FakeMouse.KeyDown
34
	local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
35
	local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
36
		CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
37
	end}
38
	--Merged 2 functions into one by checking amount of arguments
39
	CAS.UnbindAction = CAS.BindAction
40
41
	--This function will trigger the events that have been :Connect()'ed
42
	local function TriggerEvent(self,ev,...)
43
		for _,f in pairs(self[ev].Functions) do
44
			f(...)
45
		end
46
	end
47
	FakeMouse.TriggerEvent = TriggerEvent
48
	UIS.TriggerEvent = TriggerEvent
49
50
	--Client communication
51
	local Event = Instance.new("RemoteEvent")
52
	Event.Name = "UserInput_Event"
53
	Event.OnServerEvent:Connect(function(plr,io)
54
	    if plr~=RealPlayer then return end
55
		FakeMouse.Target = io.Target
56
		FakeMouse.Hit = io.Hit
57
		if not io.isMouse then
58
			local b = io.UserInputState == Enum.UserInputState.Begin
59
			if io.UserInputType == Enum.UserInputType.MouseButton1 then
60
				return FakeMouse:TriggerEvent(b and "Button1Down" or "Button1Up")
61
			end
62
			if io.UserInputType == Enum.UserInputType.MouseButton2 then
63
				return FakeMouse:TriggerEvent(b and "Button2Down" or "Button2Up")
64
			end
65
			for _,t in pairs(CAS.Actions) do
66
				for _,k in pairs(t.Keys) do
67
					if k==io.KeyCode then
68
						t.Function(t.Name,io.UserInputState,io)
69
					end
70
				end
71
			end
72
			FakeMouse:TriggerEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
73
			UIS:TriggerEvent(b and "InputBegan" or "InputEnded",io,false)
74
	    end
75
	end)
76
	Event.Parent = NLS([==[local Event = script:WaitForChild("UserInput_Event")
77
	local Mouse = owner:GetMouse()
78
	local UIS = game:GetService("UserInputService")
79
	local input = function(io,RobloxHandled)
80
		if RobloxHandled then return end
81
		--Since InputObject is a client-side instance, we create and pass table instead
82
		Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
83
	end
84
	UIS.InputBegan:Connect(input)
85
	UIS.InputEnded:Connect(input)
86
	local h,t
87
	--Give the server mouse data every second frame, but only if the values changed
88
	--If player is not moving their mouse, client won't fire events
89
	local HB = game:GetService("RunService").Heartbeat
90
	while true do
91
		if h~=Mouse.Hit or t~=Mouse.Target then
92
			h,t=Mouse.Hit,Mouse.Target
93
			Event:FireServer({isMouse=true,Target=t,Hit=h})
94
		end
95
		--Wait 2 frames
96
		for i=1,2 do
97
			HB:Wait()
98
		end
99
	end]==],script)
100
101
	----Sandboxed game object that allows the usage of client-side methods and services
102
	--Real game object
103
	local RealGame = game
104
105
	--Metatable for fake service
106
	local FakeService_Metatable = {
107
		__index = function(self,k)
108
			local s = rawget(self,"_RealService")
109
			if s then
110
				return typeof(s[k])=="function"
111
				and function(_,...)return s[k](s,...)end or s[k]
112
			end
113
		end,
114
		__newindex = function(self,k,v)
115
			local s = rawget(self,"_RealService")
116
			if s then s[k]=v end
117
		end
118
	}
119
	local function FakeService(t,RealService)
120
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
121
		return setmetatable(t,FakeService_Metatable)
122
	end
123
124
	--Fake game object
125
	local FakeGame = {
126
		GetService = function(self,s)
127
			return rawget(self,s) or RealGame:GetService(s)
128
		end,
129
		Players = FakeService({
130
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
131
		},"Players"),
132
		UserInputService = FakeService(UIS,"UserInputService"),
133
		ContextActionService = FakeService(CAS,"ContextActionService"),
134
		RunService = FakeService({
135
			_btrs = {},
136
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
137
			BindToRenderStep = function(self,name,_,fun)
138
				self._btrs[name] = self.Heartbeat:Connect(fun)
139
			end,
140
			UnbindFromRenderStep = function(self,name)
141
				self._btrs[name]:Disconnect()
142
			end,
143
		},"RunService")
144
	}
145
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
146
	FakeGame.service = FakeGame.GetService
147
	FakeService(FakeGame,game)
148
	--Changing owner to fake player object to support owner:GetMouse()
149
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
150
end
151
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
152
local modelname="DeLoreanTimeMachine"
153
pcall(function() workspace.Base.CFrame=CFrame.new(0,-2,0) end)
154
print(modelname.."_LOADED")
155
local plr=game:service("Players")["LocalPlayer"]
156
local char=plr.Character
157
local T=char.Torso
158
local c=function(f) coroutine.resume(coroutine.create(f)) end
159
local pc=pcall
160
pc(function() workspace:findFirstChild(modelname):remove() end)
161
local mouse=nil
162
local pi=math.pi
163
local rd=math.rad
164
local sn=math.sin
165
local cs=math.cos
166
local rn=math.random
167
local ti=table.insert
168
local tr=table.remove
169
local inf=math.huge
170
local cn=CFrame.new
171
local vc=Vector3.new
172
local ca=CFrame.Angles
173
local delorean=Instance.new("Model", workspace) delorean.Name=modelname
174
local screengui=Instance.new("ScreenGui") screengui.Name=modelname
175
part=function(par, a, c, s, col, t, cf, ms)
176
local p=Instance.new("Part", par) pcall(function() p.TopSurface="Smooth" p.BottomSurface="Smooth" p.formFactor="Custom" p.Anchored=a p.CanCollide=c p.Size=s p.BrickColor=BrickColor.new(col) p.Transparency=t p.CFrame=cf or cn()  end)
177
local m=Instance.new("BlockMesh", p) pcall(function() m.Scale=ms or Vector3.new(1, 1, 1) end)
178
return p
179
end
180
cylinder=function(par, a, c, s, col, t, cf, ms)
181
local p=Instance.new("Part", par) pcall(function() p.TopSurface="Smooth" p.BottomSurface="Smooth" p.formFactor="Custom" p.Anchored=a p.CanCollide=c p.Size=s p.BrickColor=BrickColor.new(col) p.Transparency=t p.CFrame=cf or cn()  end)
182
local m=Instance.new("CylinderMesh", p) pcall(function() m.Scale=ms or Vector3.new(1, 1, 1) end)
183
return p
184
end
185
wedge=function(par, a, c, s, col, t, cf, ms)
186
local p=Instance.new("Part", par) pcall(function() p.TopSurface="Smooth" p.BottomSurface="Smooth" p.formFactor="Custom" p.Anchored=a p.CanCollide=c p.Size=s p.BrickColor=BrickColor.new(col) p.Transparency=t p.CFrame=cf or cn()  end)
187
local m=Instance.new("SpecialMesh", p) pcall(function() m.Scale=ms or Vector3.new(1, 1, 1) m.MeshType="Wedge" end)
188
return p
189
end
190
gui=function(ins, par, bc, bg, tc, fs, text, t, s, pos)
191
local g=Instance.new(ins, par)  g.BorderColor=BrickColor.new(bc) g.BackgroundColor=BrickColor.new(bg) g.TextColor=BrickColor.new(tc) g.FontSize=fs g.Font="ArialBold" g.Text=text g.BackgroundTransparency=t g.Size=s g.Position=pos
192
return g
193
end
194
weld=function(par, p1, cf)
195
local w=Instance.new("Weld", par) pcall(function() w.Part0=w.Parent or par w.Part1=p1 w.C1=cf or cn() end)
196
return w
197
end
198
mesh=function(ins, par, s, t, id, tid, of)
199
pcall(function() for i, v in pairs(par:children()) do if v:isA("BlockMesh") or v:isA("CylinderMesh") or v:isA("SpecialMesh") then v:remove() end end end)
200
local m=Instance.new(ins, par) pcall(function() m.Scale=s or Vector3.new(1, 1, 1) m.Offset=of or Vector3.new() m.MeshId=id or "" m.TextureId=tid or "" m.MeshType=t end)
201
return m
202
end
203
sound=function(parent, id, pitch, volume)
204
local s=Instance.new("Sound", parent) pcall(function() s.SoundId=id s.Volume=volume or 1 s.Pitch=pitch or 1 end)
205
return s
206
end
207
 
208
function stick(from, to)
209
local stickW=weld(from, to, to.CFrame:inverse()*from.CFrame)
210
stickW.C0=from.CFrame:inverse()*from.CFrame
211
return stickW
212
end
213
bp=Instance.new("BodyPosition") bp.D=200 bp.maxForce=vc(inf,inf,inf)
214
base=part(delorean, false, true, vc(5, .5, 14), "Really black", 0, cn(0, 200, 0))
215
wait()
216
bp.Parent=base
217
bp.position=(T.CFrame+T.CFrame.lookVector*20).p
218
base.Name="BASE"
219
bc=part(delorean, false, true, vc(7, .5, 6), "Really black")
220
bcw=weld(bc, base, cn())
221
bf=part(delorean, false, true, vc(7, .5, 2), "Really black")
222
bfw=weld(bf, base, cn(0, 0, -7))
223
local bb=part(delorean, false, true, vc(7, .5, 2), "Really black")
224
local bbw=weld(bb, base, cn(0, 0, 7))
225
local bf2=part(delorean, false, true, vc(6.8, 1, 1.5), "Really black")
226
local bf2w=weld(bf2, bf, cn(0, .5, 0))
227
local bc2=part(delorean, false, true, vc(5, 1, 5), "Really black")
228
local bc2w=weld(bc2, base, cn(0, .75, -4.5))
229
local bf3=part(delorean, false, true, vc(7, .5, 3), "Really black")
230
local bf3w=weld(bf3, bf2, cn(0, .5, -.5))
231
local enginesmoke=cylinder(delorean, false, true, vc(.5, 2, .5), "Hot pink")
232
local enginesmokew=weld(enginesmoke, bb, cn(2, 0, .75)*ca(-rd(90), 0, 0))
233
local enginesmoke=cylinder(delorean, false, true, vc(.5, 2, .5), "Hot pink")
234
local enginesmokew=weld(enginesmoke, bb, cn(-2, 0, .75)*ca(-rd(90), 0, 0))
235
 
236
local bf4=part(delorean, false, true, vc(7, .7, 3.5), "Really black")
237
local bf4w=weld(bf4, bf3, cn(0, .6, .75))
238
local bf5=part(delorean, false, true, vc(6, .7, 3), "Really black")
239
local bf5w=weld(bf5, bf4, cn(0, 0, 3))
240
 
241
local mprt=part(delorean, false, true, vc(7, 1, .5), "Really black", 0, cn(), vc(1, .1, 1))
242
local mprtw=weld(mprt, bf4, cn(0, -.3, -2))
243
local mprt=part(delorean, false, true, vc(7, 1, .35), "Really black", 0, cn(), vc(1, .1, 1))
244
local mprtw=weld(mprt, bf4, cn(0, .3, -1.9))
245
local mprt=part(delorean, false, true, vc(.2, .65, .5), "Really black", 0, cn(), vc(1, 1, 1))
246
local mprtw=weld(mprt, bf4, cn(3.4, -.03, -1.9)*ca(rd(15), 0, 0))
247
local mprt=part(delorean, false, true, vc(.2, .65, .5), "Really black", 0, cn(), vc(1, 1, 1))
248
local mprtw=weld(mprt, bf4, cn(-3.4, -.03, -1.9)*ca(rd(15), 0, 0))
249
local dmc=part(delorean, false, true, vc(2, .65, .5), "Really black", 0, cn(), vc(1, 1, 1))
250
local dmcw=weld(dmc, bf4, cn(0, -.03, -1.9)*ca(rd(15), 0, 0))
251
decal=Instance.new("Decal", dmc)
252
decal.Texture="http://www.roblox.com/asset/?id=28924870"
253
decal.Face="Front"
254
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
255
local prtw=weld(prt, bc, cn(3.25, 1.25, -2.5)*ca(0, 0, 0))
256
local w=wedge(delorean, false, false, vc(.5, 1, .5), "Really black")
257
local w2=weld(w, prt, cn(0, -.5, .75)*ca(0,pi,0))
258
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
259
local prtw=weld(prt, bc, cn(3.25, 1.25, -3)*ca(rd(-45), 0, 0))
260
 
261
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
262
local prtw=weld(prt, bc, cn(-3.25, 1.25, -2.5)*ca(0, 0, 0))
263
local w=wedge(delorean, false, false, vc(.5, 1, .5), "Really black")
264
local w2=weld(w, prt, cn(0, -.5, .75)*ca(0,pi,0))
265
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
266
local prtw=weld(prt, bc, cn(-3.25, 1.25, -3)*ca(rd(-45), 0, 0))
267
 
268
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
269
local prtw=weld(prt, bc, cn(3.25, 1.25, 2.5)*ca(0, 0, 0))
270
local prt2=part(delorean, false, true, vc(.5, 2.2, 1.5), "Really black")
271
local prt2w=weld(prt2, prt, cn(-.25, 1.85, .25)*ca(0, 0, rd(10)))
272
local w=wedge(delorean, false, false, vc(.5, 2, 1), "Really black")
273
local w2=weld(w, prt, cn(0, 0, -1))
274
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
275
local prtw=weld(prt, bc, cn(3.25, 1.25, 3)*ca(rd(45), 0, 0))
276
 
277
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
278
local prtw=weld(prt, bc, cn(-3.25, 1.25, 2.5)*ca(0, 0, 0))
279
local prt2=part(delorean, false, true, vc(.5, 2.2, 1.5), "Really black")
280
local prt2w=weld(prt2, prt, cn(.25, 1.85, .25)*ca(0, 0, rd(-10)))
281
local w=wedge(delorean, false, false, vc(.5, 2, 1), "Really black")
282
local w2=weld(w, prt, cn(0, 0, -1))
283
local prt=part(delorean, false, true, vc(.5, 2, 1), "Really black")
284
local prtw=weld(prt, bc, cn(-3.25, 1.25, 3)*ca(rd(45), 0, 0))
285
local main=part(delorean, false, true, vc(6, .5, 1.5), "Really black")
286
local mainw=weld(main, base, cn(0, 4, 2.75))
287
local stand=part(delorean, false, true, vc(.5, .5, 5.5), "Really black")
288
local standw=weld(stand, base, cn(3,3,5.5)*ca(rd(22),rd(5),0))
289
local stand=part(delorean, false, true, vc(.5, .5, 5.5), "Really black")
290
local standw=weld(stand, base, cn(-3,3,5.5)*ca(rd(22),rd(-5),0))
291
local backprt=part(delorean, false, true, vc(6, 2, .5), "Hot pink")
292
local backprt=weld(backprt, base, cn(0, 3, 2))
293
 
294
local window=part(delorean, false, true, vc(5, 2.5, .25), "Hot pink", .5)
295
local windoww=weld(window, base, cn(0, 3, -1.25)*ca(rd(45), 0, 0))
296
local border=part(delorean, false, false, vc(5, .5, .5), "Really black")
297
local borderw=weld(border, window, cn(0, 1.5, 0))
298
local border=part(delorean, false, false, vc(.5, 3, .5), "Really black")
299
local borderw=weld(border, window, cn(2.5, 0, 0)*ca(0, 0, rd(10)))
300
local border=part(delorean, false, false, vc(.5, 3, .5), "Really black")
301
local borderw=weld(border, window, cn(-2.5, 0, 0)*ca(0, 0, rd(-10)))
302
local prt=weld()
303
local mainjoint=part(delorean, false, true, vc(2, .5, 2), "Really black")
304
local mainjointw=weld(mainjoint, base, cn(0, 4, 1))
305
 
306
local seat=part(delorean, false, false, vc(2, .5, 2), "Hot pink")
307
local seatw=weld(seat, base, cn(1.5, .25, 1))
308
local backseat=part(delorean, false, false, vc(2, 2, .5), "Hot pink")
309
local backseatw=weld(backseat, seat, cn(0, 1, 1)*ca(rd(10), 0, 0))
310
local headseat=part(delorean, false, false, vc(1.5, 1.25, .5), "Hot pink")
311
local headseatw=weld(headseat, seat, cn(0, 2.5, 1.15))
312
local seat=part(delorean, false, false, vc(2, .5, 2), "Hot pink")
313
local seatw=weld(seat, base, cn(-1.5, .25, 1))
314
local backseat=part(delorean, false, false, vc(2, 2, .5), "Hot pink")
315
local backseatw=weld(backseat, seat, cn(0, 1, 1)*ca(rd(10), 0, 0))
316
local headseat=part(delorean, false, false, vc(1.5, 1.25, .5), "Hot pink")
317
local headseatw=weld(headseat, seat, cn(0, 2.5, 1.15))
318
local line=part(delorean, false, false, vc(1, 1, 14), "Hot pink")
319
local linew=weld(line, base, cn(0, .5, 0))
320
 
321
local back=part(delorean, false, true, vc(5, 1.5, 6), "Really black")
322
local backw=weld(back, base, cn(0, 1, 5))
323
local bb33s=part(delorean, false, true, vc(7, 1.5, 2), "Really black")
324
local bb33sw=weld(bb33s, base, cn(0, 1, 7))
325
local bbs=part(delorean, false, true, vc(7, .5, 1), "Really black")
326
local bbsw=weld(bbs, base, cn(0, .25, 8.25)*ca(-rd(35), 0, 0))
327
local bbs=part(delorean, false, true, vc(7, 1.5, .5), "Really black")
328
local bbsw=weld(bbs, base, cn(0, 1, 8.25))
329
local bb3s=part(delorean, false, true, vc(7, .5, .5), "Really black")
330
local bb3sw=weld(bb3s, bb33s, cn(0, 1, 1.25))
331
local bb3s=part(delorean, false, true, vc(7, .5, 6), "Really black")
332
local bb3sw=weld(bb3s, bb33s, cn(0, 1, -2))
333
decal=Instance.new("Decal", bb3s)
334
decal.Texture="http://www.roblox.com/asset/?id=27893351"
335
decal.Face="Top"
336
rocket=wedge(delorean, false, true, vc(2,2,4), "Hot pink")
337
rocketw=weld(rocket, bb3s, cn(2,1,1.5))
338
r2=wedge(delorean, false, true, vc(2,1,2), "Really black")
339
r2w=weld(r2,rocket,cn(0,0,2.5)*ca(pi/2,pi,0))
340
rocket=wedge(delorean, false, true, vc(2,2,4), "Hot pink")
341
rocketw=weld(rocket, bb3s, cn(-2,1,1.5))
342
r2=wedge(delorean, false, true, vc(2,1,2), "Really black")
343
r2w=weld(r2,rocket,cn(0,0,2.5)*ca(pi/2,pi,0))
344
pp=part(delorean, false, true, vc(2,1,5), "Hot pink")
345
ppw=weld(pp,bb3s,cn(0,.5,0))
346
reactor=part(delorean, false, true, vc(2,1.5,2), "Hot pink")
347
reactorw=weld(reactor,pp,cn(0,-.25,1.5))
348
reactorm=mesh("SpecialMesh", reactor, vc(.4,.1,.4), "FileMesh", "http://www.roblox.com/Asset/?id=10207677")
349
cyl=cylinder(delorean,false,true,vc(.8,1.5,.8),"Hot pink")
350
cylw=weld(cyl,reactor,cn(0,1.5,0))
351
decal=Instance.new("Decal", cyl)
352
decal.Texture="http://www.roblox.com/asset/?id=37389443"
353
decal.Face="Front"
354
decal=Instance.new("Decal", cyl)
355
decal.Texture="http://www.roblox.com/asset/?id=37389443"
356
decal.Face="Back"
357
decal=Instance.new("Decal", cyl)
358
decal.Texture="http://www.roblox.com/asset/?id=37389443"
359
decal.Face="Right"
360
decal=Instance.new("Decal", cyl)
361
decal.Texture="http://www.roblox.com/asset/?id=37389319"
362
decal.Face="Left"
363
 
364
cyl2=cylinder(delorean,false,true,vc(.5,.5,.5),"Really black")
365
cyl2w=weld(cyl2,cyl,cn(0,.75,0))
366
but=part(delorean,false,true,vc(.4,.3,1),"Bright red")
367
butw=weld(but,cyl,cn(0,-.5,.5))
368
 
369
local wed=wedge(delorean, false, true, vc(7, .5, 3), "Really black")
370
local wedw=weld(wed, bf2, cn(0, 0, -.5)*ca(0, 0, pi))
371
local trunk=wedge(delorean, false, true, vc(7, .5, 6.35), "Really black")
372
local trunkw=weld(trunk, bf4, cn(0, .6, 1.5))
373
 
374
--TIRE
375
local prts=6
376
local rad=1.6
377
local tfr=cylinder(delorean, false, true, vc(2.5, 1, 2.5), "Really black")
378
local tfrw=weld(tfr, base, cn(3,.25,-4.5)*ca(0,0,pi/2))
379
local met=cylinder(delorean, false, true, vc(1.5, 1.1, 1.5), "Hot pink")
380
local metw=weld(met, tfr, cn())
381
for i=0,pi,pi/prts do
382
local p=part(delorean, false, false, vc(1.1,1.1,.5), "Hot pink")
383
p.CFrame=tfr.CFrame*cn(rad*sn(i), 0, rad*cs(i))
384
p.CFrame=CFrame.new(p.CFrame.p, tfr.CFrame.p)
385
stick(p, base)
386
end
387
 
388
local tfl=cylinder(delorean, false, true, vc(2.5, 1, 2.5), "Really black")
389
local tflw=weld(tfl, base, cn(-3,.25,-4.5)*ca(0,0,pi/2))
390
local met=cylinder(delorean, false, true, vc(1.5, 1.1, 1.5), "Hot pink")
391
local metw=weld(met, tfl, cn())
392
for i=0,pi,pi/prts do
393
local p=part(delorean, false, false, vc(1.1,1.1,.5), "Hot pink")
394
p.CFrame=tfl.CFrame*cn(rad*sn(i), 0, rad*cs(i))
395
p.CFrame=CFrame.new(p.CFrame.p, tfl.CFrame.p)
396
stick(p, base)
397
end
398
 
399
local tbr=cylinder(delorean, false, true, vc(2.5, 1, 2.5), "Really black")
400
local tbrw=weld(tbr, base, cn(3,.25,4.5)*ca(0,0,pi/2))
401
local met=cylinder(delorean, false, true, vc(1.5, 1.1, 1.5), "Hot pink")
402
local metw=weld(met, tbr, cn())
403
for i=0,pi,pi/prts do
404
local p=part(delorean, false, false, vc(1.1,1.1,.5), "Hot pink")
405
p.CFrame=tbr.CFrame*cn(rad*sn(i), 0, rad*cs(i))
406
p.CFrame=CFrame.new(p.CFrame.p, tbr.CFrame.p)
407
stick(p, base)
408
end
409
 
410
local tbl=cylinder(delorean, false, true, vc(2.5, 1, 2.5), "Really black")
411
local tblw=weld(tbl, base, cn(-3,.25,4.5)*ca(0,0,pi/2))
412
local met=cylinder(delorean, false, true, vc(1.5, 1.1, 1.5), "Hot pink")
413
local metw=weld(met, tbl, cn())
414
for i=0,pi,pi/prts do
415
local p=part(delorean, false, false, vc(1.1,1.1,.5), "Hot pink")
416
p.CFrame=tbl.CFrame*cn(rad*sn(i), 0, rad*cs(i))
417
p.CFrame=CFrame.new(p.CFrame.p, tbl.CFrame.p)
418
stick(p, base)
419
end
420
atfr=function(cf)
421
tfrw.C1=cn(3,.25,-4.5)*ca(0,0,pi/2)*cf
422
end
423
atfl=function(cf)
424
tflw.C1=cn(-3,.25,-4.5)*ca(0,0,pi/2)*cf
425
end
426
atbr=function(cf)
427
tblw.C1=cn(3,.25,4.5)*ca(0,0,pi/2)*cf
428
end
429
atbl=function(cf)
430
tblw.C1=cn(-3,.25,4.5)*ca(0,0,pi/2)*cf
431
end
432
local trunkw=weld(trunk, bf4, cn(0, .6, 1.25))
433
--SEATS
434
--DOOR
435
local DoorRight=Instance.new("Model", delorean)
436
local djr=part(DoorRight, false, false, vc(1, 1, 1), "Really black", 1)
437
local djrw=weld(djr, mainjoint, cn(1,0,0)*ca(0,0,0))
438
local dp=part(DoorRight, false, true, vc(2, .5, 2), "Really black")
439
local dpw=weld(dp, djr, cn(1, 0, 0))
440
local dp2=part(DoorRight, false, true, vc(.5, .5, 3.25), "Really black")
441
local dp2w=weld(dp2, dp, cn(1, -1, -2)*ca(rd(-45),rd(-10),0))
442
local dp3=part(DoorRight, false, true, vc(.5, 2.2, .5), "Really black")
443
local dp3w=weld(dp3, dp, cn(1, -.85, .75)*ca(0, 0, rd(15)))
444
local dw=wedge(DoorRight, false, true, vc(.5, 2, 1), "Really black")
445
local dww=weld(dw, dp, cn(1.25, -2.75, .5)*ca(pi,0,0))
446
local dw=wedge(DoorRight, false, true, vc(.5,1,.5), "Really black")
447
local dww=weld(dw, dp, cn(1.25, -3.25, -2.75)*ca(pi, pi, 0))
448
local dp4=part(DoorRight, false, true, vc(.5,1,.5), "Really black")
449
local dp4w=weld(dp4, dp, cn(1.25, -2.25, -2.75))
450
local dp5=part(DoorRight, false, true, vc(.5,2,2.5), "Really black")
451
local dp5w=weld(dp5, dp, cn(1.25, -2.75, -1.25))
452
local dwindow=wedge(DoorRight, false, true, vc(.25, 2, 2), "Really black", .5)
453
local dwindoww=weld(dwindow, dp, cn(1, -1, -1.75)*ca(0, 0, rd(15)))
454
local dwindow=part(DoorRight, false, true, vc(.25, 2, 1.5), "Really black", .5)
455
local dwindoww=weld(dwindow, dp, cn(1, -1, 0)*ca(0, 0, rd(15)))
456
local glass=part(DoorRight, false, true, vc(1, .5, .2), "Hot pink")
457
local glassw=weld(glass, dp, cn(1.5, -1.5, -2)*ca(0, rd(-35), 0))
458
 
459
local actr=false
460
local debr=false
461
function clickr()
462
if actr==false then
463
if debr==false then
464
debr=true
465
for i=0, 1, .1 do
466
djrw.C1=cn(1,0,0)*ca(0,0,rd(90)*i)
467
wait()
468
end
469
debr=false
470
actr=true
471
end
472
elseif actr==true then
473
if debr==false then
474
debr=true
475
for i=1, 0, -.1 do
476
djrw.C1=cn(1,0,0)*ca(0,0,rd(90)*i)
477
wait()
478
end
479
debr=false
480
actr=false
481
end
482
end
483
end
484
 
485
for i, v in pairs(DoorRight:children()) do
486
local cdetector=Instance.new("ClickDetector", v)
487
cdetector.MouseClick:connect(clickr)
488
end
489
 
490
local DoorLeft=Instance.new("Model", delorean)
491
local djl=part(DoorLeft, false, false, vc(1, 1, 1), "Really black", 1)
492
local djlw=weld(djl, mainjoint, cn(-1,0,0))
493
local dp=part(DoorLeft, false, true, vc(2, .5, 2), "Really black")
494
local dpw=weld(dp, djl, cn(-1, 0, 0))
495
local dp2=part(DoorLeft, false, true, vc(.5, .5, 3.25), "Really black")
496
local dp2w=weld(dp2, dp, cn(-1, -1, -2)*ca(rd(-45),rd(10),0))
497
local dp3=part(DoorLeft, false, true, vc(.5, 2.2, .5), "Really black")
498
local dp3w=weld(dp3, dp, cn(-1, -.85, .75)*ca(0, 0, rd(-15)))
499
local dw=wedge(DoorLeft, false, true, vc(.5, 2, 1), "Really black")
500
local dww=weld(dw, dp, cn(-1.25, -2.75, .5)*ca(pi,0,0))
501
local dw=wedge(DoorLeft, false, true, vc(.5,1,.5), "Really black")
502
local dww=weld(dw, dp, cn(-1.25, -3.25, -2.75)*ca(pi, pi, 0))
503
local dp4=part(DoorLeft, false, true, vc(.5,1,.5), "Really black")
504
local dp4w=weld(dp4, dp, cn(-1.25, -2.25, -2.75))
505
local dp5=part(DoorLeft, false, true, vc(.5,2,2.5), "Really black")
506
local dp5w=weld(dp5, dp, cn(-1.25, -2.75, -1.25))
507
local dwindow=wedge(DoorLeft, false, true, vc(.25, 2, 2), "Really black", .5)
508
local dwindoww=weld(dwindow, dp, cn(-1, -1, -1.75)*ca(0, 0, rd(-15)))
509
local dwindow=part(DoorLeft, false, true, vc(.25, 2, 1.5), "Really black", .5)
510
local dwindoww=weld(dwindow, dp, cn(-1, -1, 0)*ca(0, 0, rd(-15)))
511
local glass=part(DoorLeft, false, true, vc(1, .5, .2), "Hot pink")
512
local glassw=weld(glass, dp, cn(-1.5, -1.5, -2)*ca(0, rd(35), 0))
513
 
514
local actl=false
515
local debl=false
516
function clickl()
517
if actl==false then
518
if debl==false then
519
debl=true
520
for i=0, 1, .1 do
521
djlw.C1=cn(-1,0,0)*ca(0,0,rd(-90)*i)
522
wait()
523
end
524
debl=false
525
actl=true
526
end
527
elseif actl==true then
528
if debl==false then
529
debl=true
530
for i=1, 0, -.1 do
531
djlw.C1=cn(-1,0,0)*ca(0,0,rd(-90)*i)
532
wait()
533
end
534
debl=false
535
actl=false
536
end
537
end
538
end
539
 
540
for i, v in pairs(DoorLeft:children()) do
541
local cdetector=Instance.new("ClickDetector", v)
542
cdetector.MouseClick:connect(clickl)
543
end
544
 
545
local bf=Instance.new("BodyForce")
546
local bav=Instance.new("BodyAngularVelocity") bav.angularvelocity=vc(0,0,0) bav.maxTorque=vc(math.huge,math.huge,math.huge)
547
local vs=Instance.new("VehicleSeat", delorean)
548
vs.HeadsUpDisplay=false
549
vs.CanCollide=false
550
vs.Transparency=1
551
vs.Size=Vector3.new(2, .5, 2)
552
weld(vs, base, cn(-1.5, 0, 1))
553
local ps=Instance.new("VehicleSeat", delorean)
554
ps.HeadsUpDisplay=false
555
ps.CanCollide=false
556
ps.Size=Vector3.new(2, .5, 2)
557
ps.Transparency=1
558
weld(ps, base, cn(1.5, 0, 1))
559
torsos={}
560
ps.ChildAdded:connect(function(w)
561
if w.Name=="SeatWeld" then
562
torso=w.Part1
563
if torso then
564
        for i, v2 in pairs(torso.Parent:children()) do
565
                if v2:isA("BasePart") then
566
                        for i, v3 in pairs(v2:children()) do
567
                                if v3:isA("CFrameValue") then
568
                                        v3:remove()
569
                                end
570
                        end
571
                end
572
        end
573
end
574
table.insert(torsos, torso)
575
w.C1=w.C1*CFrame.new(0, 0, .5)
576
end
577
end)
578
running=false
579
vs.ChildAdded:connect(function(w)
580
if w.Name=="SeatWeld" then
581
torso=w.Part1
582
w.C1=w.C1*CFrame.new(0, 0, .5)
583
if torso then
584
        for i, v2 in pairs(torso.Parent:children()) do
585
                if v2:isA("BasePart") then
586
                        for i, v3 in pairs(v2:children()) do
587
                                if v3:isA("CFrameValue") then
588
                                        v3:remove()
589
                                end
590
                        end
591
                end
592
        end
593
table.insert(torsos, torso)
594
local player=game.Players:getPlayerFromCharacter(torso.Parent)
595
screengui=Instance.new("ScreenGui", player.PlayerGui) screengui.Name=modelname
596
speedometer=gui("TextLabel", screengui, "Black", "Black", "Really black", "Size48", "0", 1, UDim2.new(0, 100, 0, 100), UDim2.new(0, 50, .85, 0))
597
hourlabel=gui("TextLabel", screengui, "Black", "Black", "Really black", "Size48", "HH", 1, UDim2.new(0, 100, 0, 50), UDim2.new(.7, 0, .8, 0))
598
minutelabel=gui("TextLabel", hourlabel, "Black", "Black", "Really black", "Size48", "MM", 1, UDim2.new(1, 0, 1, 0), UDim2.new(1, 0, 0, 0))
599
secondlabel=gui("TextLabel", minutelabel, "Black", "Black", "Really black", "Size48", "SS", 1, UDim2.new(1, 0, 1, 0), UDim2.new(1, 0, 0, 0))
600
hourbox=gui("TextBox", hourlabel, "Black", "Black", "Really red", "Size48", "24", 1, UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 1, 0))
601
minutebox=gui("TextBox", minutelabel, "Black", "Black", "Really red", "Size48", "00", 1, UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 1, 0))
602
secondbox=gui("TextBox", secondlabel, "Black", "Black", "Really red", "Size48", "00", 1, UDim2.new(1, 0, 1, 0), UDim2.new(0, 0, 1, 0))
603
running=true
604
run()
605
end
606
end
607
end)
608
vs.ChildRemoved:connect(function(w)
609
if w.Name=="SeatWeld" then
610
torso=w.Part1
611
if torso then
612
for i, v in pairs(torsos) do
613
        if v==torso then
614
                table.remove(torsos,i)
615
        end
616
end
617
local player=game.Players:getPlayerFromCharacter(torso.Parent)
618
player.PlayerGui[modelname]:remove()
619
running=false
620
end
621
end
622
end)
623
ps.ChildRemoved:connect(function(w)
624
if w.Name=="SeatWeld" then
625
torso=w.Part1
626
if torso then
627
for i, v in pairs(torsos) do
628
        if v==torso then
629
                table.remove(torsos,i)
630
        end
631
end
632
end
633
end
634
end)
635
c(function()wait(.5) bp:remove()end)
636
function makelightning(from, to, thick, col)
637
local magnitude=(from.p-to.p).magnitude
638
local distance=(from.p+to.p)/2
639
local pattern=part(workspace, true, false, vc(.2, .2, magnitude), "Hot pink", 1, cn(distance, from.p))
640
local fromPosProx=from.p
641
for i=1, 4 do
642
local fromPosProx2=fromPosProx
643
local random=vc(rn(-1, 1), rn(-1, 1), rn(-1, 1))
644
local findSize=pattern.Size.z/3
645
local findOffSet=pattern.CFrame.lookVector*-1
646
local compute=i*findSize*findOffSet
647
local newfromPos=from.p
648
local newEndPos=cn(random+compute+newfromPos).p
649
local magnitude=(fromPosProx2-newEndPos).magnitude
650
local distance=(fromPosProx2+newEndPos)/2
651
local lightning=part(workspace, true, false, vc(1, 1, 1), col or "Bright yellow", 0, cn(distance, fromPosProx2), vc(thick, thick, magnitude))
652
fromPosProx=newEndPos
653
game.Debris:addItem(lightning, .5)
654
end
655
pattern:remove()
656
end
657
function play(soundid, pitch, volume)
658
local sound=sound(workspace, soundid, pitch, volume)
659
sound:play()
660
c(function() wait(5) sound:remove() end)
661
end
662
 
663
 
664
trm=Instance.new("Model", delorean)
665
function trail(prt, cf, thick, col)
666
local old=(prt.CFrame*(cf or cn())).p
667
local trail=part(trm, true, false, vc(1, 1, 1), col or "Hot pink", 0, cn(old)*ca(rn(-360, 360),rn(-360, 360),rn(-360, 360)), vc(thick, thick, thick))
668
c(function()
669
for i=1, 0, -.001 do pc(function() trail.Mesh.Scale=trail.Mesh.Scale*vc(i, i, i) end) wait() end
670
trail:remove()
671
end)
672
end
673
 
674
Targets={}
675
timedeb=false
676
num=0
677
maxnum=400
678
origin=0
679
function stick(from, to)
680
local stickW=weld(from, to, to.CFrame:inverse()*from.CFrame)
681
stickW.C0=from.CFrame:inverse()*from.CFrame
682
return stickW
683
end
684
local bp=Instance.new("BodyPosition") bp.D=100 bp.maxForce=vc(inf,inf,inf)
685
timedeb=false
686
 
687
function run()
688
num=0
689
c(function()
690
for i, v in pairs(workspace:children()) do
691
        if v:isA("Model") then
692
                for i, v2 in pairs(v:children()) do
693
                        if v2:isA("BasePart") then
694
                                for i, v3 in pairs(v2:children()) do
695
                                        if v3:isA("CFrameValue") then
696
                                                v3:remove()
697
                                        end
698
                                end
699
                        end
700
                end
701
        end
702
end
703
timedeb=true
704
while true do
705
--TimeContinium-----------------------------
706
if num<=0 and timedeb==true then
707
        for i, v in pairs(workspace:children()) do
708
                if v:isA("BasePart") then
709
                        if v.Anchored==false then
710
                                table.insert(Targets, v)
711
                                local Origin = Instance.new("CFrameValue")
712
                                Origin.Parent = v
713
                                Origin.Name = "Origin CFrame"
714
                                Origin.Value = v.CFrame
715
                        end
716
                end
717
                for i, t in pairs(torsos) do
718
                        if v:isA("Model") and v~=t.Parent and v~=delorean then
719
                                for i, v2 in pairs(v:children()) do
720
                                        if v2:isA("BasePart") then
721
                                                table.insert(Targets, v2)
722
                                                local Origin = Instance.new("CFrameValue")
723
                                                Origin.Parent = v2
724
                                                Origin.Name = "Origin CFrame"
725
                                                Origin.Value = v2.CFrame
726
                                        end
727
                                end
728
                        end
729
                end
730
        end
731
---------
732
while num<maxnum and timedeb==true do ---print(num)
733
        for i, v in pairs(workspace:children()) do
734
                if v:isA("BasePart") and v:findFirstChild("Origin CFrame")==nil then
735
                        if v.Anchored==false then
736
                                table.insert(Targets, v)
737
                                local Origin = Instance.new("CFrameValue")
738
                                Origin.Parent = v
739
                                Origin.Name = "Origin CFrame"
740
                                Origin.Value = v.CFrame
741
                        end
742
                end
743
                for i, t in pairs(torsos) do
744
                        if v:isA("Model") and v~=t.Parent and v~=delorean then
745
                                for i, v2 in pairs(v:children()) do
746
                                        if v2:isA("BasePart") and v2:findFirstChild("Origin CFrame")==nil then
747
                                                table.insert(Targets, v2)
748
                                                local Origin = Instance.new("CFrameValue")
749
                                                Origin.Parent = v2
750
                                                Origin.Name = "Origin CFrame"
751
                                                Origin.Value = v2.CFrame
752
                                        end
753
                                end
754
                        end
755
                end
756
        end
757
for i, v in pairs(Targets) do
758
local History = Instance.new("CFrameValue")
759
History.Parent = v
760
History.Name = num
761
History.Value = v.CFrame
762
end
763
num = num + 30
764
wait()
765
end
766
end
767
wait()
768
end
769
end)
770
while running do
771
local speed=base.Velocity.magnitude
772
speedometer.Text=math.floor(speed)
773
if speed>65 and speed<80 then play("http://www.roblox.com/asset/?id=2800815", 1, .5)
774
makelightning(base.CFrame*CFrame.new(0,0,10), base.CFrame*CFrame.new(rn(-10,10),rn(-10,10),rn(-2,10)), 1)
775
trail(tbr,cn(-1.5, 0, -10),2.5,"Bright orange")
776
trail(tbl,cn(-1.9, 0, -10),2.5,"Bright orange")
777
end
778
if speed>80 and speed<88 then play("http://roblox.com/asset/?id=10209481")
779
local trm2=trm:clone() trm2.Parent=workspace
780
origin=base.Position
781
print(origin)
782
game.Debris:addItem(trm2, 5)
783
bp.position=vc(0,0,-99999)
784
bp.Parent=base
785
timedeb=false
786
c(function()
787
for i=0,1,.005 do
788
game.Lighting.TimeOfDay=math.floor(hourbox.Text*i)..":"..math.floor(minutebox.Text*i)..":"..math.floor(secondbox.Text*i)
789
wait()
790
end
791
end)
792
while num > 0 do --print(num)
793
wait()
794
num = num - 1
795
for i, v in pairs(Targets) do
796
v.Anchored=true
797
local History = v:findFirstChild(num)
798
if History ~= nil then
799
v.CFrame = History.Value
800
History:remove()
801
end
802
end
803
end
804
for i, v in pairs(Targets) do
805
local Origin = v:findFirstChild("Origin CFrame")
806
if Origin ~= nil then
807
v.CFrame = Origin.Value
808
v:makeJoints()
809
Origin:remove()
810
end
811
end
812
for i, v in pairs(Targets) do
813
v.Anchored=false
814
end
815
play("http://www.roblox.com/asset/?id=2101148", 1, 1)
816
exp=Instance.new("Explosion", workspace)
817
exp.BlastPressure=0
818
exp.Position=origin
819
Targets = {}
820
timedeb=true
821
bp.position=origin
822
origin=0
823
base.Velocity=vc(0,0,0)
824
bf.force=base.CFrame.lookVector*0
825
wait(1)
826
bp:remove()
827
end
828
if vs.Steer==0 then bav.angularvelocity=vc(0,0,0) atfr(ca(0, 0, 0)) atfl(ca(0, 0, 0)) end
829
if vs.Steer==1 then atfr(ca(rd(-25), 0, 0)) atfl(ca(rd(-25), 0, 0)) end
830
if vs.Steer==-1 then atfr(ca(rd(25), 0, 0)) atfl(ca(rd(25), 0, 0)) end
831
if vs.Throttle==1 then bav.Parent=base bf.Parent=base
832
if vs.Steer==1 then bav.angularvelocity=vc(0,-2,0) end
833
if vs.Steer==-1 then bav.angularvelocity=vc(0,2,0) end
834
bf.force=base.CFrame.lookVector*40000
835
end
836
if vs.Throttle==0 then bav.Parent=base bf.Parent=base
837
bf.force=base.CFrame.lookVector*0
838
end
839
if vs.Throttle==-1 then bav.Parent=base bf.Parent=base
840
if vs.Steer==1 then bav.angularvelocity=vc(0,2,0) end
841
if vs.Steer==-1 then bav.angularvelocity=vc(0,-2,0) end
842
bf.force=base.CFrame.lookVector*-40000
843
end
844
wait()
845
end
846
end