View difference between Paste ID: x9zxjV1h and T7uwxGvp
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient() then error("Script must be server-side in order to work; use h/ and not hl/") end
2
local Player,game,owner = owner,game
3
local RealPlayer = Player
4
do
5
    print("FE Compatibility code by Mokiros")
6
    local rp = RealPlayer
7
    script.Parent = rp.Character
8
   
9
    --RemoteEvent for communicating
10
    local Event = Instance.new("RemoteEvent")
11
    Event.Name = "UserInput_Event"
12
 
13
    --Fake event to make stuff like Mouse.KeyDown work
14
    local function fakeEvent()
15
        local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
16
        t.connect = t.Connect
17
        return t
18
    end
19
 
20
    --Creating fake input objects with fake variables
21
    local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
22
    local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
23
    local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
24
        CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
25
    end}
26
    --Merged 2 functions into one by checking amount of arguments
27
    CAS.UnbindAction = CAS.BindAction
28
 
29
    --This function will trigger the events that have been :Connect()'ed
30
    local function te(self,ev,...)
31
        local t = m[ev]
32
        if t and t._fakeEvent then
33
            for _,f in pairs(t.Functions) do
34
                f(...)
35
            end
36
        end
37
    end
38
    m.TrigEvent = te
39
    UIS.TrigEvent = te
40
 
41
    Event.OnServerEvent:Connect(function(plr,io)
42
        if plr~=rp then return end
43
        m.Target = io.Target
44
        m.Hit = io.Hit
45
        if not io.isMouse then
46
            local b = io.UserInputState == Enum.UserInputState.Begin
47
            if io.UserInputType == Enum.UserInputType.MouseButton1 then
48
                return m:TrigEvent(b and "Button1Down" or "Button1Up")
49
            end
50
            if io.UserInputType == Enum.UserInputType.MouseButton2 then
51
                return m:TrigEvent(b and "Button2Down" or "Button2Up")
52
            end
53
            for _,t in pairs(CAS.Actions) do
54
                for _,k in pairs(t.Keys) do
55
                    if k==io.KeyCode then
56
                        t.Function(t.Name,io.UserInputState,io)
57
                    end
58
                end
59
            end
60
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
61
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
62
        end
63
    end)
64
    Event.Parent = NLS([==[
65
    local Player = game:GetService("Players").LocalPlayer
66
    local Event = script:WaitForChild("UserInput_Event")
67
    local Mouse = Player:GetMouse()
68
    local UIS = game:GetService("UserInputService")
69
    local input = function(io,a)
70
        if a then return end
71
        --Since InputObject is a client-side instance, we create and pass table instead
72
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
73
    end
74
    UIS.InputBegan:Connect(input)
75
    UIS.InputEnded:Connect(input)
76
    local h,t
77
    --Give the server mouse data 30 times every second, but only if the values changed
78
    --If player is not moving their mouse, client won't fire events
79
    while wait(1/30) do
80
        if h~=Mouse.Hit or t~=Mouse.Target then
81
            h,t=Mouse.Hit,Mouse.Target
82
            Event:FireServer({isMouse=true,Target=t,Hit=h})
83
        end
84
    end]==],Player.Character)
85
 
86
    ----Sandboxed game object that allows the usage of client-side methods and services
87
    --Real game object
88
    local _rg = game
89
 
90
    --Metatable for fake service
91
    local fsmt = {
92
        __index = function(self,k)
93
            local s = rawget(self,"_RealService")
94
            if s then
95
                return typeof(s[k])=="function"
96
                and function(_,...)return s[k](s,...)end or s[k]
97
            end
98
        end,
99
        __newindex = function(self,k,v)
100
            local s = rawget(self,"_RealService")
101
            if s then s[k]=v end
102
        end
103
    }
104
    local function FakeService(t,RealService)
105
        t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
106
        return setmetatable(t,fsmt)
107
    end
108
 
109
    --Fake game object
