
Key Required VerifiedUniversal
repeat task.wait() until game:IsLoaded()
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local Camera = workspace.CurrentCamera
local settings = {
-- Aimbot
silentAim = false,
triggerBot = false,
autoShoot = false,
maxCharge = false,
fov = 200,
-- Combat
instantFireRate = false,
infiniteAmmo = false,
-- ESP
espEnabled = false,
espEnemyOnly = false,
espTeamOnly = false,
espBoxes = true,
espNames = true,
espDistance = true,
espHealth = true,
espTracers = false,
espMaxDistance = 1000,
espEnemyColor = Color3.fromRGB(255, 50, 50),
espTeamColor = Color3.fromRGB(50, 255, 50),
-- Visuals
fovCircle = true,
targetHighlight = false,
knifeTracers = false,
}
local m_GameCharacterController = require(ReplicatedStorage.Client.Controllers.GameCharacterController)
local m_CombatClient = require(ReplicatedStorage.Client.Madwork.CombatClient)
local m_BackpackClient = require(ReplicatedStorage.Client.Madwork.BackpackClient)
local m_ToolUsageClient = require(ReplicatedStorage.Client.Madwork.ToolUsageClient)
local m_MadFSM = require(ReplicatedStorage.Shared.Madwork.MadFSM)
local m_MadworkCaster = require(ReplicatedStorage.Shared.Madwork.MadworkCaster)
local rayParams = RaycastParams.new()
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local function IsVisible(head)
local localChar = LocalPlayer.Character
if not localChar then return false end
local rootPart = localChar:FindFirstChild("HumanoidRootPart")
if not rootPart then return false end
rayParams.FilterDescendantsInstances = {localChar}
local result = workspace:Raycast(rootPart.Position, head.Position - rootPart.Position, rayParams)
if result then
return result.Instance:IsDescendantOf(head.Parent)
end
return false
end
local function GetClosestHead()
local mousePos = UserInputService:GetMouseLocation()
local closest = nil
local closestDist = settings.fov
local closestPlayer = nil
local closestGameChar = nil
for _, gameChar in ipairs(m_GameCharacterController.GetGameCharacters()) do
if gameChar.Player == LocalPlayer then continue end
if gameChar.GamePlayer:GetLocalRelationship() ~= "Enemy" then continue end
local char = gameChar.Character
if not char or not char.IsAlive then continue end
local model = char.Model
local head = model:FindFirstChild("Head")
local humanoid = model:FindFirstChild("Humanoid")
if head and humanoid and humanoid.Health > 0 then
local screenPos, onScreen = Camera:WorldToViewportPoint(head.Position)
if onScreen then
local dist = (Vector2.new(screenPos.X, screenPos.Y) - mousePos).Magnitude
if dist < closestDist then
closestDist = dist
closest = head
closestPlayer = gameChar.Player
closestGameChar = gameChar
end
end
end
end
return closest, closestPlayer, closestGameChar
end
-- Silent Aim
m_CombatClient.OnLocalEvent:Connect(function(combatEvent)
if not settings.silentAim then return end
local head = GetClosestHead()
if not head then return end
local throwPos = combatEvent.GameAction.Position
combatEvent.GameAction.Direction = (head.Position - throwPos).Unit
if settings.maxCharge then
combatEvent.GameAction.Charge = 1
end
end)
-- Infinite Ammo
local useClipHooked = false
local function HookUseClip()
if useClipHooked then return end
local upvalues = getupvalues(m_ToolUsageClient.NewToolUsage)
for i, v in pairs(upvalues) do
if type(v) == "table" and v.UseClip ~= nil then
local original_UseClip = v.UseClip
v.UseClip = function(self)
if settings.infiniteAmmo then
self.Clip = self.Clip + 1
end
return original_UseClip(self)
end
useClipHooked = true
break
end
end
end
HookUseClip()
-- FSM
local function PatchFSM(fsm)
if not fsm or not fsm._states then return end
for name, state in pairs(fsm._states) do
if name == "Fire" or name == "Throw" or name == "Reload" then
state.Duration = 0
state.Leaving = nil
state.Entering = nil
end
end
end
local function GetAllTools()
local tools = {}
local upvals = getupvalues(m_BackpackClient.GetToolById)
for i, v in pairs(upvals) do
if type(v) == "table" then
for id, tool in pairs(v) do
if type(tool) == "table" and tool.Store then
table.insert(tools, tool)
end
end
end
end
return tools
end
local function IsKnifeTool(tool)
return tool.Setup and tool.Setup.ToolBehaviour == "Knife"
end
local orig = m_MadFSM.NewMadFSM
m_MadFSM.NewMadFSM = function()
local fsm = orig()
local origDef = fsm.DefineStates
fsm.DefineStates = function(self, states)
for _, name in ipairs({"Fire", "Throw", "Reload"}) do
if states[name] and settings.instantFireRate then
states[name].Duration = 0
states[name].Leaving = nil
states[name].Entering = nil
end
end
return origDef(self, states)
end
return fsm
end
local patched = {}
task.spawn(function()
while true do
task.wait(0.1)
for _, tool in ipairs(GetAllTools()) do
local fsm = tool.Store.FSM
if fsm then
if not patched[fsm] then
patched[fsm] = true
PatchFSM(fsm)
end
if settings.instantFireRate then
if fsm.State == "Fire" or fsm.State == "Throw" or fsm.State == "Reload" then
fsm.Progress = 1
fsm.Duration = 0
fsm.StartTime = 0
end
end
end
end
end
end)
local function TryFire()
for _, tool in ipairs(GetAllTools()) do
if tool.Equipped and tool.Store.FSM and IsKnifeTool(tool) then
local fsm = tool.Store.FSM
if fsm.State == "Idle" or fsm.State == "Throw" or fsm.State == "Fire" then
fsm:Set("Throw")
end
end
end
end
-- Triggerbot (knife only)
task.spawn(function()
while true do
task.wait(0.05)
if settings.triggerBot then
local head = GetClosestHead()
if head and IsVisible(head) then
TryFire()
end
end
end
end)
-- Auto Shoot (knife only)
task.spawn(function()
while true do
task.wait(0.05)
if settings.autoShoot then
local head = GetClosestHead()
if head then
TryFire()
end
end
end
end)
-- ESP Drawing
local espObjects = {}
local function NewDrawing(type, props)
local d = Drawing.new(type)
for k, v in pairs(props) do
d[k] = v
end
return d
end
local function CreateESPForChar(gameChar)
if gameChar.Player == LocalPlayer then return end
if espObjects[gameChar] then return end
local box = NewDrawing("Square", {Thickness = 1, Filled = false, Visible = false})
local boxOutline = NewDrawing("Square", {Thickness = 3, Color = Color3.fromRGB(0,0,0), Filled = false, Visible = false})
local healthBarBg = NewDrawing("Square", {Thickness = 0, Color = Color3.fromRGB(0,0,0), Filled = true, Visible = false})
local healthBar = NewDrawing("Square", {Thickness = 0, Filled = true, Visible = false})
local label = NewDrawing("Text", {Size = 13, Center = true, Outline = true, Font = Drawing.Fonts.GothamBold, Visible = false})
local tracer = NewDrawing("Line", {Thickness = 1, Visible = false})
espObjects[gameChar] = {
box = box,
boxOutline = boxOutline,
healthBarBg = healthBarBg,
healthBar = healthBar,
label = label,
tracer = tracer
}
end
local function RemoveESPForChar(gameChar)
local esp = espObjects[gameChar]
if not esp then return end
for _, d in pairs(esp) do d:Remove() end
espObjects[gameChar] = nil
end
local function GetCharColor(gameChar)
local rel = gameChar.GamePlayer:GetLocalRelationship()
return rel == "Enemy" and settings.espEnemyColor or settings.espTeamColor
end
local function ShouldShowESP(gameChar)
if not settings.espEnabled then return false end
local rel = gameChar.GamePlayer:GetLocalRelationship()
if settings.espEnemyOnly and rel ~= "Enemy" then return false end
if settings.espTeamOnly and rel ~= "Friendly" then return false end
-- Distance check
local localChar = LocalPlayer.Character
if localChar and localChar:FindFirstChild("HumanoidRootPart") then
local rootPart = gameChar.Character and gameChar.Character.RootPart
if rootPart then
local dist = (rootPart.Position - localChar.HumanoidRootPart.Position).Magnitude
if dist > settings.espMaxDistance then return false end
end
end
return true
end
for _, gameChar in ipairs(m_GameCharacterController.GetGameCharacters()) do
CreateESPForChar(gameChar)
end
m_GameCharacterController.GameCharacterAdded:Connect(CreateESPForChar)
-- FOV Circle
local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 1
fovCircle.Color = Color3.fromRGB(255, 255, 255)
fovCircle.Filled = false
fovCircle.Transparency = 0.8
fovCircle.NumSides = 64
fovCircle.Visible = false
-- Target Highlight
local currentHighlight = nil
local lastTarget = nil
local function ClearHighlight()
if currentHighlight then
currentHighlight:Destroy()
currentHighlight = nil
end
lastTarget = nil
end
local function ApplyHighlight(model)
if lastTarget == model then return end
ClearHighlight()
local h = Instance.new("Highlight")
h.FillColor = Color3.fromRGB(255, 50, 50)
h.OutlineColor = Color3.fromRGB(255, 255, 255)
h.FillTransparency = 0.5
h.OutlineTransparency = 0
h.Adornee = model
h.Parent = model
currentHighlight = h
lastTarget = model
end
-- Knife Tracers
local original_NewCaster = m_MadworkCaster.NewCaster
m_MadworkCaster.NewCaster = function(params)
local caster = original_NewCaster(params)
if settings.knifeTracers then
local line = Drawing.new("Line")
line.Thickness = 2
line.Color = Color3.fromRGB(255, 200, 0)
line.Transparency = 0.3
line.Visible = false
local startPos = params.Position
caster:OnUpdate(function()
if not settings.knifeTracers then line.Visible = false return end
local s, on1 = Camera:WorldToViewportPoint(startPos)
local e, on2 = Camera:WorldToViewportPoint(caster.Position)
line.From = Vector2.new(s.X, s.Y)
line.To = Vector2.new(e.X, e.Y)
line.Visible = on1 and on2
end)
caster:OnSolve(function() line:Remove() end)
end
return caster
end
-- Main render loop
RunService.Heartbeat:Connect(function()
local mousePos = UserInputService:GetMouseLocation()
local viewportSize = Camera.ViewportSize
local localChar = LocalPlayer.Character
local localRoot = localChar and localChar:FindFirstChild("HumanoidRootPart")
-- FOV Circle
fovCircle.Position = mousePos
fovCircle.Radius = settings.fov
fovCircle.Visible = settings.fovCircle
-- Target Highlight
if settings.targetHighlight then
local head, _, gameChar = GetClosestHead()
if gameChar and gameChar.Character and gameChar.Character.IsAlive then
ApplyHighlight(gameChar.Character.Model)
else
ClearHighlight()
end
else
ClearHighlight()
end
-- ESP
for gameChar, esp in pairs(espObjects) do
local show = ShouldShowESP(gameChar)
local char = gameChar.Character
local alive = char and char.IsAlive
if not show or not alive then
for _, d in pairs(esp) do d.Visible = false end
continue
end
local model = char.Model
local rootPart = model:FindFirstChild("HumanoidRootPart")
local headPart = model:FindFirstChild("Head")
local humanoid = model:FindFirstChild("Humanoid")
if not rootPart or not headPart then
for _, d in pairs(esp) do d.Visible = false end
continue
end
local topWorld = headPart.Position + Vector3.new(0, headPart.Size.Y / 2, 0)
local botWorld = rootPart.Position - Vector3.new(0, 3.5, 0)
local topScreen, onScreen1 = Camera:WorldToViewportPoint(topWorld)
local botScreen, onScreen2 = Camera:WorldToViewportPoint(botWorld)
if not onScreen1 or not onScreen2 then
for _, d in pairs(esp) do d.Visible = false end
continue
end
local color = GetCharColor(gameChar)
local hp = gameChar.DamageReceiver and gameChar.DamageReceiver.Health or 0
local maxHp = gameChar.DamageReceiver and gameChar.DamageReceiver.MaxHealth or 100
local hpFrac = math.clamp(hp / maxHp, 0, 1)
local hpColor = Color3.fromRGB(255 * (1 - hpFrac), 255 * hpFrac, 0)
local height = math.abs(topScreen.Y - botScreen.Y)
local width = height * 0.5
local boxX = topScreen.X - width / 2
local boxY = topScreen.Y
-- Distance
local dist = localRoot and math.floor((rootPart.Position - localRoot.Position).Magnitude) or 0
-- Label: Name | Distance | HP all on one line
local labelParts = {}
if settings.espNames then table.insert(labelParts, gameChar.Player.Name) end
if settings.espDistance then table.insert(labelParts, dist .. "m") end
if settings.espHealth then table.insert(labelParts, math.floor(hp) .. "hp") end
esp.label.Text = table.concat(labelParts, " | ")
esp.label.Position = Vector2.new(topScreen.X, boxY - 18)
esp.label.Color = color
esp.label.Visible = #labelParts > 0
-- Box outline
if settings.espBoxes then
esp.boxOutline.Size = Vector2.new(width + 2, height + 2)
esp.boxOutline.Position = Vector2.new(boxX - 1, boxY - 1)
esp.boxOutline.Visible = true
esp.box.Size = Vector2.new(width, height)
esp.box.Position = Vector2.new(boxX, boxY)
esp.box.Color = color
esp.box.Visible = true
else
esp.box.Visible = false
esp.boxOutline.Visible = false
end
-- Health bar
local barX = boxX - 6
esp.healthBarBg.Size = Vector2.new(4, height)
esp.healthBarBg.Position = Vector2.new(barX, boxY)
esp.healthBarBg.Visible = settings.espHealth
local barH = height * hpFrac
esp.healthBar.Size = Vector2.new(4, barH)
esp.healthBar.Position = Vector2.new(barX, boxY + (height - barH))
esp.healthBar.Color = hpColor
esp.healthBar.Visible = settings.espHealth
-- Tracer
if settings.espTracers then
esp.tracer.From = Vector2.new(viewportSize.X / 2, viewportSize.Y)
esp.tracer.To = Vector2.new(botScreen.X, botScreen.Y)
esp.tracer.Color = color
esp.tracer.Visible = true
else
esp.tracer.Visible = false
end
end
end)
-- Venyx UI
local Venyx = loadstring(game:HttpGet("https://raw.githubusercontent.com/Stefanuk12/Venyx-UI-Library/main/source2.lua"))()
local UI = Venyx.new({ title = "SHARP" })
local CombatPage = UI:addPage({ title = "Combat", icon = 5012544693 })
local VisualPage = UI:addPage({ title = "Visuals", icon = 5012544693 })
local Aimbot = CombatPage:addSection({ title = "Aimbot" })
local Combat = CombatPage:addSection({ title = "Combat" })
local ESPSection = VisualPage:addSection({ title = "ESP" })
local ESPToggles = VisualPage:addSection({ title = "ESP Options" })
local ESPColors = VisualPage:addSection({ title = "ESP Colors" })
local WorldSection = VisualPage:addSection({ title = "World" })
-- Aimbot
Aimbot:addToggle({ title = "Silent Aim", callback = function(v) settings.silentAim = v end })
Aimbot:addToggle({ title = "Triggerbot (Knife)", callback = function(v) settings.triggerBot = v end })
Aimbot:addToggle({ title = "Auto Shoot (Knife)", callback = function(v) settings.autoShoot = v end })
Aimbot:addToggle({ title = "Max Charge", callback = function(v) settings.maxCharge = v end })
Aimbot:addSlider({ title = "FOV", default = 200, min = 50, max = 600, callback = function(v) settings.fov = v end })
-- Combat
Combat:addToggle({ title = "Instant Fire Rate", callback = function(v)
settings.instantFireRate = v
if v then patched = {} end
end })
Combat:addToggle({ title = "Infinite Ammo", callback = function(v) settings.infiniteAmmo = v end })
Combat:addButton({ title = "Throw At Target Now", callback = function() TryFire() end })
-- ESP Main
ESPSection:addToggle({ title = "Enable ESP", callback = function(v) settings.espEnabled = v end })
ESPSection:addToggle({ title = "Enemy Only", callback = function(v)
settings.espEnemyOnly = v
if v then settings.espTeamOnly = false end
end })
ESPSection:addToggle({ title = "Team Only", callback = function(v)
settings.espTeamOnly = v
if v then settings.espEnemyOnly = false end
end })
ESPSection:addSlider({ title = "Max Distance", default = 1000, min = 50, max = 2000, callback = function(v)
settings.espMaxDistance = v
end })
-- ESP Toggles
ESPToggles:addToggle({ title = "Boxes", callback = function(v) settings.espBoxes = v end })
ESPToggles:addToggle({ title = "Names", callback = function(v) settings.espNames = v end })
ESPToggles:addToggle({ title = "Distance", callback = function(v) settings.espDistance = v end })
ESPToggles:addToggle({ title = "Health", callback = function(v) settings.espHealth = v end })
ESPToggles:addToggle({ title = "Tracers", callback = function(v) settings.espTracers = v end })
-- ESP Colors
ESPColors:addColorPicker({ title = "Enemy Color", default = Color3.fromRGB(255, 50, 50), callback = function(v)
settings.espEnemyColor = v
end })
ESPColors:addColorPicker({ title = "Team Color", default = Color3.fromRGB(50, 255, 50), callback = function(v)
settings.espTeamColor = v
end })
-- World
WorldSection:addToggle({ title = "FOV Circle", callback = function(v) settings.fovCircle = v end })
WorldSection:addColorPicker({ title = "FOV Color", default = Color3.fromRGB(255,255,255), callback = function(v)
fovCircle.Color = v
end })
WorldSection:addToggle({ title = "Target Highlight", callback = function(v)
settings.targetHighlight = v
if not v then ClearHighlight() end
end })
WorldSection:addToggle({ title = "Knife Tracers", callback = function(v) settings.knifeTracers = v end })
WorldSection:addColorPicker({ title = "Knife Tracer Color", default = Color3.fromRGB(255,200,0), callback = function(v)
-- stored for new tracers
settings.knifeTracerColor = v
end })
UI:SelectPage({ page = UI.pages[1], toggle = true })


Make it for mobile.
oooo umm just copy it and ask an AI to port it into a a UI u want
@BeboMods dude, thanks for the source code 🙏
@BeboMods bro what ai do I ask
@BeboMods I asked the AI but it can't do it + it's too complicated, just do it this way and you'll get more views (the majority is mobile)
@Spidy_01 just learn how to code it urself
@BeboMods The interface is static and there's no way to minimize the UI. Could you please update it for mobile?
Bro wake for mobile✌️
A mobile version, please.
UI toggle button will be goated 🙏
detected dont use