View difference between Paste ID: 5t1uKRG3 and wQYf2zsq
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
87
	local h,t
88
	--Give the server mouse data every second frame, but only if the values changed
89
	--If player is not moving their mouse, client won't fire events
90
	local HB = game:GetService("RunService").Heartbeat
91
	while true do
92
		if h~=Mouse.Hit or t~=Mouse.Target then
93
			h,t=Mouse.Hit,Mouse.Target
94
			Event:FireServer({isMouse=true,Target=t,Hit=h})
95
		end
96
		--Wait 2 frames
97
		for i=1,2 do
98
			HB:Wait()
99
		end
100
	end]==],script)
101
102
	----Sandboxed game object that allows the usage of client-side methods and services
103
	--Real game object
104
	local RealGame = game
105
106
	--Metatable for fake service
107
	local FakeService_Metatable = {
108
		__index = function(self,k)
109
			local s = rawget(self,"_RealService")
110
			if s then
111
				return typeof(s[k])=="function"
112
				and function(_,...)return s[k](s,...)end or s[k]
113
			end
114
		end,
115
		__newindex = function(self,k,v)
116
			local s = rawget(self,"_RealService")
117
			if s then s[k]=v end
118
		end
119
	}
120
	local function FakeService(t,RealService)
121
		t._RealService = typeof(RealService)=="string" and RealGame:GetService(RealService) or RealService
122
		return setmetatable(t,FakeService_Metatable)
123
	end
124
125
	--Fake game object
126
	local FakeGame = {
127
		GetService = function(self,s)
128
			return rawget(self,s) or RealGame:GetService(s)
129
		end,
130
		Players = FakeService({
131
			LocalPlayer = FakeService({GetMouse=function(self)return FakeMouse end},Player)
132
		},"Players"),
133
		UserInputService = FakeService(UIS,"UserInputService"),
134
		ContextActionService = FakeService(CAS,"ContextActionService"),
135
		RunService = FakeService({
136
			_btrs = {},
137
			RenderStepped = RealGame:GetService("RunService").Heartbeat,
138
			BindToRenderStep = function(self,name,_,fun)
139
				self._btrs[name] = self.Heartbeat:Connect(fun)
140
			end,
141
			UnbindFromRenderStep = function(self,name)
142
				self._btrs[name]:Disconnect()
143
			end,
144
		},"RunService")
145
	}
146
	rawset(FakeGame.Players,"localPlayer",FakeGame.Players.LocalPlayer)
147
	FakeGame.service = FakeGame.GetService
148
	FakeService(FakeGame,game)
149
	--Changing owner to fake player object to support owner:GetMouse()
150
	game,owner = FakeGame,FakeGame.Players.LocalPlayer
