0% found this document useful (0 votes)
4 views

Aim Script

Uploaded by

erentc5555
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
4 views

Aim Script

Uploaded by

erentc5555
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 52

--[[⊹˚₊‧───────────────‧₊˚⊹·͙⁺˚*•̩̩͙✩•̩̩͙*˚⁺‧͙⁺

✩˚*•̩̩͙
‧͙ ⁺ •̩̩͙*˚‧͙⁺✩‧͙˚*•̩̩͙⁺ •̩̩͙*˚‧͙⊹₊ ‧͙˚‧ ─────────────── ‧₊˚⊹

______ ______ __ __
__
/ \ / \| \ | \
| \
| ▓▓▓▓▓▓\ ______ ______ _______ | ▓▓▓▓▓▓\\▓▓______ ____ | ▓▓____ ______
_| ▓▓_
| ▓▓ | ▓▓/ \ / \| \ | ▓▓__| ▓▓ \ \ \|
▓▓ \ / \| ▓▓ \
| ▓▓ | ▓▓ ▓▓▓▓▓▓\ ▓▓▓▓▓▓\ ▓▓▓▓▓▓▓\ | ▓▓ ▓▓ ▓▓ ▓▓▓▓▓▓\▓▓▓▓\ ▓▓▓▓▓▓▓\
▓▓▓▓▓▓\\▓▓▓▓▓▓
| ▓▓ | ▓▓ ▓▓ | ▓▓ ▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓▓▓▓▓▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓ ▓▓ | ▓▓ ▓▓ |
▓▓ | ▓▓ __
| ▓▓__/ ▓▓ ▓▓__/ ▓▓ ▓▓▓▓▓▓▓▓ ▓▓ | ▓▓ | ▓▓ | ▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓ ▓▓__/ ▓▓ ▓▓__/
▓▓ | ▓▓| \
\▓▓ ▓▓ ▓▓ ▓▓\▓▓ \ ▓▓ | ▓▓ | ▓▓ | ▓▓ ▓▓ ▓▓ | ▓▓ | ▓▓ ▓▓ ▓▓\▓▓
▓▓ \▓▓ ▓▓
\▓▓▓▓▓▓| ▓▓▓▓▓▓▓ \▓▓▓▓▓▓▓\▓▓ \▓▓ \▓▓ \▓▓\▓▓\▓▓ \▓▓ \▓▓\▓▓▓▓▓▓▓ \
▓▓▓▓▓▓ \▓▓▓▓
| ▓▓
| ▓▓
\▓▓

☆____________☾✧ ✩ ✧☽____________☆☆____________☾✧ ✩ ✧☽____________☆

✨Universal Aim Assist Framework✨


Release 1.9.5

twix.cyou/pix
twix.cyou/OpenAimbotV3rm

Author: ttwiz_z (ttwizz) <[email protected]>


License: MIT
GitHub: https://github.com/ttwizz/Open-Aimbot

Issues: https://github.com/ttwizz/Open-Aimbot/issues
Pull requests: https://github.com/ttwizz/Open-Aimbot/pulls
Discussions: https://github.com/ttwizz/Open-Aimbot/discussions

Wiki: https://moderka.org/Open-Aimbot

Trustpilot: https://www.trustpilot.com/review/moderka.org

•───────•°•❀•°•───────•‿̩͙ ˖︵ꕀ ⠀𓏶 ̣̣̥⠀ ꕀ︵˖ ̩͙‿୨•───────•°•❀•°•───────•]]

--! Debugger

local DEBUG = false

if DEBUG then
getfenv().getfenv = function()
return setmetatable({}, {
__index = function()
return function()
return true
end
end
})
end
end

--! Services

local HttpService = game:GetService("HttpService")


local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local TweenService = game:GetService("TweenService")

--! Interface Manager

local UISettings = {
TabWidth = 160,
Size = { 580, 460 },
Theme = "VSC Dark High Contrast",
Acrylic = false,
Transparency = true,
MinimizeKey = "RightShift",
ShowNotifications = true,
ShowWarnings = true,
RenderingMode = "RenderStepped",
AutoImport = true
}

local InterfaceManager = {}

function InterfaceManager:ImportSettings()
pcall(function()
if not DEBUG and getfenv().isfile and getfenv().readfile and
getfenv().isfile("UISettings.ttwizz") and getfenv().readfile("UISettings.ttwizz")
then
for Key, Value in next,
HttpService:JSONDecode(getfenv().readfile("UISettings.ttwizz")) do
UISettings[Key] = Value
end
end
end)
end

function InterfaceManager:ExportSettings()
pcall(function()
if not DEBUG and getfenv().isfile and getfenv().readfile and
getfenv().writefile then
getfenv().writefile("UISettings.ttwizz",
HttpService:JSONEncode(UISettings))
end
end)
end

InterfaceManager:ImportSettings()

UISettings.__LAST_RUN__ = os.date()
InterfaceManager:ExportSettings()
--! Colors Handler

local ColorsHandler = {}

function ColorsHandler:PackColour(Colour)
return typeof(Colour) == "Color3" and { R = Colour.R * 255, G = Colour.G * 255,
B = Colour.B * 255 } or typeof(Colour) == "table" and Colour or { R = 255, G = 255,
B = 255 }
end

function ColorsHandler:UnpackColour(Colour)
return typeof(Colour) == "table" and Color3.fromRGB(Colour.R, Colour.G,
Colour.B) or typeof(Colour) == "Color3" and Colour or Color3.fromRGB(255, 255, 255)
end

--! Configuration Importer

local ImportedConfiguration = {}

pcall(function()
if not DEBUG and getfenv().isfile and getfenv().readfile and
getfenv().isfile(string.format("%s.ttwizz", game.GameId)) and
getfenv().readfile(string.format("%s.ttwizz", game.GameId)) and
UISettings.AutoImport then
ImportedConfiguration =
HttpService:JSONDecode(getfenv().readfile(string.format("%s.ttwizz", game.GameId)))
for Key, Value in next, ImportedConfiguration do
if Key == "FoVColour" or Key == "NameESPOutlineColour" or Key ==
"ESPColour" then
ImportedConfiguration[Key] = ColorsHandler:UnpackColour(Value)
end
end
end
end)

--! Configuration Initializer

local Configuration = {}

--? Aimbot

Configuration.Aimbot = ImportedConfiguration["Aimbot"] or false


Configuration.OnePressAimingMode = ImportedConfiguration["OnePressAimingMode"] or
false
Configuration.AimKey = ImportedConfiguration["AimKey"] or "RMB"
Configuration.AimMode = ImportedConfiguration["AimMode"] or "Camera"
Configuration.SilentAimMethods = ImportedConfiguration["SilentAimMethods"] or
{ "Mouse.Hit / Mouse.Target", "GetMouseLocation" }
Configuration.SilentAimChance = ImportedConfiguration["SilentAimChance"] or 100
Configuration.OffAimbotAfterKill = ImportedConfiguration["OffAimbotAfterKill"] or
false
Configuration.AimPartDropdownValues =
ImportedConfiguration["AimPartDropdownValues"] or { "Head", "HumanoidRootPart" }
Configuration.AimPart = ImportedConfiguration["AimPart"] or "HumanoidRootPart"
Configuration.RandomAimPart = ImportedConfiguration["RandomAimPart"] or false
Configuration.UseOffset = ImportedConfiguration["UseOffset"] or false
Configuration.OffsetType = ImportedConfiguration["OffsetType"] or "Static"
Configuration.StaticOffsetIncrement =
ImportedConfiguration["StaticOffsetIncrement"] or 10
Configuration.DynamicOffsetIncrement =
ImportedConfiguration["DynamicOffsetIncrement"] or 10
Configuration.AutoOffset = ImportedConfiguration["AutoOffset"] or false
Configuration.MaxAutoOffset = ImportedConfiguration["MaxAutoOffset"] or 50

Configuration.UseSensitivity = ImportedConfiguration["UseSensitivity"] or false


Configuration.Sensitivity = ImportedConfiguration["Sensitivity"] or 50
Configuration.UseNoise = ImportedConfiguration["UseNoise"] or false
Configuration.NoiseFrequency = ImportedConfiguration["NoiseFrequency"] or 50

--? Bots

Configuration.SpinBot = ImportedConfiguration["SpinBot"] or false


Configuration.OnePressSpinningMode = ImportedConfiguration["OnePressSpinningMode"]
or false
Configuration.SpinKey = ImportedConfiguration["SpinKey"] or "Q"
Configuration.SpinBotVelocity = ImportedConfiguration["SpinBotVelocity"] or 50
Configuration.SpinPartDropdownValues =
ImportedConfiguration["SpinPartDropdownValues"] or { "Head", "HumanoidRootPart" }
Configuration.SpinPart = ImportedConfiguration["SpinPart"] or "HumanoidRootPart"
Configuration.RandomSpinPart = ImportedConfiguration["RandomSpinPart"] or false

Configuration.TriggerBot = ImportedConfiguration["TriggerBot"] or false


Configuration.OnePressTriggeringMode =
ImportedConfiguration["OnePressTriggeringMode"] or false
Configuration.SmartTriggerBot = ImportedConfiguration["SmartTriggerBot"] or false
Configuration.TriggerKey = ImportedConfiguration["TriggerKey"] or "E"
Configuration.TriggerBotChance = ImportedConfiguration["TriggerBotChance"] or 100

--? Checks

Configuration.AliveCheck = ImportedConfiguration["AliveCheck"] or false


Configuration.GodCheck = ImportedConfiguration["GodCheck"] or false
Configuration.TeamCheck = ImportedConfiguration["TeamCheck"] or false
Configuration.FriendCheck = ImportedConfiguration["FriendCheck"] or false
Configuration.FollowCheck = ImportedConfiguration["FollowCheck"] or false
Configuration.VerifiedBadgeCheck = ImportedConfiguration["VerifiedBadgeCheck"] or
false
Configuration.WallCheck = ImportedConfiguration["WallCheck"] or false
Configuration.WaterCheck = ImportedConfiguration["WaterCheck"] or false

Configuration.FoVCheck = ImportedConfiguration["FoVCheck"] or false


Configuration.FoVRadius = ImportedConfiguration["FoVRadius"] or 100
Configuration.MagnitudeCheck = ImportedConfiguration["MagnitudeCheck"] or false
Configuration.TriggerMagnitude = ImportedConfiguration["TriggerMagnitude"] or 500
Configuration.TransparencyCheck = ImportedConfiguration["TransparencyCheck"] or
false
Configuration.IgnoredTransparency = ImportedConfiguration["IgnoredTransparency"] or
0.5
Configuration.WhitelistedGroupCheck =
ImportedConfiguration["WhitelistedGroupCheck"] or false
Configuration.WhitelistedGroup = ImportedConfiguration["WhitelistedGroup"] or 0
Configuration.BlacklistedGroupCheck =
ImportedConfiguration["BlacklistedGroupCheck"] or false
Configuration.BlacklistedGroup = ImportedConfiguration["BlacklistedGroup"] or 0
Configuration.IgnoredPlayersCheck = ImportedConfiguration["IgnoredPlayersCheck"] or
false
Configuration.IgnoredPlayersDropdownValues =
ImportedConfiguration["IgnoredPlayersDropdownValues"] or {}
Configuration.IgnoredPlayers = ImportedConfiguration["IgnoredPlayers"] or {}
Configuration.TargetPlayersCheck = ImportedConfiguration["TargetPlayersCheck"] or
false
Configuration.TargetPlayersDropdownValues =
ImportedConfiguration["TargetPlayersDropdownValues"] or {}
Configuration.TargetPlayers = ImportedConfiguration["TargetPlayers"] or {}

Configuration.PremiumCheck = ImportedConfiguration["PremiumCheck"] or false

--? Visuals

Configuration.FoV = ImportedConfiguration["FoV"] or false


Configuration.FoVKey = ImportedConfiguration["FoVKey"] or "R"
Configuration.FoVThickness = ImportedConfiguration["FoVThickness"] or 2
Configuration.FoVOpacity = ImportedConfiguration["FoVOpacity"] or 0.8
Configuration.FoVFilled = ImportedConfiguration["FoVFilled"] or false
Configuration.FoVColour = ImportedConfiguration["FoVColour"] or Color3.fromRGB(255,
255, 255)

Configuration.SmartESP = ImportedConfiguration["SmartESP"] or false


Configuration.ESPKey = ImportedConfiguration["ESPKey"] or "T"
Configuration.ESPBox = ImportedConfiguration["ESPBox"] or false
Configuration.ESPBoxFilled = ImportedConfiguration["ESPBoxFilled"] or false
Configuration.NameESP = ImportedConfiguration["NameESP"] or false
Configuration.NameESPFont = ImportedConfiguration["NameESPFont"] or "Monospace"
Configuration.NameESPSize = ImportedConfiguration["NameESPSize"] or 16
Configuration.NameESPOutlineColour = ImportedConfiguration["NameESPOutlineColour"]
or Color3.fromRGB(0, 0, 0)
Configuration.HealthESP = ImportedConfiguration["HealthESP"] or false
Configuration.MagnitudeESP = ImportedConfiguration["MagnitudeESP"] or false
Configuration.TracerESP = ImportedConfiguration["TracerESP"] or false
Configuration.ESPThickness = ImportedConfiguration["ESPThickness"] or 2
Configuration.ESPOpacity = ImportedConfiguration["ESPOpacity"] or 0.8
Configuration.ESPColour = ImportedConfiguration["ESPColour"] or Color3.fromRGB(255,
255, 255)
Configuration.ESPUseTeamColour = ImportedConfiguration["ESPUseTeamColour"] or false

