
KeylessUniversal

local Players = game:GetService("Players")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local GuiService = game:GetService("GuiService")
local GameName = "Arsenal"
if game.PlaceId ~= 286090429 then
print("This ain't Arsenal Little Fish")
return
end
if _G.AimBotScript then
_G.AimBotScript:Destroy()
end
local DropLib = loadstring(game:HttpGet("https://gitlab.com/0x45.xyz/droplib/-/raw/master/drop-minified.lua"))()
if not DropLib then
warn("Failed to load DropLib")
return
end
local gui_config = {
PrimaryColor = Color3.fromRGB(30, 30, 30),
SecondaryColor = Color3.fromRGB(45, 45, 45),
AccentColor = Color3.fromRGB(255, 100, 100),
TextColor = Color3.new(1, 1, 1),
Font = Enum.Font.Gotham,
TextSize = 14
}
local gui = DropLib:Init(gui_config, game.CoreGui)
local MainCategory = gui:CreateCategory("Arsenal Script - DropLib", UDim2.new(0, 100, 0, 100))
local AimbotSection = MainCategory:CreateSection("Aimbot")
local SilentAimSection = MainCategory:CreateSection("Silent Aim")
local VisualsSection = MainCategory:CreateSection("Visuals")
local DetectionSection = MainCategory:CreateSection("Script Detection")
local SettingsSection = MainCategory:CreateSection("Settings")
local AimbotEnabled = true
local FOVRadius = 100
local SmoothingAmount = 0.1
local SilentEnabled = false
local HitboxExpansion = 13
local HitboxAlpha = 10
local ShowFOV = true
local ShowESP = true
local esp_color = Color3.new(0, 1, 0)
local ShowOtherScriptUsers = true
local my_script_id = "ArsenalScript_" .. math.random(10000, 99999)
local detected_users = {}
local user_list_display = nil
if not Drawing then
warn("Drawing API not available")
return
end
local fov_circle = Drawing.new("Circle")
fov_circle.Visible = ShowFOV
fov_circle.Radius = FOVRadius
fov_circle.Color = Color3.new(1, 1, 1)
fov_circle.Thickness = 2
fov_circle.Filled = false
fov_circle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local ESP_drawings = {}
local function announce_presence()
if not _G.ArsenalScriptUsers then
_G.ArsenalScriptUsers = {}
end
_G.ArsenalScriptUsers[LocalPlayer.Name] = {
identifier = my_script_id,
timestamp = tick(),
player = LocalPlayer
}
end
local function refresh_detected_users()
if not _G.ArsenalScriptUsers then return end
detected_users = {}
local current_time = tick()
for player_name, user_data in pairs(_G.ArsenalScriptUsers) do
if current_time - user_data.timestamp > 10 then
_G.ArsenalScriptUsers[player_name] = nil
else
table.insert(detected_users, player_name)
end
end
if user_list_display then
if #detected_users > 0 then
user_list_display.Text = "Script Users (" .. #detected_users .. "):\n" .. table.concat(detected_users, "\n")
else
user_list_display.Text = "No other script users detected"
end
user_list_display.Visible = ShowOtherScriptUsers
end
end
local function setup_user_list_display()
if user_list_display then return end
user_list_display = Drawing.new("Text")
user_list_display.Text = "Scanning for script users..."
user_list_display.Size = 14
user_list_display.Color = Color3.new(1, 1, 1)
user_list_display.Position = Vector2.new(10, 100)
user_list_display.Outline = true
user_list_display.OutlineColor = Color3.new(0, 0, 0)
user_list_display.Visible = ShowOtherScriptUsers
end
local function find_players_service()
for _, service in pairs(game:GetChildren()) do
if service.ClassName == "Players" then
return service.Name
end
end
end
local players_service = game[find_players_service()]
local local_player = players_service.LocalPlayer
local silent_aim_connections = {}
local function start_silent_aim()
if silent_aim_connections.transparency_loop then
silent_aim_connections.transparency_loop:Disconnect()
end
if silent_aim_connections.hitbox_loop then
silent_aim_connections.hitbox_loop:Disconnect()
end
silent_aim_connections.transparency_loop = coroutine.wrap(function()
while SilentEnabled do
for _, player in pairs(players_service:GetPlayers()) do
if player ~= local_player and player.Character then
for _, part_name in pairs({"RightUpperLeg", "LeftUpperLeg", "HeadHB", "HumanoidRootPart"}) do
local part = player.Character:FindFirstChild(part_name)
if part then
part.Transparency = HitboxAlpha
end
end
end
end
wait(1)
end
end)()
silent_aim_connections.hitbox_loop = coroutine.wrap(function()
while SilentEnabled do
for _, player in pairs(players_service:GetPlayers()) do
if player ~= local_player and player.Character then
for _, part_name in pairs({"RightUpperLeg", "LeftUpperLeg", "HeadHB", "HumanoidRootPart"}) do
local part = player.Character:FindFirstChild(part_name)
if part then
part.CanCollide = false
part.Size = Vector3.new(HitboxExpansion, HitboxExpansion, HitboxExpansion)
end
end
end
end
wait(1)
end
end)()
end
local function stop_silent_aim()
if silent_aim_connections.transparency_loop then
silent_aim_connections.transparency_loop:Disconnect()
silent_aim_connections.transparency_loop = nil
end
if silent_aim_connections.hitbox_loop then
silent_aim_connections.hitbox_loop:Disconnect()
silent_aim_connections.hitbox_loop = nil
end
for _, player in pairs(players_service:GetPlayers()) do
if player ~= local_player and player.Character then
for _, part_name in pairs({"RightUpperLeg", "LeftUpperLeg", "HeadHB", "HumanoidRootPart"}) do
local part = player.Character:FindFirstChild(part_name)
if part then
part.Transparency = 0
part.CanCollide = true
if part_name == "HumanoidRootPart" then
part.Size = Vector3.new(2, 2, 1)
elseif part_name:find("Leg") then
part.Size = Vector3.new(1, 2, 1)
elseif part_name == "HeadHB" then
part.Size = Vector3.new(2, 1, 1)
end
end
end
end
end
end
local function create_esp_for_player(player)
if ESP_drawings[player] then return end
local drawing_objects = {}
drawing_objects.Spine = Drawing.new("Line")
drawing_objects.LeftUpperArm = Drawing.new("Line")
drawing_objects.LeftLowerArm = Drawing.new("Line")
drawing_objects.RightUpperArm = Drawing.new("Line")
drawing_objects.RightLowerArm = Drawing.new("Line")
drawing_objects.LeftUpperLeg = Drawing.new("Line")
drawing_objects.LeftLowerLeg = Drawing.new("Line")
drawing_objects.RightUpperLeg = Drawing.new("Line")
drawing_objects.RightLowerLeg = Drawing.new("Line")
drawing_objects.DistanceText = Drawing.new("Text")
drawing_objects.DistanceText.Text = "0m"
drawing_objects.DistanceText.Size = 16
drawing_objects.DistanceText.Color = Color3.new(1, 1, 1)
drawing_objects.DistanceText.Center = true
drawing_objects.DistanceText.Outline = true
drawing_objects.DistanceText.OutlineColor = Color3.new(0, 0, 0)
drawing_objects.DistanceText.Visible = false
for name, line_obj in pairs(drawing_objects) do
if name:find("Arm") or name:find("Leg") or name == "Spine" then
line_obj.Visible = false
line_obj.Color = esp_color
line_obj.Thickness = 2
end
end
ESP_drawings[player] = drawing_objects
end
local function remove_esp_for_player(player)
if not ESP_drawings[player] then return end
for _, drawing_obj in pairs(ESP_drawings[player]) do
drawing_obj:Remove()
end
ESP_drawings[player] = nil
end
local function update_esp_displays()
for player, drawing_objects in pairs(ESP_drawings) do
if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Head") then
if player.Team ~= LocalPlayer.Team then
local character = player.Character
local head = character:FindFirstChild("Head")
local torso = character:FindFirstChild("Torso") or character:FindFirstChild("UpperTorso")
local left_upper_arm = character:FindFirstChild("Left Arm") or character:FindFirstChild("LeftUpperArm")
local left_lower_arm = character:FindFirstChild("Left Arm") or character:FindFirstChild("LeftLowerArm")
local right_upper_arm = character:FindFirstChild("Right Arm") or character:FindFirstChild("RightUpperArm")
local right_lower_arm = character:FindFirstChild("Right Arm") or character:FindFirstChild("RightLowerArm")
local left_upper_leg = character:FindFirstChild("Left Leg") or character:FindFirstChild("LeftUpperLeg")
local left_lower_leg = character:FindFirstChild("Left Leg") or character:FindFirstChild("LeftLowerLeg")
local right_upper_leg = character:FindFirstChild("Right Leg") or character:FindFirstChild("RightUpperLeg")
local right_lower_leg = character:FindFirstChild("Right Leg") or character:FindFirstChild("RightLowerLeg")
if head and torso then
local head_pos, head_on_screen = Camera:WorldToViewportPoint(head.Position)
local torso_pos, torso_on_screen = Camera:WorldToViewportPoint(torso.Position)
if head_on_screen and torso_on_screen then
drawing_objects.Spine.From = Vector2.new(head_pos.X, head_pos.Y)
drawing_objects.Spine.To = Vector2.new(torso_pos.X, torso_pos.Y)
drawing_objects.Spine.Visible = ShowESP
if left_upper_arm then
local left_upper_pos, left_upper_visible = Camera:WorldToViewportPoint(left_upper_arm.Position)
if left_upper_visible then
drawing_objects.LeftUpperArm.From = Vector2.new(torso_pos.X, torso_pos.Y)
drawing_objects.LeftUpperArm.To = Vector2.new(left_upper_pos.X, left_upper_pos.Y)
drawing_objects.LeftUpperArm.Visible = ShowESP
if left_lower_arm and left_lower_arm ~= left_upper_arm then
local left_lower_pos, left_lower_visible = Camera:WorldToViewportPoint(left_lower_arm.Position)
if left_lower_visible then
drawing_objects.LeftLowerArm.From = Vector2.new(left_upper_pos.X, left_upper_pos.Y)
drawing_objects.LeftLowerArm.To = Vector2.new(left_lower_pos.X, left_lower_pos.Y)
drawing_objects.LeftLowerArm.Visible = ShowESP
else
drawing_objects.LeftLowerArm.Visible = false
end
else
drawing_objects.LeftLowerArm.Visible = false
end
else
drawing_objects.LeftUpperArm.Visible = false
drawing_objects.LeftLowerArm.Visible = false
end
else
drawing_objects.LeftUpperArm.Visible = false
drawing_objects.LeftLowerArm.Visible = false
end
if right_upper_arm then
local right_upper_pos, right_upper_visible = Camera:WorldToViewportPoint(right_upper_arm.Position)
if right_upper_visible then
drawing_objects.RightUpperArm.From = Vector2.new(torso_pos.X, torso_pos.Y)
drawing_objects.RightUpperArm.To = Vector2.new(right_upper_pos.X, right_upper_pos.Y)
drawing_objects.RightUpperArm.Visible = ShowESP
if right_lower_arm and right_lower_arm ~= right_upper_arm then
local right_lower_pos, right_lower_visible = Camera:WorldToViewportPoint(right_lower_arm.Position)
if right_lower_visible then
drawing_objects.RightLowerArm.From = Vector2.new(right_upper_pos.X, right_upper_pos.Y)
drawing_objects.RightLowerArm.To = Vector2.new(right_lower_pos.X, right_lower_pos.Y)
drawing_objects.RightLowerArm.Visible = ShowESP
else
drawing_objects.RightLowerArm.Visible = false
end
else
drawing_objects.RightLowerArm.Visible = false
end
else
drawing_objects.RightUpperArm.Visible = false
drawing_objects.RightLowerArm.Visible = false
end
else
drawing_objects.RightUpperArm.Visible = false
drawing_objects.RightLowerArm.Visible = false
end
if left_upper_leg then
local left_leg_upper_pos, left_leg_upper_visible = Camera:WorldToViewportPoint(left_upper_leg.Position)
if left_leg_upper_visible then
drawing_objects.LeftUpperLeg.From = Vector2.new(torso_pos.X, torso_pos.Y)
drawing_objects.LeftUpperLeg.To = Vector2.new(left_leg_upper_pos.X, left_leg_upper_pos.Y)
drawing_objects.LeftUpperLeg.Visible = ShowESP
if left_lower_leg and left_lower_leg ~= left_upper_leg then
local left_leg_lower_pos, left_leg_lower_visible = Camera:WorldToViewportPoint(left_lower_leg.Position)
if left_leg_lower_visible then
drawing_objects.LeftLowerLeg.From = Vector2.new(left_leg_upper_pos.X, left_leg_upper_pos.Y)
drawing_objects.LeftLowerLeg.To = Vector2.new(left_leg_lower_pos.X, left_leg_lower_pos.Y)
drawing_objects.LeftLowerLeg.Visible = ShowESP
else
drawing_objects.LeftLowerLeg.Visible = false
end
else
drawing_objects.LeftLowerLeg.Visible = false
end
else
drawing_objects.LeftUpperLeg.Visible = false
drawing_objects.LeftLowerLeg.Visible = false
end
else
drawing_objects.LeftUpperLeg.Visible = false
drawing_objects.LeftLowerLeg.Visible = false
end
if right_upper_leg then
local right_leg_upper_pos, right_leg_upper_visible = Camera:WorldToViewportPoint(right_upper_leg.Position)
if right_leg_upper_visible then
drawing_objects.RightUpperLeg.From = Vector2.new(torso_pos.X, torso_pos.Y)
drawing_objects.RightUpperLeg.To = Vector2.new(right_leg_upper_pos.X, right_leg_upper_pos.Y)
drawing_objects.RightUpperLeg.Visible = ShowESP
if right_lower_leg and right_lower_leg ~= right_upper_leg then
local right_leg_lower_pos, right_leg_lower_visible = Camera:WorldToViewportPoint(right_lower_leg.Position)
if right_leg_lower_visible then
drawing_objects.RightLowerLeg.From = Vector2.new(right_leg_upper_pos.X, right_leg_upper_pos.Y)
drawing_objects.RightLowerLeg.To = Vector2.new(right_leg_lower_pos.X, right_leg_lower_pos.Y)
drawing_objects.RightLowerLeg.Visible = ShowESP
else
drawing_objects.RightLowerLeg.Visible = false
end
else
drawing_objects.RightLowerLeg.Visible = false
end
else
drawing_objects.RightUpperLeg.Visible = false
drawing_objects.RightLowerLeg.Visible = false
end
else
drawing_objects.RightUpperLeg.Visible = false
drawing_objects.RightLowerLeg.Visible = false
end
local distance = math.floor((head.Position - Camera.CFrame.Position).Magnitude)
drawing_objects.DistanceText.Text = distance .. "m"
drawing_objects.DistanceText.Position = Vector2.new(head_pos.X, head_pos.Y - 25)
drawing_objects.DistanceText.Visible = ShowESP
else
for _, element in pairs(drawing_objects) do
element.Visible = false
end
end
else
for _, element in pairs(drawing_objects) do
element.Visible = false
end
end
else
for _, element in pairs(drawing_objects) do
element.Visible = false
end
end
else
for _, element in pairs(drawing_objects) do
element.Visible = false
end
end
end
end
local function check_player_visibility(player)
if not player.Character then return false end
local target_head = player.Character:FindFirstChild("Head")
if not target_head then return false end
local camera_position = Camera.CFrame.Position
local direction_to_target = (target_head.Position - camera_position).Unit
local raycast = Ray.new(camera_position, direction_to_target * 1000)
local hit_part, hit_position = workspace:FindPartOnRayWithIgnoreList(raycast, {LocalPlayer.Character, Camera})
if hit_part and hit_part:IsDescendantOf(player.Character) then
return true
end
return false
end
local function check_fov_circle(player)
if not player.Character then return false end
local target_head = player.Character:FindFirstChild("Head")
if not target_head then return false end
local screen_point, is_on_screen = Camera:WorldToViewportPoint(target_head.Position)
if not is_on_screen then return false end
local circle_center = fov_circle.Position
local distance_from_center = (Vector2.new(screen_point.X, screen_point.Y) - circle_center).Magnitude
return distance_from_center <= fov_circle.Radius
end
local function get_closest_valid_target()
local closest_target = nil
local shortest_distance = math.huge
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer and player.Character and player.Character:FindFirstChild("Head") then
if player.Team ~= LocalPlayer.Team then
if check_player_visibility(player) and check_fov_circle(player) then
local screen_pos = Camera:WorldToViewportPoint(player.Character.Head.Position)
local circle_center = fov_circle.Position
local distance_from_center = (Vector2.new(screen_pos.X, screen_pos.Y) - circle_center).Magnitude
if distance_from_center < shortest_distance then
closest_target = player
shortest_distance = distance_from_center
end
end
end
end
end
return closest_target
end
local function run_aimbot()
if not AimbotEnabled then return end
local target_player = get_closest_valid_target()
if target_player and target_player.Character and target_player.Character:FindFirstChild("Head") then
local target_part = target_player.Character.Head
local current_look_direction = Camera.CFrame.LookVector
local target_look_direction = (target_part.Position - Camera.CFrame.Position).Unit
local smoothed_direction = (current_look_direction + (target_look_direction - current_look_direction) * SmoothingAmount).Unit
Camera.CFrame = CFrame.new(Camera.CFrame.Position, Camera.CFrame.Position + smoothed_direction)
end
end
AimbotSection:CreateSwitch("Enable Aimbot", function(enabled)
AimbotEnabled = enabled
print("Aimbot " .. (enabled and "Enabled" or "Disabled"))
end, AimbotEnabled)
SilentAimSection:CreateSwitch("Enable Silent Aim", function(enabled)
SilentEnabled = enabled
if enabled then
start_silent_aim()
print("Silent aim started - hitboxes expanded")
else
stop_silent_aim()
print("Silent aim stopped - hitboxes reset")
end
end, SilentEnabled)
VisualsSection:CreateSwitch("Show FOV Circle", function(enabled)
ShowFOV = enabled
fov_circle.Visible = enabled
print("FOV Circle " .. (enabled and "shown" or "hidden"))
end, ShowFOV)
VisualsSection:CreateSwitch("Show ESP Skeleton", function(enabled)
ShowESP = enabled
print("ESP Skeleton " .. (enabled and "enabled" or "disabled"))
end, ShowESP)
DetectionSection:CreateSwitch("Show Script Users", function(enabled)
ShowOtherScriptUsers = enabled
if user_list_display then
user_list_display.Visible = enabled
end
print("Script User Detection " .. (enabled and "enabled" or "disabled"))
end, ShowOtherScriptUsers)
DetectionSection:CreateButton("Refresh User List", function()
refresh_detected_users()
print("User list refreshed - Found " .. #detected_users .. " script users")
end)
SettingsSection:CreateSlider("FOV Size", function(new_value)
FOVRadius = new_value
fov_circle.Radius = new_value
print("FOV set to: " .. new_value)
end, 50, 300, 1, false, FOVRadius)
SettingsSection:CreateSlider("Smoothing", function(new_value)
SmoothingAmount = new_value / 100
print("Smoothing set to: " .. (new_value / 100))
end, 30, 100, 1, false, SmoothingAmount * 100)
SettingsSection:CreateColorPicker("ESP Color", function(new_color)
esp_color = new_color
for _, drawing_objects in pairs(ESP_drawings) do
if drawing_objects.Spine then drawing_objects.Spine.Color = new_color end
if drawing_objects.LeftUpperArm then drawing_objects.LeftUpperArm.Color = new_color end
if drawing_objects.LeftLowerArm then drawing_objects.LeftLowerArm.Color = new_color end
if drawing_objects.RightUpperArm then drawing_objects.RightUpperArm.Color = new_color end
if drawing_objects.RightLowerArm then drawing_objects.RightLowerArm.Color = new_color end
if drawing_objects.LeftUpperLeg then drawing_objects.LeftUpperLeg.Color = new_color end
if drawing_objects.LeftLowerLeg then drawing_objects.LeftLowerLeg.Color = new_color end
if drawing_objects.RightUpperLeg then drawing_objects.RightUpperLeg.Color = new_color end
if drawing_objects.RightLowerLeg then drawing_objects.RightLowerLeg.Color = new_color end
end
print("ESP Color changed to: " .. tostring(new_color))
end, false, esp_color)
SettingsSection:CreateButton("Reset Settings", function()
AimbotEnabled = true
SilentEnabled = false
FOVRadius = 100
SmoothingAmount = 0.1
ShowFOV = true
ShowESP = true
esp_color = Color3.new(0, 1, 0)
HitboxExpansion = 13
HitboxAlpha = 10
fov_circle.Radius = FOVRadius
fov_circle.Visible = ShowFOV
stop_silent_aim()
for _, drawing_objects in pairs(ESP_drawings) do
for _, line in pairs(drawing_objects) do
line.Color = esp_color
end
end
print("All settings reset to default values")
end)
setup_user_list_display()
announce_presence()
local update_success, update_error = pcall(function()
RunService.RenderStepped:Connect(function()
fov_circle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
update_esp_displays()
end)
RunService.RenderStepped:Connect(run_aimbot)
spawn(function()
while _G.AimBotScript do
announce_presence()
refresh_detected_users()
wait(2)
end
end)
end)
if not update_success then
warn("Error setting up update loops: " .. update_error)
end
for _, player in pairs(Players:GetPlayers()) do
if player ~= LocalPlayer then
create_esp_for_player(player)
end
end
Players.PlayerAdded:Connect(function(player)
create_esp_for_player(player)
end)
Players.PlayerRemoving:Connect(function(player)
remove_esp_for_player(player)
end)
_G.AimBotScript = {
Destroy = function()
print("Cleaning up Arsenal script...")
stop_silent_aim()
if fov_circle then
fov_circle:Remove()
end
if user_list_display then
user_list_display:Remove()
end
if _G.ArsenalScriptUsers and _G.ArsenalScriptUsers[LocalPlayer.Name] then
_G.ArsenalScriptUsers[LocalPlayer.Name] = nil
end
for player, drawing_objects in pairs(ESP_drawings) do
remove_esp_for_player(player)
end
for _, connection in pairs(getconnections(RunService.RenderStepped)) do
connection:Disconnect()
end
if gui then
pcall(function() gui:CleanUp() end)
pcall(function() gui:Hide() end)
if gui.ScreenGui then
gui.ScreenGui:Destroy()
end
end
for _, gui_obj in pairs(game.CoreGui:GetChildren()) do
if gui_obj.Name:find("DropLib") or gui_obj.Name:find("Arsenal") then
gui_obj:Destroy()
end
end
_G.AimBotScript = nil
print("Arsenal script cleanup complete")
end
}
print("Have fun! (and don't get banned lol)")No comments yet for this script.



