SHARE
TWEET

[NORMAL] BIG BLACK BAT | RBLX SCRIPT

TeknosQuet Jun 18th, 2019 68 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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 by Mokiros")
  7.     local rp = RealPlayer
  8.     script.Parent = rp.Character
  9.    
  10.     --RemoteEvent for communicating
  11.     local Event = Instance.new("RemoteEvent")
  12.     Event.Name = "UserInput_Event"
  13.  
  14.     --Fake event to make stuff like Mouse.KeyDown work
  15.     local function fakeEvent()
  16.         local t = {_fakeEvent=true,Functions={},Connect=function(self,f)table.insert(self.Functions,f) end}
  17.         t.connect = t.Connect
  18.         return t
  19.     end
  20.  
  21.     --Creating fake input objects with fake variables
  22.     local m = {Target=nil,Hit=CFrame.new(),KeyUp=fakeEvent(),KeyDown=fakeEvent(),Button1Up=fakeEvent(),Button1Down=fakeEvent(),Button2Up=fakeEvent(),Button2Down=fakeEvent()}
  23.     local UIS = {InputBegan=fakeEvent(),InputEnded=fakeEvent()}
  24.     local CAS = {Actions={},BindAction=function(self,name,fun,touch,...)
  25.         CAS.Actions[name] = fun and {Name=name,Function=fun,Keys={...}} or nil
  26.     end}
  27.     --Merged 2 functions into one by checking amount of arguments
  28.     CAS.UnbindAction = CAS.BindAction
  29.  
  30.     --This function will trigger the events that have been :Connect()'ed
  31.     local function te(self,ev,...)
  32.         local t = m[ev]
  33.         if t and t._fakeEvent then
  34.             for _,f in pairs(t.Functions) do
  35.                 f(...)
  36.             end
  37.         end
  38.     end
  39.     m.TrigEvent = te
  40.     UIS.TrigEvent = te
  41.  
  42.     Event.OnServerEvent:Connect(function(plr,io)
  43.         if plr~=rp then return end
  44.         m.Target = io.Target
  45.         m.Hit = io.Hit
  46.         if not io.isMouse then
  47.             local b = io.UserInputState == Enum.UserInputState.Begin
  48.             if io.UserInputType == Enum.UserInputType.MouseButton1 then
  49.                 return m:TrigEvent(b and "Button1Down" or "Button1Up")
  50.             end
  51.             if io.UserInputType == Enum.UserInputType.MouseButton2 then
  52.                 return m:TrigEvent(b and "Button2Down" or "Button2Up")
  53.             end
  54.             for _,t in pairs(CAS.Actions) do
  55.                 for _,k in pairs(t.Keys) do
  56.                     if k==io.KeyCode then
  57.                         t.Function(t.Name,io.UserInputState,io)
  58.                     end
  59.                 end
  60.             end
  61.             m:TrigEvent(b and "KeyDown" or "KeyUp",io.KeyCode.Name:lower())
  62.             UIS:TrigEvent(b and "InputBegan" or "InputEnded",io,false)
  63.         end
  64.     end)
  65.     Event.Parent = NLS([==[
  66.     local Player = game:GetService("Players").LocalPlayer
  67.     local Event = script:WaitForChild("UserInput_Event")
  68.     local Mouse = Player:GetMouse()
  69.     local UIS = game:GetService("UserInputService")
  70.     local input = function(io,a)
  71.         if a then return end
  72.         --Since InputObject is a client-side instance, we create and pass table instead
  73.         Event:FireServer({KeyCode=io.KeyCode,UserInputType=io.UserInputType,UserInputState=io.UserInputState,Hit=Mouse.Hit,Target=Mouse.Target})
  74.     end
  75.     UIS.InputBegan:Connect(input)
  76.     UIS.InputEnded:Connect(input)
  77.     local h,t
  78.     --Give the server mouse data 30 times every second, but only if the values changed
  79.     --If player is not moving their mouse, client won't fire events
  80.     while wait(1/30) do
  81.         if h~=Mouse.Hit or t~=Mouse.Target then
  82.             h,t=Mouse.Hit,Mouse.Target
  83.             Event:FireServer({isMouse=true,Target=t,Hit=h})
  84.         end
  85.     end]==],Player.Character)
  86.  
  87.     ----Sandboxed game object that allows the usage of client-side methods and services
  88.     --Real game object
  89.     local _rg = game
  90.  
  91.     --Metatable for fake service
  92.     local fsmt = {
  93.         __index = function(self,k)
  94.             local s = rawget(self,"_RealService")
  95.             if s then
  96.                 return typeof(s[k])=="function"
  97.                 and function(_,...)return s[k](s,...)end or s[k]
  98.             end
  99.         end,
  100.         __newindex = function(self,k,v)
  101.             local s = rawget(self,"_RealService")
  102.             if s then s[k]=v end
  103.         end
  104.     }
  105.     local function FakeService(t,RealService)
  106.         t._RealService = typeof(RealService)=="string" and _rg:GetService(RealService) or RealService
  107.         return setmetatable(t,fsmt)
  108.     end
  109.  
  110.     --Fake game object
  111.     local g = {
  112.         GetService = function(self,s)
  113.             return rawget(self,s) or _rg:GetService(s)
  114.         end,
  115.         Players = FakeService({
  116.             LocalPlayer = FakeService({GetMouse=function(self)return m end},Player)
  117.         },"Players"),
  118.         UserInputService = FakeService(UIS,"UserInputService"),
  119.         ContextActionService = FakeService(CAS,"ContextActionService"),
  120.         RunService = FakeService({
  121.             _btrs = {},
  122.             RenderStepped = _rg:GetService("RunService").Heartbeat,
  123.             BindToRenderStep = function(self,name,_,fun)
  124.                 self._btrs[name] = self.Heartbeat:Connect(fun)
  125.             end,
  126.             UnbindFromRenderStep = function(self,name)
  127.                 self._btrs[name]:Disconnect()
  128.             end,
  129.         },"RunService")
  130.     }
  131.     rawset(g.Players,"localPlayer",g.Players.LocalPlayer)
  132.     g.service = g.GetService
  133.     FakeService(g,game)
  134.     --Changing owner to fake player object to support owner:GetMouse()
  135.     game,owner = g,g.Players.LocalPlayer
  136. end
  137.  
  138. --Actual part starts here. Made by TeknosQuet. The above is made by Mokiros
  139. --RBLX Username: anonymous (for staff reasons)
  140.  
  141. while true do
  142.     audio314 = Instance.new("Sound", game.Workspace)
  143.     audio314.Name = "audio314"
  144.     audio314.SoundId = "rbxassetid://202655498"
  145.     audio314.Volume = 10
  146.     audio314.Pitch = 1
  147.     audio314.Looped = true
  148.     audio314:Play()
  149.     wait(0.25)
  150.     while true do
  151.         audio314 = Instance.new("Sound", game.Workspace)
  152.         audio314.Name = "audio314"
  153.         audio314.SoundId = "rbxassetid://202655498"
  154.         audio314.Volume = 10
  155.         audio314.Pitch = 1
  156.         audio314.Looped = true
  157.         audio314:Play()
  158.         wait(0.25)
  159.         while true do
  160.             audio314 = Instance.new("Sound", game.Workspace)
  161.             audio314.Name = "audio314"
  162.             audio314.SoundId = "rbxassetid://202655498"
  163.             audio314.Volume = 10
  164.             audio314.Pitch = 1
  165.             audio314.Looped = true
  166.             audio314:Play()
  167.             wait(0.25)
  168.         end
  169.     end
  170. 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