Roblox/Scripts/Universal aimbot wh.lua

621 lines
22 KiB
Lua
Raw Permalink Normal View History

2024-10-22 02:11:10 +02:00
--[[
Created by Scriptkia : https://github.com/Scriptkia
Redistributed by WeAreDevs: https://wearedevs.net/scripts
]]
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Teams = game:GetService("Teams")
local LocalPlayer = Players.LocalPlayer
local Exploit = (syn and "Synapse")
local HttpRequest = syn.request
local GetGarbageCollection = getgc
local MoveMouse = mousemoverel
local ProtectGui = syn.protect_gui
local IsLuaClosure = islclosure
local IsExploitFunction = is_synapse_function
local NewCClosure = newcclosure
local HookFunction = hookfunction
local WindowActive = iswindowactive
local GetConnections = getconnections
local GetUpValues = (getupvalues or debug.getupvalues)
local GetUpValue = (getupvalue or debug.getupvalue)
local SetUpValue = (setupvalue or debug.setupvalue)
local GetConstants = (getconstants or debug.getconstants)
local GetConstant = (getconstant or debug.getconstant)
local SetConstant = (setconstant or debug.setconstant)
local GetProtos = (getprotos or debug.getprotos)
local GetProto = (getproto or debug.getproto)
local SetProto = (setproto or debug.setproto)
local GetInfo = (getinfo or debug.getinfo)
local GetRegistry = (getreg or debug.getregistry)
local SetReadOnly = setreadonly
local IsReadOnly = isreadonly
local CheckCaller = checkcaller
local GetNamecallMethod = getnamecallmethod
local GetRawMetatable = getrawmetatable
local SetRawMetatable = setrawmetatable
local GetGlobalEnvironment = getgenv
local GetModuleEnvironment = getmenv
local GetScriptEnvironment = getsenv
local GetRobloxEnvironment = getrenv
local CIELUV = loadstring(game:HttpGet("https://raw.githubusercontent.com/coastss/releases/main/cieluv_color_lerp.lua"))()
local Library = loadstring(game:HttpGet("https://pastebin.com/raw/edJT9EGX"))()
local HealthbarLerp = CIELUV:Lerp(Color3.fromRGB(255, 0, 0), Color3.fromRGB(0, 255, 0))
local Visuals = {Players = {}} do
local DrawingProperties = {
Line = {
Thickness = 1.5,
Color = Color3.fromRGB(255, 255, 255),
Visible = false
},
Text = {
Size = 16,
Center = true,
Outline = true,
Color = Color3.fromRGB(255, 255, 255),
Visible = false
},
Circle = {
Thickness = 1.5,
NumSides = 100,
Radius = 0,
Filled = false,
Color = Color3.fromRGB(255, 255, 255),
Visible = false
},
Square = {
Thickness = 1.5,
Filled = false,
Color = Color3.fromRGB(255, 255, 255),
Visible = false
},
Image = {
Rounding = 0,
Visible = false
}
}
function Visuals:Round(Number, Bracket)
Bracket = (Bracket or 1)
if typeof(Number) == "Vector2" then
return Vector2.new(Visuals:Round(Number.X), Visuals:Round(Number.Y))
else
return (Number - Number % (Bracket or 1))
end
end
function Visuals:GetScreenPosition(Position)
local Position, Visible = Workspace.CurrentCamera:WorldToViewportPoint(Position)
local FullPosition = Position
Position = Vector2.new(Position.X, Position.Y)
return Position, Visible, FullPosition
end
function Visuals:CreateDrawing(Type, Custom)
local Drawing = Drawing.new(Type)
for Property, Value in pairs(DrawingProperties[Type]) do
Drawing[Property] = Value
end
if Custom then
for Property, Value in pairs(Custom) do
Drawing[Property] = Value
end
end
return Drawing
end
function Visuals.AddPlayer(Player)
if not Visuals.Players[Player] then
Visuals.Players[Player] = {
Box = {
Outline = Visuals:CreateDrawing("Square", {Color = Color3.fromRGB(0, 0, 0)}),
Main = Visuals:CreateDrawing("Square")
--// Main = Visuals:CreateDrawing("Image", {Data = game:HttpGet("https://coasts.cool/uploads/48ny7FCjZ9iCmbAwlirI.png")})
},
Healthbar = {
Outline = Visuals:CreateDrawing("Square", {Filled = true, Color = Color3.fromRGB(0, 0, 0)}),
Main = Visuals:CreateDrawing("Square", {Filled = true, Color = Color3.fromRGB(0, 255, 0)})
},
Info = {
Main = Visuals:CreateDrawing("Text"),
Extra = Visuals:CreateDrawing("Text")
}
}
end
end
function Visuals.RemovePlayer(Player)
if Visuals.Players[Player] then
for Index, Table in pairs(Visuals.Players[Player]) do
for Index2, Drawing in pairs(Table) do
if Drawing.Remove then
Drawing:Remove()
end
end
end
Visuals.Players[Player] = nil
end
end
end
local Connections = {AllConnections = {}} do
function Connections:Add(Name, Connection, Callback)
if not Connections.AllConnections[Name] then
Connection:Connect(Callback)
Connections.AllConnections[Name] = Connection
end
end
function Connections:Remove(Name)
local Connection = Connections.AllConnections[Name]
if Connection then
Connection:Disconnect()
end
end
end
local PlayerUtilities = {} do
function PlayerUtilities:IsPlayerAlive(Player)
local Character = Player.Character
local Humanoid = (Character and Character:FindFirstChildWhichIsA("Humanoid"))
if Character and Humanoid then
if Humanoid.Health > 0 then
return true
end
end
return false
end
function PlayerUtilities:GetHealth(Player)
local Character = Player.Character
local Humanoid = (Character and Character:FindFirstChildWhichIsA("Humanoid"))
if Character and Humanoid then
return {
CurrentHealth = Humanoid.Health,
MaxHealth = Humanoid.MaxHealth
}
end
end
function PlayerUtilities:GetBodyParts(Player)
local Character = Player.Character
local Head = (Character and Character:FindFirstChild("Head"))
local Root = (Character and Character:FindFirstChild("HumanoidRootPart"))
local Torso = Character and (Character:FindFirstChild("LowerTorso") or Character:FindFirstChild("Torso"))
local LeftArm = Character and (Character:FindFirstChild("LeftLowerArm") or Character:FindFirstChild("Left Arm"))
local RightArm = Character and (Character:FindFirstChild("RightLowerArm") or Character:FindFirstChild("Right Arm"))
local LeftLeg = Character and (Character:FindFirstChild("LeftLowerLeg") or Character:FindFirstChild("Left Leg"))
local RightLeg = Character and (Character:FindFirstChild("RightLowerLeg") or Character:FindFirstChild("Right Leg"))
if Character and (Head and Root and Torso and LeftArm and RightArm and LeftLeg and RightLeg) then
return {
Character = Character,
Head = Head,
Root = Root,
Torso = Torso,
LeftArm = LeftArm,
RightArm = RightArm,
LeftLeg = LeftLeg,
RightLeg = RightLeg
}
end
end
function PlayerUtilities:GetTeamColor(Player)
return Player.TeamColor.Color
end
function PlayerUtilities:IsOnClientTeam(Player)
if LocalPlayer.Team == Player.Team then
return true
end
return false
end
function PlayerUtilities:GetDistanceFromClient(Position)
return LocalPlayer:DistanceFromCharacter(Position)
end
function PlayerUtilities:GetClosestPlayer()
local ClosestPlayer = nil
local FarthestDistance = math.huge
for Index, Player in pairs(Players:GetPlayers()) do
if Player == LocalPlayer then continue end
local PassedTeamCheck = true
local IsPlayerAlive = PlayerUtilities:IsPlayerAlive(Player)
local Health = PlayerUtilities:GetHealth(Player)
local BodyParts = PlayerUtilities:GetBodyParts(Player)
local IsOnClientTeam = PlayerUtilities:IsOnClientTeam(Player)
if Library.flags["Aimbot Team Check"] and IsOnClientTeam then
PassedTeamCheck = false
end
if IsPlayerAlive and Health and BodyParts and PassedTeamCheck then
local ScreenPosition, OnScreen = Visuals:GetScreenPosition(BodyParts.Root.Position)
if ScreenPosition and OnScreen then
local MouseDistance = (ScreenPosition - UserInputService:GetMouseLocation()).Magnitude
if MouseDistance < FarthestDistance then
if Library.flags["Aimbot Use FOV"] then
if MouseDistance <= Library.flags["Aimbot FOV Radius"] then
FarthestDistance = MouseDistance
ClosestPlayer = {
Player = Player,
BodyParts = BodyParts
}
end
else
FarthestDistance = MouseDistance
ClosestPlayer = {
Player = Player,
BodyParts = BodyParts
}
end
end
end
end
end
return ClosestPlayer
end
function PlayerUtilities:AimAt(Position, Smoothing)
local MouseLocation = UserInputService:GetMouseLocation()
MoveMouse(((Position.X - MouseLocation.X) / Smoothing), ((Position.Y - MouseLocation.Y) / Smoothing))
end
end
for Index, Player in pairs(Players:GetPlayers()) do
if Player == LocalPlayer then continue end
Visuals.AddPlayer(Player)
end
local FOVCircle = Visuals:CreateDrawing("Circle")
local Games = {
[113491250] = "Phantom Forces",
[1168263273] = "Bad Business"
}
local Game = Games[game.GameId]
if Game == "Phantom Forces" then
local GetBodyParts = nil
local GetPlayerHealth = nil
for Index, Value in pairs(GetGarbageCollection(true)) do
if typeof(Value) == "table" then
if rawget(Value, "getbodyparts") then
GetBodyParts = Value.getbodyparts
end
if rawget(Value, "getplayerhealth") then
GetPlayerHealth = Value.getplayerhealth
end
end
end
if not GetBodyParts or not GetPlayerHealth then return end
function PlayerUtilities:IsPlayerAlive(Player)
local PlayerHealth = GetPlayerHealth(Player, Player)
if PlayerHealth then
if math.floor(PlayerHealth) > 0 then
return true
end
end
return false
end
function PlayerUtilities:GetHealth(Player)
local PlayerHealth = GetPlayerHealth(Player, Player)
if PlayerHealth then
return {
CurrentHealth = math.floor(PlayerHealth),
MaxHealth = 100
}
end
end
function PlayerUtilities:GetBodyParts(Player)
local BodyParts = GetBodyParts(Player)
if BodyParts and BodyParts.rootpart then
return {
Character = BodyParts.rootpart.Parent,
Head = BodyParts.head,
Root = BodyParts.rootpart,
Torso = BodyParts.torso,
LeftArm = BodyParts.larm,
RightArm = BodyParts.rarm,
LeftLeg = BodyParts.lleg,
RightLeg = BodyParts.rleg
}
end
end
function PlayerUtilities:AimAt(Position, Smoothing)
local MouseLocation = UserInputService:GetMouseLocation()
Smoothing += 0.5
MoveMouse(((Position.X - MouseLocation.X) / Smoothing), ((Position.Y - MouseLocation.Y) / Smoothing))
end
elseif Game == "Bad Business" then
local TS = require(ReplicatedStorage:WaitForChild("TS"))
function PlayerUtilities:IsPlayerAlive(Player)
local Character = TS.Characters:GetCharacter(Player)
local Health = (Character and Character:FindFirstChild("Health"))
if Character and Health then
if Health.Value > 0 then
return true
end
end
return false
end
function PlayerUtilities:GetHealth(Player)
local Character = TS.Characters:GetCharacter(Player)
local Health = (Character and Character:FindFirstChild("Health"))
if Character and (Health and Health:FindFirstChild("MaxHealth")) then
return {
CurrentHealth = Health.Value,
MaxHealth = Health.MaxHealth.Value
}
end
end
function PlayerUtilities:GetBodyParts(Player)
local Character = TS.Characters:GetCharacter(Player)
local Body = (Character and Character:FindFirstChild("Body"))
if Character and Body then
local Head = (Body and Body:FindFirstChild("Head"))
local Root = (Character and Character:FindFirstChild("Root"))
local Torso = (Body and Body:FindFirstChild("Chest"))
local LeftArm = (Body and Body:FindFirstChild("LeftArm"))
local RightArm = (Body and Body:FindFirstChild("RightArm"))
local LeftLeg = (Body and Body:FindFirstChild("LeftLeg"))
local RightLeg = (Body and Body:FindFirstChild("RightLeg"))
if Character and (Head and Root and Torso and LeftArm and RightArm and LeftLeg and RightLeg) then
return {
Character = Character,
Head = Head,
Root = Root,
Torso = Torso,
LeftArm = LeftArm,
RightArm = RightArm,
LeftLeg = LeftLeg,
RightLeg = RightLeg
}
end
end
end
function PlayerUtilities:GetDistanceFromClient(Position)
local ClientBodyParts = PlayerUtilities:GetBodyParts(LocalPlayer)
if ClientBodyParts then
return (Position - ClientBodyParts.Root.Position).Magnitude
end
return 0
end
function PlayerUtilities:GetTeamColor(Player)
return Teams[TS.Teams:GetPlayerTeam(Player)].Color.Value
end
function PlayerUtilities:IsOnClientTeam(Player)
return TS.Teams:ArePlayersFriendly(Player, LocalPlayer)
end
end
Connections:Add("VisualsPlayerAdded", Players.PlayerAdded, Visuals.AddPlayer)
Connections:Add("VisualsPlayerRemoved", Players.PlayerRemoving, Visuals.RemovePlayer)
Connections:Add("UniversalRenderStepped", RunService.RenderStepped, function()
FOVCircle.Position = UserInputService:GetMouseLocation()
FOVCircle.Radius = Library.flags["Aimbot FOV Radius"]
FOVCircle.Color = Library.flags["Aimbot FOV Color"]
FOVCircle.Visible = ((Library.flags["Aimbot Enabled"] and Library.flags["Aimbot Use FOV"]) and true) or false
if Library.flags["Aimbot Enabled"] and Library.flags["Aimbot Active"] then
local ClosestPlayer = PlayerUtilities:GetClosestPlayer()
if ClosestPlayer and (ClosestPlayer.Player and ClosestPlayer.BodyParts) then
local ScreenPosition, OnScreen = Visuals:GetScreenPosition(ClosestPlayer.BodyParts.Head.Position)
if ScreenPosition and OnScreen then
PlayerUtilities:AimAt(ScreenPosition, Library.flags["Aimbot Smoothing"])
end
end
end
for Index, Player in pairs(Players:GetPlayers()) do
if Player == LocalPlayer then continue end
local Objects = Visuals.Players[Player]
if not Objects then continue end
local OnScreen, PassedTeamCheck = false, true
local IsPlayerAlive = PlayerUtilities:IsPlayerAlive(Player)
local Health = PlayerUtilities:GetHealth(Player)
local BodyParts = PlayerUtilities:GetBodyParts(Player)
local PlayerColor = (PlayerUtilities:IsOnClientTeam(Player) and Library.flags["Visuals Ally Color"]) or Library.flags["Visuals Enemy Color"]
local IsOnClientTeam = PlayerUtilities:IsOnClientTeam(Player)
if Library.flags["Visuals Use Team Color"] then
PlayerColor = PlayerUtilities:GetTeamColor(Player)
end
if Library.flags["Visuals Team Check"] and IsOnClientTeam then
PassedTeamCheck = false
end
if IsPlayerAlive and Health and BodyParts and PlayerColor and PassedTeamCheck then
local HealthPercent = (Health.CurrentHealth / Health.MaxHealth)
local Distance = PlayerUtilities:GetDistanceFromClient(BodyParts.Root.Position)
ScreenPosition, OnScreen = Visuals:GetScreenPosition(BodyParts.Root.Position)
local Orientation, Size = BodyParts.Character:GetBoundingBox()
local Height = (Workspace.CurrentCamera.CFrame - Workspace.CurrentCamera.CFrame.Position) * Vector3.new(0, (math.clamp(Size.Y, 1, 10) + 0.5) / 2, 0)
Height = math.abs(Workspace.CurrentCamera:WorldToScreenPoint(Orientation.Position + Height).Y - Workspace.CurrentCamera:WorldToScreenPoint(Orientation.Position - Height).Y)
Size = Visuals:Round(Vector2.new((Height / 2), Height))
local NameString = string.format("%s", Player.Name)
if Player.DisplayName ~= Player.Name then
NameString = string.format("%s | %s", Player.Name, Player.DisplayName)
end
Objects.Box.Main.Color = PlayerColor
Objects.Box.Main.Size = Size
Objects.Box.Main.Position = Visuals:Round(Vector2.new(ScreenPosition.X, ScreenPosition.Y) - (Size / 2))
function Visuals:Round(Number, Bracket)
Bracket = (Bracket or 1)
if typeof(Number) == "Vector2" then
return Vector2.new(Visuals:Round(Number.X), Visuals:Round(Number.Y))
else
return (Number - Number % (Bracket or 1))
end
end
Objects.Box.Outline.Thickness = (Objects.Box.Main.Thickness * 2)
Objects.Box.Outline.Size = Objects.Box.Main.Size
Objects.Box.Outline.Position = Objects.Box.Main.Position
Objects.Healthbar.Main.Color = HealthbarLerp(HealthPercent)
Objects.Healthbar.Main.Size = Vector2.new(2, (-Objects.Box.Main.Size.Y * HealthPercent))
Objects.Healthbar.Main.Position = Vector2.new((Objects.Box.Main.Position.X - (Objects.Box.Outline.Thickness + 1)), (Objects.Box.Main.Position.Y + Objects.Box.Main.Size.Y))
Objects.Healthbar.Outline.Size = Vector2.new(4, (Objects.Box.Main.Size.Y + 2))
Objects.Healthbar.Outline.Position = Vector2.new((Objects.Box.Main.Position.X - (Objects.Box.Outline.Thickness + 2)), (Objects.Box.Main.Position.Y - 1))
Objects.Info.Main.Font = Drawing.Fonts[Library.flags["Visuals Info Font"]]
Objects.Info.Main.Text = NameString
Objects.Info.Main.Position = Vector2.new(((Objects.Box.Main.Size.X / 2) + Objects.Box.Main.Position.X), ((ScreenPosition.Y - Objects.Box.Main.Size.Y / 2) - 18))
Objects.Info.Extra.Font = Drawing.Fonts[Library.flags["Visuals Info Font"]]
Objects.Info.Extra.Text = string.format("(%dft) (%d/%d)", Distance, Health.CurrentHealth, Health.MaxHealth)
Objects.Info.Extra.Position = Vector2.new(((Objects.Box.Main.Size.X / 2) + Objects.Box.Main.Position.X), (Objects.Box.Main.Size.Y + Objects.Box.Main.Position.Y))
end
Objects.Box.Main.Visible = (OnScreen and Library.flags["Visuals Show Boxes"]) or false
Objects.Box.Outline.Visible = Objects.Box.Main.Visible
Objects.Healthbar.Main.Visible = (OnScreen and Library.flags["Visuals Show Healthbar"]) or false
Objects.Healthbar.Outline.Visible = Objects.Healthbar.Main.Visible
Objects.Info.Main.Visible = (OnScreen and Library.flags["Visuals Show Info"]) or false
Objects.Info.Extra.Visible = (OnScreen and Library.flags["Visuals Show Extra Info"]) or false
end
end)
local Fonts = {} do
for Font, Number in pairs(Drawing.Fonts) do
table.insert(Fonts, Font)
end
end
Library.flags["Aimbot Active"] = false
local AimbotTab = Library:CreateWindow("Aimbot")
AimbotTab:AddToggle({text = "Enabled", flag = "Aimbot Enabled"})
AimbotTab:AddToggle({text = "Use Field of View", flag = "Aimbot Use FOV"})
AimbotTab:AddToggle({text = "Team Check", flag = "Aimbot Team Check"})
AimbotTab:AddBind({
text = "Bind",
flag = "Aimbot Bind",
key = Enum.UserInputType.MouseButton2,
hold = true,
callback = function(Value)
Library.flags["Aimbot Active"] = (not Value)
end
})
AimbotTab:AddSlider({
text = "FOV Radius",
flag = "Aimbot FOV Radius",
min = 0,
max = 500,
float = 1
})
AimbotTab:AddSlider({
text = "Smoothing",
flag = "Aimbot Smoothing",
min = 1,
max = 5,
float = 0.1
})
AimbotTab:AddColor({
text = "FOV Circle Color",
flag = "Aimbot FOV Color",
color = Color3.fromRGB(255, 255, 255)
})
local VisualsTab = Library:CreateWindow("Visuals")
VisualsTab:AddToggle({text = "Boxes", flag = "Visuals Show Boxes"})
VisualsTab:AddToggle({text = "Healthbar", flag = "Visuals Show Healthbar"})
VisualsTab:AddToggle({text = "Info", flag = "Visuals Show Info"})
VisualsTab:AddToggle({text = "Extra Info", flag = "Visuals Show Extra Info"})
VisualsTab:AddToggle({text = "Use Team Color", flag = "Visuals Use Team Color"})
VisualsTab:AddToggle({text = "Team Check", flag = "Visuals Team Check"})
VisualsTab:AddList({
text = "Info Font",
flag = "Visuals Info Font",
values = Fonts
})
VisualsTab:AddColor({
text = "Ally Color",
flag = "Visuals Ally Color",
color = Color3.fromRGB(0, 255, 0)
})
VisualsTab:AddColor({
text = "Enemy Color",
flag = "Visuals Enemy Color",
color = Color3.fromRGB(255, 0, 0)
})
Library:Init()
UserInputService.InputBegan:Connect(function(Input, GameProcessedEvent)
if GameProcessedEvent then return end
if Input.KeyCode == Enum.KeyCode.RightControl then
Library:Close()
end
end)