151
end
152
--Go to line 216 to put id of song
153
o1 = Instance.new("Model")
154
o1.Name = "Vest"
155
o2 = Instance.new("Part")
156
o2.Name = "Middle"
157
o2.Parent = o1
158
o2.BrickColor = BrickColor.new("Brick yellow")
159
o2.Transparency = 1
160
o2.Position = Vector3.new(0.139906004, 1.05800402, -11.1099901)
161
o2.Anchored = true
162
o2.CFrame = CFrame.new(0.139906004, 1.05800402, -11.1099901, 1, 0, 0, 0, 1, 0, 0, 0, 1)
163
o2.CanCollide = false
164
o2.FormFactor = Enum.FormFactor.Symmetric
165
o2.Size = Vector3.new(2, 2, 1)
166
o2.BackSurface = Enum.SurfaceType.SmoothNoOutlines
167
o2.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
168
o2.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
169
o2.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
170
o2.RightSurface = Enum.SurfaceType.SmoothNoOutlines
171
o2.TopSurface = Enum.SurfaceType.SmoothNoOutlines
172
o2.Color = Color3.new(0.843137, 0.772549, 0.603922)
173
o3 = Instance.new("Part")
174
o3.Name = "Pack"
175
o3.Parent = o1
176
o3.BrickColor = BrickColor.new("Dark stone grey")
177
o3.Position = Vector3.new(0.139907002, 1.07000601, -10.3049936)
178
o3.Rotation = Vector3.new(-180, 0, -180)
179
o3.Anchored = true
180
o3.CFrame = CFrame.new(0.139907002, 1.07000601, -10.3049936, -1, 0, 0, 0, 1, 0, 0, 0, -1)
181
o3.CanCollide = false
182
o3.FormFactor = Enum.FormFactor.Custom
183
o3.Size = Vector3.new(1.65999985, 1.80000019, 0.630000472)
184
o3.BackSurface = Enum.SurfaceType.SmoothNoOutlines
185
o3.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
186
o3.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
187
o3.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
188
o3.RightSurface = Enum.SurfaceType.SmoothNoOutlines
189
o3.TopSurface = Enum.SurfaceType.SmoothNoOutlines
190
o3.Color = Color3.new(0.388235, 0.372549, 0.384314)
191
o4 = Instance.new("Part")
192
o4.Name = "Strap"
193
o4.Parent = o1
194
o4.BrickColor = BrickColor.new("Black")
195
o4.Position = Vector3.new(0.66991502, 1.05500698, -11.1149797)
196
o4.Anchored = true
197
o4.CFrame = CFrame.new(0.66991502, 1.05500698, -11.1149797, 1, 0, 0, 0, 1, 0, 0, 0, 1)
198
o4.CanCollide = false
199
o4.FormFactor = Enum.FormFactor.Custom
200
o4.Size = Vector3.new(0.259999752, 2.11000037, 1.15000045)
201
o4.BackSurface = Enum.SurfaceType.SmoothNoOutlines
202
o4.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
203
o4.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
204
o4.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
205
o4.RightSurface = Enum.SurfaceType.SmoothNoOutlines
206
o4.TopSurface = Enum.SurfaceType.SmoothNoOutlines
207
o4.Color = Color3.new(0.105882, 0.164706, 0.207843)
208
o5 = Instance.new("Part")
209
o5.Name = "Flap"
210
o5.Parent = o1
211
o5.BrickColor = BrickColor.new("Black")
212-
myears.Parent = game.Players.LocalPlayer.Character.Head
212+
213
o5.Anchored = true
214
o5.CFrame = CFrame.new(0.139905006, 1.85000098, -10.2900219, 1, 0, 0, 0, 1, 0, 0, 0, 1)
215
o5.CanCollide = false
216-
myears.SoundId = "rbxassetid://481696827"
216+
217-
myears.Volume = .5
217+
218
o5.BackSurface = Enum.SurfaceType.SmoothNoOutlines
219
o5.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
220-
                g.Parent = game.Players.LocalPlayer.Character
220+
221
o5.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
222
o5.RightSurface = Enum.SurfaceType.SmoothNoOutlines
223
o5.TopSurface = Enum.SurfaceType.SmoothNoOutlines
224
o5.Color = Color3.new(0.105882, 0.164706, 0.207843)
225
o6 = Instance.new("Part")
226
o6.Name = "Pocket"
227
o6.Parent = o1
228
o6.BrickColor = BrickColor.new("Black")
229
o6.Position = Vector3.new(0.149883002, 0.860005975, -10.0399857)
230
o6.Rotation = Vector3.new(-0, 0, -90)
231
o6.Anchored = true
232
o6.CFrame = CFrame.new(0.149883002, 0.860005975, -10.0399857, 0, 1, 0, -1, 0, 0, 0, 0, 1)
233
o6.CanCollide = false
234
o6.FormFactor = Enum.FormFactor.Custom
235-
                                Y.Part0 = game.Players.LocalPlayer.Character.Torso
