View difference between Paste ID: WdncnDaS and Qi73jz46
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()}
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
            for _,t in pairs(CAS.Actions) do
51
                for _,k in pairs(t.Keys) do
52
                    if k==io.KeyCode then
53
                        t.Function(t.Name,io.UserInputState,io)
54
                    end
55
                end
56
            end
57
            m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
58
            UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
59
        end
60
    end)
61
    Event.Parent = NLS([==[
62
    local Player = game:GetService("Players").LocalPlayer
63
    local Event = script:WaitForChild("UserInput_Event")
64
 
65
    local Mouse = Player:GetMouse()
66
    local UIS = game:GetService("UserInputService")
67
    local input = function(io,a)
68
        if a then return end
69
        --Since InputObject is a client-side instance, we create and pass table instead
70
        Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
71
    end
72
    UIS.InputBegan:Connect(input)
73
    UIS.InputEnded:Connect(input)
74
 
75
    local h,t
76
    --Give the server mouse data 30 times every second, but only if the values changed
77
    --If player is not moving their mouse, client won't fire events
78
    while wait(1/30) do
79
        if h~=Mouse.Hit or t~=Mouse.Target then
80
            h,t=Mouse.Hit,Mouse.Target
81
            Event:FireServer({isMouse=true,Target=t,Hit=h})
82
        end
83
    end]==],Player.Character)
84
 
85
    ----Sandboxed game object that allows the usage of client-side methods and services
86
    --Real game object
87
    local _rg = game
88
 
89
    --Metatable for fake service
