View difference between Paste ID: r2BsS4Df and pzrtwGQR
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
plr = game.Players.LocalPlayer
153
char = plr.Character
154
skin = BrickColor.new("Pastel brown")
155
156
wait(0.5)
157
for i,v in pairs(char:GetChildren()) do
158
	if v.ClassName == "Shirt" or v.ClassName == "Pants" then
159
		v:Destroy()
160
	end
161
end
162
local shirt = Instance.new("Shirt",char)
163
shirt.ShirtTemplate = "http://www.roblox.com/asset/?id=115893651"
164
local pants = Instance.new("Pants",char)
165
pants.PantsTemplate = "http://www.roblox.com/asset/?id=115893704"
166
local bdy = char["Body Colors"]
167
bdy.HeadColor = skin
168
bdy.LeftArmColor = skin
169
bdy.LeftLegColor = skin
170
bdy.RightArmColor = skin
171
bdy.RightLegColor = skin
172
bdy.TorsoColor = skin
173
wait(1)
174
local gunshot = Instance.new("Sound",char.Torso)
175
gunshot.Name = "BANG"
176
gunshot.SoundId = "rbxassetid://213603013"
177
gunshot.Volume = 2
178
gunshot:Play()
179
char.Humanoid.WalkSpeed = 0
180
char.Humanoid.JumpPower = 0
181
char.Torso["Right Shoulder"].C1 = CFrame.new(0,0,0)
182
char.Torso["Left Shoulder"].C1 = CFrame.new(0,0,0)
183
char.Torso["Left Hip"].C1 = CFrame.new(0,0,0)
184
char.Torso["Right Hip"].C1 = CFrame.new(0,0,0)
185
char.HumanoidRootPart.RootJoint.C1 = CFrame.new(0,0,0)
186
rlegweld = char.Torso["Right Hip"]
187
llegweld = char.Torso["Left Hip"]
188
rhandweld = char.Torso["Right Shoulder"]
189
lhandweld = char.Torso["Left Shoulder"]
190
humanoidrootpart = char.HumanoidRootPart.RootJoint
191
for i  = 0,1 , 0.03 do
192
            rlegweld.C0 = rlegweld.C0:lerp(CFrame.new(0.975958347, -2.06729031, 0, 0.905177712, -0.425033659, 8.83524214e-27, 0.425034732, 0.905179977, 4.223007e-27, -1.05518035e-26, 3.02922588e-28, 1.0000025),i)
193
            llegweld.C0 = llegweld.C0:lerp(CFrame.new(-0.901434898, -1.97289896, 0, 0.896831989, 0.442371875, -3.88750654e-27, -0.442372978, 0.896834254, 5.09510506e-27, 4.69530011e-27, -3.35739201e-27, 1.0000025),i)
194
            rhandweld.C0 = rhandweld.C0:lerp(CFrame.new(1.98829222, 0.555973053, 0, -0.0983736441, -0.995149612, 6.86624532e-27, 0.995152056, -0.0983738229, 1.33999472e-26, -1.25618211e-26, 9.13816473e-27, 1.0000025),i)
195
            lhandweld.C0 = lhandweld.C0:lerp(CFrame.new(-1.80910063, 0.148392916, 0, 0.586558223, 0.80990839, -5.84135723e-26, -0.809910417, 0.586559713, -6.21380681e-26, -1.6509281e-26, 8.28998148e-26, 1.0000025),i)
196
            humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0, -2.71110725, -1.9999876, 1, -1.89579053e-26, -7.87598728e-27, 7.01770661e-27, 6.76514401e-06, 1.0000025, -1.93673287e-26, -1.00000238, 6.85455143e-06),i)
197
            game:GetService("RunService").RenderStepped:wait()
198
 end
199
wait(2)
200
char.Torso.Neck.C1 = CFrame.new(0,0,0)
201
local scream = Instance.new("Sound",char)
202
scream.SoundId = "rbxassetid://566988981"
203
scream.Volume = 4
204
scream:Play()
205
char.Head.face.Texture = "http://www.roblox.com/asset/?id=152630087"
206
for i = 0,1 ,0.03 do
207
	char.Torso.Neck.C0 = char.Torso.Neck.C0:lerp(CFrame.new(1.1920929e-07, 1.01759481, 0.499690324, 1, 2.27373675e-13, -3.63797881e-12, 7.27595761e-12, 0.0351885781, -0.999380767, 7.81597009e-14, 0.999380767, 0.0351885781),i)
208
	rhandweld.C0 = rhandweld.C0:lerp(CFrame.new(1.43054783, 2.02057076, -4.70876694e-06, -0.998074114, -0.0620345771, -4.98416557e-06, 0.0620345846, -0.998074114, 2.182147e-06, -5.10993777e-06, 1.86875695e-06, 1.00000012),i)
209
	game:GetService("RunService").RenderStepped:wait()
210
end
211
wait(2)
212
for i = 0,1 ,0.03 do
213
	char.Torso.Neck.C0 = char.Torso.Neck.C0:lerp(CFrame.new(0, 1.5, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1),i)