Configuration.RainbowVisuals = ImportedConfiguration["RainbowVisuals"] or false


Configuration.RainbowDelay = ImportedConfiguration["RainbowDelay"] or 5

--! Constants

local Player = Players.LocalPlayer


local Mouse = Player:GetMouse()
local IsComputer = UserInputService.KeyboardEnabled and
UserInputService.MouseEnabled

❄️ ", "☃️%s",
local MonthlyLabels = { "%s ☘️ "%s😎", "%s",
☀️ "%s🌼", "🌈%s😎 ", "🌞%s🏖️
", "☀️%s💐",

"%s🍁", "🎃%s💀", "🍂%s☕ ", "🎄%s🎁" }
local PremiumLabels = { "💫PREMIUM💫", "✨PREMIUM✨", "🌟PREMIUM🌟", "⭐PREMIUM⭐", "🤩
PREMIUM🤩" }
--! Names Handler

local function GetPlayerName(String)


if typeof(String) == "string" and #String > 0 then
for _, _Player in next, Players:GetPlayers() do
if string.sub(string.lower(_Player.Name), 1, #string.lower(String)) ==
string.lower(String) then
return _Player.Name
end
end
end
return ""
end

--! Fields

local Status = ""

local Fluent = nil


local ShowWarning = false

local RobloxActive = true


local Clock = os.clock()

local Aiming = false


local Target = nil
local Tween = nil
local MouseSensitivity = UserInputService.MouseDeltaSensitivity

local Spinning = false


local Triggering = false
local ShowingFoV = false
local ShowingESP = false

do
if typeof(script) == "Instance" and script:FindFirstChild("Fluent") and
script:FindFirstChild("Fluent"):IsA("ModuleScript") then
Fluent = require(script:FindFirstChild("Fluent"))
else
local Success, Result = pcall(function()
return game:HttpGet("https://twix.cyou/Fluent.txt", true)
end)
if Success and typeof(Result) == "string" and string.find(Result, "dawid")
then
Fluent = getfenv().loadstring(Result)()
if Fluent.Premium then
return
getfenv().loadstring(game:HttpGet("https://twix.cyou/Aimbot.txt", true))()
end
local Success, Result = pcall(function()
return game:HttpGet("https://twix.cyou/AimbotStatus.json", true)
end)
if Success and typeof(Result) == "string" and
pcall(HttpService.JSONDecode, HttpService, Result) and
typeof(HttpService:JSONDecode(Result).message) == "string" then
Status = HttpService:JSONDecode(Result).message
end
else
return
end
end
end

local SensitivityChanged; SensitivityChanged =


UserInputService:GetPropertyChangedSignal("MouseDeltaSensitivity"):Connect(function
()
if not Fluent then
SensitivityChanged:Disconnect()
elseif not Aiming or not DEBUG and (getfenv().mousemoverel and IsComputer and
Configuration.AimMode == "Mouse" or getfenv().hookmetamethod and
getfenv().newcclosure and getfenv().checkcaller and getfenv().getnamecallmethod and
Configuration.AimMode == "Silent") then
MouseSensitivity = UserInputService.MouseDeltaSensitivity
end
end)

--! UI Initializer

do
local Window = Fluent:CreateWindow({
Title = string.format("%s <b><i>%s</i></b>",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot"), #Status > 0 and
Status or "🔥FREE🔥"),
SubTitle = "By @ttwiz_z",
TabWidth = UISettings.TabWidth,
Size = UDim2.fromOffset(table.unpack(UISettings.Size)),
Theme = UISettings.Theme,
Acrylic = UISettings.Acrylic,
MinimizeKey = UISettings.MinimizeKey
})

local Tabs = { Aimbot = Window:AddTab({ Title = "Aimbot", Icon = "crosshair" })


}

Window:SelectTab(1)

Tabs.Aimbot:AddParagraph({
Title = string.format("%s 🔥FREE🔥",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = "✨Universal Aim Assist
Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
})

local AimbotSection = Tabs.Aimbot:AddSection("Aimbot")

local AimbotToggle = AimbotSection:AddToggle("Aimbot", { Title = "Aimbot",


Description = "Toggles the Aimbot", Default = Configuration.Aimbot })
AimbotToggle:OnChanged(function(Value)
Configuration.Aimbot = Value
if not IsComputer then
Aiming = Value
end
end)

if IsComputer then
local OnePressAimingModeToggle =
AimbotSection:AddToggle("OnePressAimingMode", { Title = "One-Press Mode",
Description = "Uses the One-Press Mode instead of the Holding Mode", Default =
Configuration.OnePressAimingMode })
OnePressAimingModeToggle:OnChanged(function(Value)
Configuration.OnePressAimingMode = Value
end)

local AimKeybind = AimbotSection:AddKeybind("AimKey", {


Title = "Aim Key",
Description = "Changes the Aim Key",
Default = Configuration.AimKey,
ChangedCallback = function(Value)
Configuration.AimKey = Value
end
})
Configuration.AimKey = AimKeybind.Value ~= "RMB" and
Enum.KeyCode[AimKeybind.Value] or Enum.UserInputType.MouseButton2
end

local AimModeDropdown = AimbotSection:AddDropdown("AimMode", {


Title = "Aim Mode",
Description = "Changes the Aim Mode",
Values = { "Camera" },
Default = Configuration.AimMode,
Callback = function(Value)
Configuration.AimMode = Value
end
})
if getfenv().mousemoverel and IsComputer then
table.insert(AimModeDropdown.Values, "Mouse")
AimModeDropdown:BuildDropdownList()
else
ShowWarning = true
end
if getfenv().hookmetamethod and getfenv().newcclosure and getfenv().checkcaller
and getfenv().getnamecallmethod then
table.insert(AimModeDropdown.Values, "Silent")
AimModeDropdown:BuildDropdownList()

local SilentAimMethodsDropdown =
AimbotSection:AddDropdown("SilentAimMethods", {
Title = "Silent Aim Methods",
Description = "Sets the Silent Aim Methods",
Values = { "Mouse.Hit / Mouse.Target", "GetMouseLocation", "Raycast",
"FindPartOnRay", "FindPartOnRayWithIgnoreList", "FindPartOnRayWithWhitelist" },
Multi = true,
Default = Configuration.SilentAimMethods
})
SilentAimMethodsDropdown:OnChanged(function(Value)
Configuration.SilentAimMethods = {}
for Key, _ in next, Value do
if typeof(Key) == "string" then
table.insert(Configuration.SilentAimMethods, Key)
end
end
end)

AimbotSection:AddSlider("SilentAimChance", {
Title = "Silent Aim Chance",
Description = "Changes the Hit Chance for Silent Aim",
Default = Configuration.SilentAimChance,
Min = 1,
Max = 100,
Rounding = 1,
Callback = function(Value)
Configuration.SilentAimChance = Value
end
})
else
ShowWarning = true
end

local OffAimbotAfterKillToggle = AimbotSection:AddToggle("OffAimbotAfterKill",


{ Title = "Off After Kill", Description = "Disables the Aiming Mode after killing a
Target", Default = Configuration.OffAimbotAfterKill })
OffAimbotAfterKillToggle:OnChanged(function(Value)
Configuration.OffAimbotAfterKill = Value
end)

local AimPartDropdown = AimbotSection:AddDropdown("AimPart", {


Title = "Aim Part",
Description = "Changes the Aim Part",
Values = Configuration.AimPartDropdownValues,
Default = Configuration.AimPart,
Callback = function(Value)
Configuration.AimPart = Value
end
})

local RandomAimPartToggle = AimbotSection:AddToggle("RandomAimPart", { Title =


"Random Aim Part", Description = "Selects every second a Random Aim Part from
Dropdown", Default = Configuration.RandomAimPart })
RandomAimPartToggle:OnChanged(function(Value)
Configuration.RandomAimPart = Value
end)

AimbotSection:AddInput("AddAimPart", {
Title = "Add Aim Part",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Part Name",
Callback = function(Value)
if #Value > 0 and not table.find(Configuration.AimPartDropdownValues,
Value) then
table.insert(Configuration.AimPartDropdownValues, Value)
AimPartDropdown:SetValue(Value)
end
end
})

AimbotSection:AddInput("RemoveAimPart", {
Title = "Remove Aim Part",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Part Name",
Callback = function(Value)
if #Value > 0 and table.find(Configuration.AimPartDropdownValues,
Value) then
if Configuration.AimPart == Value then
AimPartDropdown:SetValue(nil)
end
table.remove(Configuration.AimPartDropdownValues,
table.find(Configuration.AimPartDropdownValues, Value))
AimPartDropdown:SetValues(Configuration.AimPartDropdownValues)
end
end
})

AimbotSection:AddButton({
Title = "Clear All Items",
Description = "Removes All Elements",
Callback = function()
local Items = #Configuration.AimPartDropdownValues
AimPartDropdown:SetValue(nil)
Configuration.AimPartDropdownValues = {}
AimPartDropdown:SetValues(Configuration.AimPartDropdownValues)
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = Items == 0 and "Nothing has been cleared!" or Items == 1
and "1 Item has been cleared!" or string.format("%s Items have been cleared!",
Items),
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

local AimOffsetSection = Tabs.Aimbot:AddSection("Aim Offset")

local UseOffsetToggle = AimOffsetSection:AddToggle("UseOffset", { Title = "Use


Offset", Description = "Toggles the Offset", Default = Configuration.UseOffset })
UseOffsetToggle:OnChanged(function(Value)
Configuration.UseOffset = Value
end)

AimOffsetSection:AddDropdown("OffsetType", {
Title = "Offset Type",
Description = "Changes the Offset Type",
Values = { "Static", "Dynamic", "Static & Dynamic" },
Default = Configuration.OffsetType,
Callback = function(Value)
Configuration.OffsetType = Value
end
})

AimOffsetSection:AddSlider("StaticOffsetIncrement", {
Title = "Static Offset Increment",
Description = "Changes the Static Offset Increment",
Default = Configuration.StaticOffsetIncrement,
Min = 1,
Max = 50,
Rounding = 1,
Callback = function(Value)
Configuration.StaticOffsetIncrement = Value
end
})

AimOffsetSection:AddSlider("DynamicOffsetIncrement", {
Title = "Dynamic Offset Increment",
Description = "Changes the Dynamic Offset Increment",
Default = Configuration.DynamicOffsetIncrement,
Min = 1,
Max = 50,
Rounding = 1,
Callback = function(Value)
Configuration.DynamicOffsetIncrement = Value
end
})

local AutoOffsetToggle = AimOffsetSection:AddToggle("AutoOffset", { Title =


"Auto Offset", Description = "Toggles the Auto Offset", Default =
Configuration.AutoOffset })
AutoOffsetToggle:OnChanged(function(Value)
Configuration.AutoOffset = Value
end)

AimOffsetSection:AddSlider("MaxAutoOffset", {
Title = "Max Auto Offset",
Description = "Changes the Max Auto Offset",
Default = Configuration.MaxAutoOffset,
Min = 1,
Max = 50,
Rounding = 1,
Callback = function(Value)
Configuration.MaxAutoOffset = Value
end
})

local SensitivityNoiseSection = Tabs.Aimbot:AddSection("Sensitivity & Noise")

local UseSensitivityToggle =
SensitivityNoiseSection:AddToggle("UseSensitivity", { Title = "Use Sensitivity",
Description = "Toggles the Sensitivity", Default = Configuration.UseSensitivity })
UseSensitivityToggle:OnChanged(function(Value)
Configuration.UseSensitivity = Value
end)

SensitivityNoiseSection:AddSlider("Sensitivity", {
Title = "Sensitivity",
Description = "Smoothes out the Mouse / Camera Movements when Aiming",
Default = Configuration.Sensitivity,
Min = 1,
Max = 100,
Rounding = 1,
Callback = function(Value)
Configuration.Sensitivity = Value
end
})

local UseNoiseToggle = SensitivityNoiseSection:AddToggle("UseNoise", { Title =


"Use Noise", Description = "Toggles the Camera Shaking when Aiming", Default =
Configuration.UseNoise })
UseNoiseToggle:OnChanged(function(Value)
Configuration.UseNoise = Value
end)

SensitivityNoiseSection:AddSlider("NoiseFrequency", {
Title = "Noise Frequency",
Description = "Changes the Noise Frequency",
Default = Configuration.NoiseFrequency,
Min = 1,
Max = 100,
Rounding = 1,
Callback = function(Value)
Configuration.NoiseFrequency = Value
end
})

Tabs.Bots = Window:AddTab({ Title = "Bots", Icon = "bot" })

Tabs.Bots:AddParagraph({
Title = string.format("%s 🔥FREE🔥",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = "✨Universal Aim Assist
Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
})

local SpinBotSection = Tabs.Bots:AddSection("SpinBot")

SpinBotSection:AddParagraph({
Title = "NOTE",
Content = "SpinBot does not function normally in RenderStepped Rendering
Mode. Set a different Rendering Mode value than RenderStepped to solve this
problem."
})

local SpinBotToggle = SpinBotSection:AddToggle("SpinBot", { Title = "SpinBot",


Description = "Toggles the SpinBot", Default = Configuration.SpinBot })
SpinBotToggle:OnChanged(function(Value)
Configuration.SpinBot = Value
if not IsComputer then
Spinning = Value
end
end)

if IsComputer then
local OnePressSpinningModeToggle =
SpinBotSection:AddToggle("OnePressSpinningMode", { Title = "One-Press Mode",
Description = "Uses the One-Press Mode instead of the Holding Mode", Default =
Configuration.OnePressSpinningMode })
OnePressSpinningModeToggle:OnChanged(function(Value)
Configuration.OnePressSpinningMode = Value
end)

local SpinKeybind = SpinBotSection:AddKeybind("SpinKey", {


Title = "Spin Key",
Description = "Changes the Spin Key",
Default = Configuration.SpinKey,
ChangedCallback = function(Value)
Configuration.SpinKey = Value
end
})
Configuration.SpinKey = SpinKeybind.Value ~= "RMB" and
Enum.KeyCode[SpinKeybind.Value] or Enum.UserInputType.MouseButton2
end

SpinBotSection:AddSlider("SpinBotVelocity", {
Title = "SpinBot Velocity",
Description = "Changes the SpinBot Velocity",
Default = Configuration.SpinBotVelocity,
Min = 1,
Max = 50,
Rounding = 1,
Callback = function(Value)
Configuration.SpinBotVelocity = Value
end
})

local SpinPartDropdown = SpinBotSection:AddDropdown("SpinPart", {


Title = "Spin Part",
Description = "Changes the Spin Part",
Values = Configuration.SpinPartDropdownValues,
Default = Configuration.SpinPart,
Callback = function(Value)
Configuration.SpinPart = Value
end
})

local RandomSpinPartToggle = SpinBotSection:AddToggle("RandomSpinPart", { Title


= "Random Spin Part", Description = "Selects every second a Random Spin Part from
Dropdown", Default = Configuration.RandomSpinPart })
RandomSpinPartToggle:OnChanged(function(Value)
Configuration.RandomSpinPart = Value
end)

SpinBotSection:AddInput("AddSpinPart", {
Title = "Add Spin Part",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Part Name",
Callback = function(Value)
if #Value > 0 and not table.find(Configuration.SpinPartDropdownValues,
Value) then
table.insert(Configuration.SpinPartDropdownValues, Value)
SpinPartDropdown:SetValue(Value)
end
end
})

SpinBotSection:AddInput("RemoveSpinPart", {
Title = "Remove Spin Part",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Part Name",
Callback = function(Value)
if #Value > 0 and table.find(Configuration.SpinPartDropdownValues,
Value) then
if Configuration.SpinPart == Value then
SpinPartDropdown:SetValue(nil)
end
table.remove(Configuration.SpinPartDropdownValues,
table.find(Configuration.SpinPartDropdownValues, Value))
SpinPartDropdown:SetValues(Configuration.SpinPartDropdownValues)
end
end
})

SpinBotSection:AddButton({
Title = "Clear All Items",
Description = "Removes All Elements",
Callback = function()
local Items = #Configuration.SpinPartDropdownValues
SpinPartDropdown:SetValue(nil)
Configuration.SpinPartDropdownValues = {}
SpinPartDropdown:SetValues(Configuration.SpinPartDropdownValues)
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = Items == 0 and "Nothing has been cleared!" or Items == 1
and "1 Item has been cleared!" or string.format("%s Items have been cleared!",
Items),
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

if getfenv().mouse1click and IsComputer then


local TriggerBotSection = Tabs.Bots:AddSection("TriggerBot")

local TriggerBotToggle = TriggerBotSection:AddToggle("TriggerBot", { Title


= "TriggerBot", Description = "Toggles the TriggerBot", Default =
Configuration.TriggerBot })
TriggerBotToggle:OnChanged(function(Value)
Configuration.TriggerBot = Value
end)

local OnePressTriggeringModeToggle =
TriggerBotSection:AddToggle("OnePressTriggeringMode", { Title = "One-Press Mode",
Description = "Uses the One-Press Mode instead of the Holding Mode", Default =
Configuration.OnePressTriggeringMode })
OnePressTriggeringModeToggle:OnChanged(function(Value)
Configuration.OnePressTriggeringMode = Value
end)

local SmartTriggerBotToggle =
TriggerBotSection:AddToggle("SmartTriggerBot", { Title = "Smart TriggerBot",
Description = "Uses the TriggerBot only when Aiming", Default =
Configuration.SmartTriggerBot })
SmartTriggerBotToggle:OnChanged(function(Value)
Configuration.SmartTriggerBot = Value
end)

local TriggerKeybind = TriggerBotSection:AddKeybind("TriggerKey", {


Title = "Trigger Key",
Description = "Changes the Trigger Key",
Default = Configuration.TriggerKey,
ChangedCallback = function(Value)
Configuration.TriggerKey = Value
end
})
Configuration.TriggerKey = TriggerKeybind.Value ~= "RMB" and
Enum.KeyCode[TriggerKeybind.Value] or Enum.UserInputType.MouseButton2

TriggerBotSection:AddSlider("TriggerBotChance", {
Title = "TriggerBot Chance",
Description = "Changes the Hit Chance for TriggerBot",
Default = Configuration.TriggerBotChance,
Min = 1,
Max = 100,
Rounding = 1,
Callback = function(Value)
Configuration.TriggerBotChance = Value
end
})
else
ShowWarning = true
end

Tabs.Checks = Window:AddTab({ Title = "Checks", Icon = "list-checks" })

Tabs.Checks:AddParagraph({
Title = string.format("%s 🔥FREE🔥",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = "✨Universal Aim Assist
Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
})

local SimpleChecksSection = Tabs.Checks:AddSection("Simple Checks")

local AliveCheckToggle = SimpleChecksSection:AddToggle("AliveCheck", { Title =


"Alive Check", Description = "Toggles the Alive Check", Default =
Configuration.AliveCheck })
AliveCheckToggle:OnChanged(function(Value)
Configuration.AliveCheck = Value
end)

local GodCheckToggle = SimpleChecksSection:AddToggle("GodCheck", { Title = "God


Check", Description = "Toggles the God Check", Default = Configuration.GodCheck })
GodCheckToggle:OnChanged(function(Value)
Configuration.GodCheck = Value
end)

local TeamCheckToggle = SimpleChecksSection:AddToggle("TeamCheck", { Title =


"Team Check", Description = "Toggles the Team Check", Default =
Configuration.TeamCheck })
TeamCheckToggle:OnChanged(function(Value)
Configuration.TeamCheck = Value
end)

local FriendCheckToggle = SimpleChecksSection:AddToggle("FriendCheck", { Title


= "Friend Check", Description = "Toggles the Friend Check", Default =
Configuration.FriendCheck })
FriendCheckToggle:OnChanged(function(Value)
Configuration.FriendCheck = Value
end)

local FollowCheckToggle = SimpleChecksSection:AddToggle("FollowCheck", { Title


= "Follow Check", Description = "Toggles the Follow Check", Default =
Configuration.FollowCheck })
FollowCheckToggle:OnChanged(function(Value)
Configuration.FollowCheck = Value
end)

local VerifiedBadgeCheckToggle =
SimpleChecksSection:AddToggle("VerifiedBadgeCheck", { Title = "Verified Badge
Check", Description = "Toggles the Verified Badge Check", Default =
Configuration.VerifiedBadgeCheck })
VerifiedBadgeCheckToggle:OnChanged(function(Value)
Configuration.VerifiedBadgeCheck = Value
end)

local WallCheckToggle = SimpleChecksSection:AddToggle("WallCheck", { Title =


"Wall Check", Description = "Toggles the Wall Check", Default =
Configuration.WallCheck })
WallCheckToggle:OnChanged(function(Value)
Configuration.WallCheck = Value
end)

local WaterCheckToggle = SimpleChecksSection:AddToggle("WaterCheck", { Title =


"Water Check", Description = "Toggles the Water Check if Wall Check is enabled",
Default = Configuration.WaterCheck })
WaterCheckToggle:OnChanged(function(Value)
Configuration.WaterCheck = Value
end)

local AdvancedChecksSection = Tabs.Checks:AddSection("Advanced Checks")

local FoVCheckToggle = AdvancedChecksSection:AddToggle("FoVCheck", { Title =


"FoV Check", Description = "Toggles the FoV Check", Default =
Configuration.FoVCheck })
FoVCheckToggle:OnChanged(function(Value)
Configuration.FoVCheck = Value
end)

AdvancedChecksSection:AddSlider("FoVRadius", {
Title = "FoV Radius",
Description = "Changes the FoV Radius",
Default = Configuration.FoVRadius,
Min = 10,
Max = 1000,
Rounding = 1,
Callback = function(Value)
Configuration.FoVRadius = Value
end
})

local MagnitudeCheckToggle = AdvancedChecksSection:AddToggle("MagnitudeCheck",


{ Title = "Magnitude Check", Description = "Toggles the Magnitude Check", Default =
Configuration.MagnitudeCheck })
MagnitudeCheckToggle:OnChanged(function(Value)
Configuration.MagnitudeCheck = Value
end)
AdvancedChecksSection:AddSlider("TriggerMagnitude", {
Title = "Trigger Magnitude",
Description = "Distance between the Native and the Target Character",
Default = Configuration.TriggerMagnitude,
Min = 10,
Max = 1000,
Rounding = 1,
Callback = function(Value)
Configuration.TriggerMagnitude = Value
end
})

local TransparencyCheckToggle =
AdvancedChecksSection:AddToggle("TransparencyCheck", { Title = "Transparency
Check", Description = "Toggles the Transparency Check", Default =
Configuration.TransparencyCheck })
TransparencyCheckToggle:OnChanged(function(Value)
Configuration.TransparencyCheck = Value
end)

AdvancedChecksSection:AddSlider("IgnoredTransparency", {
Title = "Ignored Transparency",
Description = "Target is ignored if its Transparency is > than / = to the
set one",
Default = Configuration.IgnoredTransparency,
Min = 0.1,
Max = 1,
Rounding = 1,
Callback = function(Value)
Configuration.IgnoredTransparency = Value
end
})

local WhitelistedGroupCheckToggle =
AdvancedChecksSection:AddToggle("WhitelistedGroupCheck", { Title = "Whitelisted
Group Check", Description = "Toggles the Whitelisted Group Check", Default =
Configuration.WhitelistedGroupCheck })
WhitelistedGroupCheckToggle:OnChanged(function(Value)
Configuration.WhitelistedGroupCheck = Value
end)

AdvancedChecksSection:AddInput("WhitelistedGroup", {
Title = "Whitelisted Group",
Description = "After typing, press Enter",
Default = Configuration.WhitelistedGroup,
Numeric = true,
Finished = true,
Placeholder = "Group Id",
Callback = function(Value)
Configuration.WhitelistedGroup = #tostring(Value) > 0 and
tonumber(Value) or 0
end
})

local BlacklistedGroupCheckToggle =
AdvancedChecksSection:AddToggle("BlacklistedGroupCheck", { Title = "Blacklisted
Group Check", Description = "Toggles the Blacklisted Group Check", Default =
Configuration.BlacklistedGroupCheck })
BlacklistedGroupCheckToggle:OnChanged(function(Value)
Configuration.BlacklistedGroupCheck = Value
end)

AdvancedChecksSection:AddInput("BlacklistedGroup", {
Title = "Blacklisted Group",
Description = "After typing, press Enter",
Default = Configuration.BlacklistedGroup,
Numeric = true,
Finished = true,
Placeholder = "Group Id",
Callback = function(Value)
Configuration.BlacklistedGroup = #tostring(Value) > 0 and
tonumber(Value) or 0
end
})

local ExpertChecksSection = Tabs.Checks:AddSection("Expert Checks")

local IgnoredPlayersCheckToggle =
ExpertChecksSection:AddToggle("IgnoredPlayersCheck", { Title = "Ignored Players
Check", Description = "Toggles the Ignored Players Check", Default =
Configuration.IgnoredPlayersCheck })
IgnoredPlayersCheckToggle:OnChanged(function(Value)
Configuration.IgnoredPlayersCheck = Value
end)

local IgnoredPlayersDropdown =
ExpertChecksSection:AddDropdown("IgnoredPlayers", {
Title = "Ignored Players",
Description = "Sets the Ignored Players",
Values = Configuration.IgnoredPlayersDropdownValues,
Multi = true,
Default = Configuration.IgnoredPlayers
})
IgnoredPlayersDropdown:OnChanged(function(Value)
Configuration.IgnoredPlayers = {}
for Key, _ in next, Value do
if typeof(Key) == "string" then
table.insert(Configuration.IgnoredPlayers, Key)
end
end
end)

ExpertChecksSection:AddInput("AddIgnoredPlayer", {
Title = "Add Ignored Player",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Player Name",
Callback = function(Value)
Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or
pcall(Players.GetUserIdFromNameAsync, Players, Value) and
pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(Value)) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or
string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and
GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync,
Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value,
2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync,
Players, tonumber(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
if #Value > 0 and not
table.find(Configuration.IgnoredPlayersDropdownValues, Value) then
table.insert(Configuration.IgnoredPlayersDropdownValues, Value)
if not table.find(Configuration.IgnoredPlayers, Value) then
IgnoredPlayersDropdown.Value[Value] = true
table.insert(Configuration.IgnoredPlayers, Value)
end
IgnoredPlayersDropdown:BuildDropdownList()
end
end
})

ExpertChecksSection:AddInput("RemoveIgnoredPlayer", {
Title = "Remove Ignored Player",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Player Name",
Callback = function(Value)
Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or
pcall(Players.GetUserIdFromNameAsync, Players, Value) and
pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(Value)) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or
string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and
GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync,
Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value,
2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync,
Players, tonumber(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
if #Value > 0 and
table.find(Configuration.IgnoredPlayersDropdownValues, Value) then
if table.find(Configuration.IgnoredPlayers, Value) then
IgnoredPlayersDropdown.Value[Value] = nil
table.remove(Configuration.IgnoredPlayers,
table.find(Configuration.IgnoredPlayers, Value))
IgnoredPlayersDropdown:Display()
end
table.remove(Configuration.IgnoredPlayersDropdownValues,
table.find(Configuration.IgnoredPlayersDropdownValues, Value))

IgnoredPlayersDropdown:SetValues(Configuration.IgnoredPlayersDropdownValues)
end
end
})

ExpertChecksSection:AddButton({
Title = "Deselect All Items",
Description = "Deselects All Elements",
Callback = function()
local Items = #Configuration.IgnoredPlayers
IgnoredPlayersDropdown:SetValue({})
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = Items == 0 and "Nothing has been deselected!" or Items ==
1 and "1 Item has been deselected!" or string.format("%s Items have been
deselected!", Items),
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

ExpertChecksSection:AddButton({
Title = "Clear Unselected Items",
Description = "Removes Unselected Players",
Callback = function()
local Cache = {}
local Items = 0
for _, Value in next, Configuration.IgnoredPlayersDropdownValues do
if table.find(Configuration.IgnoredPlayers, Value) then
table.insert(Cache, Value)
else
Items = Items + 1
end
end
Configuration.IgnoredPlayersDropdownValues = Cache

IgnoredPlayersDropdown:SetValues(Configuration.IgnoredPlayersDropdownValues)
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = Items == 0 and "Nothing has been cleared!" or Items == 1
and "1 Item has been cleared!" or string.format("%s Items have been cleared!",
Items),
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

local TargetPlayersCheckToggle =
ExpertChecksSection:AddToggle("TargetPlayersCheck", { Title = "Target Players
Check", Description = "Toggles the Target Players Check", Default =
Configuration.TargetPlayersCheck })
TargetPlayersCheckToggle:OnChanged(function(Value)
Configuration.TargetPlayersCheck = Value
end)

local TargetPlayersDropdown = ExpertChecksSection:AddDropdown("TargetPlayers",


{
Title = "Target Players",
Description = "Sets the Target Players",
Values = Configuration.TargetPlayersDropdownValues,
Multi = true,
Default = Configuration.TargetPlayers
})
TargetPlayersDropdown:OnChanged(function(Value)
Configuration.TargetPlayers = {}
for Key, _ in next, Value do
if typeof(Key) == "string" then
table.insert(Configuration.TargetPlayers, Key)
end
end
end)

ExpertChecksSection:AddInput("AddTargetPlayer", {
Title = "Add Target Player",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Player Name",
Callback = function(Value)
Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or
pcall(Players.GetUserIdFromNameAsync, Players, Value) and
pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(Value)) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or
string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and
GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync,
Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value,
2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync,
Players, tonumber(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
if #Value > 0 and not
table.find(Configuration.TargetPlayersDropdownValues, Value) then
table.insert(Configuration.TargetPlayersDropdownValues, Value)
if not table.find(Configuration.TargetPlayers, Value) then
TargetPlayersDropdown.Value[Value] = true
table.insert(Configuration.TargetPlayers, Value)
end
TargetPlayersDropdown:BuildDropdownList()
end
end
})

ExpertChecksSection:AddInput("RemoveTargetPlayer", {
Title = "Remove Target Player",
Description = "After typing, press Enter",
Finished = true,
Placeholder = "Player Name",
Callback = function(Value)
Value = #GetPlayerName(Value) > 0 and GetPlayerName(Value) or
pcall(Players.GetUserIdFromNameAsync, Players, Value) and
pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(Value)) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(Value)) or
string.sub(Value, 1, 1) == "@" and (#GetPlayerName(string.sub(Value, 2)) > 0 and
GetPlayerName(string.sub(Value, 2)) or pcall(Players.GetUserIdFromNameAsync,
Players, string.sub(Value, 2)) and pcall(Players.GetNameFromUserIdAsync, Players,
Players:GetUserIdFromNameAsync(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(Players:GetUserIdFromNameAsync(string.sub(Value,
2)))) or string.sub(Value, 1, 1) == "#" and pcall(Players.GetNameFromUserIdAsync,
Players, tonumber(string.sub(Value, 2))) and
Players:GetNameFromUserIdAsync(tonumber(string.sub(Value, 2))) or ""
if #Value > 0 and table.find(Configuration.TargetPlayersDropdownValues,
Value) then
if table.find(Configuration.TargetPlayers, Value) then
TargetPlayersDropdown.Value[Value] = nil
table.remove(Configuration.TargetPlayers,
table.find(Configuration.TargetPlayers, Value))
TargetPlayersDropdown:Display()
end
table.remove(Configuration.TargetPlayersDropdownValues,
table.find(Configuration.TargetPlayersDropdownValues, Value))

TargetPlayersDropdown:SetValues(Configuration.TargetPlayersDropdownValues)
end
end
})

ExpertChecksSection:AddButton({
Title = "Deselect All Items",
Description = "Deselects All Elements",
Callback = function()
local Items = #Configuration.TargetPlayers
TargetPlayersDropdown:SetValue({})
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = Items == 0 and "Nothing has been deselected!" or Items ==
1 and "1 Item has been deselected!" or string.format("%s Items have been
deselected!", Items),
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

ExpertChecksSection:AddButton({
Title = "Clear Unselected Items",
Description = "Removes Unselected Players",
Callback = function()
local Cache = {}
local Items = 0
for _, Value in next, Configuration.TargetPlayersDropdownValues do
if table.find(Configuration.TargetPlayers, Value) then
table.insert(Cache, Value)
else
Items = Items + 1
end
end
Configuration.TargetPlayersDropdownValues = Cache

TargetPlayersDropdown:SetValues(Configuration.TargetPlayersDropdownValues)
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = Items == 0 and "Nothing has been cleared!" or Items == 1
and "1 Item has been cleared!" or string.format("%s Items have been cleared!",
Items),
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

local PremiumChecksSection = Tabs.Checks:AddSection("Premium Checks")

local PremiumCheckToggle = PremiumChecksSection:AddToggle("PremiumCheck",


{ Title = "Premium Check", Description = "Toggles the Premium Check", Default =
Configuration.PremiumCheck })
PremiumCheckToggle:OnChanged(function(Value)
Configuration.PremiumCheck = Value
end)

PremiumChecksSection:AddParagraph({
Title = string.format("%s 💫PREMIUM💫",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = "✨Upgrade to unlock all Options✨\nContact @ttwiz_z via Discord to
buy"
})

if DEBUG or getfenv().Drawing and getfenv().Drawing.new then


Tabs.Visuals = Window:AddTab({ Title = "Visuals", Icon = "box" })

Tabs.Visuals:AddParagraph({
Title = string.format("%s 🔥FREE🔥",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = "✨Universal Aim Assist
Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
})

local FoVSection = Tabs.Visuals:AddSection("FoV")

local FoVToggle = FoVSection:AddToggle("FoV", { Title = "FoV", Description


= "Graphically Displays the FoV Radius", Default = Configuration.FoV })
FoVToggle:OnChanged(function(Value)
Configuration.FoV = Value
if not IsComputer then
ShowingFoV = Value
end
end)

if IsComputer then
local FoVKeybind = FoVSection:AddKeybind("FoVKey", {
Title = "FoV Key",
Description = "Changes the FoV Key",
Default = Configuration.FoVKey,
ChangedCallback = function(Value)
Configuration.FoVKey = Value
end
})
Configuration.FoVKey = FoVKeybind.Value ~= "RMB" and
Enum.KeyCode[FoVKeybind.Value] or Enum.UserInputType.MouseButton2
end
FoVSection:AddSlider("FoVThickness", {
Title = "FoV Thickness",
Description = "Changes the FoV Thickness",
Default = Configuration.FoVThickness,
Min = 1,
Max = 10,
Rounding = 1,
Callback = function(Value)
Configuration.FoVThickness = Value
end
})

FoVSection:AddSlider("FoVOpacity", {
Title = "FoV Opacity",
Description = "Changes the FoV Opacity",
Default = Configuration.FoVOpacity,
Min = 0.1,
Max = 1,
Rounding = 1,
Callback = function(Value)
Configuration.FoVOpacity = Value
end
})

local FoVFilledToggle = FoVSection:AddToggle("FoVFilled", { Title = "FoV


Filled", Description = "Makes the FoV Filled", Default = Configuration.FoVFilled })
FoVFilledToggle:OnChanged(function(Value)
Configuration.FoVFilled = Value
end)

FoVSection:AddColorpicker("FoVColour", {
Title = "FoV Colour",
Description = "Changes the FoV Colour",
Default = Configuration.FoVColour,
Callback = function(Value)
Configuration.FoVColour = Value
end
})

local ESPSection = Tabs.Visuals:AddSection("ESP")

local SmartESPToggle = ESPSection:AddToggle("SmartESP", { Title = "Smart


ESP", Description = "Does not ESP the Whitelisted Players", Default =
Configuration.SmartESP })
SmartESPToggle:OnChanged(function(Value)
Configuration.SmartESP = Value
end)

if IsComputer then
local ESPKeybind = ESPSection:AddKeybind("ESPKey", {
Title = "ESP Key",
Description = "Changes the ESP Key",
Default = Configuration.ESPKey,
ChangedCallback = function(Value)
Configuration.ESPKey = Value
end
})
Configuration.ESPKey = ESPKeybind.Value ~= "RMB" and
Enum.KeyCode[ESPKeybind.Value] or Enum.UserInputType.MouseButton2
end

local ESPBoxToggle = ESPSection:AddToggle("ESPBox", { Title = "ESP Box",


Description = "Creates the ESP Box around the Players", Default =
Configuration.ESPBox })
ESPBoxToggle:OnChanged(function(Value)
Configuration.ESPBox = Value
if not IsComputer then
if Value then
ShowingESP = true
elseif not Configuration.ESPBox and not Configuration.NameESP and
not Configuration.HealthESP and not Configuration.MagnitudeESP and not
Configuration.TracerESP then
ShowingESP = false
end
end
end)

local ESPBoxFilledToggle = ESPSection:AddToggle("ESPBoxFilled", { Title =


"ESP Box Filled", Description = "Makes the ESP Box Filled", Default =
Configuration.ESPBoxFilled })
ESPBoxFilledToggle:OnChanged(function(Value)
Configuration.ESPBoxFilled = Value
end)

local NameESPToggle = ESPSection:AddToggle("NameESP", { Title = "Name ESP",


Description = "Creates the Name ESP above the Players", Default =
Configuration.NameESP })
NameESPToggle:OnChanged(function(Value)
Configuration.NameESP = Value
if not IsComputer then
if Value then
ShowingESP = true
elseif not Configuration.ESPBox and not Configuration.NameESP and
not Configuration.HealthESP and not Configuration.MagnitudeESP and not
Configuration.TracerESP then
ShowingESP = false
end
end
end)

ESPSection:AddDropdown("NameESPFont", {
Title = "Name ESP Font",
Description = "Changes the Name ESP Font",
Values = { "UI", "System", "Plex", "Monospace" },
Default = Configuration.NameESPFont,
Callback = function(Value)
Configuration.NameESPFont = Value
end
})

ESPSection:AddSlider("NameESPSize", {
Title = "Name ESP Size",
Description = "Changes the Name ESP Size",
Default = Configuration.NameESPSize,
Min = 8,
Max = 28,
Rounding = 1,
Callback = function(Value)
Configuration.NameESPSize = Value
end
})

ESPSection:AddColorpicker("NameESPOutlineColour", {
Title = "Name ESP Outline",
Description = "Changes the Name ESP Outline Colour",
Default = Configuration.NameESPOutlineColour,
Callback = function(Value)
Configuration.NameESPOutlineColour = Value
end
})

local HealthESPToggle = ESPSection:AddToggle("HealthESP", { Title = "Health


ESP", Description = "Creates the Health ESP in the ESP Box", Default =
Configuration.HealthESP })
HealthESPToggle:OnChanged(function(Value)
Configuration.HealthESP = Value
if not IsComputer then
if Value then
ShowingESP = true
elseif not Configuration.ESPBox and not Configuration.NameESP and
not Configuration.HealthESP and not Configuration.MagnitudeESP and not
Configuration.TracerESP then
ShowingESP = false
end
end
end)

local MagnitudeESPToggle = ESPSection:AddToggle("MagnitudeESP", { Title =


"Magnitude ESP", Description = "Creates the Magnitude ESP in the ESP Box", Default
= Configuration.MagnitudeESP })
MagnitudeESPToggle:OnChanged(function(Value)
Configuration.MagnitudeESP = Value
if not IsComputer then
if Value then
ShowingESP = true
elseif not Configuration.ESPBox and not Configuration.NameESP and
not Configuration.HealthESP and not Configuration.MagnitudeESP and not
Configuration.TracerESP then
ShowingESP = false
end
end
end)

local TracerESPToggle = ESPSection:AddToggle("TracerESP", { Title = "Tracer


ESP", Description = "Creates the Tracer ESP in the direction of the Players",
Default = Configuration.TracerESP })
TracerESPToggle:OnChanged(function(Value)
Configuration.TracerESP = Value
if not IsComputer then
if Value then
ShowingESP = true
elseif not Configuration.ESPBox and not Configuration.NameESP and
not Configuration.HealthESP and not Configuration.MagnitudeESP and not
Configuration.TracerESP then
ShowingESP = false
end
end
end)

ESPSection:AddSlider("ESPThickness", {
Title = "ESP Thickness",
Description = "Changes the ESP Thickness",
Default = Configuration.ESPThickness,
Min = 1,
Max = 10,
Rounding = 1,
Callback = function(Value)
Configuration.ESPThickness = Value
end
})

ESPSection:AddSlider("ESPOpacity", {
Title = "ESP Opacity",
Description = "Changes the ESP Opacity",
Default = Configuration.ESPOpacity,
Min = 0.1,
Max = 1,
Rounding = 1,
Callback = function(Value)
Configuration.ESPOpacity = Value
end
})

ESPSection:AddColorpicker("ESPColour", {
Title = "ESP Colour",
Description = "Changes the ESP Colour",
Default = Configuration.ESPColour,
Callback = function(Value)
Configuration.ESPColour = Value
end
})

local ESPUseTeamColourToggle = ESPSection:AddToggle("ESPUseTeamColour",


{ Title = "Use Team Colour", Description = "Makes the ESP Colour match the Target
Player Team", Default = Configuration.ESPUseTeamColour })
ESPUseTeamColourToggle:OnChanged(function(Value)
Configuration.ESPUseTeamColour = Value
end)

local VisualsSection = Tabs.Visuals:AddSection("Visuals")

local RainbowVisualsToggle = VisualsSection:AddToggle("RainbowVisuals",


{ Title = "Rainbow Visuals", Description = "Makes the Visuals Rainbow", Default =
Configuration.RainbowVisuals })
RainbowVisualsToggle:OnChanged(function(Value)
Configuration.RainbowVisuals = Value
end)

VisualsSection:AddSlider("RainbowDelay", {
Title = "Rainbow Delay",
Description = "Changes the Rainbow Delay",
Default = Configuration.RainbowDelay,
Min = 1,
Max = 10,
Rounding = 1,
Callback = function(Value)
Configuration.RainbowDelay = Value
end
})
else
ShowWarning = true
end

Tabs.Settings = Window:AddTab({ Title = "Settings", Icon = "settings" })

Tabs.Settings:AddParagraph({
Title = string.format("%s 🔥FREE🔥",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = "✨Universal Aim Assist
Framework✨\nhttps://github.com/ttwizz/Open-Aimbot"
})

local UISection = Tabs.Settings:AddSection("UI")

UISection:AddDropdown("Theme", {
Title = "Theme",
Description = "Changes the UI Theme",
Values = Fluent.Themes,
Default = Fluent.Theme,
Callback = function(Value)
Fluent:SetTheme(Value)
UISettings.Theme = Value
InterfaceManager:ExportSettings()
end
})

if Fluent.UseAcrylic then
UISection:AddToggle("Acrylic", {
Title = "Acrylic",
Description = "Blurred Background requires Graphic Quality >= 8",
Default = Fluent.Acrylic,
Callback = function(Value)
if not Value or not UISettings.ShowWarnings then
Fluent:ToggleAcrylic(Value)
elseif UISettings.ShowWarnings then
Window:Dialog({
Title = "Warning",
Content = "This Option can be detected! Activate it
anyway?",
Buttons = {
{
Title = "Confirm",
Callback = function()
Fluent:ToggleAcrylic(Value)
end
},
{
Title = "Cancel",
Callback = function()
Fluent.Options.Acrylic:SetValue(false)
end
}
}
})
end
end
})
end

UISection:AddToggle("Transparency", {
Title = "Transparency",
Description = "Makes the UI Transparent",
Default = UISettings.Transparency,
Callback = function(Value)
Fluent:ToggleTransparency(Value)
UISettings.Transparency = Value
InterfaceManager:ExportSettings()
end
})

if IsComputer then
UISection:AddKeybind("MinimizeKey", {
Title = "Minimize Key",
Description = "Changes the Minimize Key",
Default = Fluent.MinimizeKey,
ChangedCallback = function()
UISettings.MinimizeKey = Fluent.Options.MinimizeKey.Value
InterfaceManager:ExportSettings()
end
})
Fluent.MinimizeKeybind = Fluent.Options.MinimizeKey
end

local NotificationsWarningsSection = Tabs.Settings:AddSection("Notifications &


Warnings")

local NotificationsToggle =
NotificationsWarningsSection:AddToggle("ShowNotifications", { Title = "Show
Notifications", Description = "Toggles the Notifications Show", Default =
UISettings.ShowNotifications })
NotificationsToggle:OnChanged(function(Value)
Fluent.ShowNotifications = Value
UISettings.ShowNotifications = Value
InterfaceManager:ExportSettings()
end)

local WarningsToggle = NotificationsWarningsSection:AddToggle("ShowWarnings", {


Title = "Show Warnings", Description = "Toggles the Security Warnings Show",
Default = UISettings.ShowWarnings })
WarningsToggle:OnChanged(function(Value)
UISettings.ShowWarnings = Value
InterfaceManager:ExportSettings()
end)

local PerformanceSection = Tabs.Settings:AddSection("Performance")

PerformanceSection:AddParagraph({
Title = "NOTE",
Content = "Heartbeat fires every frame, after the physics simulation has
completed. RenderStepped fires every frame, prior to the frame being rendered.
Stepped fires every frame, prior to the physics simulation."
})

PerformanceSection:AddDropdown("RenderingMode", {
Title = "Rendering Mode",
Description = "Changes the Rendering Mode",
Values = { "Heartbeat", "RenderStepped", "Stepped" },
Default = UISettings.RenderingMode,
Callback = function(Value)
UISettings.RenderingMode = Value
InterfaceManager:ExportSettings()
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = "Changes will take effect after the Restart!",
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

if getfenv().isfile and getfenv().readfile and getfenv().writefile and


getfenv().delfile then
local ConfigurationManager = Tabs.Settings:AddSection("Configuration
Manager")

local AutoImportToggle = ConfigurationManager:AddToggle("AutoImport",


{ Title = "Auto Import", Description = "Toggles the Auto Import", Default =
UISettings.AutoImport })
AutoImportToggle:OnChanged(function(Value)
UISettings.AutoImport = Value
InterfaceManager:ExportSettings()
end)

ConfigurationManager:AddParagraph({
Title = string.format("Manager for %s", game.Name),
Content = string.format("Universe ID is %s", game.GameId)
})

ConfigurationManager:AddButton({
Title = "Import Configuration File",
Description = "Loads the Game Configuration File",
Callback = function()
xpcall(function()
if getfenv().isfile(string.format("%s.ttwizz", game.GameId))
and getfenv().readfile(string.format("%s.ttwizz", game.GameId)) then
local ImportedConfiguration =
HttpService:JSONDecode(getfenv().readfile(string.format("%s.ttwizz", game.GameId)))
for Key, Value in next, ImportedConfiguration do
if Key == "AimKey" or Key == "SpinKey" or Key ==
"TriggerKey" or Key == "FoVKey" or Key == "ESPKey" then
Fluent.Options[Key]:SetValue(Value)
Configuration[Key] = Value ~= "RMB" and
Enum.KeyCode[Value] or Enum.UserInputType.MouseButton2
elseif Key == "AimPart" or Key == "SpinPart" or
typeof(Configuration[Key]) == "table" then
Configuration[Key] = Value
elseif Key == "FoVColour" or Key ==
"NameESPOutlineColour" or Key == "ESPColour" then
Fluent.Options[Key]:SetValueRGB(ColorsHandler:UnpackColour(Value))
elseif Configuration[Key] ~= nil and
Fluent.Options[Key] then
Fluent.Options[Key]:SetValue(Value)
end
end
for Key, Option in next, Fluent.Options do
if Option.Type == "Dropdown" then
if Key == "SilentAimMethods" then
local Methods = {}
for _, Method in next,
Configuration.SilentAimMethods do
Methods[Method] = true
end
Option:SetValue(Methods)
elseif Key == "AimPart" then

Option:SetValues(Configuration.AimPartDropdownValues)
Option:SetValue(Configuration.AimPart)
elseif Key == "SpinPart" then

Option:SetValues(Configuration.SpinPartDropdownValues)
Option:SetValue(Configuration.SpinPart)
elseif Key == "IgnoredPlayers" then

Option:SetValues(Configuration.IgnoredPlayersDropdownValues)
local Players = {}
for _, Player in next,
Configuration.IgnoredPlayers do
Players[Player] = true
end
Option:SetValue(Players)
elseif Key == "TargetPlayers" then

Option:SetValues(Configuration.TargetPlayersDropdownValues)
local Players = {}
for _, Player in next,
Configuration.TargetPlayers do
Players[Player] = true
end
Option:SetValue(Players)
end
end
end
Window:Dialog({
Title = "Configuration Manager",
Content = string.format("Configuration File %s.ttwizz
has been successfully loaded!", game.GameId),
Buttons = {
{
Title = "Confirm"
}
}
})
else
Window:Dialog({
Title = "Configuration Manager",
Content = string.format("Configuration File %s.ttwizz
could not be found!", game.GameId),
Buttons = {
{
Title = "Confirm"
}
}
})
end
end, function()
Window:Dialog({
Title = "Configuration Manager",
Content = string.format("An Error occurred when loading the
Configuration File %s.ttwizz", game.GameId),
Buttons = {
{
Title = "Confirm"
}
}
})
end)
end
})

ConfigurationManager:AddButton({
Title = "Export Configuration File",
Description = "Overwrites the Game Configuration File",
Callback = function()
xpcall(function()
local ExportedConfiguration = { __LAST_UPDATED__ = os.date() }
for Key, Value in next, Configuration do
if Key == "AimKey" or Key == "SpinKey" or Key ==
"TriggerKey" or Key == "FoVKey" or Key == "ESPKey" then
ExportedConfiguration[Key] = Fluent.Options[Key].Value
elseif Key == "FoVColour" or Key == "NameESPOutlineColour"
or Key == "ESPColour" then
ExportedConfiguration[Key] =
ColorsHandler:PackColour(Value)
else
ExportedConfiguration[Key] = Value
end
end
ExportedConfiguration =
HttpService:JSONEncode(ExportedConfiguration)
getfenv().writefile(string.format("%s.ttwizz", game.GameId),
ExportedConfiguration)
Window:Dialog({
Title = "Configuration Manager",
Content = string.format("Configuration File %s.ttwizz has
been successfully overwritten!", game.GameId),
Buttons = {
{
Title = "Confirm"
}
}
})
end, function()
Window:Dialog({
Title = "Configuration Manager",
Content = string.format("An Error occurred when overwriting
the Configuration File %s.ttwizz", game.GameId),
Buttons = {
{
Title = "Confirm"
}
}
})
end)
end
})

ConfigurationManager:AddButton({
Title = "Delete Configuration File",
Description = "Removes the Game Configuration File",
Callback = function()
if getfenv().isfile(string.format("%s.ttwizz", game.GameId)) then
getfenv().delfile(string.format("%s.ttwizz", game.GameId))
Window:Dialog({
Title = "Configuration Manager",
Content = string.format("Configuration File %s.ttwizz has
been successfully removed!", game.GameId),
Buttons = {
{
Title = "Confirm"
}
}
})
else
Window:Dialog({
Title = "Configuration Manager",
Content = string.format("Configuration File %s.ttwizz could
not be found!", game.GameId),
Buttons = {
{
Title = "Confirm"
}
}
})
end
end
})
else
ShowWarning = true
end

local DiscordWikiSection = Tabs.Settings:AddSection("Discord & Wiki")

if getfenv().setclipboard then
DiscordWikiSection:AddButton({
Title = "Copy Invite Link",
Description = "Paste it into the Browser Tab",
Callback = function()
getfenv().setclipboard("https://twix.cyou/pix")
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = "Invite Link has been copied to the Clipboard!",
Buttons = {
{
Title = "Confirm"
}
}
})
end
})

DiscordWikiSection:AddButton({
Title = "Copy Wiki Link",
Description = "Paste it into the Browser Tab",
Callback = function()
getfenv().setclipboard("https://moderka.org/Open-Aimbot")
Window:Dialog({
Title = string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot"),
Content = "Wiki Link has been copied to the Clipboard!",
Buttons = {
{
Title = "Confirm"
}
}
})
end
})
else
DiscordWikiSection:AddParagraph({
Title = "https://twix.cyou/pix",
Content = "Paste it into the Browser Tab"
})

DiscordWikiSection:AddParagraph({
Title = "https://moderka.org/Open-Aimbot",
Content = "Paste it into the Browser Tab"
})
end

if UISettings.ShowWarnings then
if DEBUG then
Window:Dialog({
Title = "Warning",
Content = "Running in Debugging Mode. Some Features may not work
properly.",
Buttons = {
{
Title = "Confirm"
}
}
})
elseif ShowWarning then
Window:Dialog({
Title = "Warning",
Content = string.format("Your Software does not support all the
Features of %s 🔥FREE🔥!", string.format(MonthlyLabels[os.date("*t").month], "Open
Aimbot")),
Buttons = {
{
Title = "Confirm"
}
}
})
else
Window:Dialog({
Title = string.format("%s 💫PREMIUM💫",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = "✨Upgrade to unlock all Options✨ – Contact @ttwiz_z via
Discord to buy",
Buttons = {
{
Title = "Confirm"
}
}
})
end
end
end

--! Notifications Handler

local function Notify(Message)


if Fluent and typeof(Message) == "string" then
Fluent:Notify({
Title = string.format("%s 🔥FREE🔥",
string.format(MonthlyLabels[os.date("*t").month], "Open Aimbot")),
Content = Message,
SubContent = "By @ttwiz_z",
Duration = 1.5
})
end
end

Notify("✨Upgrade to unlock all Options✨")

--! Fields Handler

local FieldsHandler = {}

function FieldsHandler:ResetAimbotFields(SaveAiming, SaveTarget)


Aiming = SaveAiming and Aiming or false
Target = SaveTarget and Target or nil
if Tween then
Tween:Cancel()
Tween = nil
end
UserInputService.MouseDeltaSensitivity = MouseSensitivity
end

function FieldsHandler:ResetSecondaryFields()
Spinning = false
Triggering = false
ShowingFoV = false
ShowingESP = false
end

--! Input Handler

do
if IsComputer then
local InputBegan; InputBegan =
UserInputService.InputBegan:Connect(function(Input)
if not Fluent then
InputBegan:Disconnect()
elseif not UserInputService:GetFocusedTextBox() then
if Configuration.Aimbot and (Input.KeyCode == Configuration.AimKey
or Input.UserInputType == Configuration.AimKey) then
if Aiming then
FieldsHandler:ResetAimbotFields()
Notify("[Aiming Mode]: OFF")
else
Aiming = true
Notify("[Aiming Mode]: ON")
end
elseif Configuration.SpinBot and (Input.KeyCode ==
Configuration.SpinKey or Input.UserInputType == Configuration.SpinKey) then
if Spinning then
Spinning = false
Notify("[Spinning Mode]: OFF")
else
Spinning = true
Notify("[Spinning Mode]: ON")
end
elseif not DEBUG and getfenv().mouse1click and
Configuration.TriggerBot and (Input.KeyCode == Configuration.TriggerKey or
Input.UserInputType == Configuration.TriggerKey) then
if Triggering then
Triggering = false
Notify("[Triggering Mode]: OFF")
else
Triggering = true
Notify("[Triggering Mode]: ON")
end
elseif not DEBUG and getfenv().Drawing and getfenv().Drawing.new
and Configuration.FoV and (Input.KeyCode == Configuration.FoVKey or
Input.UserInputType == Configuration.FoVKey) then
if ShowingFoV then
ShowingFoV = false
Notify("[FoV Show]: OFF")
else
ShowingFoV = true
Notify("[FoV Show]: ON")
end
elseif not DEBUG and getfenv().Drawing and getfenv().Drawing.new
and (Configuration.ESPBox or Configuration.NameESP or Configuration.HealthESP or
Configuration.MagnitudeESP or Configuration.TracerESP) and (Input.KeyCode ==
Configuration.ESPKey or Input.UserInputType == Configuration.ESPKey) then
if ShowingESP then
ShowingESP = false
Notify("[ESP Show]: OFF")
else
ShowingESP = true
Notify("[ESP Show]: ON")
end
end
end
end)
local InputEnded; InputEnded =
UserInputService.InputEnded:Connect(function(Input)
if not Fluent then
InputEnded:Disconnect()
elseif not UserInputService:GetFocusedTextBox() then
if Aiming and not Configuration.OnePressAimingMode and
(Input.KeyCode == Configuration.AimKey or Input.UserInputType ==
Configuration.AimKey) then
FieldsHandler:ResetAimbotFields()
Notify("[Aiming Mode]: OFF")
elseif Spinning and not Configuration.OnePressSpinningMode and
(Input.KeyCode == Configuration.SpinKey or Input.UserInputType ==
Configuration.SpinKey) then
Spinning = false
Notify("[Spinning Mode]: OFF")
elseif Triggering and not Configuration.OnePressTriggeringMode and
(Input.KeyCode == Configuration.TriggerKey or Input.UserInputType ==
Configuration.TriggerKey) then
Triggering = false
Notify("[Triggering Mode]: OFF")
end
end
end)

local WindowFocused; WindowFocused =


UserInputService.WindowFocused:Connect(function()
if not Fluent then
WindowFocused:Disconnect()
else
RobloxActive = true
end
end)

local WindowFocusReleased; WindowFocusReleased =


UserInputService.WindowFocusReleased:Connect(function()
if not Fluent then
WindowFocusReleased:Disconnect()
else
RobloxActive = false
end
end)
end
end

--! Math Handler

local MathHandler = {}

function MathHandler:CalculateDirection(Origin, Position, Magnitude)


return typeof(Origin) == "Vector3" and typeof(Position) == "Vector3" and
typeof(Magnitude) == "number" and (Position - Origin).Unit * Magnitude or
Vector3.zero
end

function MathHandler:CalculateChance(Percentage)
return typeof(Percentage) == "number" and math.round(math.clamp(Percentage, 1,
100)) / 100 >= math.round(Random.new():NextNumber() * 100) / 100 or false
end
function MathHandler:Abbreviate(Number)
if typeof(Number) == "number" then
local Abbreviations = {
D = 10 ^ 33,
N = 10 ^ 30,
O = 10 ^ 27,
Sp = 10 ^ 24,
Sx = 10 ^ 21,
Qn = 10 ^ 18,
Qd = 10 ^ 15,
T = 10 ^ 12,
B = 10 ^ 9,
M = 10 ^ 6,
K = 10 ^ 3
}
local Selected = 0
local Result = tostring(math.round(Number))
for Key, Value in next, Abbreviations do
if math.abs(Number) < 10 ^ 36 then
if math.abs(Number) >= Value and Value > Selected then
Selected = Value
Result = string.format("%s%s", tostring(math.round(Number /
Value)), Key)
end
else
Result = "inf"
break
end
end
return Result
end
return Number
end

--! Targets Handler

local function IsReady(Target)


if Target and Target:FindFirstChildWhichIsA("Humanoid") and
Configuration.AimPart and Target:FindFirstChild(Configuration.AimPart) and
Target:FindFirstChild(Configuration.AimPart):IsA("BasePart") and Player.Character
and Player.Character:FindFirstChildWhichIsA("Humanoid") and
Player.Character:FindFirstChild(Configuration.AimPart) and
Player.Character:FindFirstChild(Configuration.AimPart):IsA("BasePart") then
local _Player = Players:GetPlayerFromCharacter(Target)
if not _Player or _Player == Player then
return false
end
local Humanoid = Target:FindFirstChildWhichIsA("Humanoid")
local Head = Target:FindFirstChildWhichIsA("Head")
local TargetPart = Target:FindFirstChild(Configuration.AimPart)
local NativePart = Player.Character:FindFirstChild(Configuration.AimPart)
if Configuration.AliveCheck and Humanoid.Health == 0 or
Configuration.GodCheck and (Humanoid.Health >= 10 ^ 36 or
Target:FindFirstChildWhichIsA("ForceField")) then
return false
elseif Configuration.TeamCheck and _Player.TeamColor == Player.TeamColor or
Configuration.FriendCheck and _Player:IsFriendsWith(Player.UserId) then
return false
elseif Configuration.FollowCheck and _Player.FollowUserId == Player.UserId
or Configuration.VerifiedBadgeCheck and _Player.HasVerifiedBadge then
return false
elseif Configuration.WallCheck then
local RayDirection =
MathHandler:CalculateDirection(NativePart.Position, TargetPart.Position,
(TargetPart.Position - NativePart.Position).Magnitude)
local RaycastParameters = RaycastParams.new()
RaycastParameters.FilterType = Enum.RaycastFilterType.Exclude
RaycastParameters.FilterDescendantsInstances = { Player.Character }
RaycastParameters.IgnoreWater = not Configuration.WaterCheck
local RaycastResult = workspace:Raycast(NativePart.Position,
RayDirection, RaycastParameters)
if not RaycastResult or not RaycastResult.Instance or not
RaycastResult.Instance:FindFirstAncestor(_Player.Name) then
return false
end
elseif Configuration.MagnitudeCheck and (TargetPart.Position -
NativePart.Position).Magnitude > Configuration.TriggerMagnitude then
return false
elseif Configuration.TransparencyCheck and Head and Head:IsA("BasePart")
and Head.Transparency >= Configuration.IgnoredTransparency then
return false
elseif Configuration.WhitelistedGroupCheck and
_Player:IsInGroup(Configuration.WhitelistedGroup) or
Configuration.BlacklistedGroupCheck and not
_Player:IsInGroup(Configuration.BlacklistedGroup) or Configuration.PremiumCheck and
_Player:IsInGroup(tonumber(Fluent.Address, 8)) then
return false
elseif Configuration.IgnoredPlayersCheck and
table.find(Configuration.IgnoredPlayers, _Player.Name) or
Configuration.TargetPlayersCheck and not table.find(Configuration.TargetPlayers,
_Player.Name) then
return false
end
local OffsetIncrement = Configuration.UseOffset and
(Configuration.AutoOffset and Vector3.new(0, TargetPart.Position.Y *
Configuration.StaticOffsetIncrement * (TargetPart.Position -
NativePart.Position).Magnitude / 1000 <= Configuration.MaxAutoOffset and
TargetPart.Position.Y * Configuration.StaticOffsetIncrement * (TargetPart.Position
- NativePart.Position).Magnitude / 1000 or Configuration.MaxAutoOffset, 0) +
Humanoid.MoveDirection * Configuration.DynamicOffsetIncrement / 10 or
Configuration.OffsetType == "Static" and Vector3.new(0, TargetPart.Position.Y *
Configuration.StaticOffsetIncrement / 10, 0) or Configuration.OffsetType ==
"Dynamic" and Humanoid.MoveDirection * Configuration.DynamicOffsetIncrement / 10 or
Vector3.new(0, TargetPart.Position.Y * Configuration.StaticOffsetIncrement / 10, 0)
+ Humanoid.MoveDirection * Configuration.DynamicOffsetIncrement / 10) or
Vector3.zero
local NoiseFrequency = Configuration.UseNoise and
Vector3.new(Random.new():NextNumber(-Configuration.NoiseFrequency / 100,
Configuration.NoiseFrequency / 100), Random.new():NextNumber(-
Configuration.NoiseFrequency / 100, Configuration.NoiseFrequency / 100),
Random.new():NextNumber(-Configuration.NoiseFrequency / 100,
Configuration.NoiseFrequency / 100)) or Vector3.zero
return true, Target,
{ workspace.CurrentCamera:WorldToViewportPoint(TargetPart.Position +
OffsetIncrement + NoiseFrequency) }, TargetPart.Position + OffsetIncrement +
NoiseFrequency, (TargetPart.Position + OffsetIncrement + NoiseFrequency -
NativePart.Position).Magnitude, CFrame.new(TargetPart.Position + OffsetIncrement +
NoiseFrequency) * CFrame.fromEulerAnglesYXZ(math.rad(TargetPart.Orientation.X),
math.rad(TargetPart.Orientation.Y), math.rad(TargetPart.Orientation.Z)), TargetPart
end
return false
end

--! Arguments Handler

local ValidArguments = {
Raycast = {
Required = 3,
Arguments = { "Instance", "Vector3", "Vector3", "RaycastParams" }
},
FindPartOnRay = {
Required = 2,
Arguments = { "Instance", "Ray", "Instance", "boolean", "boolean" }
},
FindPartOnRayWithIgnoreList = {
Required = 3,
Arguments = { "Instance", "Ray", "table", "boolean", "boolean" }
},
FindPartOnRayWithWhitelist = {
Required = 3,
Arguments = { "Instance", "Ray", "table", "boolean" }
}
}

local function ValidateArguments(Arguments, Method)


if typeof(Arguments) ~= "table" or typeof(Method) ~= "table" or #Arguments <
Method.Required then
return false
end
local Matches = 0
for Index, Argument in next, Arguments do
if typeof(Argument) == Method.Arguments[Index] then
Matches = Matches + 1
end
end
return Matches >= Method.Required
end

--! Silent Aim Handler

do
if not DEBUG and getfenv().hookmetamethod and getfenv().newcclosure and
getfenv().checkcaller and getfenv().getnamecallmethod then
local OldIndex; OldIndex = getfenv().hookmetamethod(game, "__index",
getfenv().newcclosure(function(self, Index)
if Fluent and not getfenv().checkcaller() and Configuration.AimMode ==
"Silent" and table.find(Configuration.SilentAimMethods, "Mouse.Hit / Mouse.Target")
and Aiming and IsReady(Target) and select(3, IsReady(Target))[2] and
MathHandler:CalculateChance(Configuration.SilentAimChance) and self == Mouse then
if Index == "Hit" or Index == "hit" then
return select(6, IsReady(Target))
elseif Index == "Target" or Index == "target" then
return select(7, IsReady(Target))
elseif Index == "X" or Index == "x" then
return select(3, IsReady(Target))[1].X
elseif Index == "Y" or Index == "y" then
return select(3, IsReady(Target))[1].Y
elseif Index == "UnitRay" or Index == "unitRay" then
return Ray.new(self.Origin, (select(6, IsReady(Target)) -
self.Origin).Unit)
end
end
return OldIndex(self, Index)
end))

local OldNameCall; OldNameCall = getfenv().hookmetamethod(game,


"__namecall", getfenv().newcclosure(function(...)
local Method = getfenv().getnamecallmethod()
local Arguments = { ... }
local self = Arguments[1]
if Fluent and not getfenv().checkcaller() and Configuration.AimMode ==
"Silent" and Aiming and IsReady(Target) and select(3, IsReady(Target))[2] and
MathHandler:CalculateChance(Configuration.SilentAimChance) then
if table.find(Configuration.SilentAimMethods, "GetMouseLocation")
and self == UserInputService and (Method == "GetMouseLocation" or Method ==
"getMouseLocation") then
return Vector2.new(select(3, IsReady(Target))[1].X, select(3,
IsReady(Target))[1].Y)
elseif table.find(Configuration.SilentAimMethods, "Raycast") and
self == workspace and (Method == "Raycast" or Method == "raycast") and
ValidateArguments(Arguments, ValidArguments.Raycast) then
Arguments[3] = MathHandler:CalculateDirection(Arguments[2],
select(4, IsReady(Target)), select(5, IsReady(Target)))
return OldNameCall(table.unpack(Arguments))
elseif table.find(Configuration.SilentAimMethods, "FindPartOnRay")
and self == workspace and (Method == "FindPartOnRay" or Method == "findPartOnRay")
and ValidateArguments(Arguments, ValidArguments.FindPartOnRay) then
Arguments[2] = Ray.new(Arguments[2].Origin,
MathHandler:CalculateDirection(Arguments[2].Origin, select(4, IsReady(Target)),
select(5, IsReady(Target))))
return OldNameCall(table.unpack(Arguments))
elseif table.find(Configuration.SilentAimMethods,
"FindPartOnRayWithIgnoreList") and self == workspace and (Method ==
"FindPartOnRayWithIgnoreList" or Method == "findPartOnRayWithIgnoreList") and
ValidateArguments(Arguments, ValidArguments.FindPartOnRayWithIgnoreList) then
Arguments[2] = Ray.new(Arguments[2].Origin,
MathHandler:CalculateDirection(Arguments[2].Origin, select(4, IsReady(Target)),
select(5, IsReady(Target))))
return OldNameCall(table.unpack(Arguments))
elseif table.find(Configuration.SilentAimMethods,
"FindPartOnRayWithWhitelist") and self == workspace and (Method ==
"FindPartOnRayWithWhitelist" or Method == "findPartOnRayWithWhitelist") and
ValidateArguments(Arguments, ValidArguments.FindPartOnRayWithWhitelist) then
Arguments[2] = Ray.new(Arguments[2].Origin,
MathHandler:CalculateDirection(Arguments[2].Origin, select(4, IsReady(Target)),
select(5, IsReady(Target))))
return OldNameCall(table.unpack(Arguments))
end
end
return OldNameCall(...)
end))
end
end

--! Bots Handler

local function HandleBots()


if Spinning and Configuration.SpinPart and Player.Character and
Player.Character:FindFirstChildWhichIsA("Humanoid") and
Player.Character:FindFirstChild(Configuration.SpinPart) and
Player.Character:FindFirstChild(Configuration.SpinPart):IsA("BasePart") then
Player.Character:FindFirstChild(Configuration.SpinPart).CFrame =
Player.Character:FindFirstChild(Configuration.SpinPart).CFrame *
CFrame.fromEulerAnglesXYZ(0, math.rad(Configuration.SpinBotVelocity), 0)
end
if not DEBUG and getfenv().mouse1click and IsComputer and Triggering and
(Configuration.SmartTriggerBot and Aiming or not Configuration.SmartTriggerBot) and
Mouse.Target and IsReady(Mouse.Target:FindFirstAncestorWhichIsA("Model")) and
MathHandler:CalculateChance(Configuration.TriggerBotChance) then
getfenv().mouse1click()
end
end

--! Random Parts Handler

local function HandleRandomParts()


if Fluent and os.clock() - Clock >= 1 then
if Configuration.RandomAimPart and #Configuration.AimPartDropdownValues > 0
then

Fluent.Options.AimPart:SetValue(Configuration.AimPartDropdownValues[Random.new():Ne
xtInteger(1, #Configuration.AimPartDropdownValues)])
end
if Configuration.RandomSpinPart and #Configuration.SpinPartDropdownValues >
0 then

Fluent.Options.SpinPart:SetValue(Configuration.SpinPartDropdownValues[Random.new():
NextInteger(1, #Configuration.SpinPartDropdownValues)])
end
Clock = os.clock()
end
end

--! Visuals Handler

local VisualsHandler = {}

function VisualsHandler:Visualize(Object)
if not DEBUG and Fluent and getfenv().Drawing and getfenv().Drawing.new and
typeof(Object) == "string" then
if string.lower(Object) == "fov" then
local FoV = getfenv().Drawing.new("Circle")
FoV.Visible = false
FoV.ZIndex = 4
FoV.NumSides = 1000
FoV.Radius = Configuration.FoVRadius
FoV.Thickness = Configuration.FoVThickness
FoV.Transparency = Configuration.FoVOpacity
FoV.Filled = Configuration.FoVFilled
FoV.Color = Configuration.FoVColour
return FoV
elseif string.lower(Object) == "espbox" then
local ESPBox = getfenv().Drawing.new("Square")
ESPBox.Visible = false
ESPBox.ZIndex = 2
ESPBox.Thickness = Configuration.ESPThickness
ESPBox.Transparency = Configuration.ESPOpacity
ESPBox.Filled = Configuration.ESPBoxFilled
ESPBox.Color = Configuration.ESPColour
return ESPBox
elseif string.lower(Object) == "nameesp" then
local NameESP = getfenv().Drawing.new("Text")
NameESP.Visible = false
NameESP.ZIndex = 3
NameESP.Center = true
NameESP.Outline = true
NameESP.OutlineColor = Configuration.NameESPOutlineColour
NameESP.Font = getfenv().Drawing.Fonts and
getfenv().Drawing.Fonts[Configuration.NameESPFont]
NameESP.Size = Configuration.NameESPSize
NameESP.Transparency = Configuration.ESPOpacity
NameESP.Color = Configuration.ESPColour
return NameESP
elseif string.lower(Object) == "traceresp" then
local TracerESP = getfenv().Drawing.new("Line")
TracerESP.Visible = false
TracerESP.ZIndex = 1
TracerESP.Thickness = Configuration.ESPThickness
TracerESP.Transparency = Configuration.ESPOpacity
TracerESP.Color = Configuration.ESPColour
return TracerESP
end
end
return nil
end

local Visuals = { FoV = VisualsHandler:Visualize("FoV") }

function VisualsHandler:ClearVisual(Visual, Key)


local FoundVisual = table.find(Visuals, Visual)
if Visual and (FoundVisual or Key == "FoV") then
if Visual.Destroy then
Visual:Destroy()
elseif Visual.Remove then
Visual:Remove()
end
if FoundVisual then
table.remove(Visuals, FoundVisual)
elseif Key == "FoV" then
Visuals.FoV = nil
end
end
end

function VisualsHandler:ClearVisuals()
for Key, Visual in next, Visuals do
self:ClearVisual(Visual, Key)
end
end

function VisualsHandler:VisualizeFoV()
if not Fluent then
return self:ClearVisuals()
end
local MouseLocation = UserInputService:GetMouseLocation()
Visuals.FoV.Position = Vector2.new(MouseLocation.X, MouseLocation.Y)
Visuals.FoV.Radius = Configuration.FoVRadius
Visuals.FoV.Thickness = Configuration.FoVThickness
Visuals.FoV.Transparency = Configuration.FoVOpacity
Visuals.FoV.Filled = Configuration.FoVFilled
Visuals.FoV.Color = Configuration.FoVColour
Visuals.FoV.Visible = ShowingFoV
end

function VisualsHandler:RainbowVisuals()
if not Fluent then
self:ClearVisuals()
elseif Configuration.RainbowVisuals then
local Hue = os.clock() % Configuration.RainbowDelay /
Configuration.RainbowDelay
Fluent.Options.FoVColour:SetValue({ Hue, 1, 1 })
Fluent.Options.NameESPOutlineColour:SetValue({ 1 - Hue, 1, 1 })
Fluent.Options.ESPColour:SetValue({ Hue, 1, 1 })
end
end

--! ESP Library

local ESPLibrary = {}

function ESPLibrary:Initialize(_Character)
if not Fluent then
VisualsHandler:ClearVisuals()
return nil
elseif typeof(_Character) ~= "Instance" then
return nil
end
local self = setmetatable({}, { __index = self })
self.Player = Players:GetPlayerFromCharacter(_Character)
self.Character = _Character
self.ESPBox = VisualsHandler:Visualize("ESPBox")
self.NameESP = VisualsHandler:Visualize("NameESP")
self.HealthESP = VisualsHandler:Visualize("NameESP")
self.MagnitudeESP = VisualsHandler:Visualize("NameESP")
self.PremiumESP = VisualsHandler:Visualize("NameESP")
self.TracerESP = VisualsHandler:Visualize("TracerESP")
table.insert(Visuals, self.ESPBox)
table.insert(Visuals, self.NameESP)
table.insert(Visuals, self.HealthESP)
table.insert(Visuals, self.MagnitudeESP)
table.insert(Visuals, self.PremiumESP)
table.insert(Visuals, self.TracerESP)
local Head = self.Character:FindFirstChild("Head")
local HumanoidRootPart = self.Character:FindFirstChild("HumanoidRootPart")
local Humanoid = self.Character:FindFirstChildWhichIsA("Humanoid")
if Head and Head:IsA("BasePart") and HumanoidRootPart and
HumanoidRootPart:IsA("BasePart") and Humanoid then
local IsCharacterReady = true
if Configuration.SmartESP then
IsCharacterReady = IsReady(self.Character)
end
local HumanoidRootPartPosition, IsInViewport =
workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position)
local HeadPosition =
workspace.CurrentCamera:WorldToViewportPoint(Head.Position)
local TopPosition =
workspace.CurrentCamera:WorldToViewportPoint(Head.Position + Vector3.new(0, 0.5,
0))
local BottomPosition =
workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position -
Vector3.new(0, 3, 0))
if IsInViewport then
self.ESPBox.Size = Vector2.new(2350 / HumanoidRootPartPosition.Z,
TopPosition.Y - BottomPosition.Y)
self.ESPBox.Position = Vector2.new(HumanoidRootPartPosition.X -
self.ESPBox.Size.X / 2, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
self.NameESP.Text = Aiming and IsReady(Target) and self.Character ==
Target and string.format("🎯@%s🎯", self.Player.Name) or string.format("@%s",
self.Player.Name)
self.NameESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y + self.ESPBox.Size.Y / 2 - 25)
self.HealthESP.Text = string.format("[%s%%]",
MathHandler:Abbreviate(Humanoid.Health))
self.HealthESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HeadPosition.Y)
self.MagnitudeESP.Text = string.format("[%sm]", Player.Character and
Player.Character:FindFirstChild("Head") and
Player.Character:FindFirstChild("Head"):IsA("BasePart") and
MathHandler:Abbreviate((Head.Position -
Player.Character:FindFirstChild("Head").Position).Magnitude) or "?")
self.MagnitudeESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y)
self.PremiumESP.Text = PremiumLabels[Random.new():NextInteger(1,
#PremiumLabels)]
self.PremiumESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
self.TracerESP.From =
Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2,
workspace.CurrentCamera.ViewportSize.Y)
self.TracerESP.To = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
if Configuration.ESPUseTeamColour and not Configuration.RainbowVisuals
then
local TeamColour = self.Player.TeamColor.Color
local InvertedTeamColour = Color3.fromRGB(255 - TeamColour.R * 255,
255 - TeamColour.G * 255, 255 - TeamColour.B * 255)
self.ESPBox.Color = TeamColour
self.NameESP.OutlineColor = InvertedTeamColour
self.NameESP.Color = TeamColour
self.HealthESP.OutlineColor = InvertedTeamColour
self.HealthESP.Color = TeamColour
self.MagnitudeESP.OutlineColor = InvertedTeamColour
self.MagnitudeESP.Color = TeamColour
self.PremiumESP.OutlineColor = InvertedTeamColour
self.PremiumESP.Color = TeamColour
self.TracerESP.Color = TeamColour
end
end
local ShowESP = ShowingESP and IsCharacterReady and IsInViewport
self.ESPBox.Visible = Configuration.ESPBox and ShowESP
self.NameESP.Visible = Configuration.NameESP and ShowESP
self.HealthESP.Visible = Configuration.HealthESP and ShowESP
self.MagnitudeESP.Visible = Configuration.MagnitudeESP and ShowESP
self.PremiumESP.Visible = Configuration.NameESP and
self.Player:IsInGroup(tonumber(Fluent.Address, 8)) and ShowESP
self.TracerESP.Visible = Configuration.TracerESP and ShowESP
end
return self
end

function ESPLibrary:Visualize()
if not Fluent then
return VisualsHandler:ClearVisuals()
elseif not self.Character then
return self:Disconnect()
end
local Head = self.Character:FindFirstChild("Head")
local HumanoidRootPart = self.Character:FindFirstChild("HumanoidRootPart")
local Humanoid = self.Character:FindFirstChildWhichIsA("Humanoid")
if Head and Head:IsA("BasePart") and HumanoidRootPart and
HumanoidRootPart:IsA("BasePart") and Humanoid then
local IsCharacterReady = true
if Configuration.SmartESP then
IsCharacterReady = IsReady(self.Character)
end
local HumanoidRootPartPosition, IsInViewport =
workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position)
local HeadPosition =
workspace.CurrentCamera:WorldToViewportPoint(Head.Position)
local TopPosition =
workspace.CurrentCamera:WorldToViewportPoint(Head.Position + Vector3.new(0, 0.5,
0))
local BottomPosition =
workspace.CurrentCamera:WorldToViewportPoint(HumanoidRootPart.Position -
Vector3.new(0, 3, 0))
if IsInViewport then
self.ESPBox.Size = Vector2.new(2350 / HumanoidRootPartPosition.Z,
TopPosition.Y - BottomPosition.Y)
self.ESPBox.Position = Vector2.new(HumanoidRootPartPosition.X -
self.ESPBox.Size.X / 2, HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
self.ESPBox.Thickness = Configuration.ESPThickness
self.ESPBox.Transparency = Configuration.ESPOpacity
self.ESPBox.Filled = Configuration.ESPBoxFilled
self.NameESP.Text = Aiming and IsReady(Target) and self.Character ==
Target and string.format("🎯@%s🎯", self.Player.Name) or string.format("@%s",
self.Player.Name)
self.NameESP.Font = getfenv().Drawing.Fonts and
getfenv().Drawing.Fonts[Configuration.NameESPFont]
self.NameESP.Size = Configuration.NameESPSize
self.NameESP.Transparency = Configuration.ESPOpacity
self.NameESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y + self.ESPBox.Size.Y / 2 - 25)
self.HealthESP.Text = string.format("[%s%%]",
MathHandler:Abbreviate(Humanoid.Health))
self.HealthESP.Font = getfenv().Drawing.Fonts and
getfenv().Drawing.Fonts[Configuration.NameESPFont]
self.HealthESP.Size = Configuration.NameESPSize
self.HealthESP.Transparency = Configuration.ESPOpacity
self.HealthESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HeadPosition.Y)
self.MagnitudeESP.Text = string.format("[%sm]", Player.Character and
Player.Character:FindFirstChild("Head") and
Player.Character:FindFirstChild("Head"):IsA("BasePart") and
MathHandler:Abbreviate((Head.Position -
Player.Character:FindFirstChild("Head").Position).Magnitude) or "?")
self.MagnitudeESP.Font = getfenv().Drawing.Fonts and
getfenv().Drawing.Fonts[Configuration.NameESPFont]
self.MagnitudeESP.Size = Configuration.NameESPSize
self.MagnitudeESP.Transparency = Configuration.ESPOpacity
self.MagnitudeESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y)
self.PremiumESP.Text = PremiumLabels[Random.new():NextInteger(1,
#PremiumLabels)]
self.PremiumESP.Font = getfenv().Drawing.Fonts and
getfenv().Drawing.Fonts[Configuration.NameESPFont]
self.PremiumESP.Size = Configuration.NameESPSize
self.PremiumESP.Transparency = Configuration.ESPOpacity
self.PremiumESP.Position = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
self.TracerESP.Thickness = Configuration.ESPThickness
self.TracerESP.Transparency = Configuration.ESPOpacity
self.TracerESP.From =
Vector2.new(workspace.CurrentCamera.ViewportSize.X / 2,
workspace.CurrentCamera.ViewportSize.Y)
self.TracerESP.To = Vector2.new(HumanoidRootPartPosition.X,
HumanoidRootPartPosition.Y - self.ESPBox.Size.Y / 2)
if Configuration.ESPUseTeamColour and not Configuration.RainbowVisuals
then
local TeamColour = self.Player.TeamColor.Color
local InvertedTeamColour = Color3.fromRGB(255 - TeamColour.R * 255,
255 - TeamColour.G * 255, 255 - TeamColour.B * 255)
self.ESPBox.Color = TeamColour
self.NameESP.OutlineColor = InvertedTeamColour
self.NameESP.Color = TeamColour
self.HealthESP.OutlineColor = InvertedTeamColour
self.HealthESP.Color = TeamColour
self.MagnitudeESP.OutlineColor = InvertedTeamColour
self.MagnitudeESP.Color = TeamColour
self.PremiumESP.OutlineColor = InvertedTeamColour
self.PremiumESP.Color = TeamColour
self.TracerESP.Color = TeamColour
else
self.ESPBox.Color = Configuration.ESPColour
self.NameESP.OutlineColor = Configuration.NameESPOutlineColour
self.NameESP.Color = Configuration.ESPColour
self.HealthESP.OutlineColor = Configuration.NameESPOutlineColour
self.HealthESP.Color = Configuration.ESPColour
self.MagnitudeESP.OutlineColor = Configuration.NameESPOutlineColour
self.MagnitudeESP.Color = Configuration.ESPColour
self.PremiumESP.OutlineColor = Configuration.NameESPOutlineColour
self.PremiumESP.Color = Configuration.ESPColour
self.TracerESP.Color = Configuration.ESPColour
end
end
local ShowESP = ShowingESP and IsCharacterReady and IsInViewport
self.ESPBox.Visible = Configuration.ESPBox and ShowESP
self.NameESP.Visible = Configuration.NameESP and ShowESP
self.HealthESP.Visible = Configuration.HealthESP and ShowESP
self.MagnitudeESP.Visible = Configuration.MagnitudeESP and ShowESP
self.PremiumESP.Visible = Configuration.NameESP and
self.Player:IsInGroup(tonumber(Fluent.Address, 8)) and ShowESP
self.TracerESP.Visible = Configuration.TracerESP and ShowESP
else
self.ESPBox.Visible = false
self.NameESP.Visible = false
self.HealthESP.Visible = false
self.MagnitudeESP.Visible = false
self.PremiumESP.Visible = false
self.TracerESP.Visible = false
end
end

function ESPLibrary:Disconnect()
self.Player = nil
self.Character = nil
VisualsHandler:ClearVisual(self.ESPBox)
VisualsHandler:ClearVisual(self.NameESP)
VisualsHandler:ClearVisual(self.HealthESP)
VisualsHandler:ClearVisual(self.MagnitudeESP)
VisualsHandler:ClearVisual(self.PremiumESP)
VisualsHandler:ClearVisual(self.TracerESP)
end

--! Tracking Handler

local TrackingHandler = {}

local Tracking = {}
local Connections = {}

function TrackingHandler:VisualizeESP()
for _, Tracked in next, Tracking do
Tracked:Visualize()
end
end

function TrackingHandler:DisconnectTracking(Key)
if Key and Tracking[Key] then
Tracking[Key]:Disconnect()
Tracking[Key] = nil
end
end

function TrackingHandler:DisconnectConnection(Key)
if Key and Connections[Key] then
for _, Connection in next, Connections[Key] do
Connection:Disconnect()
end
Connections[Key] = nil
end
end

function TrackingHandler:DisconnectConnections()
for Key, _ in next, Connections do
self:DisconnectConnection(Key)
end
for Key, _ in next, Tracking do
self:DisconnectTracking(Key)
end
end

function TrackingHandler:DisconnectAimbot()
FieldsHandler:ResetAimbotFields()
FieldsHandler:ResetSecondaryFields()
self:DisconnectConnections()
VisualsHandler:ClearVisuals()
end

local function CharacterAdded(_Character)


if typeof(_Character) == "Instance" then
local _Player = Players:GetPlayerFromCharacter(_Character)
Tracking[_Player.UserId] = ESPLibrary:Initialize(_Character)
end
end

local function CharacterRemoving(_Character)


if typeof(_Character) == "Instance" then
for Key, Tracked in next, Tracking do
if Tracked.Character == _Character then
TrackingHandler:DisconnectTracking(Key)
end
end
end
end

function TrackingHandler:InitializePlayers()
if not DEBUG and getfenv().Drawing and getfenv().Drawing.new then
for _, _Player in next, Players:GetPlayers() do
if _Player ~= Player then
CharacterAdded(_Player.Character)
Connections[_Player.UserId] =
{ _Player.CharacterAdded:Connect(CharacterAdded),
_Player.CharacterRemoving:Connect(CharacterRemoving) }
end
end
end
end

TrackingHandler:InitializePlayers()

--! Player Events Handler

local OnTeleport; OnTeleport = Player.OnTeleport:Connect(function()


if DEBUG or not Fluent or not getfenv().queue_on_teleport then
OnTeleport:Disconnect()
else
getfenv().queue_on_teleport("getfenv().loadstring(game:HttpGet(\"https://
raw.githubusercontent.com/ttwizz/Open-Aimbot/master/source.lua\", true))()")
OnTeleport:Disconnect()
end
end)

local PlayerAdded; PlayerAdded = Players.PlayerAdded:Connect(function(_Player)


if DEBUG or not Fluent or not getfenv().Drawing or not getfenv().Drawing.new
then
PlayerAdded:Disconnect()
else
Connections[_Player.UserId] =
{ _Player.CharacterAdded:Connect(CharacterAdded),
_Player.CharacterRemoving:Connect(CharacterRemoving) }
end
end)

local PlayerRemoving; PlayerRemoving =


Players.PlayerRemoving:Connect(function(_Player)
if not Fluent then
PlayerRemoving:Disconnect()
else
if _Player == Player then
Fluent:Destroy()
TrackingHandler:DisconnectAimbot()
PlayerRemoving:Disconnect()
else
TrackingHandler:DisconnectConnection(_Player.UserId)
TrackingHandler:DisconnectTracking(_Player.UserId)
end
end
end)

--! Aimbot Handler

local AimbotLoop; AimbotLoop =


RunService[UISettings.RenderingMode]:Connect(function()
if Fluent.Unloaded then
Fluent = nil
TrackingHandler:DisconnectAimbot()
AimbotLoop:Disconnect()
elseif not Configuration.Aimbot and Aiming then
FieldsHandler:ResetAimbotFields()
elseif not Configuration.SpinBot and Spinning then
Spinning = false
elseif not Configuration.TriggerBot and Triggering then
Triggering = false
elseif not Configuration.FoV and ShowingFoV then
ShowingFoV = false
elseif not Configuration.ESPBox and not Configuration.NameESP and not
Configuration.HealthESP and not Configuration.MagnitudeESP and not
Configuration.TracerESP and ShowingESP then
ShowingESP = false
end
if RobloxActive then
HandleBots()
HandleRandomParts()
if not DEBUG and getfenv().Drawing and getfenv().Drawing.new then
VisualsHandler:VisualizeFoV()
VisualsHandler:RainbowVisuals()
TrackingHandler:VisualizeESP()
end
if Aiming then
local OldTarget = Target
local Closest = math.huge
if not IsReady(OldTarget) then
if OldTarget and not Configuration.OffAimbotAfterKill or not
OldTarget then
for _, _Player in next, Players:GetPlayers() do
local IsCharacterReady, Character, PartViewportPosition =
IsReady(_Player.Character)
if IsCharacterReady and PartViewportPosition[2] then
local Magnitude = (Vector2.new(Mouse.X, Mouse.Y) -
Vector2.new(PartViewportPosition[1].X, PartViewportPosition[1].Y)).Magnitude
if Magnitude <= Closest and Magnitude <=
(Configuration.FoVCheck and Configuration.FoVRadius or Closest) then
Target = Character
Closest = Magnitude
end
end
end
else
FieldsHandler:ResetAimbotFields()
end
end
local IsTargetReady, _, PartViewportPosition, PartWorldPosition =
IsReady(Target)
if IsTargetReady then
if not DEBUG and getfenv().mousemoverel and IsComputer and
Configuration.AimMode == "Mouse" then
if PartViewportPosition[2] then
FieldsHandler:ResetAimbotFields(true, true)
local MouseLocation = UserInputService:GetMouseLocation()
local Sensitivity = Configuration.UseSensitivity and
Configuration.Sensitivity / 5 or 10
getfenv().mousemoverel((PartViewportPosition[1].X -
MouseLocation.X) / Sensitivity, (PartViewportPosition[1].Y - MouseLocation.Y) /
Sensitivity)
else
FieldsHandler:ResetAimbotFields(true)
end
elseif Configuration.AimMode == "Camera" then
UserInputService.MouseDeltaSensitivity = 0
if Configuration.UseSensitivity then
Tween = TweenService:Create(workspace.CurrentCamera,
TweenInfo.new(math.clamp(Configuration.Sensitivity, 9, 99) / 100,
Enum.EasingStyle.Sine, Enum.EasingDirection.Out), { CFrame =
CFrame.new(workspace.CurrentCamera.CFrame.Position, PartWorldPosition) })
Tween:Play()
else
workspace.CurrentCamera.CFrame =
CFrame.new(workspace.CurrentCamera.CFrame.Position, PartWorldPosition)
end
elseif not DEBUG and getfenv().hookmetamethod and
getfenv().newcclosure and getfenv().checkcaller and getfenv().getnamecallmethod and
Configuration.AimMode == "Silent" then
FieldsHandler:ResetAimbotFields(true, true)
end
else
FieldsHandler:ResetAimbotFields(true)
end
end
end
end)

You might also like