--STATE
local ui_open = true
local aimbot_enabled = true
local trigger_enabled = false
local FOV_RADIUS = 180
local SMOOTH = 5.0
local target_locked = false
local esp_enabled = true
local KEY_TOGGLE_ESP = [Link].E
local cached_players = {}
local stable_points = {}
local ui_y = 30
local line_height = 20
local ui_width_estimate = 220
local AIM_KEY = [Link].RIGHT_MOUSE
local KEY_MENU = [Link]
local KEY_AIMBOT = [Link]
local KEY_TRIGGER = [Link]
local KEY_FOV_UP = [Link].I
local KEY_FOV_DOWN = [Link].U
local function get_screen()
local s = valex.get_screen_size()
local width = [Link] or 1920
local height = [Link] or 1080
local center_x = s.center_x or (width / 2)
local center_y = s.center_y or (height / 2)
return { width = width, height = height, center_x = center_x, center_y =
center_y }
end
-- ========== HELPERS ==========
local function toggle(key, state)
if aim.is_key_pressed(key) then
return not state
end
return state
end
local function lerp(a, b, t)
return a + (b - a) * [Link](0, [Link](1, t))
end
local function team_color(info)
if info.is_local then
return color3.from_rgb(80,160,255)
elseif info.is_team then
return color3.from_rgb(0,220,140)
else
return color3.from_rgb(255,80,80)
end
end
local skeleton_segments = {
{"head","neck"},{"neck","upper_chest"},{"upper_chest","torso"},
{"torso","pelvis"},
{"upper_chest","right_shoulder"},{"right_shoulder","right_upper_arm"},
{"right_upper_arm","right_forearm"},{"right_forearm","right_hand"},
{"upper_chest","left_shoulder"},{"left_shoulder","left_upper_arm"},
{"left_upper_arm","left_forearm"},{"left_forearm","left_hand"},
{"pelvis","right_thigh"},{"right_thigh","right_calf"},
{"right_calf","right_foot"},
{"pelvis","left_thigh"},{"left_thigh","left_calf"},{"left_calf","left_foot"},
}
local function update_bone(addr, bone, raw, blend)
stable_points[addr] = stable_points[addr] or {}
local prev = stable_points[addr][bone]
local cur = { x = raw.x, y = raw.y, visible = [Link] }
if prev then
cur.x = lerp(prev.x or cur.x, cur.x, blend)
cur.y = lerp(prev.y or cur.y, cur.y, blend)
[Link] = [Link]
end
stable_points[addr][bone] = cur
return cur
end
[Link]("update", function()
ui_open = toggle(KEY_MENU, ui_open)
aimbot_enabled = toggle(KEY_AIMBOT, aimbot_enabled)
trigger_enabled = toggle(KEY_TRIGGER, trigger_enabled)
esp_enabled = toggle(KEY_TOGGLE_ESP, esp_enabled)
if aim.is_key_pressed(KEY_FOV_UP) then
FOV_RADIUS = [Link](FOV_RADIUS + 10, 400)
end
if aim.is_key_pressed(KEY_FOV_DOWN) then
FOV_RADIUS = [Link](FOV_RADIUS - 10, 50)
end
end)
[Link]("slow_update", function()
cached_players = aim.get_players(true, false) or {}
end)
--AIMBOT
[Link]("update", function()
target_locked = false
if not aimbot_enabled then return end
if aim.is_key_held(AIM_KEY) then
local target = aim.get_closest_target(FOV_RADIUS, true, true)
if target and [Link] ~= 0 then
target_locked = true
aim.aim_at_player([Link], SMOOTH, "head")
end
end
end)
-- TRIGGERBOT (laggy :( sorry for this)
[Link]("update", function()
if not trigger_enabled then return end
local target = aim.get_target_under_crosshair()
if target and [Link] ~= 0 then
aim.mouse_left_click()
end
end)
--RENDER part
[Link]("render", function()
local screen = get_screen()
local ui_x = screen.center_x - (ui_width_estimate / 2)
-- FOV circle
valex.draw_circle(screen.center_x, screen.center_y, FOV_RADIUS,
color3.from_rgb(255,255,255), 0.3)
-- ESP çizimi
if esp_enabled then
for _, addr in ipairs(cached_players) do
local info = aim.get_player_info(addr)
if info and [Link] then
local col = team_color(info)
local blend = 0.35
local head_raw = aim.get_screen_position(addr, "head")
local head = update_bone(addr, "head", head_raw, blend)
-- İskelet segmentleri
for _, seg in ipairs(skeleton_segments) do
local b1, b2 = seg[1], seg[2]
local p1 = update_bone(addr, b1, aim.get_screen_position(addr,
b1), blend)
local p2 = update_bone(addr, b2, aim.get_screen_position(addr,
b2), blend)
if [Link] and [Link] then
valex.draw_line(p1.x, p1.y, p2.x, p2.y, col, 1.0, 0.95)
end
end
-- İsim + can etiketi
if [Link] then
local text = [Link]("%s | %.0f/%.0f HP", [Link] or
"Player", [Link] or 0, info.max_health or 100)
valex.draw_text(text, head.x, head.y - 18, [Link](),
0.95)
end
end
end
end
if not ui_open then return end
-- Menü UI
valex.draw_text("UNIVERSAL | Torotoro's MENU", ui_x, ui_y, [Link]())
valex.draw_text("[1] Aimbot: " .. (aimbot_enabled and "ON" or "OFF"), ui_x,
ui_y + line_height,
aimbot_enabled and color3.from_rgb(0,255,0) or color3.from_rgb(255,0,0))
valex.draw_text("[2] Trigger: " .. (trigger_enabled and "ON" or "OFF"), ui_x,
ui_y + line_height*2,
trigger_enabled and color3.from_rgb(255,180,0) or
color3.from_rgb(160,160,160))
valex.draw_text("[U/I] FOV: " .. FOV_RADIUS, ui_x, ui_y + line_height*3,
color3.from_rgb(200,200,200))
valex.draw_text("Target: " .. (target_locked and "ON" or "OFF"), ui_x, ui_y +
line_height*4,
target_locked and color3.from_rgb(255,60,60) or [Link]())
valex.draw_text("[E] ESP: " .. (esp_enabled and "ON" or "OFF"), ui_x, ui_y +
line_height*5,
esp_enabled and color3.from_rgb(0,255,0) or color3.from_rgb(255,0,0))
end)