235+
236
o6.BackSurface = Enum.SurfaceType.SmoothNoOutlines
237
o6.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
238
o6.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
239
o6.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
240
o6.RightSurface = Enum.SurfaceType.SmoothNoOutlines
241
o6.TopSurface = Enum.SurfaceType.SmoothNoOutlines
242
o6.Color = Color3.new(0.105882, 0.164706, 0.207843)
243
o7 = Instance.new("Part")
244
o7.Name = "Pocket"
245
o7.Parent = o1
246
o7.BrickColor = BrickColor.new("Black")
247
o7.Position = Vector3.new(0.139600992, 1.10000801, -10.3099718)
248
o7.Rotation = Vector3.new(-90, 90, 0)
249
o7.Anchored = true
250
o7.CFrame = CFrame.new(0.139600992, 1.10000801, -10.3099718, 0, 0, 1, -1, 0, 0, 0, -1, 0)
251
o7.CanCollide = false
252
o7.FormFactor = Enum.FormFactor.Custom
253
o7.Size = Vector3.new(0.600000024, 0.400000155, 1.70000005)
254
o7.BackSurface = Enum.SurfaceType.SmoothNoOutlines
255
o7.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
256
o7.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
257
o7.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
258
o7.RightSurface = Enum.SurfaceType.SmoothNoOutlines
259
o7.TopSurface = Enum.SurfaceType.SmoothNoOutlines
260
o7.Color = Color3.new(0.105882, 0.164706, 0.207843)
261
o8 = Instance.new("Part")
262
o8.Name = "Strap"
263
o8.Parent = o1
264
o8.BrickColor = BrickColor.new("Black")
265
o8.Position = Vector3.new(-0.37014699, 1.05500698, -11.1149921)
266
o8.Anchored = true
267
o8.CFrame = CFrame.new(-0.37014699, 1.05500698, -11.1149921, 1, 0, 0, 0, 1, 0, 0, 0, 1)
268
o8.CanCollide = false
269
o8.FormFactor = Enum.FormFactor.Custom
270
o8.Size = Vector3.new(0.259999752, 2.11000037, 1.15000045)
271
o8.BackSurface = Enum.SurfaceType.SmoothNoOutlines
272
o8.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
273
o8.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
274
o8.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
275
o8.RightSurface = Enum.SurfaceType.SmoothNoOutlines
276
o8.TopSurface = Enum.SurfaceType.SmoothNoOutlines
277
o8.Color = Color3.new(0.105882, 0.164706, 0.207843)
278
o9 = Instance.new("Part")
279
o9.Parent = o1
280
o9.BrickColor = BrickColor.new("Really black")
281
o9.Reflectance = 0.10000000149012
282
o9.Position = Vector3.new(0.173590899, 4.00173569, -9.98207664)
283
o9.Rotation = Vector3.new(2.9181666e-009, -3.48279983e-008, -8.55249798e-019)
284
o9.Anchored = true
285
o9.CFrame = CFrame.new(0.173590899, 4.00173569, -9.98207664, 0.999998331, 1.49269007e-020, -6.07863204e-010, 1.49269007e-020, 1, -5.09317831e-011, -6.07863204e-010, -5.09317831e-011, 1.00000334)
286
o9.FormFactor = Enum.FormFactor.Plate
287
o9.Size = Vector3.new(2, 4.80000019, 2)
288
o9.BackSurface = Enum.SurfaceType.SmoothNoOutlines
289
o9.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
290
o9.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
291
o9.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
292
o9.RightSurface = Enum.SurfaceType.SmoothNoOutlines
293
o9.TopSurface = Enum.SurfaceType.SmoothNoOutlines
294
o9.Color = Color3.new(0.0666667, 0.0666667, 0.0666667)
295
o10 = Instance.new("SpecialMesh")
296
o10.Parent = o9
297
o10.Scale = Vector3.new(0.600000024, 1, 0.600000024)
298
o10.MeshType = Enum.MeshType.Brick
299
o11 = Instance.new("Part")
300
o11.Parent = o1
301
o11.BrickColor = BrickColor.new("Mid gray")
302
o11.Reflectance = 0.20000000298023
303
o11.Position = Vector3.new(0.173592806, 4.10173273, -11.1821489)
304
o11.Rotation = Vector3.new(-180, 89.8953247, -90)
305
o11.Anchored = true
306
o11.CFrame = CFrame.new(0.173592806, 4.10173273, -11.1821489, -1.49269007e-020, 6.07863204e-010, 0.999998331, -1, 5.09317831e-011, 1.49269007e-020, 5.09317831e-011, -1.00000334, -6.07863204e-010)
307
o11.FormFactor = Enum.FormFactor.Plate
308
o11.Size = Vector3.new(1, 0.400000006, 2)
309
o11.BackSurface = Enum.SurfaceType.SmoothNoOutlines
310
o11.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
311
o11.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
312
o11.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
313
o11.RightSurface = Enum.SurfaceType.SmoothNoOutlines
314
o11.TopSurface = Enum.SurfaceType.SmoothNoOutlines
315
o11.Color = Color3.new(0.803922, 0.803922, 0.803922)
316
o12 = Instance.new("CylinderMesh")
317
o12.Parent = o11
318
o12.Offset = Vector3.new(0, -0.600000024, 0)
319
o12.Scale = Vector3.new(0.5, 0.100000001, 0.5)
320
o13 = Instance.new("Part")
321
o13.Parent = o1
322
o13.BrickColor = BrickColor.new("Mid gray")
323
o13.Reflectance = 0.20000000298023
324
o13.Position = Vector3.new(0.173592806, 5.60169125, -11.1821489)
325
o13.Rotation = Vector3.new(1.40697509e-009, -89.8953247, -90)
326
o13.Anchored = true
327
o13.CFrame = CFrame.new(0.173592806, 5.60169125, -11.1821489, 1.49269007e-020, 6.07863204e-010, -0.999998331, 1, 5.09317831e-011, -1.49269007e-020, -5.09317831e-011, -1.00000334, 6.07863204e-010)
328
o13.FormFactor = Enum.FormFactor.Plate
329
o13.Size = Vector3.new(2, 0.400000006, 2)
330
o13.BackSurface = Enum.SurfaceType.SmoothNoOutlines
331
o13.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
332
o13.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
333
o13.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
334
o13.RightSurface = Enum.SurfaceType.SmoothNoOutlines
335
o13.TopSurface = Enum.SurfaceType.SmoothNoOutlines
336
o13.Color = Color3.new(0.803922, 0.803922, 0.803922)
337
o14 = Instance.new("CylinderMesh")
338
o14.Parent = o13
339
o14.Offset = Vector3.new(0, -0.600000024, 0)
340
o14.Scale = Vector3.new(0.5, 0.100000001, 0.5)
341
o15 = Instance.new("Part")
342
o15.Parent = o1
343
o15.BrickColor = BrickColor.new("Mid gray")
344
o15.Reflectance = 0.20000000298023
345
o15.Position = Vector3.new(0.173592806, 2.60173273, -11.1821489)
346
o15.Rotation = Vector3.new(-180, 89.8953247, -90)
347
o15.Anchored = true
348
o15.CFrame = CFrame.new(0.173592806, 2.60173273, -11.1821489, -1.49269007e-020, 6.07863204e-010, 0.999998331, -1, 5.09317831e-011, 1.49269007e-020, 5.09317831e-011, -1.00000334, -6.07863204e-010)
349
o15.FormFactor = Enum.FormFactor.Plate
350
o15.Size = Vector3.new(2, 0.400000006, 2)
351
o15.BackSurface = Enum.SurfaceType.SmoothNoOutlines
352
o15.BottomSurface = Enum.SurfaceType.SmoothNoOutlines
353
o15.FrontSurface = Enum.SurfaceType.SmoothNoOutlines
354
o15.LeftSurface = Enum.SurfaceType.SmoothNoOutlines
355
o15.RightSurface = Enum.SurfaceType.SmoothNoOutlines
356
o15.TopSurface = Enum.SurfaceType.SmoothNoOutlines
357
o15.Color = Color3.new(0.803922, 0.803922, 0.803922)
358
o16 = Instance.new("CylinderMesh")
359
o16.Parent = o15
360
o16.Offset = Vector3.new(0, -0.600000024, 0)
361
o16.Scale = Vector3.new(0.5, 0.100000001, 0.5)
362
myears = Instance.new('Sound')
363
myears.Parent = game.Players.robloku.Character.Head
364
myears.Looped = true
365
myears.Name = "Ruski"
366
myears.Playing = true
367
myears.SoundId = "rbxassetid://225149896"
368
myears.Volume = 7.5
369
myears.TimePosition = 0
370
local g = o1:clone()
371
                g.Parent = owner
372
                local C = g:GetChildren()
373
                for i=1, #C do
374
                        if C[i].className == "Part" then
375
                                local W = Instance.new("Weld")
376
                                W.Part0 = g.Middle
377
                                W.Part1 = C[i]
378
                                local CJ = CFrame.new(g.Middle.Position)
379
                                local C0 = g.Middle.CFrame:inverse()*CJ
380
                                local C1 = C[i].CFrame:inverse()*CJ
381
                                W.C0 = C0
382
                                W.C1 = C1
383
                                W.Parent = g.Middle
384
                        end
385
                                local Y = Instance.new("Weld")
386
                                Y.Part0 = game.Players.Jacq_83.Character.Torso
387
                                Y.Part1 = g.Middle
388
                                Y.C0 = CFrame.new(0, 0, 0)
389
                                Y.Parent = Y.Part0
390
                end
391
392
                local h = g:GetChildren()
393
                for i = 1, # h do
394
                        h[i].Anchored = false
395
                        h[i].CanCollide = false
396
                end