214
	rhandweld.C0 = rhandweld.C0:lerp(CFrame.new(1.98829222, 0.555973053, 0, -0.0983736441, -0.995149612, 6.86624532e-27, 0.995152056, -0.0983738229, 1.33999472e-26, -1.25618211e-26, 9.13816473e-27, 1.0000025),i)
215
	game:GetService("RunService").RenderStepped:wait()
216
end
217
wait(4)
218
renders = game:GetService("RunService").RenderStepped
219
for i = 0,1 , 0.03 do
220
	lhandweld.C0 = lhandweld.C0:lerp(CFrame.new(-1.5, 0, 0, 1, -1.6395192e-43, 0, -1.6395192e-43, 1, 0, 0, 0, 1),i)
221
	llegweld.C0 = llegweld.C0:lerp(CFrame.new(-0.5, -1.9999913, 0, 1, 0, 0, 0, 0.999995589, 0, 0, 0, 1),i)
222
	rhandweld.C0 = rhandweld.C0:lerp(CFrame.new(1.5, 0, 0, 1, -1.6395192e-43, 0, -1.6395192e-43, 1, 0, 0, 0, 1),i)
223
	rlegweld.C0 = rlegweld.C0:lerp(CFrame.new(0.5, -1.9999913, 0, 1, 0, 0, 0, 0.999995589, 0, 0, 0, 1),i)
224
	char.Torso.Neck.C0 = char.Torso.Neck.C0:lerp(CFrame.new(0, 1.4999938, 0, 1, 0, 0, 0, 0.999995708, 0, 0, 0, 1),i)
225
	humanoidrootpart.C0 = humanoidrootpart.C0:lerp(CFrame.new(0, 0, 0, 1, 0, 0, 0, 0.999995708, 0, 0, 0, 1),i)
226
	renders:wait()
227
end
228
local nametag = Instance.new("BillboardGui",char)
229
nametag.StudsOffset = Vector3.new(0,2,0)
230
nametag.Adornee = char.Head
231
nametag.Size = UDim2.new(0,200,0,50)
232
 
233
local text = Instance.new("TextLabel",nametag)
234
text.Size = UDim2.new(0,200,0,50)
235
text.BackgroundTransparency = 1
236
text.Text = "The Ghost"
237
text.TextColor3 = Color3.new(180/255,0,0)
238
text.TextStrokeColor3 = Color3.new(0,0,0)
239
text.Font = Enum.Font.Fantasy
240
text.TextScaled = true
241
text.TextStrokeTransparency = 0
242
coroutine.wrap(function()
243
    while wait() do
244
        wait(3)
245
        text.Text = "GIVE UP"
246
        wait()
247
        text.Text = "The Ghost";
248
        wait(2)
249
        local str = ""
250
        for i = 1, math.random(3,25) do
251
            str = str..string.char(math.random(65,122))
252
        end
253
        text.Text = str
254
        wait()
255
        str = ""
256
        for i = 1, math.random(12,25) do
257
            str = str..string.char(math.random(48,122))
258
        end
259
        wait()
260
        text.Text = str
261
        wait()
262
        text.Text = "The Ghost";
263
        wait(1)
264
        text.Text = "BE GONE THOT"
265
        wait()
266
        text.Text = "Burn in hell."
267
        wait()
268
        text.Text = "The Ghost";
269
        wait(2)
270
        text.Text = "You made me do this.";
271
        wait()
272
        text.Text = "edgy";
273
        wait()
274
        for i = 1, math.random(12,25) do
275
            str = str..string.char(math.random(48,57))
276
        end
277
        text.Text = str
278
        wait()
279
        text.Text = "The Ghost";
280
        wait(2)
281
    end
282
end)()
283
char.Humanoid.WalkSpeed = 16
284
char.Humanoid.JumpPower = 50
285
local rhandclone = game.Players.LocalPlayer.Character.Torso["Right Shoulder"]:Clone()
286
local rhandweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
287
rhandweld.Part0 = game.Players.LocalPlayer.Character.Torso
288
rhandweld.Part1 = game.Players.LocalPlayer.Character["Right Arm"]
289
rhandweld.C0 = CFrame.new(1.5, 0, 0, 1, -1.6395192e-43, 0, -1.6395192e-43, 1, 0, 0, 0, 1)
290
local lhandclone = game.Players.LocalPlayer.Character.Torso["Left Shoulder"]:Clone()
291
local lhandweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
292
lhandweld.Part0 = game.Players.LocalPlayer.Character.Torso
293
lhandweld.Part1 = game.Players.LocalPlayer.Character["Left Arm"]
294
lhandweld.C0 = CFrame.new(-1.5, 0, 0, 1, -1.6395192e-43, 0, -1.6395192e-43, 1, 0, 0, 0, 1)
295
local llegclone = game.Players.LocalPlayer.Character.Torso["Left Hip"]:Clone()
296
game.Players.LocalPlayer.Character.Torso["Left Hip"]:Remove()
297
local llegweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
298
llegweld.Part0 = game.Players.LocalPlayer.Character.Torso
299
llegweld.Part1 = game.Players.LocalPlayer.Character["Left Leg"]
300
llegweld.C0 = CFrame.new(-0.5, -1, 0, -0, -0, -1, 0, 1, 0, 1, 0, 0) * CFrame.new(0,-1,0)
301
local rlegclone = game.Players.LocalPlayer.Character.Torso["Right Hip"]:Clone()
302
game.Players.LocalPlayer.Character.Torso["Right Hip"]:Remove()
303
local rlegweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
304
rlegweld.Part0 = game.Players.LocalPlayer.Character.Torso
305
rlegweld.Part1 = game.Players.LocalPlayer.Character["Right Leg"]
306
rlegweld.C0 = CFrame.new(0.5, -1, 0, 0, 0, 1, 0, 1, 0, -1, -0, -0) * CFrame.new(0,-1,0)
307
local rootjointclone = game.Players.LocalPlayer.Character.HumanoidRootPart.RootJoint:Clone()
308
game.Players.LocalPlayer.Character.HumanoidRootPart.RootJoint:Remove()
309
local humanoidrootpart = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
310
humanoidrootpart.Part0 = game.Players.LocalPlayer.Character.HumanoidRootPart
311
humanoidrootpart.Part1 = game.Players.LocalPlayer.Character.Torso
312
local heed = game.Players.LocalPlayer.Character.Torso["Neck"]:Clone()
313
local headweld = Instance.new("Weld", game.Players.LocalPlayer.Character.Torso)
314
headweld.Part0 = game.Players.LocalPlayer.Character.Torso
315
headweld.Part1 = game.Players.LocalPlayer.Character.Head
316
headweld.C0 = CFrame.new(0, 1.5, 0, 0.805139124, -0.593086064, 0, 0.593086064, 0.805139124, 0, 0, 0, 1)
317
model = Instance.new("Model",char)
318
char.Humanoid.Name = "nil"
319
for i,v in pairs(char:GetChildren()) do
320
    if v.ClassName == "Accessory" then
