Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --[[ Settings ]]
- local DefaultReachLimit = 33
- local IncreasedReachDistance = 100
- local PowerTable = {
- ["BombMissile"] = 1200,
- ["Others"] = 600,
- ["Players"] = 1600,
- }
- --[[ Variables ]]
- local PS = game:GetService("Players")
- local Player = PS.LocalPlayer
- local Character = Player.Character or Player.CharacterAdded:Wait()
- local RS = game:GetService("ReplicatedStorage")
- local CE = RS:WaitForChild("CharacterEvents")
- local BeingHeld = Player:WaitForChild("IsHeld")
- local PlayerScripts = Player:WaitForChild("PlayerScripts")
- --[[ Remotes ]]
- local StruggleEvent = CE:WaitForChild("Struggle")
- --[[ Anti-Explosion ]]
- workspace.DescendantAdded:Connect(function(v)
- if v:IsA("Explosion") then
- v.BlastPressure = 0
- end
- end)
- --[[ Anti-grab ]]
- local RS = game:GetService("RunService")
- BeingHeld.Changed:Connect(function(C)
- if C == true then
- if BeingHeld.Value == true then
- local Event;
- Event = RS.RenderStepped:Connect(function()
- if BeingHeld.Value == true then
- StruggleEvent:FireServer(Player)
- elseif BeingHeld.Value == false then
- Event:Disconnect()
- end
- end)
- end
- end
- end)
- local Counter = 0
- function DoubleCounter(Passed)
- if Passed == "Add" then
- Counter = Counter + 1
- elseif Passed == "Check" then
- return Counter
- elseif Passed == "Reset" then
- Counter = 0
- end
- end
- function Reconnect()
- --[[ Local variables ]]
- local Character = Player.Character or Player.CharacterAdded:Wait()
- local Humanoid = Character:FindFirstChildWhichIsA("Humanoid") or Character:WaitForChild("Humanoid")
- local HumanoidRootPart = Character:WaitForChild("HumanoidRootPart")
- local GS = Character:WaitForChild("GrabbingScript")
- HumanoidRootPart:WaitForChild("FirePlayerPart"):Remove()
- local Held = Player:WaitForChild("IsHeld")
- local Connections = getconnections(Held.Changed)
- for i,v in pairs (Connections) do
- if v.Function then
- local Script = getfenv(v.Function).script
- if Script == Character:WaitForChild("HumanoidStateTypeByGettingFlung") then
- v:Disable()
- end
- end
- end
- Humanoid.Changed:Connect(function(C)
- if C == "Sit" and Humanoid.Sit == true then
- if Humanoid.SeatPart ~= nil and tostring(Humanoid.SeatPart.Parent) == "CreatureBlobman" then
- elseif Humanoid.SeatPart == nil then
- Humanoid:SetStateEnabled(Enum.HumanoidStateType.Jumping, true)
- Humanoid.Sit = false
- end
- end
- end)
- repeat wait()
- for Num,Func in pairs(debug.getregistry()) do
- if type(Func) == "function" and not is_synapse_function(Func) and islclosure(Func) then
- local Values = debug.getupvalues(Func)
- local Constants = getconstants(Func)
- for a,b in pairs(Values) do
- --[[ Reach ]]
- if type(b) == "number" and b == 20 then
- debug.setupvalue(Func, a, DefaultReachLimit)
- DoubleCounter("Add")
- end
- end
- if table.find(Constants, "make") and debug.getinfo(Func).name == "grab" then
- for a,b in pairs (Constants) do
- --[[ Makes it so even when you die you can still fling others ]]
- if b == "Health" then
- setconstant(Func, a, "JumpPower")
- DoubleCounter("Add")
- end
- end
- end
- end
- end
- until DoubleCounter("Check") == 2
- DoubleCounter("Reset")
- end
- Player.CharacterAdded:Connect(function()
- Reconnect()
- end)
- Reconnect()
- function ChangeThrow(Number)
- --[[ Variables ]]
- Character = Player.Character or Player.CharacterAdded:Wait()
- local GS = Character:WaitForChild("GrabbingScript")
- for i,v in pairs(getreg()) do
- if type(v) == "function" then
- local Script = getfenv(v).script
- if Script == GS and tostring(debug.getinfo(v).name) == "throw" then
- local Debug = debug.getconstants(v)
- for cn,cv in pairs (Debug) do
- if cn == 22 then
- debug.setconstant(v, cn, Number)
- end
- if cn == 24 then
- debug.setconstant(v, cn, Number)
- end
- end
- end
- end
- end
- end
- function InstanceCheck(Instance)
- local NotInPlayer = false
- for _,v in pairs (PS:GetPlayers()) do
- if v.Character then
- if v.Character:FindFirstChild(Instance.Name) then
- NotInPlayer = true
- break
- end
- end
- end
- return NotInPlayer
- end
- function Reach(Number)
- for Num,Func in pairs(getreg()) do
- if type(Func) == "function" and islclosure(Func) and not is_synapse_function(Func) then
- local Constants = getconstants(Func)
- local Values = getupvalues(Func)
- if table.find(Constants, "make") and debug.getinfo(Func).name == "grab" then
- for c,d in pairs (Values) do
- if c == 17 then
- setupvalue(Func,c, Number)
- end
- end
- break
- end
- end
- end
- end
- local OldNameCall;
- OldNameCall = hookmetamethod(game, "__namecall", function(...)
- local NameCallMethod = getnamecallmethod()
- local Args = {...}
- local Self = Args[1]
- if not checkcaller() and NameCallMethod == "FireServer" and tostring(Self.Name) == "Beam" then
- if tostring(Args[2]) == "make" then
- Reach(IncreasedReachDistance)
- local Instance = Args[3]
- if InstanceCheck(Instance) == false then
- if PowerTable[Instance.Parent.Name] then
- local Power = PowerTable[Instance.Parent.Name]
- ChangeThrow(Power)
- elseif PowerTable[Instance.Parent.Name] == nil then
- local OtherPower = PowerTable["Others"]
- ChangeThrow(OtherPower)
- end
- end
- if InstanceCheck(Instance) == true then
- local PlayerPower = PowerTable["Players"]
- ChangeThrow(PlayerPower)
- end
- return;
- elseif tostring(Args[2]) == "destroy" then
- Reach(DefaultReachLimit)
- end
- return OldNameCall(...)
- end
- return OldNameCall(...)
- end)
Add Comment
Please, Sign In to add comment