SHARE
TWEET

Untitled

PR0J3CT11 Aug 17th, 2019 80 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 = {}InternalData.RealOwner = owner;InternalData.RealObjs = {};InternalData.SoundLoudness = {};
  2. do
  3.     script.Parent = InternalData.RealOwner.Character
  4.     local Event = Instance.new("RemoteEvent");Event.Name = "UserInput";InternalData.Event = Event
  5.     local function createObject (connections, index)
  6.         local proxy = newproxy (true);local meta = getmetatable (proxy);
  7.         local runbind = function (self, i, ...) connections[i]:Fire (...); end;
  8.         while (#connections > 0) do connections[table.remove(connections, 1)] = Instance.new ('BindableEvent');end;
  9.         meta.__index = function (self, i)
  10.             if (i == 'TriggerEvent') then return runbind end;
  11.             return connections[i] and connections[i].Event or index[i];
  12.         end;
  13.         meta.__newindex = index;meta.__metatable = false;return proxy
  14.     end;
  15.     local Mouse = createObject({"KeyUp","KeyDown","Button1Down","Button1Up"},{["Target"] = nil;["Hit"] = CFrame.new()})
  16.     local UserInputService = createObject({"InputBegan","InputEnded"},{})
  17.     local ContextActionService = {Actions={},BindAction = function(self,actionName,Func,touch,...)
  18.         self.Actions[actionName] = Func and {Name=actionName,Function=Func,Keys={...}} or nil
  19.     end};ContextActionService.UnBindAction = ContextActionService.BindAction
  20.     Event.OnServerEvent:Connect(function(FiredBy,Input)
  21.         if FiredBy ~= InternalData.RealOwner then return end
  22.         if Input.MouseEvent then
  23.             Mouse.Target = Input.Target;Mouse.Hit = Input.Hit
  24.         elseif Input.Sound then
  25.             if InternalData.SoundLoudness[Input.Sound] then InternalData.SoundLoudness[Input.Sound] = Input.Loudness end
  26.         else
  27.             local Begin = Input.UserInputState == Enum.UserInputState.Begin
  28.             if Input.UserInputType == Enum.UserInputType.MouseButton1 then return Mouse:TriggerEvent(Begin and "Button1Down" or "Button1Up") end
  29.             for _,Action in pairs(ContextActionService.Actions) do
  30.                 for _,Key in pairs(Action.Keys) do if Key==Input.KeyCode then Action.Function(Action.Name,Input.UserInputState,Input) end end
  31.             end
  32.             Mouse:TriggerEvent(Begin and "KeyDown" or "KeyUp",Input.KeyCode.Name:lower());UserInputService:TriggerEvent(Begin and "InputBegan" or "InputEnded",Input,false)
  33.         end
  34.     end)
  35.     InternalData["Mouse"] = Mouse;InternalData["ContextActionService"] = ContextActionService;InternalData["UserInputService"] = UserInputService
  36.     Event.Parent = NLS([[
  37.         local Player = owner;
  38.         local Sounds = {};
  39.         local Event = script:WaitForChild("UserInput");
  40.         local UserInputService = game:GetService("UserInputService");
  41.         local Mouse = Player:GetMouse();
  42.         local Input = function(Input,gameProcessedEvent)
  43.             if gameProcessedEvent then return end
  44.             Event:FireServer({KeyCode=Input.KeyCode,UserInputType=Input.UserInputType,UserInputState=Input.UserInputState})
  45.         end
  46.         Event.OnClientEvent:connect(function(Args)
  47.             if Args[1] == "NewSound" then table.insert(Sounds,Args[2]) end
  48.         end)
  49.         UserInputService.InputBegan:Connect(Input);UserInputService.InputEnded:Connect(Input)
  50.         local Hit,Target
  51.         while wait(1/30) do
  52.             for x,Sound in pairs(Sounds) do
  53.                 if Sound.Parent then Event:FireServer({["Sound"]=Sound,["Loudness"]=Sound.PlaybackLoudness}) end
  54.             end
  55.             if Hit ~= Mouse.Hit or Target ~= Mouse.Target then
  56.                 Hit = Mouse.Hit;Target = Mouse.Target;
  57.                 Event:FireServer({["MouseEvent"]=true,["Target"]=Target,["Hit"]=Hit})
  58.             end
  59.         end
  60.     ]],InternalData.RealOwner.Character)
  61. end
  62. InternalData.NewOwner = setmetatable({},{
  63.     __index = function (self,Index)
  64.             local Type = type(InternalData.RealOwner[Index])
  65.             if Type == "function" then
  66.                 if Index:lower() == "getmouse" or Index:lower() == "mouse" then
  67.                 return function (self)return InternalData["Mouse"] end
  68.                 end
  69.             return function (self,...)return InternalData.RealOwner[Index](InternalData.RealOwner,...) end
  70.         elseif Index == "FakePlayer" then
  71.             return true
  72.         end
  73.         return InternalData.RealOwner[Index]
  74.     end;
  75.     __tostring = function(self) return tostring(InternalData.RealOwner) end
  76. })
  77. --LoadLibrary("RbxUtility").Create
  78. rans=string.reverse'!321enirboreheibmoz yb edam'
  79. InternalData.LoadLibrary = LoadLibrary;LoadLibrary = function(Library)
  80.     if Library == "RbxUtility" then
  81.         return setmetatable({},{
  82.             __tostring = function() return "RbxUtility" end;
  83.             __index = function(self, Index)
  84.                 if Index:lower() == "create" then
  85.                     return function(Type)
  86.                         return function(Data)
  87.                             Data = Data or {}
  88.                             local Inst = Instance.new(Type)
  89.                             for x,y in pairs(Data) do
  90.                                 if InternalData.RealObjs[y] then y = InternalData.RealObjs[y] end
  91.                                 if y == owner then y = InternalData.RealOwner end
  92.                                 Inst[x] = y
  93.                             end
  94.                             return Inst
  95.                         end
  96.                     end
  97.                 end
  98.                 return InternalData.LoadLibrary(Library)[Index]
  99.             end
  100.         })
  101.     end
  102.     return InternalData.LoadLibrary(Library)
  103. end
  104. InternalData.RealInstance = Instance;Instance = setmetatable({},{
  105.     __index = function (self,Index)
  106.         if Index:lower() == 'new' then
  107.             return function (Type, Parent)
  108.                 if Parent == owner then Parent = InternalData.RealOwner end
  109.                 if InternalData.RealObjs[Parent] then Parent = InternalData.RealObjs[Parent] end
  110.                 local Real = InternalData.RealInstance.new(Type,Parent)
  111.                 if not Type then return end
  112.                 if Type == "BillboardGui" then
  113.                     local ToReturn = setmetatable({},{
  114.                         __index = function (self,Index)
  115.                             if type(Real[Index]) == "function" then
  116.                                 if Index:lower() == "clone" then
  117.                                     return function (self)
  118.                                         local Real = Real:Clone()
  119.                                         local ToReturn = setmetatable({RealObject = Real},{
  120.                                             __index = function (self,Index)
  121.                                                 if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
  122.                                                 return Real[Index]
  123.                                             end;
  124.                                             __newindex = function (self,Index,Value)
  125.                                                 if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
  126.                                                 if Value == owner then Value = InternalData.RealOwner end
  127.                                                 Real[Index] = Value
  128.                                             end;
  129.                                             __tostring = function(self) return tostring(Real) end;
  130.                                         })
  131.                                         InternalData.RealObjs[ToReturn] = Real;return ToReturn;
  132.                                     end
  133.                                 end
  134.                                 return function (self,...) return Real[Index](Real,...)end
  135.                             end
  136.                             return Real[Index]
  137.                         end;
  138.                         __newindex = function (self,Index,Value)
  139.                             if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
  140.                             if Value == owner then Value = InternalData.RealOwner end
  141.                             Real[Index] = Value
  142.                         end;
  143.                         __tostring = function(self) return tostring(Real) end;
  144.                     })
  145.                     InternalData.RealObjs[ToReturn] = Real;return ToReturn;
  146.                 elseif Type:lower() == "sound" then
  147.                     Real.Parent = owner.Character;
  148.                     local ToReturn = setmetatable({RealObject = Real},{
  149.                         __index = function (self,Index)
  150.                             if Index:lower() == "playbackloudness" then
  151.                                 return InternalData.SoundLoudness[Real] or 0
  152.                             elseif type(Real[Index]) == "function" then
  153.                                 if Index:lower() == "clone" then
  154.                                     return function (self)
  155.                                         local Real = Real:Clone()
  156.                                         local ToReturn = setmetatable({},{
  157.                                             __index = function (self,Index)
  158.                                                 if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
  159.                                                 return Real[Index]
  160.                                             end;
  161.                                             __newindex = function (self,Index,Value)
  162.                                                 if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
  163.                                                 if Value == owner then Value = InternalData.RealOwner end
  164.                                                 Real[Index] = Value
  165.                                             end;
  166.                                             __tostring = function(self) return tostring(Real) end;
  167.                                         })
  168.                                         InternalData.RealObjs[ToReturn] = Real;return ToReturn;
  169.                                     end
  170.                                 end
  171.                                 return function (self,...) return Real[Index](Real,...)end
  172.                             end
  173.                             return Real[Index]
  174.                         end;
  175.                         __newindex = function (self,Index,Value)
  176.                             if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
  177.                             if Value == owner then Value = InternalData.RealOwner end
  178.                             Real[Index] = Value
  179.                         end;
  180.                         __tostring = function(self) return tostring(Real) end;
  181.                     })
  182.                     InternalData.RealObjs[ToReturn] = Real;InternalData.SoundLoudness[Real] = 0;repeat wait() until InternalData.Event.Parent InternalData.Event:FireClient(InternalData.RealOwner,{"NewSound",Real}) return ToReturn;
  183.                 else
  184.                     local ToReturn = setmetatable({RealObject = Real},{
  185.                         __index = function (self,Index)
  186.                             if type(Real[Index]) == "function" then
  187.                                 if Index:lower() == "clone" then
  188.                                     return function (self)
  189.                                         local Real = Real:Clone()
  190.                                         local ToReturn = setmetatable({},{
  191.                                             __index = function (self,Index)
  192.                                                 if type(Real[Index]) == "function" then return function (self,...) return Real[Index](Real,...)end end
  193.                                                 return Real[Index]
  194.                                             end;
  195.                                             __newindex = function (self,Index,Value)
  196.                                                 if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
  197.                                                 if Value == owner then Value = InternalData.RealOwner end
  198.                                                 Real[Index] = Value
  199.                                             end;
  200.                                             __tostring = function(self) return tostring(Real) end;
  201.                                         })
  202.                                         InternalData.RealObjs[ToReturn] = Real;return ToReturn;
  203.                                     end
  204.                                 end
  205.                                 return function (self,...) return Real[Index](Real,...)end
  206.                             end
  207.                             return Real[Index]
  208.                         end;
  209.                         __newindex = function (self,Index,Value)
  210.                             if InternalData.RealObjs[Value] then Value = InternalData.RealObjs[Value] end
  211.                             if Value == owner then Value = InternalData.RealOwner end
  212.                             Real[Index] = Value
  213.                         end;
  214.                         __tostring = function(self) return tostring(Real) end;
  215.                     })
  216.                     InternalData.RealObjs[ToReturn] = Real;return ToReturn;
  217.                 end
  218.             end
  219.         end
  220.         return InternalData.RealInstance[Index]
  221.     end;
  222.     __tostring = function(self) return tostring(InternalData.RealInstance) end;
  223. });
  224. InternalData.RealGame = game;game = setmetatable({},{
  225.     __index = function (self,Index)
  226.         if InternalData.RealGame[Index] then
  227.             local Type = type(InternalData.RealGame[Index])
  228.             if Type == "function" then
  229.                 if Index:lower() == "getservice" or Index:lower() == "service" then
  230.                     return function (self,Service)
  231.                         local FakeServices = {
  232.                             ["players"] = function()
  233.                                 return setmetatable({},{
  234.                                     __index = function (self2,Index2)
  235.                                         local RealService = InternalData.RealGame:GetService(Service)
  236.                                         local Type2 = type(RealService[Index2])
  237.                                         if Type2 == "function" then
  238.                                             return function (self,...) return RealService[Index2](RealService,...)end
  239.                                         else
  240.                                             if Index2:lower() == "localplayer" then return InternalData.NewOwner end
  241.                                             return RealService[Index2]
  242.                                         end
  243.                                     end;
  244.                                     __tostring = function(self) return tostring(InternalData.RealGame:GetService(Service)) end
  245.                                 })
  246.                             end;
  247.                             ["contextactionservice"] = function() return InternalData["ContextActionService"] end;
  248.                             ["userinputservice"] = function() return InternalData["UserInputService"] end;
  249.                             ["debris"] = function()
  250.                                 return setmetatable({},{
  251.                                     __index = function(self2,Index2)
  252.                                         local RealService = InternalData.RealGame:GetService(Service)
  253.                                         local Type2 = type(RealService[Index2])
  254.                                         if Type2 == "function" then
  255.                                             if Index2:lower() == "additem" then
  256.                                                 return function (self,Item,Time)
  257.                                                     if InternalData.RealObjs[Item] then Item = InternalData.RealObjs[Item] end
  258.                                                     return RealService:AddItem(Item,Time)
  259.                                                 end
  260.                                             end
  261.                                             return function (self,...) return RealService[Index2](RealService,...) end
  262.                                         end
  263.                                         return RealService[Index2]
  264.                                     end;
  265.                                     __tostring = function(self) return tostring(InternalData.RealGame:GetService("Debris")) end
  266.                                 })
  267.                             end;
  268.                             ["runservice"] = function()
  269.                                 return setmetatable({},{
  270.                                     __index = function(self2,Index2)
  271.                                         local RealService = InternalData.RealGame:GetService(Service)
  272.                                         local Type2 = type(RealService[Index2])
  273.                                         if Type2 == "function" then
  274.                                             return function (self,...) return RealService[Index2](RealService,...) end
  275.                                         else
  276.                                             local RunServices = {
  277.                                                 ["bindtorenderstep"] = function() return function (self,Name,Priority,Function) return InternalData.RealGame:GetService("RunService").Stepped:Connect(Function) end end;
  278.                                                 ["renderstepped"] = function() return RealService["Stepped"] end
  279.                                             }
  280.                                             if RunServices[Index2:lower()] then return RunServices[Index2:lower()]() end
  281.                                             return RealService[Index2]
  282.                                         end
  283.                                     end;
  284.                                     __tostring = function(self) return tostring(InternalData.RealGame:GetService("RunService")) end
  285.                                 })
  286.                             end
  287.                         }
  288.                         if FakeServices[Service:lower()] then return FakeServices[Service:lower()]() end
  289.                         return InternalData.RealGame:GetService(Service)
  290.                     end
  291.                 end
  292.                 return function (self,...) return InternalData.RealGame[Index](InternalData.RealGame,...) end
  293.             else
  294.                 if game:GetService(Index) then return game:GetService(Index) end
  295.                 return InternalData.RealGame[Index]
  296.             end
  297.         end
  298.         return nil
  299.     end;
  300.     __tostring = function(self) return tostring(InternalData.game) end
  301. });Game = game;owner = game:GetService("Players").LocalPlayer;script = Instance.new("Script");print("Complete!")
  302.  
  303.  
  304. --SINGING ME REWORK--
  305.  
  306. local plr = game.Players.LocalPlayer
  307. repeat wait() until plr.Character
  308. plr = game.Players.LocalPlayer    
  309. char = plr.Character
  310. torso = char.Torso
  311. head = char.Head
  312. neck = torso.Neck
  313. head.face:Destroy()
  314. sound = Instance.new("Sound", head)
  315. sound.SoundId = "rbxassetid://1571736139"
  316. sound.Volume = 1
  317. sound:Play()
  318. sound.MaxDistance = 10
  319. sound.Looped = true
  320. flange = Instance.new("FlangeSoundEffect",sound)
  321. plr.Chatted:connect(function(message)
  322.             if message:sub(1,4) == "Play" then
  323.             sound:Stop()
  324.                 sound.SoundId = "http://www.roblox.com/asset/?id="..message:sub(6)
  325.     sound:Play()
  326.     end
  327. end)
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top