Main Lua
Main Lua
]]
getgenv().AirHubV2Loading = true
--// Cache
--// Launching
loadstring(game:HttpGet("https://raw.githubusercontent.com/Exunys/Roblox-Functions-
Library/main/Library.lua"))()
--// Variables
ESP_Settings.LoadConfigOnLaunch = false
ESP_Settings.Enabled = false
Crosshair.Enabled = false
Aimbot_Settings.Enabled = false
--// Tabs
--// Functions
tablesort(Keys, function(A, B)
return A < B
end)
Section:Toggle({
Name = stringgsub(Index, "(%l)(%u)", function(...)
return select(1, ...).." "..select(2, ...)
end),
Flag = Prefix..Index,
Default = Value,
Callback = function(_Value)
Object[Index] = _Value
end
})
end
Section:Colorpicker({
Name = stringgsub(Index, "(%l)(%u)", function(...)
return select(1, ...).." "..select(2, ...)
end),
Flag = Index,
Default = Value,
Callback = function(_Value)
Object[Index] = _Value
end
})
end
end
ESPDeveloperSection:Dropdown({
Name = "Update Mode",
Flag = "ESP_UpdateMode",
Content = {"RenderStepped", "Stepped", "Heartbeat"},
Default = ESP_DeveloperSettings.UpdateMode,
Callback = function(Value)
ESP_DeveloperSettings.UpdateMode = Value
end
})
ESPDeveloperSection:Dropdown({
Name = "Team Check Option",
Flag = "ESP_TeamCheckOption",
Content = {"TeamColor", "Team"},
Default = ESP_DeveloperSettings.TeamCheckOption,
Callback = function(Value)
ESP_DeveloperSettings.TeamCheckOption = Value
end
})
ESPDeveloperSection:Slider({
Name = "Rainbow Speed",
Flag = "ESP_RainbowSpeed",
Default = ESP_DeveloperSettings.RainbowSpeed * 10,
Min = 5,
Max = 30,
Callback = function(Value)
ESP_DeveloperSettings.RainbowSpeed = Value / 10
end
})
ESPDeveloperSection:Slider({
Name = "Width Boundary",
Flag = "ESP_WidthBoundary",
Default = ESP_DeveloperSettings.WidthBoundary * 10,
Min = 5,
Max = 30,
Callback = function(Value)
ESP_DeveloperSettings.WidthBoundary = Value / 10
end
})
ESPDeveloperSection:Button({
Name = "Refresh",
Callback = function()
ESP:Restart()
end
})
AimbotSection:Toggle({
Name = "Enabled",
Flag = "Aimbot_Enabled",
Default = Aimbot_Settings.Enabled,
Callback = function(Value)
Aimbot_Settings.Enabled = Value
end
})
AimbotDeveloperSection:Dropdown({
Name = "Update Mode",
Flag = "Aimbot_UpdateMode",
Content = {"RenderStepped", "Stepped", "Heartbeat"},
Default = Aimbot_DeveloperSettings.UpdateMode,
Callback = function(Value)
Aimbot_DeveloperSettings.UpdateMode = Value
end
})
AimbotDeveloperSection:Dropdown({
Name = "Team Check Option",
Flag = "Aimbot_TeamCheckOption",
Content = {"TeamColor", "Team"},
Default = Aimbot_DeveloperSettings.TeamCheckOption,
Callback = function(Value)
Aimbot_DeveloperSettings.TeamCheckOption = Value
end
})
AimbotDeveloperSection:Slider({
Name = "Rainbow Speed",
Flag = "Aimbot_RainbowSpeed",
Default = Aimbot_DeveloperSettings.RainbowSpeed * 10,
Min = 5,
Max = 30,
Callback = function(Value)
Aimbot_DeveloperSettings.RainbowSpeed = Value / 10
end
})
AimbotDeveloperSection:Button({
Name = "Refresh",
Callback = function()
Aimbot.Restart()
end
})
AimbotPropertiesSection:Toggle({
Name = "Toggle",
Flag = "Aimbot_Toggle",
Default = Aimbot_Settings.Toggle,
Callback = function(Value)
Aimbot_Settings.Toggle = Value
end
})
AimbotPropertiesSection:Toggle({
Name = "Offset To Move Direction",
Flag = "Aimbot_OffsetToMoveDirection",
Default = Aimbot_Settings.OffsetToMoveDirection,
Callback = function(Value)
Aimbot_Settings.OffsetToMoveDirection = Value
end
})
AimbotPropertiesSection:Slider({
Name = "Offset Increment",
Flag = "Aimbot_OffsetIncrementy",
Default = Aimbot_Settings.OffsetIncrement,
Min = 1,
Max = 30,
Callback = function(Value)
Aimbot_Settings.OffsetIncrement = Value
end
})
AimbotPropertiesSection:Slider({
Name = "Animation Sensitivity (ms)",
Flag = "Aimbot_Sensitivity",
Default = Aimbot_Settings.Sensitivity * 100,
Min = 0,
Max = 100,
Callback = function(Value)
Aimbot_Settings.Sensitivity = Value / 100
end
})
AimbotPropertiesSection:Slider({
Name = "mousemoverel Sensitivity",
Flag = "Aimbot_Sensitivity2",
Default = Aimbot_Settings.Sensitivity2 * 100,
Min = 0,
Max = 500,
Callback = function(Value)
Aimbot_Settings.Sensitivity2 = Value / 100
end
})
AimbotPropertiesSection:Dropdown({
Name = "Lock Mode",
Flag = "Aimbot_Settings_LockMode",
Content = {"CFrame", "mousemoverel"},
Default = Aimbot_Settings.LockMode == 1 and "CFrame" or "mousemoverel",
Callback = function(Value)
Aimbot_Settings.LockMode = Value == "CFrame" and 1 or 2
end
})
AimbotPropertiesSection:Dropdown({
Name = "Lock Part",
Flag = "Aimbot_LockPart",
Content = {"Head", "HumanoidRootPart", "Torso", "Left Arm", "Right Arm",
"Left Leg", "Right Leg", "LeftHand", "RightHand", "LeftLowerArm", "RightLowerArm",
"LeftUpperArm", "RightUpperArm", "LeftFoot", "LeftLowerLeg", "UpperTorso",
"LeftUpperLeg", "RightFoot", "RightLowerLeg", "LowerTorso", "RightUpperLeg"},
Default = Aimbot_Settings.LockPart,
Callback = function(Value)
Aimbot_Settings.LockPart = Value
end
})
AimbotPropertiesSection:Keybind({
Name = "Trigger Key",
Flag = "Aimbot_TriggerKey",
Default = Aimbot_Settings.TriggerKey,
Callback = function(Keybind)
Aimbot_Settings.TriggerKey = Keybind
end
})
AimbotPropertiesSection:Button({
Name = "Blacklist (Ignore) Player",
Callback = function()
pcall(Aimbot.Blacklist, Aimbot, GUI.flags["Aimbot_PlayerName"])
UserBox:Set("")
end
})
AimbotPropertiesSection:Button({
Name = "Whitelist Player",
Callback = function()
pcall(Aimbot.Whitelist, Aimbot, GUI.flags["Aimbot_PlayerName"])
UserBox:Set("")
end
})
AimbotFOVSection:Slider({
Name = "Field Of View",
Flag = "Aimbot_FOV_Radius",
Default = Aimbot_FOV.Radius,
Min = 0,
Max = 720,
Callback = function(Value)
Aimbot_FOV.Radius = Value
end
})
AimbotFOVSection:Slider({
Name = "Sides",
Flag = "Aimbot_FOV_NumSides",
Default = Aimbot_FOV.NumSides,
Min = 3,
Max = 60,
Callback = function(Value)
Aimbot_FOV.NumSides = Value
end
})
AimbotFOVSection:Slider({
Name = "Transparency",
Flag = "Aimbot_FOV_Transparency",
Default = Aimbot_FOV.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
Aimbot_FOV.Transparency = Value / 10
end
})
AimbotFOVSection:Slider({
Name = "Thickness",
Flag = "Aimbot_FOV_Thickness",
Default = Aimbot_FOV.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
Aimbot_FOV.Thickness = Value
end
})
ESP_Properties_Section:Dropdown({
Name = "Text Font",
Flag = "ESP_TextFont",
Content = Fonts,
Default = Fonts[ESP_Properties.ESP.Font + 1],
Callback = function(Value)
ESP_Properties.ESP.Font = Drawing.Fonts[Value]
end
})
ESP_Properties_Section:Slider({
Name = "Transparency",
Flag = "ESP_TextTransparency",
Default = ESP_Properties.ESP.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
ESP_Properties.ESP.Transparency = Value / 10
end
})
ESP_Properties_Section:Slider({
Name = "Font Size",
Flag = "ESP_FontSize",
Default = ESP_Properties.ESP.Size,
Min = 1,
Max = 20,
Callback = function(Value)
ESP_Properties.ESP.Size = Value
end
})
ESP_Properties_Section:Slider({
Name = "Offset",
Flag = "ESP_Offset",
Default = ESP_Properties.ESP.Offset,
Min = 10,
Max = 30,
Callback = function(Value)
ESP_Properties.ESP.Offset = Value
end
})
Tracer_Properties_Section:Slider({
Name = "Transparency",
Flag = "Tracer_Transparency",
Default = ESP_Properties.Tracer.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
ESP_Properties.Tracer.Transparency = Value / 10
end
})
Tracer_Properties_Section:Slider({
Name = "Thickness",
Flag = "Tracer_Thickness",
Default = ESP_Properties.Tracer.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
ESP_Properties.Tracer.Thickness = Value
end
})
HeadDot_Properties_Section:Slider({
Name = "Transparency",
Flag = "HeadDot_Transparency",
Default = ESP_Properties.HeadDot.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
ESP_Properties.HeadDot.Transparency = Value / 10
end
})
HeadDot_Properties_Section:Slider({
Name = "Thickness",
Flag = "HeadDot_Thickness",
Default = ESP_Properties.HeadDot.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
ESP_Properties.HeadDot.Thickness = Value
end
})
HeadDot_Properties_Section:Slider({
Name = "Sides",
Flag = "HeadDot_Sides",
Default = ESP_Properties.HeadDot.NumSides,
Min = 3,
Max = 30,
Callback = function(Value)
ESP_Properties.HeadDot.NumSides = Value
end
})
Box_Properties_Section:Slider({
Name = "Transparency",
Flag = "Box_Transparency",
Default = ESP_Properties.Box.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
ESP_Properties.Box.Transparency = Value / 10
end
})
Box_Properties_Section:Slider({
Name = "Thickness",
Flag = "Box_Thickness",
Default = ESP_Properties.Box.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
ESP_Properties.Box.Thickness = Value
end
})
HealthBar_Properties_Section:Dropdown({
Name = "Position",
Flag = "HealthBar_Position",
Content = HealthBarPositions,
Default = HealthBarPositions[ESP_Properties.HealthBar.Position],
Callback = function(Value)
ESP_Properties.HealthBar.Position = tablefind(HealthBarPositions,
Value)
end
})
HealthBar_Properties_Section:Slider({
Name = "Transparency",
Flag = "HealthBar_Transparency",
Default = ESP_Properties.HealthBar.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
ESP_Properties.HealthBar.Transparency = Value / 10
end
})
HealthBar_Properties_Section:Slider({
Name = "Thickness",
Flag = "HealthBar_Thickness",
Default = ESP_Properties.HealthBar.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
ESP_Properties.HealthBar.Thickness = Value
end
})
HealthBar_Properties_Section:Slider({
Name = "Offset",
Flag = "HealthBar_Offset",
Default = ESP_Properties.HealthBar.Offset,
Min = 4,
Max = 12,
Callback = function(Value)
ESP_Properties.HealthBar.Offset = Value
end
})
HealthBar_Properties_Section:Slider({
Name = "Blue",
Flag = "HealthBar_Blue",
Default = ESP_Properties.HealthBar.Blue,
Min = 0,
Max = 255,
Callback = function(Value)
ESP_Properties.HealthBar.Blue = Value
end
})
Chams_Properties_Section:Slider({
Name = "Transparency",
Flag = "Chams_Transparency",
Default = ESP_Properties.Chams.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
ESP_Properties.Chams.Transparency = Value / 10
end
})
Chams_Properties_Section:Slider({
Name = "Thickness",
Flag = "Chams_Thickness",
Default = ESP_Properties.Chams.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
ESP_Properties.Chams.Thickness = Value
end
})
Crosshair_Settings:Toggle({
Name = "Enabled",
Flag = "Crosshair_Enabled",
Default = Crosshair.Enabled,
Callback = function(Value)
Crosshair.Enabled = Value
end
})
Crosshair_Settings:Toggle({
Name = "Enable ROBLOX Cursor",
Flag = "Cursor_Enabled",
Default = UserInputService.MouseIconEnabled,
Callback = SetMouseIconVisibility
})
Crosshair_Settings:Dropdown({
Name = "Position",
Flag = "Crosshair_Position",
Content = {"Mouse", "Center"},
Default = ({"Mouse", "Center"})[Crosshair.Position],
Callback = function(Value)
Crosshair.Position = Value == "Mouse" and 1 or 2
end
})
Crosshair_Settings:Slider({
Name = "Size",
Flag = "Crosshair_Size",
Default = Crosshair.Size,
Min = 1,
Max = 24,
Callback = function(Value)
Crosshair.Size = Value
end
})
Crosshair_Settings:Slider({
Name = "Gap Size",
Flag = "Crosshair_GapSize",
Default = Crosshair.GapSize,
Min = 0,
Max = 24,
Callback = function(Value)
Crosshair.GapSize = Value
end
})
Crosshair_Settings:Slider({
Name = "Rotation (Degrees)",
Flag = "Crosshair_Rotation",
Default = Crosshair.Rotation,
Min = -180,
Max = 180,
Callback = function(Value)
Crosshair.Rotation = Value
end
})
Crosshair_Settings:Slider({
Name = "Rotation Speed",
Flag = "Crosshair_RotationSpeed",
Default = Crosshair.RotationSpeed,
Min = 1,
Max = 20,
Callback = function(Value)
Crosshair.RotationSpeed = Value
end
})
Crosshair_Settings:Slider({
Name = "Pulsing Step",
Flag = "Crosshair_PulsingStep",
Default = Crosshair.PulsingStep,
Min = 0,
Max = 24,
Callback = function(Value)
Crosshair.PulsingStep = Value
end
})
_Crosshair_Settings:Slider({
Name = "Pulsing Speed",
Flag = "Crosshair_PulsingSpeed",
Default = Crosshair.PulsingSpeed,
Min = 1,
Max = 20,
Callback = function(Value)
Crosshair.PulsingSpeed = Value
end
})
_Crosshair_Settings:Slider({
Name = "Pulsing Boundary (Min)",
Flag = "Crosshair_Pulse_Min",
Default = Crosshair.PulsingBounds[1],
Min = 0,
Max = 24,
Callback = function(Value)
Crosshair.PulsingBounds[1] = Value
end
})
_Crosshair_Settings:Slider({
Name = "Pulsing Boundary (Max)",
Flag = "Crosshair_Pulse_Max",
Default = Crosshair.PulsingBounds[2],
Min = 0,
Max = 24,
Callback = function(Value)
Crosshair.PulsingBounds[2] = Value
end
})
_Crosshair_Settings:Slider({
Name = "Transparency",
Flag = "Crosshair_Transparency",
Default = Crosshair.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
Crosshair.Transparency = Value / 10
end
})
_Crosshair_Settings:Slider({
Name = "Thickness",
Flag = "Crosshair_Thickness",
Default = Crosshair.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
Crosshair.Thickness = Value
end
})
Crosshair_CenterDot:Toggle({
Name = "Enabled",
Flag = "Crosshair_CenterDot_Enabled",
Default = CenterDot.Enabled,
Callback = function(Value)
CenterDot.Enabled = Value
end
})
Crosshair_CenterDot:Slider({
Name = "Size / Radius",
Flag = "Crosshair_CenterDot_Radius",
Default = CenterDot.Radius,
Min = 2,
Max = 8,
Callback = function(Value)
CenterDot.Radius = Value
end
})
Crosshair_CenterDot:Slider({
Name = "Sides",
Flag = "Crosshair_CenterDot_Sides",
Default = CenterDot.NumSides,
Min = 3,
Max = 30,
Callback = function(Value)
CenterDot.NumSides = Value
end
})
Crosshair_CenterDot:Slider({
Name = "Transparency",
Flag = "Crosshair_CenterDot_Transparency",
Default = CenterDot.Transparency * 10,
Min = 1,
Max = 10,
Callback = function(Value)
CenterDot.Transparency = Value / 10
end
})
Crosshair_CenterDot:Slider({
Name = "Thickness",
Flag = "Crosshair_CenterDot_Thickness",
Default = CenterDot.Thickness,
Min = 1,
Max = 5,
Callback = function(Value)
CenterDot.Thickness = Value
end
})
SettingsSection:Keybind({
Name = "Show / Hide GUI",
Flag = "UI Toggle",
Default = Enum.KeyCode.RightShift,
Blacklist = {Enum.UserInputType.MouseButton1,
Enum.UserInputType.MouseButton2, Enum.UserInputType.MouseButton3},
Callback = function(_, NewKeybind)
if not NewKeybind then
GUI:Close()
end
end
})
SettingsSection:Button({
Name = "Unload Script",
Callback = function()
GUI:Unload()
ESP:Exit()
Aimbot:Exit()
getgenv().AirHubV2Loaded = nil
end
})
ProfilesSection:Box({
Name = "Configuration Name",
Flag = "Config Name",
Placeholder = "Config Name"
})
ProfilesSection:Button({
Name = "Load Configuration",
Callback = function()
GUI:LoadConfig(GUI.flags["Config Dropdown"])
end
})
ProfilesSection:Button({
Name = "Delete Configuration",
Callback = function()
GUI:DeleteConfig(GUI.flags["Config Dropdown"])
ConfigList:Refresh(GUI:GetConfigs())
end
})
ProfilesSection:Button({
Name = "Save Configuration",
Callback = function()
GUI:SaveConfig(GUI.flags["Config Dropdown"] or GUI.flags["Config
Name"])
ConfigList:Refresh(GUI:GetConfigs())
end
})
InformationSection:Label("Made by Exunys")
InformationSection:Button({
Name = "Copy GitHub",
Callback = function()
setclipboard("https://github.com/Exunys")
end
})
InformationSection:Button({
Name = "Copy Discord Invite",
Callback = function()
setclipboard("https://discord.gg/Ncz3H3quUZ")
end
})
--[=[
local MiscellaneousSection = Settings:Section({
Name = "Miscellaneous",
Side = "Right"
})
MiscellaneousSection:Button({
Name = "Rejoin",
Callback = Rejoin
})
delay(2, function()
spawn(function()
while wait(1) do
TimeLabel:Set(osdate("%c"))
PlayersLabel:Set(#Players:GetPlayers())
end
end)
RunService.RenderStepped:Connect(function(FPS)
FPSLabel:Set("FPS: "..mathfloor(1 / FPS))
end)
end)
]=]
--//
ESP.Load()
Aimbot.Load()
getgenv().AirHubV2Loaded = true
getgenv().AirHubV2Loading = nil
GeneralSignal:Fire()
GUI:Close()