110
    local g = {
111
        GetService = function(self,s)
112
            return rawget(self,s) or _rg:GetService(s)
113
        end,
114
        Players = FakeService({
115
            LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
116
        },"Players"),
117
        UserInputService = FakeService(UIS,"UserInputService"),
118
        ContextActionService = FakeService(CAS,"ContextActionService"),
119
        RunService = FakeService({
120
            _btrs = {},
121
            RenderStepped = _rg:GetService("RunService").Heartbeat,
122
            BindToRenderStep = function(self,name,_,fun)
123
                self._btrs[name] = self.Heartbeat:Connect(fun)
124
            end,
125
            UnbindFromRenderStep = function(self,name)
126
                self._btrs[name]:Disconnect()
127
            end,
128
        },"RunService")
129
    }
130
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
131
    g.service = g.GetService
132
    FakeService(g,game)
133
    --Changing owner to fake player object to support owner:GetMouse()
134
    game,owner = g,g.Players.LocalPlayer
135
end
136
wait(1)
137
math.randomseed(tick() % 1 * 1e6)
138
sky = coroutine.create(function()
139
	while wait(0.3) do
140
		s = Instance.new("Sky",game.Lighting)
141
		s.SkyboxBk,s.SkyboxDn,s.SkyboxFt,s.SkyboxLf,s.SkyboxRt,s.SkyboxUp = "rbxassetid://201208408","rbxassetid://201208408","rbxassetid://201208408","rbxassetid://201208408","rbxassetid://201208408","rbxassetid://201208408"
142
		s.CelestialBodiesShown = false
143
	end
144
end)
145
146
147
del = coroutine.create(function()
148
	while wait(0.3) do
149
		for i,v in pairs(workspace:GetChildren()) do
150
			if v:IsA("Model") then
151
				v:Destroy()
152
			end
153
		end
154
	end
155
end)
156
157
158
159
for i,v in pairs(game.Players:GetChildren()) do
160
end
161
162
noises = {'rbxassetid://230287740','rbxassetid://271787597','rbxassetid://153752123','rbxassetid://271787503'}
163
164
sound = coroutine.create(function()
165
	a = Instance.new("Sound",workspace)
166
	a.SoundId = "rbxassetid://141509625"
167
	a.Name = "RAINING MEN"
168
	a.Volume = 58359
169
	a.Looped = true
170
	a:Play()
171
	while wait(0.2) do
172
		rainin = workspace:FindFirstChild("RAINING MEN")
173
		if not rainin then
174
			a = Instance.new("Sound",workspace)
175
			a.SoundId = "rbxassetid://141509625"
176
			a.Name = "RAINING MEN"
177
			a.Volume = 58359
178
			a.Looped = true
179
			a:Play()
180
		end
181
	end
182
end)
183
184
msg = coroutine.create(function()
185
	while wait(0.4) do
186
		msg = Instance.new("Message",workspace)
187
		msg.Text = "Get toadroasted you bacon-haired bozos. (GO QUIT FUCKED SHIT NIGGER XD FELIXMAYERKIDS IS A HACKER)"
188
		wait(0.4)
189
		msg:Destroy()
190
	end
191
end) 
192
193
194
rain = coroutine.create(function()
195
	while wait(10 % 1 * 1e2) do
196
		part = Instance.new("Part",workspace)
197
		part.Name = "Toad"
198
		
199
		mesh = Instance.new("SpecialMesh",part)
200
		
201
		sound = Instance.new("Sound",workspace)
202
		
203
		part.CanCollide = false
204
		part.Size = Vector3.new(440,530,380)
205
		part.Position = Vector3.new(math.random(-3000,1000),math.random(1,3000),math.random(-3000,3000))
206
	
207
		sound.SoundId = noises[math.random(1,#noises)]
208
		sound:Play()
209
		sound.Ended:connect(function()
210
			sound:Destroy()
211
		end)
212
		
213
		
214
		mesh.MeshType = "FileMesh"
215
		mesh.MeshId = "rbxassetid://430210147"
216
		mesh.TextureId = "rbxassetid://430210159"
217
	end
218
end)
219
coroutine.resume(sky)
220
coroutine.resume(del)
221
coroutine.resume(sound)
222
coroutine.resume(msg)
223
coroutine.resume(rain)