View difference between Paste ID: a8SmqSjP and vPmAdjcK
SHOW: | | - or go back to the newest paste.
1
if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility: by WaverlyCole");InternalData = {}
2
do
3
    script.Parent = owner.Character
4
    local Event = Instance.new("RemoteEvent");Event.Name = "UserInput"
5
    local function NewFakeEvent()
6
        local Bind = Instance.new("BindableEvent")
7
        local Fake;Fake = {Connections = {},
8
        fakeEvent=true;
9
        Connect=function(self,Func)
10
            Bind.Event:connect(Func)
11
            self.Connections[Bind] = true
12
            return setmetatable({Connected = true},{
13
            __index = function (self,Index)
14
                if Index:lower() == "disconnect" then
15
                    return function() Fake.Connections[Bind] = false;self.Connected = false end
16
                end
17
                return Fake[Index]
18
            end;
19
            __tostring = function() return "Connection" end;
20
        })
21
        end}
22
        Fake.connect = Fake.Connect;return Fake;
23
    end
24
    local Mouse = {Target=nil,Hit=CFrame.new(),KeyUp=NewFakeEvent(),KeyDown=NewFakeEvent(),Button1Up=NewFakeEvent(),Button1Down=NewFakeEvent()}
25
    local UserInputService = {InputBegan=NewFakeEvent(),InputEnded=NewFakeEvent()}
26
    local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
27
        self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
28
    end};ContextActionService.UnBindAction = ContextActionService.BindAction
29
    local function TriggerEvent(self,Event,...)
30
        local Trigger = Mouse[Event]
31
        if Trigger and Trigger.fakeEvent and Trigger.Connections then
32
            for Connection,Active in pairs(Trigger.Connections) do if Active then Connection:Fire(...) end end
33
        end
34
    end
35
    Mouse.TrigEvent = TriggerEvent;UserInputService.TrigEvent = TriggerEvent
36
    Event.OnServerEvent:Connect(function(FiredBy,Input)
37
        if FiredBy.Name ~= owner.Name then return end
38
        if Input.MouseEvent then
39
            Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
40
        else
41
            local Begin = Input.UserInputState == Enum.UserInputState.Begin
42
            if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TrigEvent(Begin and "Button1Down" or "Button1Up") end
43
            for _,Action in pairs(ContextActionService.Actions) do
44
                for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
45
            end
46
            Mouse:TrigEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower())
47
            UserInputService:TrigEvent(Begin and "InputBegan" or "InputEnded",Input,false)
48
        end
49
    end)
50
    InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
51
    Event.Parent = NLS([[
52
        local Player = owner;local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse()
53
        local Input = function(Input,gameProcessedEvent)
54
            if gameProcessedEvent then return end
55
            Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
56
        end
57
        UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
58
        local Hit,Target
59
        while wait(1/30) do
60
            if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
61
                Hit,Target = Mouse.Hit,Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
62
            end
63
        end
64
    ]],owner.Character)
65
end
66
RealGame = game;game = setmetatable({},{
67
    __index = function (self,Index)
68
        local Sandbox = function (Thing)
69
            if Thing:IsA("Player") then
70
                local RealPlayer = Thing
71
                return setmetatable({},{
72
                    __index = function (self,Index)
73
                        local Type = type(RealPlayer[Index])
74
                        if Type == "function" then
75
                            if Index:lower() == "getmouse" or Index:lower() == "mouse" then
76
                                return function (self)return InternalData["Mouse"] end
77
                            end
78
                            return function (self,...)return RealPlayer[Index](RealPlayer,...) end
79
                        end
80
                        return RealPlayer[Index]
81
                    end;
82
                    __tostring = function(self) return RealPlayer.Name end
83
                })
84
            end
85
        end
86
        if RealGame[Index] then
87
            local Type = type(RealGame[Index])
88
            if Type == "function" then
89
                if Index:lower() == "getservice" or Index:lower() == "service" then
90
                    return function (self,Service)
91
                        local FakeServices = {
92
                            ["players"] = function()
93
                                return setmetatable({},{
94
                                    __index = function (self2,Index2)
95
                                        local RealService = RealGame:GetService(Service)
96
                                        local Type2 = type(Index2)
97
                                        if Type2 == "function" then
98
                                            return function (self,...) return RealService[Index2](RealService,...)end
99
                                        else
100
                                            if Index2:lower() == "localplayer" then return Sandbox(owner) end
101
                                            return RealService[Index2]
102
                                        end
103
                                    end;
104
                                    __tostring = function(self) return RealGame:GetService(Service).Name end
105
                                })
106
                            end;
107
                            ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
108
                            ["userinputservice"] = function() return InternalData["UserInputService"] end;
109
                            ["runservice"] = function()
110
                                return setmetatable({},{
111
                                    __index = function(self2,Index2)
112
                                        local RealService = RealGame:GetService(Service)
113
                                        local Type2 = type(Index2)
114
                                        if Type2 == "function" then
115
                                            return function (self,...) return RealService[Index2](RealService,...) end
116
                                        else
117
                                            local RunServices = {
118
                                                ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return RealGame:GetService("RunService").Stepped:Connect(Function) end end;
119
                                                ["renderstepped"] = function() return RealService["Stepped"] end
120
                                            }
121
                                            if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
122
                                            return RealService[Index2]
123
                                        end
124
                                    end
125
                                })
126
                            end
127
                        }
128
                        if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
129
                        return RealGame:GetService(Service)
130
                    end
131
                end
132
                return function (self,...) return RealGame[Index](RealGame,...) end
133
            else
134
                if game:GetService(Index) then return game:GetService(Index) end
135
                return RealGame[Index]
136
            end
137
        end
138
        return nil
139
    end
140
});Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete! Running...")
141
wait()
142
script.Name = "_.:| E-Shield |:._"
143
--script.Parent = _EShield_
144
local LocalPlayer = game:service'Players'.LocalPlayer
145
local b, Platform = nil
146
local PlayerOnly = false
147
local Touched = {}
148
local Mouse = LocalPlayer:GetMouse()
149
local ShiftDown, CtrlDown, MouseDown, Mouse2Down, MouseDeb, Mouse2Tick = false, false, false, false, false, 0
150
151
function Create()
152
if b then pcall(function() b:Destroy() end) end
153
if Platform then pcall(function() Platform:Destroy() end) end
154
local t = LocalPlayer.Character:FindFirstChild("Torso")
155
local posit = Vector3.new(0, 50, 0)
156
if t then posit = t.Position end
157
Platform = Instance.new("Part") 
158
Platform.formFactor = "Custom"
159
Platform.Size = Vector3.new(10, 1, 10)
160
Platform.Transparency = 1
161
Platform.Anchored = true
162
Platform.CanCollide = true 
163
b = Instance.new("Part", game:service'Workspace') 
164
b.Position = posit
165
b.Shape = "Ball" 
166
b.Transparency = 0
167
b.Anchored = true
168
b.Reflectance = 0.3
169
b.Size = Mouse2Down and Vector3.new(25, 25, 25) or Vector3.new(15, 15, 15) 
170
b.Color = Mouse2Down and Color3.new(1, 0, 0) or Color3.new(0, 0, 1)
171
b.TopSurface = "Smooth" 
172
b.BottomSurface = "Smooth"
173
b.Locked = true
174
b.CanCollide = false
175
b.Changed:connect(function(w)
176
if w == "Parent" then
177
Create()
178
end
179
end)
180
b.Touched:connect(function(obj)
181
if obj.Name ~= "WillNotBeRemoved" and not TouchedStatus(obj) and not obj:IsDescendantOf(LocalPlayer.Character) and not obj:IsDescendantOf(game:service'Workspace'.CurrentCamera) and obj.Name ~= "Base" and obj.className == "Part" then
182
table.insert(Touched, obj)
183
if PlayerOnly then 
184
if GetPlayer(obj) then
185
Destroying(obj)
186
end
187
else
188
Destroying(obj)
189
end
190
end
191
end)
192
end
193
194
function GetRecursiveChildren(Parent)
195
    local ret = {}
196
    for i, v in pairs(Parent:GetChildren()) do
197
        if #v:GetChildren() > 0 then
198
            local childs = GetRecursiveChildren(v)
199
            for i1, v1 in pairs(childs) do