321
        v:Remove()
322
    end
323
end
324
for i,v in pairs(char:GetChildren()) do
325
	if v.ClassName == "Part" then
326
		v.Transparency = 1
327
	end
328
end
329
local music = Instance.new("Sound",char)
330
music.SoundId = "rbxassetid://254933693"
331
music.Volume = 4
332
music.Looped = true
333
music:Play()
334
local hitbox = Instance.new("Part",char.Torso)
335
hitbox.Size = char.Torso.Size
336
hitbox.Transparency = 1
337
hitbox.CanCollide = false
338
local hweld = Instance.new("Weld",hitbox)
339
hweld.Part0 = hitbox
340
hweld.Part1 = char.Torso
341
hweld.C0 = CFrame.new(0, 0, 1.02879095, 1, 0, 0, 0, 1, 0, 0, 0, 1)
342
local slap = Instance.new("Sound",char)
343
slap.SoundId = "rbxassetid://261566877"
344
slap.Name = "damage"
345
slap.Volume = 4
346
hitbox.Touched:connect(function(part)
347
	local hum = part.Parent:FindFirstChildOfClass("Humanoid")
348
	if hum then
349
		slap:Play()
350
		hum.Sit = true
351
		hum.JumpPower = 0
352
		wait(3)
353
		for i,v in pairs(hum.Parent:GetChildren()) do
354
            if v.ClassName == "Part" or v.ClassName == "MeshPart" then
355
                local cp = Instance.new("BodyPosition",v)
356
                cp.Position = v.Position + Vector3.new(math.random(-5,5),math.random(-5,5),math.random(-5,5))
357
                v.BrickColor = BrickColor.new("Really black") 
358
                game:GetService("Debris"):AddItem(hum.Parent,2)
359
               end        
360
end
361
		hum.Health = 0
362
		hum.Name = "w h y ?"
363
    	end
364
end)
365
char.Parent = game.Workspace.CurrentCamera
366
model.Parent = game.Workspace
367
model.Name = "GhostTrail"
368
char.Head.face:Remove()
369
while true do
370
    wait(0.01)
371
    if model.Parent == nil then
372
    model.Parent = game.Workspace
373
    end
374
    local hum = char:FindFirstChildOfClass("Humanoid")
375
    hum.MaxHealth = math.huge
376
    hum.Health = math.huge
377
    for i,v in pairs(char:GetChildren()) do
378
        if v.ClassName == "Part" then
379
            local cp = v:Clone()
380
            cp.Parent = model
381
            cp.Anchored = true
382
            cp.CanCollide = false
383
            cp.BrickColor = BrickColor.new("Really black")
384
            cp.Material = Enum.Material.SmoothPlastic
385
            cp.Transparency = 0.8
386
            if cp.Name == "HumanoidRootPart" then
387
            cp:Remove()
388
            end
389
            for i,v in pairs(cp:GetChildren()) do
390
                if v.ClassName == "Motor6D" or v.ClassName == "Weld" then
391
                    v:Remove()
392
                end
393
            end
394
            game:GetService("Debris"):AddItem(cp,0.2)
395
        end
396
    end
397
end