Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- plr =owner
- mouse = plr:GetMouse()
- part = nil
- bp = nil
- particles = nil
- function clerp(a,b,c,d)
- for i = 0,d,.01 do
- a.CFrame = CFrame.new(b:lerp(c,i))
- wait()
- end
- end
- function slerp(a2,b2,c2,d2)
- for i2 = 0,d2,.01 do
- a2.CFrame = CFrame.new(b2:lerp(c2,i2))
- wait()
- end
- end
- mouse.KeyDown:connect(function(key)
- if key == "e" and plr.Character.Parent == workspace then
- plr.Character.Parent = workspace.Camera
- plr.Character.Archivable = true
- Instance.new("ForceField",plr.Character).Visible = false
- for y,t in pairs(plr.Character:GetChildren()) do
- if t:IsA("Part") and t.Name ~= "HumanoidRootPart" then
- t.Transparency = 1
- if t.Name == "Head" and t:FindFirstChild("face") then
- t.face.Transparency = 1
- end
- elseif t:IsA("Accessory") and t:FindFirstChild("Handle") then
- t.Handle.Transparency = 1
- end
- end
- elseif key == "z" and plr.Character.Parent == workspace.Camera and part == nil then
- 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)
- elseif key == "x" and plr.Character.Parent == workspace.Camera and part == nil then
- if plr.Character.Torso.Anchored == true then
- for y,t in pairs(plr.Character:GetChildren()) do
- if t:IsA("Part") then
- t.Anchored = false
- end
- end
- else
- for y,t in pairs(plr.Character:GetChildren()) do
- if t:IsA("Part") then
- t.Anchored = true
- end
- end
- end
- elseif key == "c" and plr.Character.Parent == workspace.Camera and part ~= nil then
- local clone = part:Clone()
- clone.Parent = workspace
- clone.Anchored = false
- clone:ClearAllChildren()
- clone.CanCollide = true
- bp.Parent = clone
- particles.Parent = clone
- if part.Parent:FindFirstChildOfClass("Humanoid") then
- part.Parent:FindFirstChildOfClass("Humanoid").PlatformStand = false
- end
- part:Destroy()
- part = clone
- elseif key == "t" and plr.Character.Parent == workspace.Camera and part == nil then
- plr.Character.Parent = workspace
- plr.Character.Archivable = false
- plr.Character:FindFirstChildOfClass("ForceField"):Remove()
- for y,t in pairs(plr.Character:GetChildren()) do
- if t:IsA("Part") and t.Name ~= "HumanoidRootPart" then
- t.Transparency = 0
- if t.Name == "Head" and t:FindFirstChild("face") then
- t.face.Transparency = 0
- end
- elseif t:IsA("Accessory") and t:FindFirstChild("Handle") then
- t.Handle.Transparency = 0
- end
- end
- end
- end)
- mouse.Button1Down:connect(function()
- if plr.Character.Parent == workspace.Camera then
- if mouse ~= nil then
- if mouse.Target ~= nil then
- part = mouse.Target
- bp = Instance.new("BodyPosition",part)
- bp.MaxForce = Vector3.new(math.huge,math.huge,math.huge)
- bp.Position = part.Position
- particles = Instance.new("ParticleEmitter",part)
- particles.Color = ColorSequence.new(Color3.new(0,0,0))
- particles.Size = NumberSequence.new(1)
- particles.Texture = "rbxassetid://292289455"
- particles.VelocitySpread = 360
- particles.Speed = NumberRange.new(0)
- particles.RotSpeed = NumberRange.new(0)
- particles.Rotation = NumberRange.new(0)
- particles.Rate = 250
- particles.Lifetime = NumberRange.new(.2,.4)
- particles.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0,1,0),NumberSequenceKeypoint.new(.12,.688,0),NumberSequenceKeypoint.new(.891,.887,0),NumberSequenceKeypoint.new(1,1,0)})
- dwn = true
- end
- end
- while dwn == true do
- wait()
- bp.Position = mouse.hit.p
- if part then
- if part.Parent:FindFirstChildOfClass("Humanoid") then
- part.Parent:FindFirstChildOfClass("Humanoid").PlatformStand = true
- end
- end
- end
- end
- end)
- mouse.Button1Up:connect(function()
- dwn = false
- if part then if part.Parent:FindFirstChildOfClass("Humanoid") then part.Parent:FindFirstChildOfClass("Humanoid").PlatformStand = false end part = nil end
- if bp then bp:Destroy() end
- if particles then particles:Destroy() end
- end)
- base = Instance.new("ScreenGui",plr.PlayerGui)
- bbg = Instance.new("BillboardGui",plr.Character.Head)
- bbg.Size = UDim2.new(0,200,0,50)
- bbg.StudsOffset = Vector3.new(0,3,0)
- bbgTl = Instance.new("TextLabel",bbg)
- bbgTl.BackgroundTransparency = 1
- bbgTl.Size = UDim2.new(10,0,1,0)
- bbgTl.Position = UDim2.new(-4.5,0,0,0)
- bbgTl.Font = "Code"
- bbgTl.Text = " "
- bbgTl.TextSize = 25
- bbgTl.TextStrokeColor3 = Color3.new(1,1,1)
- bbgTl.TextColor3 = Color3.new(0,0,0)
- bbgTl.TextStrokeTransparency = 0
- bbgTl.TextWrapped = true
- plr.Chatted:connect(function(msg)
- bbgTl.Text = msg
- wait(5)
- if bbgTl.Text == msg then
- bbgTl.Text = " "
- end
- end)if game:GetService("RunService"):IsClient()then error("Please run as a server script. Use h/ instead of hl/.")end;print("FE Compatibility by WaverlyCole & Fireboltofdeath");print("https://github.com/WaverlyCole/FE-Compatibility-VoidSb-")
- local Wrapper = {};Wrapper.Fake = {};Wrapper.Real = {};Wrapper.Data = {};
- local sGame = game;local sScript = script;local sOwner = owner;local sInstance = Instance;local sLoadLibrary = LoadLibrary
- Wrapper.Event = Instance.new("RemoteEvent");Wrapper.Event.Name = "UserInput";
- Wrapper.CreateObject = function(connections, index)
- local proxy = newproxy (true);local meta = getmetatable (proxy);
- local runbind = function (self, i, ...) connections[i]:Fire (...); end;
- while (#connections > 0) do connections[table.remove(connections, 1)] = Instance.new ('BindableEvent');end;
- meta.__index = function (self, i)
- if (i == 'TriggerEvent') then return runbind end;
- return connections[i] and connections[i].Event or index[i];
- end;
- meta.__newindex = index;meta.__metatable = false;return proxy
- end;
- Wrapper.Mouse = Wrapper.CreateObject({"KeyUp","KeyDown","Button1Down","Button1Up","Move","Button2Down","Button2Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
- Wrapper.UserInputService = Wrapper.CreateObject({"InputBegan","InputEnded"},{})
- Wrapper.ContextActionService = {Actions={};BindAction = function(self,actionName,Func,touch,...)self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil end;UnBindAction = function(self,actionName,Func,touch,...)self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil end};
- Wrapper.Sandbox = function(...)
- local Unwrap = {...};
- for obi = 1,#Unwrap do
- local Object = Unwrap[obi];
- if (Wrapper.Fake[Object] == nil and Wrapper.Real[Object] == nil) then
- local Type = typeof(Object);local Replacement = Object;
- if (Type == "function") then
- Replacement = function(...)
- local IsRoblox = not (pcall(function() string.dump(Object) end))
- if IsRoblox then
- return Object(Wrapper.Unsandbox(...))
- end
- return Object(Wrapper.Sandbox(...))
- end
- elseif (Type == "table") then
- Replacement = {};
- setmetatable(Replacement, {
- __index = function(self, i)
- return Wrapper.Sandbox(Object[Wrapper.Unsandbox(i)])
- end,
- __newindex = function(self,i,v)
- Object[Wrapper.Unsandbox(i)] = Wrapper.Unsandbox(v)
- end;
- })
- elseif (Type == "Instance") then
- Replacement = newproxy(true);
- local Mt = getmetatable(Replacement);
- Mt.__namecall = function(self, ...)
- local Pack = {...};local Name = Pack[#Pack];table.remove(Pack, #Pack);
- local Rest = nil;pcall(function()Rest = Object[Name];end);
- for g, x in pairs (Wrapper.InstanceMT["GET"]) do
- if (Object:IsA(g) or g == "Global") then
- for t, v in pairs(x) do
- for str in string.gmatch(t .. ",", "(%w+),") do
- if (Name == str) then
- if typeof(v) == "function" then
- return Wrapper.Sandbox(v(Wrapper.Unsandbox(self), Wrapper.Unsandbox(unpack(Pack))))
- else
- return v;
- end
- end
- end
- end
- end
- end
- if (Rest == nil) then
- if Wrapper.Sandbox(sGame):GetService(unpack(Pack)) then return Wrapper.Sandbox(sGame):GetService(unpack(Pack))end;
- return Wrapper.Sandbox(Object[Name]);
- elseif (typeof(Rest) == "function") then
- return Wrapper.Sandbox(Rest(Wrapper.Unsandbox(self), Wrapper.Unsandbox(unpack(Pack))))
- end
- return Wrapper.Sandbox(Object[Name]);
- end
- Mt.__index = function(self, i)
- local Rest = nil;pcall(function()Rest = Object[i];end)
- for g, x in pairs (Wrapper.InstanceMT["GET"]) do
- if (Object:IsA(g) or g == "Global") then
- for t, v in pairs(x) do
- for str in string.gmatch(t .. ",", "(%w+),") do
- if (i == str) then
- if typeof(v) == "function" then
- return function(...)return Wrapper.Sandbox(v(Wrapper.Unsandbox(self), Wrapper.Unsandbox(...)))end;
- else
- return v;
- end
- end
- end
- end
- end
- end
- if (Object:IsA("Sound") and i == "PlaybackLoudness") then return Wrapper.SoundLoudness[Wrapper.Unsandbox(Object)];end;
- if (Rest == nil) then
- if Wrapper.Sandbox(sGame):GetService(i) then return Wrapper.Sandbox(sGame):GetService(i)end;
- return Wrapper.Sandbox(Object[i]);
- elseif (typeof(Rest) == "function") then
- local isService,Service = pcall(function() return sGame:GetService(i) end)
- if isService and Service then return Wrapper.Sandbox(Service) end
- return function(self, ...)
- return Wrapper.Sandbox(Rest(Wrapper.Unsandbox(self), Wrapper.Unsandbox(...)))
- end
- end
- return Wrapper.Sandbox(Object[i]);
- end
- Mt.__newindex = function(self, i, v)
- for g,x in pairs (Wrapper.InstanceMT["SET"]) do
- if (Object:IsA(g)) then
- for t, v in pairs(x) do
- for str in string.gmatch( t .. ",", "(%w+),") do
- if v(Wrapper.Unsandbox(self, i, v)) == true then
- Object[Wrapper.Unsandbox(i)] = Wrapper.Unsandbox(v);return
- end
- end
- end
- end
- end
- Object[Wrapper.Unsandbox(i)] = Wrapper.Unsandbox(v);
- end
- Mt.__tostring = function(self) return tostring(Object) end
- --elseif (Type == "") then -- Etc
- end
- Wrapper.Fake[Object] = Replacement;Wrapper.Real[Replacement] = Object;Unwrap[obi] = Replacement;
- else
- return Wrapper.Fake[Object] or Object;
- end
- end
- return unpack(Unwrap);
- end
- Wrapper.Unsandbox = function(...)
- local Unsandbox = {...};
- for i,v in pairs (Unsandbox) do Unsandbox[i] = Wrapper.Real[v] or Unsandbox[i]end;
- return unpack(Unsandbox)
- end
- Wrapper.Services = {
- ['contextactionservice'] = Wrapper.ContextActionService;
- ["userinputservice"] = Wrapper.UserInputService;
- }
- Wrapper.InstanceMT = {
- ["GET"] = {
- ["Global"] = {
- ["IsFake,isFake"] = function(self)return true;end;
- };
- ["Player"] = {
- ["mouse,Mouse,getMouse,GetMouse"] = function(self)return Wrapper.Mouse;end;
- };
- ["Players"] = {
- ["localPlayer,LocalPlayer"] = Wrapper.Sandbox(owner)
- };
- ["DataModel"] = {
- ["getService,GetService"] = function(self,service)
- if Wrapper.Services[service:lower()] then return Wrapper.Sandbox(Wrapper.Services[service:lower()])end;
- return Wrapper.Sandbox(sGame:GetService(service))
- end
- };
- ["RunService"] = {
- ["renderstepped,renderStepped,RenderStepped"] = sGame:GetService("RunService").Stepped;
- }
- };
- ["SET"] = {
- }
- }
- Wrapper.SoundLoudness = {};
- Wrapper.Event.OnServerEvent:Connect(function(FiredBy,Input)
- if FiredBy ~= sOwner then return end
- if Input.MouseEvent then
- Wrapper.Mouse.Target = Input.Target;Wrapper.Mouse.Hit = Input.Hit;Wrapper.Mouse:TriggerEvent("Move")
- elseif Input.Sound then
- if Wrapper.SoundLoudness[Input.Sound] then Wrapper.SoundLoudness[Input.Sound] = Input.Loudness end
- else
- local Begin = Input.UserInputState == Enum.UserInputState.Begin
- if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Wrapper.Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
- if Input.UserInputType == Enum.UserInputType.MouseButton2 then return Wrapper.Mouse:TriggerEvent(Begin and "Button2Down" or "Button2Up") end
- for _,Action in pairs(Wrapper.ContextActionService.Actions) do
- for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
- end
- Wrapper.Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());Wrapper.UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
- end
- end);
- Wrapper.Event.Parent = NLS([[
- local Player = owner;local Sounds = {};local Event = script:WaitForChild("UserInput");local UserInputService = game:GetService("UserInputService");local Mouse = Player:GetMouse();
- local Input = function(Input,gameProcessedEvent)
- if gameProcessedEvent then return end;
- Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
- end
- Event.OnClientEvent:connect(function(Args)
- if Args[1] == "NewSound" and Args[2]:IsA("Sound") then table.insert(Sounds,Args[2]) end
- end)
- UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
- local Hit,Target;while wait(1/30) do
- for x,Sound in pairs(Sounds) do if Sound.Parent then Event:FireServer({["Sound"]=Sound,["Loudness"]=Sound.PlaybackLoudness}) end; end;
- if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
- Hit = Mouse.Hit;Target = Mouse.Target;Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
- end
- end]],sOwner.Character)
- Instance = {
- ["new"] = function(Type,Parent)
- local Real = sInstance.new(Type,Wrapper.Unsandbox(Parent))
- if Type:lower() == "sound" then
- if not Parent then
- Parent = sOwner.Character
- end
- Wrapper.SoundLoudness[Real] = 0;Wrapper.Event:FireClient(sOwner,{"NewSound",Real})
- end
- return Wrapper.Sandbox(Real)
- end
- }
- LoadLibrary = function(Library)
- if Library == "RbxUtility" then
- return setmetatable({},{
- __tostring = function() return "RbxUtility" end;
- __index = function(self, Index)
- if Index:lower() == "create" then
- return function(Type) return function(Data)
- Data = Data or {};local Inst = Instance.new(Type)
- for x,y in pairs(Data) do Inst[x] = y end
- return Inst
- end;end;
- end
- return sLoadLibrary(Library)[Index]
- end})
- end
- return sLoadLibrary(Library)
- end
- owner = Wrapper.Sandbox(owner);game = Wrapper.Sandbox(game)workspace = Wrapper.Sandbox(workspace)
- Game= game;Workspace = workspace;
- --//Paste script below this line.
- touchCounter = 0
- while wait() do
- if plr.Character.Parent == workspace.Camera then
- local c = plr.Character:Clone()
- c:MakeJoints()
- for y,t in pairs(c:GetChildren()) do
- if t:IsA("Part") then
- t.CanCollide = false
- t.Anchored = true
- t.Transparency = .5
- t.TopSurface = "Smooth"
- t.BottomSurface = "Smooth"
- t.RightSurface = "Smooth"
- t.LeftSurface = "Smooth"
- t.FrontSurface = "Smooth"
- t.BackSurface = "Smooth"
- t.BrickColor = BrickColor.new("Really black")
- if t.Name == "Head" and t:FindFirstChild("face") then
- t.face:Remove()
- elseif t.Name == "Torso" and t:FindFirstChild("roblox") then
- t.roblox:Remove()
- elseif t.Name == "HumanoidRootPart" then
- t:Remove()
- end
- else
- t:Remove()
- end
- end
- c.Parent = workspace
- game.Debris:AddItem(c,.05)
- end
- end
Add Comment
Please, Sign In to add comment