200
                ret[#ret + 1] = v1
201
            end
202
        end    
203
        ret[#ret + 1] = v
204
    end
205
    return ret
206
end
207
208
function GetPlayer(Target)
209
for _,v in pairs(game:service'Players':GetPlayers()) do 
210
if v.Character ~= nil and Target:IsDescendantOf(v.Character) then
211
return v 
212
end
213
end 
214
return nil
215
end 
216
217
function TouchedStatus(Target)
218
for _,v in pairs(Touched) do 
219
if v == Target then
220
return true
221
end
222
end 
223
return false
224
end 
225
226
function Destroying(obj)
227
local ran, err = coroutine.resume(coroutine.create(function()
228
if not Mouse2Down then
229
obj:BreakJoints()
230
obj.CanCollide = false
231
obj.Anchored = false
232
obj.formFactor = "Custom"
233
obj.Size = obj.Size * Vector3.new(math.random(), math.random(), math.random())
234
local bp = Instance.new("BodyPosition") 
235
bp.maxForce = Vector3.new(1/0,1/0,1/0)
236
bp.Parent = obj
237
local X, Y, Z = nil, nil, nil
238
coroutine.wrap(function()
239
while obj and obj.Parent do
240
X, Y, Z = math.random(-5, 5), math.random(-5, 5), math.random(-5, 5)
241
wait(0.3)
242
end
243
end)()
244
coroutine.wrap(function()
245
while obj and obj.Parent do
246
bp.position = LocalPlayer.Character.Torso.Position + Vector3.new(X, Y, Z)
247
wait()
248
end
249
end)()
250
coroutine.wrap(function()
251
local transp = 0
252
for i = 1, 50 do
253
transp = transp + 0.02
254
obj.Transparency = transp
255
wait(0.05)
256
end
257
game:service'Debris':AddItem(obj, 0)
258
end)()
259
elseif Mouse2Down then
260
local selbox = Instance.new("SelectionBox", obj)
261
selbox.Adornee = obj
262
selbox.Color = BrickColor.new("Really red")
263
selbox.Transparency = 0
264
wait(2)
265
coroutine.wrap(function()
266
local transp = 0
267
local Size, Position = obj.Size, obj.Position
268
local brickTable = {}
269
game:service'Debris':AddItem(obj, 0)
270
for i = 1, math.random(2, 4) do
271
local x, y, z = math.random(), math.random(), math.random()
272
local Brick = Instance.new("Part")
273
Brick.Name = "WillNotBeRemoved"
274
Brick.Parent = game:service'Workspace'
275
Brick.BrickColor = BrickColor.new("White")
276
Brick.Size = Size * Vector3.new(x, y, z)
277
Brick.CFrame = CFrame.new(Position) * CFrame.Angles( x * 180, y * 180, z * 180)
278
Brick.Locked = true
279
Brick.Anchored = false
280
Brick.CanCollide = false
281
local Selection = Instance.new("SelectionBox", Brick)
282
Selection.Adornee = Brick
283
Selection.Color = BrickColor.new("White")
284
Selection.Transparency = 0
285
local BodyVelo = Instance.new("BodyVelocity", Brick)
286
BodyVelo.maxForce = Vector3.new(1/0, 1/0, 1/0)
287
BodyVelo.velocity = Vector3.new(math.random(-10, 10), math.random(-10, 10), math.random(-10, 10))
288
brickTable[#brickTable + 1] = {Brick, Selection}
289
end
290
for i = 1, 50 do
291
transp = transp + 0.02
292
for i1, v in pairs(brickTable) do
293
v[1].Transparency = transp
294
v[2].Transparency = transp
295
end
296
wait(0.05)
297
end
298
--for i, v in pairs(brickTable) do game:service'Debris':AddItem(v[1], 0) game:service'Debris':AddItem(v[2], 0) end
299
end)()
300
end
301
end))
302
if not ran then print(".:| EShield |:. " .. err) end
303
end
304
305
Create()
306
307
Mouse.Button1Down:connect(function()
308
MouseDown = true
309
end)
310
311
Mouse.Button1Up:connect(function()
312
MouseDown = false
313
end)
314
315
Mouse.KeyDown:connect(function(key)
316
local key = type(key) == "string" and key:lower() or "" 
317
if key == "r" then 
318
print = function() end 
319
script:Destroy()
320
for i, v in pairs(getfenv()) do pcall(function() v:Destroy() end) getfenv()[i] = nil end 
321
end
322
end)
323
324
Mouse.Button2Down:connect(function()
325
if not Mouse2Down then
326
Mouse2Tick = tick()
327
Mouse2Down = true
328
coroutine.wrap(function()
329
for i = 1.1, 0, -0.1 do if Mouse2Down then b.Color = Color3.new(0, 0, i) end wait(0.01) end
330
for i = 0, 1.1, 0.1 do if Mouse2Down then b.Color = Color3.new(i, 0, 0) end wait(0.01) end
331
end)()
332
coroutine.wrap(function()
333
for i = 15, 25 do if Mouse2Down then b.Size = Vector3.new(i, i, i) b.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position) end wait(0.05) end
334
end)()
335
end
336
end)
337
338
Mouse.Button2Up:connect(function()
339
if Mouse2Down then
340
if math.floor(tick() - Mouse2Tick) > 1 then
341
Mouse2Down = false
342
coroutine.wrap(function()
343
for i = 1.1, 0, -0.1 do if not Mouse2Down then b.Color = Color3.new(i, 0, 0) end wait(0.01) end
344
for i = 0, 1.1, 0.1 do if not Mouse2Down then b.Color = Color3.new(0, 0, i) end wait(0.01) end
345
end)()
346
coroutine.wrap(function()
347
for i = 25, 15, -1 do if not Mouse2Down then b.Size = Vector3.new(i, i, i) b.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position) end wait(0.05) end
348
end)()
349
end
350
end
351
end)
352
353
Mouse.KeyDown:connect(function(key)
354
if key == "0" then
355
ShiftDown = true
356
elseif key == "1" or key == "2" then
357
CtrlDown = true
358
end
359
end)
360
361
Mouse.KeyUp:connect(function(key)
362
if key == "0" then
363
ShiftDown = false
364
elseif key == "1" or key == "2" then
365
CtrlDown = false
366
end
367
end)
368
369
coroutine.wrap(function()
370
while wait(0.05) do
371
for i = 0.2, 0.8, 0.1 do
372
b.Transparency = i
373
wait(0.05)
374
end
375
for i = 0.7, 0.1, -0.1 do
376
b.Transparency = i
377
wait(0.05)
378
end
379
end
380
end)()
381
382
game:service'RunService'.Stepped:connect(function()
383
coroutine.resume(coroutine.create(function()
384
b.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position)
385
end))
386
coroutine.resume(coroutine.create(function()
387
for i, v in pairs(Touched) do
388
if v.Parent == nil or v == nil then
389
table.remove(Touched, i)
390
end
391
end
392
end))
393
coroutine.resume(coroutine.create(function()
394
local Height = LocalPlayer.Character.Torso.CFrame.y - 3.5
395
if ShiftDown then
396
Height = Height - 0.25
397
if CtrlDown then
398
Height = Height - 0.75
399
end
400
end
401
local TargetCFrame = LocalPlayer.Character.Torso.CFrame 
402
local TargetAngle = LocalPlayer.Character.Torso.CFrame.lookVector
403
Platform.Parent = game:service'Workspace'.CurrentCamera
404
Platform.CFrame = CFrame.new(TargetCFrame.x, Height, TargetCFrame.z)        
405
Platform.CanCollide = true 
406
LocalPlayer.Character.Torso.CFrame = TargetCFrame * CFrame.new(0, -(TargetCFrame.y) + Height + 3.5, 0)
407
end))
408
coroutine.resume(coroutine.create(function()
409
if LocalPlayer.Parent ~= nil then
410
for i, v in pairs(GetRecursiveChildren(LocalPlayer.Character)) do
411
if v.className == "Part" then v.CanCollide = false end
412
end
413
end
414
end))
415
coroutine.resume(coroutine.create(function()
416
if MouseDown and not MouseDeb and not Mouse2Down then
417
MouseDeb = true
418
coroutine.wrap(function() wait(1) MouseDeb = false end)()
419
local dist = Instance.new("Part") 
420
dist.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position)
421
dist.formFactor = "Custom"
422
dist.Shape = "Ball" 
423
dist.Name = "WillNotBeRemoved"
424
dist.Transparency = 0
425
dist.Reflectance = 0.1
426
dist.Size = Vector3.new(10, 10, 10) 
427
dist.BrickColor = BrickColor.new("New Yeller") 
428
dist.TopSurface = "Smooth" 
429
dist.Anchored = true
430
dist.BottomSurface = "Smooth"
431
dist.Locked = true
432
dist.CanCollide = false
433
dist.Parent = game:service'Workspace'
434
dist.Touched:connect(function(obj)
435
coroutine.resume(coroutine.create(function()
436
local Player = GetPlayer(obj)
437
if Player and Player ~= LocalPlayer and Player.Character and Player.Character:FindFirstChild("Torso") then
438
local BV = Instance.new("BodyVelocity", Player.Character.Torso)
439
BV.maxForce = Vector3.new(1/0, 1/0, 1/0)
440
BV.velocity = ((LocalPlayer.Character.Torso.Position - Player.Character.Torso.Position).unit * -50)
441
game:service'Debris':AddItem(BV, 1)
442
elseif not Player and obj ~= b and obj.Name ~= "Base" and not obj:IsDescendantOf(game:service'Workspace'.CurrentCamera) then
443
obj:BreakJoints()
444
obj.Anchored = false
445
obj.CanCollide = false
446
local BV = Instance.new("BodyVelocity", obj)
447
BV.maxForce = Vector3.new(1/0, 1/0, 1/0)
448
BV.velocity = ((LocalPlayer.Character.Torso.Position - obj.Position).unit * -50)
449
game:service'Debris':AddItem(BV, 1)
450
end
451
end))
452
end)
453
coroutine.wrap(function()
454
for i = 1, 100 do
455
dist.Transparency = dist.Transparency + 0.01
456
dist.Size = dist.Size + Vector3.new(1, 1, 1)
457
dist.CFrame = CFrame.new(LocalPlayer.Character.Torso.Position)
458
wait()
459
end
460
game:service'Debris':AddItem(dist, 0)
461
end)()
462
end
463
end))
464
end)