90
    local fsmt = {
91
        __index = function(self,k)
92
            local s = rawget(self,"_RealService")
93
            if s then return s[k] end
94
        end,
95
        __newindex = function(self,k,v)
96
            local s = rawget(self,"_RealService")
97
            if s then s[k]=v end
98
        end,
99
        __call = function(self,...)
100
            local s = rawget(self,"_RealService")
101
            if s then return s(...) 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 self[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
    }
120
    rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
121
    g.service = g.GetService
122
   
123
    g.RunService = FakeService({
124
        RenderStepped = _rg:GetService("RunService").Heartbeat,
125
        BindToRenderStep = function(self,name,_,fun)
126
            self._btrs[name] = self.Heartbeat:Connect(fun)
127
        end,
128
        UnbindFromRenderStep = function(self,name)
129
            self._btrs[name]:Disconnect()
130
        end,
131
    },"RunService")
132
 
133
    setmetatable(g,{
134
        __index=function(self,s)
135
            return _rg:GetService(s) or typeof(_rg[s])=="function"
136
            and function(_,...)return _rg[s](_rg,...)end or _rg[s]
137
        end,
138
        __newindex = fsmt.__newindex,
139
        __call = fsmt.__call
140
    })
141
    --Changing owner to fake player object to support owner:GetMouse()
142
    game,owner = g,g.Players.LocalPlayer
143
end
144
145
--This script may not work because of 'Mouse is no longer active' as Studio tests have different results than InRealGame tests. Shame on you Roblox.
146
--To fix that I will be remaking this script entirely as a require().
147
148
wait(2)
149
explosiondebounce = false
150
function explosion(pos,color,grow)
151
	if explosiondebounce == false then
152
		explosiondebounce = true
153
		exp = Instance.new("Part")
154
		exp.Shape = Enum.PartType.Ball
155
		exp.Size = Vector3.new(1,1,1)
156
		exp.Material = Enum.Material.Neon
157
		exp.BrickColor = color
158
		exp.Anchored = true
159
		exp.CanCollide = false
160
		exp.CFrame = CFrame.new(pos.X,pos.Y,pos.Z)
161
		exp.Parent = workspace
162
		for i=1, 10 do
163
			wait(0.1)
164
			exp.Size = exp.Size + Vector3.new(grow,grow,grow)
165
			exp.Transparency = exp.Transparency + 0.1
166
		end
167
		exp:Destroy()
168
		explosiondebounce = false
169
	end
170
end
171
lp = owner
172
char = lp.Character
173
head = char.Head
174
hum = char:FindFirstChildOfClass("Humanoid")
175
hum.PlatformStand = true
176
ra = char:FindFirstChild("Right Arm")
177
wait(1)
178
for i=1, 10 do
179
wait(0.25)
180
part = Instance.new("Part",workspace)
181
part.Anchored = true
182
part.Size = Vector3.new(2,2,2)
183
part.CFrame = ra.CFrame + Vector3.new(math.random(-1,1),0,math.random(-1,1))
184
part.BrickColor = BrickColor.new("Really red")
185
part.Material = Enum.Material.Neon
186
part.CanCollide = false
187
part.CFrame = part.CFrame * CFrame.fromEulerAnglesXYZ(math.random(5,10),math.random(5,10),math.random(5,10))
188
game.Debris:AddItem(part,1)
189
end
190
gun = Instance.new("Tool")
191
gun.Name = "Anti Thot gun"
192
gun.GripPos = Vector3.new(0,0,1)
193
handle = Instance.new("Part",gun)
194
handle.Size = Vector3.new(0.675, 1.213, 2.123)
195
handle.Name = "Handle"
196
handle.BrickColor = BrickColor.Black()
197
handle.Material = Enum.Material.Neon
198
mesh = Instance.new("FileMesh",handle)
199
mesh.MeshId = "rbxassetid://435705367"
200
mesh.Scale = Vector3.new(0.675/10, 1.213/10, 2.123/10)
201
fire = Instance.new("Sound",handle)
202
fire.Volume = 0.5
203
fire.SoundId = "rbxassetid://1095911222"
204
fire.TimePosition = 2.2
205
begone = Instance.new("Sound",head)
206
begone.Volume = 1
207
begone.SoundId = "rbxassetid://1095911222"
208
begone:Play()
209
repeat
210
wait(0.01)
211
until begone.IsLoaded and begone.IsPlaying
212
for i=1, 8 do
213
wait(0.25)
214
part = Instance.new("Part",workspace)
215
part.Anchored = true
216
part.Size = Vector3.new(2,2,2)
217
part.CFrame = ra.CFrame + Vector3.new(math.random(-1,1),0,math.random(-1,1))
218
part.BrickColor = BrickColor.new("Really red")
219
part.Material = Enum.Material.Neon
220
part.CanCollide = false
221
part.CFrame = part.CFrame * CFrame.fromEulerAnglesXYZ(math.random(5,10),math.random(5,10),math.random(5,10))
222
game.Debris:AddItem(part,1)
223
end
224
gun.Parent = char
225
hum.PlatformStand = false
226
explosion(ra.Position,BrickColor.new("Really red"),2.5)
227
mouse = nil
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
gun.Unequipped:connect(function()
246
print("goodbye then")
247
explosion(handle.Position,BrickColor.new("Really red"),1)
248
end)
249
gun.Equipped:connect(function(tmouse)
250
mouse = tmouse
251
print("time to banish some thots")
252
explosion(handle.Position,BrickColor.new("Really red"),1)
253
end)
254
gun.Activated:connect(function()
255
fire.TimePosition = 2.2
256
fire:Play()
257
local ray = Ray.new(handle.CFrame.p, (mouse.Hit.p - handle.CFrame.p).unit * 300)
258
		local part, position = workspace:FindPartOnRay(ray, lp.Character, false, true)
259
 
260
		local beam = Instance.new("Part", workspace)
261
		beam.BrickColor = handle.BrickColor
262
		beam.FormFactor = "Custom"
263
		beam.Material = "Neon"
264
		beam.Transparency = 0
265
		beam.Anchored = true
266
		beam.Locked = true
267
		beam.CanCollide = false
268
 
269
		local distance = (handle.CFrame.p - position).magnitude
270
		beam.Size = Vector3.new(0.3, 0.3, distance)
271
		beam.CFrame = CFrame.new(handle.CFrame.p, position) * CFrame.new(0, 0, -distance / 2)
272
 
273
		game:GetService("Debris"):AddItem(beam, 0.1)
274
 
275
		if part then
276
			local humanoid = part.Parent:FindFirstChild("Humanoid")
277
 
278
			if not humanoid then
279
				humanoid = part.Parent.Parent:FindFirstChild("Humanoid")
280
			end
281
 
282
			if humanoid then
283
				victimchar = humanoid.Parent
284
				gc = victimchar:GetChildren()
285
				for a=1, 10 do
286
					wait(0.1)
287
					for i=1, #gc do
288
						if gc[i].ClassName == "Part" or gc[i].ClassName == "Union" or gc[i].ClassName == "MeshPart" then
289
							gc[i].Anchored = true
290
							gc[i].Transparency = gc[i].Transparency + 0.1
291
							if gc[i]:FindFirstChildOfClass("Decal") then
292
								gc[i]:FindFirstChildOfClass("Decal").Transparency = gc[i]:FindFirstChildOfClass("Decal").Transparency + 0.1
293
							end
294
						end
295
						if gc[i].ClassName == "Hat" or gc[i].ClassName == "Accessory" then
296
							gc[i]:FindFirstChildOfClass("Part").Transparency = gc[i]:FindFirstChildOfClass("Part").Transparency + 0.1
297
						end
298
					end
299
				end
300
				for i=1, #gc do
301
					if gc[i].ClassName == "Part" or gc[i].ClassName == "Union" or gc[i].ClassName == "MeshPart" then
302
						gc[i]:BreakJoints()
303
					end
304
				end
305
			end
306
		end
307
end)
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
wait(0.1)
334
gun.Parent = nil
335
wait(0.1)
336
gun.Parent = char
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
hum.Died:connect(function()
377
de = Instance.new("Explosion")
378
de.BlastPressure = 9999999
379
de.BlastRadius = 9999999
380
de.Position = head.Position
381
de.Parent = workspace
382
m = Instance.new("Message",workspace)
383
m.Text = "PRAISE "..string.upper(char.Name).." "..tostring(math.random(1,100000)).." TIMES A DAY!\nBEGONE, THOT!"
384
game.Debris:AddItem(m,5)
385
end)
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
while true do
404
wait(0.01)
405
handle.BrickColor = BrickColor.Random()
406
end