Advertisement
idkwhatiam

Squat | A Roblox Script.

May 15th, 2019
624
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 7.96 KB | None | 0 0
  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.  
  142. print("T to squat")
  143. print("M to stop squating")
  144.  
  145. plr = game.Players.LocalPlayer
  146. char = plr.Character
  147. mouse = plr:GetMouse()
  148. hum = char.HumanoidRootPart
  149. root = char.Torso
  150. left = char["Left Arm"]
  151. right = char["Right Arm"]
  152. rightl = char["Right Leg"]
  153. leftl = char["Left Leg"]
  154. squat = false
  155.  
  156. MUSIK = Instance.new("Sound")
  157. MUSIK.Parent = char.Head
  158. MUSIK.Playing = false
  159. MUSIK.Looped = true
  160. MUSIK.SoundId = "rbxassetid://875159740"
  161. MUSIK.Volume = 10
  162.  
  163. function DANCE()
  164. squat = true
  165.  
  166. torso = Instance.new("Weld")
  167. torso.Parent = root
  168. torso.Part0 = root
  169. torso.Part1 = hum
  170.    
  171. arm1 = Instance.new("Weld")
  172. arm1.Parent = left
  173. arm1.Part0 = left
  174. arm1.Part1 = root
  175. arm1.C0 = CFrame.new(-1.5, 0, 0)
  176.    
  177. arm2 = Instance.new("Weld")
  178. arm2.Parent = right
  179. arm2.Part0 = right
  180. arm2.Part1 = root
  181. arm2.C0 = CFrame.new(1.5, 0, 0)
  182.    
  183. leg1 = Instance.new("Weld")
  184. leg1.Parent = leftl
  185. leg1.Part0 = leftl
  186. leg1.Part1 = hum
  187. leg1.C0 = CFrame.new(-0.5, 2, 0)
  188.    
  189. leg2 = Instance.new("Weld")
  190. leg2.Parent = rightl
  191. leg2.Part0 = rightl
  192. leg2.Part1 = hum
  193. leg2.C0 = CFrame.new(0.5, 2, 0)
  194.    
  195. MUSIK:Play()
  196.  
  197. while squat do
  198.     wait(0.25)
  199.     torso.C0 = CFrame.new(0, 0, 0)
  200.     arm1.C1 = CFrame.Angles(90, 0, 0)
  201.     arm2.C1 = CFrame.Angles(90, 0, 0)
  202.     leg1.C0 = CFrame.new(-0.5, 2, 0)
  203.     leg2.C0 = CFrame.new(0.5, 2, 0)
  204.     wait(0.25)
  205.     torso.C0 = CFrame.new(0, 0.75, 0)
  206.     leg1.C0 = CFrame.new(-1.5, 2, 0)
  207.     leg2.C0 = CFrame.new(1.5, 2, 0)
  208. end
  209. end
  210.  
  211. function STOP()
  212.     squat = false
  213.     MUSIK:Stop()
  214.     torso:Destroy()
  215.     arm1:Destroy()
  216.     arm2:Destroy()
  217.     leg1:Destroy()
  218.     leg2:Destroy()
  219. end
  220.  
  221. mouse.KeyDown:Connect(function(Press)
  222.     Press=Press:lower()
  223.     if Press=="t" and squat==false then
  224.         DANCE()
  225.     end
  226.    
  227.     if Press=="m" and squat==true then
  228.         STOP()
  229.     end
  230. end)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement