Advertisement
RandomNewbieScripter

ghost edit

Jun 18th, 2018
351
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 11.73 KB | None | 0 0
  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. game:GetService("Players").LocalPlayer.CharacterAdded:connect(function(LUL) table.foreach(LUL:GetChildren(),function(a,b) if b:IsA("SkateboardPlatform") then b:remove() end end) LUL.ChildAdded:connect(function(lel) if lel:IsA("SkateboardPlatform") then wait() lel:remove() end end) end)
  153. wait(0.1)
  154. invis = false
  155.  
  156.  
  157. plr = game.Players.LocalPlayer
  158. mouse = plr:GetMouse()
  159. part = nil
  160. bp = nil
  161. particles = nil
  162. function clerp(a,b,c,d)
  163.     for i = 0,d,.01 do
  164.         a.CFrame = CFrame.new(b:lerp(c,i))
  165.         wait()
  166.     end
  167. end
  168. function slerp(a2,b2,c2,d2)
  169.     for i2 = 0,d2,.01 do
  170.         a2.CFrame = CFrame.new(b2:lerp(c2,i2))
  171.         wait()
  172.     end
  173. end
  174. mouse.KeyDown:connect(function(key)
  175.     if key == "e" and plr.Character.Parent == workspace then
  176.         bbgTl.Text = " "
  177.         bbg.Parent = plr.Character.Head
  178.         plr.Character.Parent = workspace.Camera
  179.         plr.Character.Archivable = true
  180.         Instance.new("ForceField",plr.Character).Visible = false
  181.         for y,t in pairs(plr.Character:GetChildren()) do
  182.             if t:IsA("Part") and t.Name ~= "HumanoidRootPart" then
  183.                 t.Transparency = 1
  184.                 if t.Name == "Head" and t:FindFirstChild("face") then
  185.                     t.face.Transparency = 1
  186.                 end
  187.             elseif t:IsA("Accessory") and t:FindFirstChild("Handle") then
  188.                 t.Handle.Transparency = 1
  189.             end
  190.         end
  191.  
  192.     elseif key == "z" and plr.Character.Parent == workspace.Camera and part == nil then
  193.         plr.Character.Torso.CFrame = CFrame.new(Vector3.new(mouse.hit.p.X,mouse.hit.p.Y+1.5,mouse.hit.p.Z),plr.Character.Torso.CFrame.p)
  194.     elseif key == "x" and plr.Character.Parent == workspace.Camera and part == nil then
  195.         if plr.Character.Torso.Anchored == true then
  196.             for y,t in pairs(plr.Character:GetChildren()) do
  197.                 if t:IsA("Part") then
  198.                     t.Anchored = false
  199.                
  200.                 end
  201.             end
  202.         else
  203.             for y,t in pairs(plr.Character:GetChildren()) do
  204.                 if t:IsA("Part") then
  205.                     t.Anchored = true
  206.                 end
  207.             end
  208.         end
  209.     elseif key == "c" and plr.Character.Parent == workspace.Camera and part ~= nil then
  210.         local clone = part:Clone()
  211.         clone.Parent = workspace
  212.         clone.Anchored = false
  213.         clone:ClearAllChildren()
  214.         clone.CanCollide = true
  215.         bp.Parent = clone
  216.         particles.Parent = clone
  217.         if part.Parent:FindFirstChildOfClass("Humanoid") then
  218.             part.Parent:FindFirstChildOfClass("Humanoid").PlatformStand = false
  219.         end
  220.         part:Destroy()
  221.         part = clone
  222.     elseif key == "t" and plr.Character.Parent == workspace.Camera and part == nil then
  223.         plr.Character.Parent = workspace
  224.         plr.Character.Archivable = false
  225.         plr.Character.Humanoid:ChangeState(18)
  226.         plr.Character.Humanoid.WalkSpeed = 16
  227.         plr.Character:FindFirstChildOfClass("ForceField"):Remove()
  228.         for y,t in pairs(plr.Character:GetChildren()) do
  229.             if t:IsA("Part") and t.Name ~= "HumanoidRootPart" then
  230.                 t.Transparency = 0
  231.                 if t.Name == "Head" and t:FindFirstChild("face") then
  232.                     t.face.Transparency = 0
  233.                 end
  234.             elseif t:IsA("Accessory") and t:FindFirstChild("Handle") then
  235.                 t.Handle.Transparency = 0
  236.             end
  237.         end
  238.     end
  239. end)
  240. mouse.Button1Down:connect(function()
  241.     if plr.Character.Parent == workspace.Camera then
  242.         if mouse ~= nil then
  243.             if mouse.Target ~= nil then
  244.                 part = mouse.Target
  245.                 bp = Instance.new("BodyPosition",part)
  246.                 bp.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
  247.                 bp.Position = part.Position
  248.                 particles = Instance.new("ParticleEmitter",part)
  249.                 particles.Size = NumberSequence.new(1)
  250.                 particles.Texture = "rbxassetid://292289455"
  251.                 particles.VelocitySpread = 360
  252.                 particles.Speed = NumberRange.new(0)
  253.                 particles.RotSpeed = NumberRange.new(0)
  254.                 particles.Rotation = NumberRange.new(0)
  255.                 particles.Rate = 250
  256.                 particles.Lifetime = NumberRange.new(.2,.4)
  257.                 particles.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(.12,.688,0),NumberSequenceKeypoint.new(.891,.887,0),NumberSequenceKeypoint.new(1,1,0)})
  258.                 dwn = true
  259.             end
  260.         end
  261.         while dwn == true do
  262.             wait() 
  263.             bp.Position = mouse.hit.p
  264.             if part then
  265.                 if part.Parent:FindFirstChildOfClass("Humanoid") then
  266.                     part.Parent:FindFirstChildOfClass("Humanoid").PlatformStand = true
  267.                 end
  268.             end
  269.         end
  270.     end
  271. end)
  272. mouse.Button1Up:connect(function()
  273.     dwn = false
  274.     if part then if part.Parent:FindFirstChildOfClass("Humanoid") then part.Parent:FindFirstChildOfClass("Humanoid").PlatformStand = false end part = nil end
  275.     if bp then bp:Destroy() end
  276.     if particles then particles:Destroy() end
  277. end)
  278. base = Instance.new("ScreenGui",plr.PlayerGui)
  279. bbg = Instance.new("BillboardGui",plr.Character.Head)
  280. bbg.Size = UDim2.new(0,200,0,50)
  281. bbg.StudsOffset = Vector3.new(0,3,0)
  282. bbgTl = Instance.new("TextLabel",bbg)
  283. bbgTl.BackgroundTransparency = 1
  284. bbgTl.Size = UDim2.new(10,0,1,0)
  285. bbgTl.Position = UDim2.new(-4.5,0,0,0)
  286. bbgTl.Font = "Code"
  287. bbgTl.Text = " "
  288. bbgTl.TextSize = 25
  289. bbgTl.TextStrokeColor3 = Color3.new(math.random(1,255),math.random(1,255),math.random(0,255))
  290. bbgTl.TextColor3 = Color3.fromHSV(1,1,1)
  291. bbgTl.TextStrokeTransparency = 0
  292. bbgTl.TextWrapped = true
  293. plr.Chatted:connect(function(msg)
  294.     bbgTl.Text = msg
  295.     wait(5)
  296.     if bbgTl.Text == msg then
  297.         bbgTl.Text = " "
  298.     end
  299. end)
  300. touchCounter = 0
  301. color = coroutine.create(function()
  302.     e = 1
  303.     while wait(0.01) do
  304.         if e >= 1 then
  305.             e = 0
  306.         else
  307.             e = e + 0.01
  308.         end
  309.         bbgTl.TextColor3 = Color3.fromHSV(e,1,1)
  310.         bbgTl.TextStrokeColor3 = Color3.fromHSV(e,1,1)
  311.     end
  312. end)
  313. coroutine.resume(color)
  314. while wait() do
  315.    
  316.     if plr.Character.Parent == workspace.Camera then
  317.                 plr.Character.Humanoid.WalkSpeed = 30
  318.         local c = plr.Character:Clone()
  319.         c:MakeJoints()
  320.         c.Name = math.random(1,9999999)
  321.         for y,t in pairs(c:GetChildren()) do
  322.             if t:IsA("Part") then
  323.                 t.CanCollide = false
  324.                 t.Anchored = true
  325.                 t.Transparency = .9
  326.                 t.TopSurface = "Smooth"
  327.                 t.BottomSurface = "Smooth"
  328.                 t.RightSurface = "Smooth"
  329.                 t.LeftSurface = "Smooth"
  330.                 t.FrontSurface = "Smooth"
  331.                 t.BackSurface = "Smooth"
  332.                 t.Material = Enum.Material.Neon
  333.                 t.Color = Color3.fromHSV(e,1,1)
  334.                 if t.Name == "Head" and t:FindFirstChild("face") then
  335.                     t.face:Remove()
  336.                     t.Mesh:Remove()
  337.                 elseif t.Name == "Torso" and t:FindFirstChild("roblox") then
  338.                     t.roblox:Remove()
  339.                 elseif t.Name == "HumanoidRootPart" then
  340.                     t:Remove()
  341.                 end
  342.             else
  343.                 t:Remove()
  344.             end
  345.         end
  346.         c.Parent = workspace
  347.         game.Debris:AddItem(c,.1)
  348.     end
  349. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement