
Keyless VerifiedUniversal

local Library = loadstring(game:HttpGet("https://raw.githubusercontent.com/ImInsane-1337/neverlose-ui/refs/heads/main/source/library.lua"))()
-- [СЕРВИСЫ]
local UIS = game:GetService("UserInputService")
local RunService = game:GetService("RunService")
local Players = game:GetService("Players")
local Lighting = game:GetService("Lighting")
local TeleportService = game:GetService("TeleportService")
local HttpService = game:GetService("HttpService")
local Camera = workspace.CurrentCamera
local Player = Players.LocalPlayer
-- [ВСЕ НАСТРОЙКИ]
local Settings = {
-- Aimbot
Enabled = false, FOV = 150, HitPart = "Head", ShotDelay = 0.01,
WallCheck = false, TeamCheck = false, Smoothing = false, SmoothFactor = 5,
Prediction = false, PredictionAmount = 0.13, SilentAim = true,
AutoFire = false, TriggerBot = false, TriggerDelay = 0.05,
-- Hitbox
HitboxSink = false, HitboxSinkDepth = 15, HitboxDesync = false, HitboxDesyncOffset = 10,
-- Target visuals
TargetESP = false, TargetTracer = false, TargetColor = Color3.fromRGB(255, 0, 0),
ShowFOV = true, FOVColor = Color3.fromRGB(255, 255, 255),
-- Player Visuals
ChamsEnabled = false, GlowEnabled = false, RainbowGlow = false,
ChamColor = Color3.fromRGB(255, 0, 0), GlowColor = Color3.fromRGB(255, 255, 255),
ChamTransparency = 0.5,
-- ESP Drawing
Boxes = false, BoxColor = Color3.fromRGB(255, 255, 255),
Names = false, NameColor = Color3.fromRGB(255, 255, 255),
Distance = false, DistanceColor = Color3.fromRGB(200, 200, 200),
Tracers = false, TracerColor = Color3.fromRGB(255, 255, 255),
HealthBar = false, HealthBarColor = Color3.fromRGB(0, 255, 0),
SkeletonESP = false, SkeletonColor = Color3.fromRGB(255, 255, 255),
-- Hands
HandsEnabled = false, HandGlow = false, HandColor = Color3.fromRGB(0, 255, 255),
-- Crosshair
CrosshairEnabled = false, CrosshairColor = Color3.fromRGB(0, 255, 0),
CrosshairSize = 10, CrosshairThickness = 1, CrosshairGap = 4,
DotEnabled = false,
-- World
Fullbright = false, NoFog = false, CustomTime = false, TimeValue = 14,
AmbientColor = Color3.fromRGB(178, 178, 178),
-- Particles
SparklesEnabled = false, SparkleColor = Color3.fromRGB(255, 255, 100),
FireEnabled = false, FireSize = 5, FireColor = Color3.fromRGB(255, 80, 20),
SmokeEnabled = false, SmokeOpacity = 0.3, SmokeColor = Color3.fromRGB(100, 100, 100),
ParticlesEnabled = false, ParticleTexture = "rbxassetid://241685484",
ParticleColor = Color3.fromRGB(170, 85, 255), ParticleRate = 30, ParticleSpeed = 3,
ParticleSize = 0.5, RainbowParticles = false,
TrailEnabled = false, TrailColor = Color3.fromRGB(0, 200, 255), TrailLifetime = 0.5,
AuraEnabled = false, AuraColor = Color3.fromRGB(85, 170, 255),
-- Movement
SpeedEnabled = false, SpeedValue = 32,
FlyEnabled = false, FlySpeed = 50,
NoclipEnabled = false, InfJumpEnabled = false,
JumpPower = false, JumpValue = 50,
-- HUD
HUDEnabled = true, HUDWatermark = true,
HUDHealth = true, HUDSpeed = true, HUDCoords = true,
HUDTarget = true, HUDPlayers = true, HUDFPS = true,
HUDColor = Color3.fromRGB(170, 85, 255),
-- Misc
AntiAFK = true, ClickTP = false, Notifications = true,
-- Hit Marker
HitMarker = false, HitMarkerColor = Color3.fromRGB(255, 50, 50),
HitMarkerSize = 8, HitMarkerDuration = 0.2, HitMarkerThickness = 1.5,
-- Off-Screen Arrows
ArrowsEnabled = false, ArrowColor = Color3.fromRGB(255, 255, 255),
ArrowSize = 20, ArrowRadius = 120,
-- Radar
RadarEnabled = false, RadarSize = 150, RadarScale = 0.05,
RadarBGColor = Color3.fromRGB(15, 15, 20),
RadarDotColor = Color3.fromRGB(255, 50, 50),
RadarSelfColor = Color3.fromRGB(0, 255, 100),
-- Hit Chams (shot trace)
-- Hit Chams 2D (shot trace on screen)
HitChamsEnabled = false,
HitChamsLineColor = Color3.fromRGB(255, 50, 50),
HitChamsCircleColor = Color3.fromRGB(255, 150, 0),
HitChamsDuration = 0.4, HitChamsThickness = 1.5,
-- Hit Chams 3D (world space effects)
HitChams3D = false,
HitChams3DHighlight = true, -- вспышка Highlight на персонаже
HitChams3DBlood = true, -- кровяные частицы на месте попадания
HitChams3DBeam = true, -- 3D луч от тебя до врага
HitChams3DBillboard = true, -- урон над головой (-HP)
HitChams3DColor = Color3.fromRGB(255, 30, 30),
HitChams3DDuration = 0.5,
-- BunnyHop
BHopEnabled = false,
-- Panic Key
PanicKey = Enum.KeyCode.Delete,
-- Keybinds
KeybindAimbot = Enum.KeyCode.Unknown,
KeybindSpeed = Enum.KeyCode.Unknown,
KeybindFly = Enum.KeyCode.Unknown,
KeybindNoclip = Enum.KeyCode.Unknown,
KeybindRadar = Enum.KeyCode.Unknown,
}
-- ══════════════════════════════════════════
-- СИСТЕМА КОНФИГОВ
-- ══════════════════════════════════════════
local ConfigSystem = {}
local CONFIG_FOLDER = "FlickSpeed"
local CONFIG_EXT = ".json"
-- Список ключей, которые НЕ сериализуются напрямую (Color3 → таблица)
local COLOR_KEYS = {
"TargetColor", "FOVColor", "ChamColor", "GlowColor",
"BoxColor", "NameColor", "DistanceColor", "TracerColor",
"HealthBarColor", "SkeletonColor", "HandColor", "CrosshairColor",
"AmbientColor", "SparkleColor", "FireColor", "SmokeColor",
"ParticleColor", "TrailColor", "AuraColor", "HUDColor",
"HitMarkerColor", "ArrowColor", "RadarBGColor", "RadarDotColor", "RadarSelfColor",
"HitChamsLineColor", "HitChamsCircleColor", "HitChams3DColor",
}
local function IsColorKey(k)
for _, v in pairs(COLOR_KEYS) do if v == k then return true end end
return false
end
local function Color3ToTable(c)
return {r = c.R, g = c.G, b = c.B}
end
local function TableToColor3(t)
return Color3.new(t.r, t.g, t.b)
end
-- Создать папку если не существует
local function EnsureFolder()
if not isfolder(CONFIG_FOLDER) then
makefolder(CONFIG_FOLDER)
end
end
-- Получить список конфигов
function ConfigSystem:GetList()
EnsureFolder()
local list = {}
for _, f in pairs(listfiles(CONFIG_FOLDER)) do
local name = f:match("([^/\\]+)" .. CONFIG_EXT .. "$")
if name then
table.insert(list, name)
end
end
if #list == 0 then
table.insert(list, "default")
end
return list
end
-- Сохранить конфиг
function ConfigSystem:Save(name)
EnsureFolder()
local data = {}
for k, v in pairs(Settings) do
if IsColorKey(k) then
data[k] = Color3ToTable(v)
else
data[k] = v
end
end
local encoded = HttpService:JSONEncode(data)
writefile(CONFIG_FOLDER .. "/" .. name .. CONFIG_EXT, encoded)
return true
end
-- Загрузить конфиг
function ConfigSystem:Load(name)
EnsureFolder()
local path = CONFIG_FOLDER .. "/" .. name .. CONFIG_EXT
if not isfile(path) then
warn("[FlickSpeed] Конфиг не найден: " .. name)
return false
end
local ok, data = pcall(function()
return HttpService:JSONDecode(readfile(path))
end)
if not ok or not data then
warn("[FlickSpeed] Ошибка парсинга конфига: " .. name)
return false
end
for k, v in pairs(data) do
if Settings[k] ~= nil then
if IsColorKey(k) and type(v) == "table" then
Settings[k] = TableToColor3(v)
else
Settings[k] = v
end
end
end
return true
end
-- Удалить конфиг
function ConfigSystem:Delete(name)
local path = CONFIG_FOLDER .. "/" .. name .. CONFIG_EXT
if isfile(path) then
delfile(path)
return true
end
return false
end
-- Автосохранение при выходе (клиентский аналог BindToClose)
Player.AncestryChanged:Connect(function()
if not Player:IsDescendantOf(game) then
pcall(function() ConfigSystem:Save("autosave") end)
end
end)
-- [СОХРАНЕНИЕ ОРИГИНАЛЬНЫХ ЗНАЧЕНИЙ]
local OriginalLighting = {
Brightness = Lighting.Brightness,
ClockTime = Lighting.ClockTime,
FogEnd = Lighting.FogEnd,
FogStart = Lighting.FogStart,
GlobalShadows = Lighting.GlobalShadows,
Ambient = Lighting.Ambient,
OutdoorAmbient = Lighting.OutdoorAmbient,
}
-- ══════════════════════════════════════════
-- UI WINDOW
-- ══════════════════════════════════════════
local Window = Library:Window({
Name = "FlickSpeed",
SubName = "Private | v3.0",
Logo = "120959262762131"
})
-- ══════════════════════════════════════════
-- PAGE 1: COMBAT
-- ══════════════════════════════════════════
local CombatPage = Window:Page({Name = "Combat"})
-- Silent Aim
local AimSec = CombatPage:Section({Name = "Silent Aim"})
AimSec:Toggle({Name = "Enable", Default = false, Callback = function(v) Settings.Enabled = v end})
AimSec:Toggle({Name = "Silent Aim Mode", Default = true, Callback = function(v) Settings.SilentAim = v end})
AimSec:Toggle({Name = "Wall Check", Default = false, Callback = function(v) Settings.WallCheck = v end})
AimSec:Toggle({Name = "Team Check", Default = false, Callback = function(v) Settings.TeamCheck = v end})
AimSec:Slider({Name = "FOV Radius", Min = 30, Max = 1000, Default = 150, Callback = function(v) Settings.FOV = v end})
AimSec:Dropdown({Name = "Hit Part", Default = "Head", Options = {"Head", "HumanoidRootPart", "UpperTorso", "LowerTorso"}, Callback = function(v) Settings.HitPart = v end})
AimSec:Slider({Name = "Shot Delay", Min = 0, Max = 0.3, Default = 0.01, Increment = 0.01, Callback = function(v) Settings.ShotDelay = v end})
-- Hitbox Manipulation
local HitboxSec = CombatPage:Section({Name = "Hitbox Sink (Anti-Aim)"})
HitboxSec:Toggle({Name = "Hitbox Sink", Default = false, Callback = function(v) Settings.HitboxSink = v
if not v then
pcall(function()
local char = Player.Character
if char then
for _, part in pairs(char:GetDescendants()) do
if part:IsA("BasePart") and part.Name ~= "HumanoidRootPart" then
part.LocalTransparencyModifier = 0
end
end
end
end)
end
end})
HitboxSec:Slider({Name = "Sink Depth (studs)", Min = 5, Max = 50, Default = 15, Callback = function(v) Settings.HitboxSinkDepth = v end})
HitboxSec:Toggle({Name = "Hitbox Desync (Jitter)", Default = false, Callback = function(v) Settings.HitboxDesync = v end})
HitboxSec:Slider({Name = "Desync Offset", Min = 3, Max = 30, Default = 10, Callback = function(v) Settings.HitboxDesyncOffset = v end})
-- Smoothing
local SmoothSec = CombatPage:Section({Name = "Aim Assist (Legit)"})
SmoothSec:Toggle({Name = "Smoothing", Default = false, Callback = function(v) Settings.Smoothing = v end})
SmoothSec:Slider({Name = "Smooth Factor", Min = 1, Max = 20, Default = 5, Callback = function(v) Settings.SmoothFactor = v end})
SmoothSec:Toggle({Name = "Prediction", Default = false, Callback = function(v) Settings.Prediction = v end})
SmoothSec:Slider({Name = "Prediction Amount", Min = 0.05, Max = 0.5, Default = 0.13, Increment = 0.01, Callback = function(v) Settings.PredictionAmount = v end})
-- Triggerbot
local TriggerSec = CombatPage:Section({Name = "Triggerbot"})
TriggerSec:Toggle({Name = "Auto Fire", Default = false, Callback = function(v) Settings.AutoFire = v end})
TriggerSec:Toggle({Name = "Triggerbot", Default = false, Callback = function(v) Settings.TriggerBot = v end})
TriggerSec:Slider({Name = "Trigger Delay", Min = 0, Max = 0.3, Default = 0.05, Increment = 0.01, Callback = function(v) Settings.TriggerDelay = v end})
-- Target Visuals
local TargetVisSec = CombatPage:Section({Name = "Target Visuals"})
TargetVisSec:Toggle({Name = "Show FOV Circle", Default = true, Callback = function(v) Settings.ShowFOV = v end})
TargetVisSec:Label("FOV Color"):Colorpicker({Default = Settings.FOVColor, Callback = function(v) Settings.FOVColor = v end})
TargetVisSec:Toggle({Name = "Target ESP (Circle)", Default = false, Callback = function(v) Settings.TargetESP = v end})
TargetVisSec:Toggle({Name = "Target Tracer", Default = false, Callback = function(v) Settings.TargetTracer = v end})
TargetVisSec:Label("Target Color"):Colorpicker({Default = Settings.TargetColor, Callback = function(v) Settings.TargetColor = v end})
-- ══════════════════════════════════════════
-- PAGE 2: VISUALS
-- ══════════════════════════════════════════
local VisualPage = Window:Page({Name = "Visuals"})
local PlayerSec = VisualPage:Section({Name = "Player Chams"})
PlayerSec:Toggle({Name = "Chams", Callback = function(v) Settings.ChamsEnabled = v end})
PlayerSec:Slider({Name = "Fill Transparency", Min = 0, Max = 1, Default = 0.5, Increment = 0.1, Callback = function(v) Settings.ChamTransparency = v end})
PlayerSec:Label("Chams Color"):Colorpicker({Default = Settings.ChamColor, Callback = function(v) Settings.ChamColor = v end})
PlayerSec:Toggle({Name = "Glow (Outline)", Callback = function(v) Settings.GlowEnabled = v end})
PlayerSec:Toggle({Name = "Rainbow Glow", Callback = function(v) Settings.RainbowGlow = v end})
PlayerSec:Label("Glow Color"):Colorpicker({Default = Settings.GlowColor, Callback = function(v) Settings.GlowColor = v end})
local ESPSec = VisualPage:Section({Name = "ESP (Drawing)"})
ESPSec:Toggle({Name = "Boxes", Callback = function(v) Settings.Boxes = v end})
ESPSec:Label("Box Color"):Colorpicker({Default = Settings.BoxColor, Callback = function(v) Settings.BoxColor = v end})
ESPSec:Toggle({Name = "Names", Callback = function(v) Settings.Names = v end})
ESPSec:Label("Name Color"):Colorpicker({Default = Settings.NameColor, Callback = function(v) Settings.NameColor = v end})
ESPSec:Toggle({Name = "Distance", Callback = function(v) Settings.Distance = v end})
ESPSec:Label("Distance Color"):Colorpicker({Default = Settings.DistanceColor, Callback = function(v) Settings.DistanceColor = v end})
ESPSec:Toggle({Name = "Tracers", Callback = function(v) Settings.Tracers = v end})
ESPSec:Label("Tracer Color"):Colorpicker({Default = Settings.TracerColor, Callback = function(v) Settings.TracerColor = v end})
ESPSec:Toggle({Name = "Health Bar", Callback = function(v) Settings.HealthBar = v end})
ESPSec:Toggle({Name = "Skeleton ESP", Callback = function(v) Settings.SkeletonESP = v end})
ESPSec:Label("Skeleton Color"):Colorpicker({Default = Settings.SkeletonColor, Callback = function(v) Settings.SkeletonColor = v end})
local HandSec = VisualPage:Section({Name = "Hands"})
HandSec:Toggle({Name = "Hand Chams", Callback = function(v) Settings.HandsEnabled = v end})
HandSec:Toggle({Name = "Hand Glow (ForceField)", Callback = function(v) Settings.HandGlow = v end})
HandSec:Label("Hand Color"):Colorpicker({Default = Settings.HandColor, Callback = function(v) Settings.HandColor = v end})
-- Crosshair
local CrossSec = VisualPage:Section({Name = "Crosshair"})
CrossSec:Toggle({Name = "Custom Crosshair", Callback = function(v) Settings.CrosshairEnabled = v end})
CrossSec:Toggle({Name = "Center Dot", Callback = function(v) Settings.DotEnabled = v end})
CrossSec:Label("Crosshair Color"):Colorpicker({Default = Settings.CrosshairColor, Callback = function(v) Settings.CrosshairColor = v end})
CrossSec:Slider({Name = "Size", Min = 4, Max = 30, Default = 10, Callback = function(v) Settings.CrosshairSize = v end})
CrossSec:Slider({Name = "Gap", Min = 0, Max = 15, Default = 4, Callback = function(v) Settings.CrosshairGap = v end})
CrossSec:Slider({Name = "Thickness", Min = 1, Max = 4, Default = 1, Callback = function(v) Settings.CrosshairThickness = v end})
-- Hit Marker
local HitSec = VisualPage:Section({Name = "Hit Marker"})
HitSec:Toggle({Name = "Hit Marker", Callback = function(v) Settings.HitMarker = v end})
HitSec:Slider({Name = "Size", Min = 4, Max = 20, Default = 8, Callback = function(v) Settings.HitMarkerSize = v end})
HitSec:Slider({Name = "Thickness", Min = 1, Max = 4, Default = 1, Increment = 0.5, Callback = function(v) Settings.HitMarkerThickness = v end})
HitSec:Slider({Name = "Duration", Min = 0.05, Max = 1, Default = 0.2, Increment = 0.05, Callback = function(v) Settings.HitMarkerDuration = v end})
HitSec:Label("Hit Marker Color"):Colorpicker({Default = Settings.HitMarkerColor, Callback = function(v) Settings.HitMarkerColor = v end})
-- Hit Chams
local HitChamsSec = VisualPage:Section({Name = "Hit Chams (Shot Trace)"})
HitChamsSec:Toggle({Name = "Hit Chams", Callback = function(v) Settings.HitChamsEnabled = v end})
HitChamsSec:Slider({Name = "Duration", Min = 0.1, Max = 2, Default = 0.4, Increment = 0.1, Callback = function(v) Settings.HitChamsDuration = v end})
HitChamsSec:Slider({Name = "Line Thickness", Min = 1, Max = 5, Default = 1, Increment = 0.5, Callback = function(v) Settings.HitChamsThickness = v end})
HitChamsSec:Label("Line Color"):Colorpicker({Default = Settings.HitChamsLineColor, Callback = function(v) Settings.HitChamsLineColor = v end})
HitChamsSec:Label("Circle Color"):Colorpicker({Default = Settings.HitChamsCircleColor, Callback = function(v) Settings.HitChamsCircleColor = v end})
-- 3D Hit Chams
local HitChams3DSec = VisualPage:Section({Name = "Hit Chams 3D (World)"})
HitChams3DSec:Toggle({Name = "Enable 3D Hit Chams", Callback = function(v) Settings.HitChams3D = v end})
HitChams3DSec:Toggle({Name = "Highlight Flash (вспышка)", Default = true, Callback = function(v) Settings.HitChams3DHighlight = v end})
HitChams3DSec:Toggle({Name = "Blood Particles (кровь)", Default = true, Callback = function(v) Settings.HitChams3DBlood = v end})
HitChams3DSec:Toggle({Name = "3D Beam (луч в мире)", Default = true, Callback = function(v) Settings.HitChams3DBeam = v end})
HitChams3DSec:Toggle({Name = "Damage Billboard (-HP)", Default = true, Callback = function(v) Settings.HitChams3DBillboard = v end})
HitChams3DSec:Slider({Name = "Duration", Min = 0.1, Max = 2, Default = 0.5, Increment = 0.1, Callback = function(v) Settings.HitChams3DDuration = v end})
HitChams3DSec:Label("Effect Color"):Colorpicker({Default = Settings.HitChams3DColor, Callback = function(v) Settings.HitChams3DColor = v end})
-- Off-Screen Arrows
local ArrowSec = VisualPage:Section({Name = "Off-Screen Arrows"})
ArrowSec:Toggle({Name = "Arrows", Callback = function(v) Settings.ArrowsEnabled = v end})
ArrowSec:Slider({Name = "Arrow Size", Min = 8, Max = 40, Default = 20, Callback = function(v) Settings.ArrowSize = v end})
ArrowSec:Slider({Name = "Radius from Center", Min = 60, Max = 250, Default = 120, Callback = function(v) Settings.ArrowRadius = v end})
ArrowSec:Label("Arrow Color"):Colorpicker({Default = Settings.ArrowColor, Callback = function(v) Settings.ArrowColor = v end})
-- Radar
local RadarSec = VisualPage:Section({Name = "Radar"})
RadarSec:Toggle({Name = "Radar", Callback = function(v) Settings.RadarEnabled = v end})
RadarSec:Slider({Name = "Radar Size", Min = 80, Max = 300, Default = 150, Callback = function(v) Settings.RadarSize = v end})
RadarSec:Slider({Name = "Radar Scale", Min = 0.01, Max = 0.15, Default = 0.05, Increment = 0.01, Callback = function(v) Settings.RadarScale = v end})
RadarSec:Label("Background Color"):Colorpicker({Default = Settings.RadarBGColor, Callback = function(v) Settings.RadarBGColor = v end})
RadarSec:Label("Enemy Dot Color"):Colorpicker({Default = Settings.RadarDotColor, Callback = function(v) Settings.RadarDotColor = v end})
RadarSec:Label("Self Dot Color"):Colorpicker({Default = Settings.RadarSelfColor, Callback = function(v) Settings.RadarSelfColor = v end})
-- ══════════════════════════════════════════
-- PAGE 3: WORLD
-- ══════════════════════════════════════════
local WorldPage = Window:Page({Name = "World"})
local LightSec = WorldPage:Section({Name = "Lighting"})
LightSec:Toggle({Name = "Fullbright", Callback = function(v)
Settings.Fullbright = v
if not v then
Lighting.Brightness = OriginalLighting.Brightness
Lighting.ClockTime = OriginalLighting.ClockTime
Lighting.GlobalShadows = OriginalLighting.GlobalShadows
Lighting.Ambient = OriginalLighting.Ambient
end
end})
LightSec:Toggle({Name = "No Fog", Callback = function(v)
Settings.NoFog = v
if not v then
Lighting.FogEnd = OriginalLighting.FogEnd
Lighting.FogStart = OriginalLighting.FogStart
end
end})
LightSec:Toggle({Name = "Custom Time", Callback = function(v) Settings.CustomTime = v if not v then Lighting.ClockTime = OriginalLighting.ClockTime end end})
LightSec:Slider({Name = "Time of Day", Min = 0, Max = 24, Default = 14, Increment = 0.5, Callback = function(v) Settings.TimeValue = v end})
LightSec:Label("Ambient Color"):Colorpicker({Default = Settings.AmbientColor, Callback = function(v) Settings.AmbientColor = v end})
-- ── PARTICLES ──
local PartSec = WorldPage:Section({Name = "Character Particles"})
PartSec:Toggle({Name = "Sparkles", Callback = function(v) Settings.SparklesEnabled = v
if not v then pcall(function() for _,obj in pairs(Player.Character:GetChildren()) do if obj.Name == "FlickSparkle" then obj:Destroy() end end end) end
end})
PartSec:Label("Sparkle Color"):Colorpicker({Default = Settings.SparkleColor, Callback = function(v) Settings.SparkleColor = v end})
PartSec:Toggle({Name = "Fire", Callback = function(v) Settings.FireEnabled = v
if not v then pcall(function() for _,obj in pairs(Player.Character:GetChildren()) do if obj.Name == "FlickFire" then obj:Destroy() end end end) end
end})
PartSec:Slider({Name = "Fire Size", Min = 1, Max = 20, Default = 5, Callback = function(v) Settings.FireSize = v end})
PartSec:Label("Fire Color"):Colorpicker({Default = Settings.FireColor, Callback = function(v) Settings.FireColor = v end})
PartSec:Toggle({Name = "Smoke", Callback = function(v) Settings.SmokeEnabled = v
if not v then pcall(function() for _,obj in pairs(Player.Character:GetChildren()) do if obj.Name == "FlickSmoke" then obj:Destroy() end end end) end
end})
PartSec:Slider({Name = "Smoke Opacity", Min = 0.1, Max = 1, Default = 0.3, Increment = 0.1, Callback = function(v) Settings.SmokeOpacity = v end})
PartSec:Label("Smoke Color"):Colorpicker({Default = Settings.SmokeColor, Callback = function(v) Settings.SmokeColor = v end})
local PartSec2 = WorldPage:Section({Name = "Advanced Particles"})
PartSec2:Toggle({Name = "Particle Emitter", Callback = function(v) Settings.ParticlesEnabled = v
if not v then pcall(function() for _,obj in pairs(Player.Character:GetDescendants()) do if obj.Name == "FlickParticle" then obj:Destroy() end end end) end
end})
PartSec2:Toggle({Name = "Rainbow Particles", Callback = function(v) Settings.RainbowParticles = v end})
PartSec2:Slider({Name = "Rate", Min = 5, Max = 100, Default = 30, Callback = function(v) Settings.ParticleRate = v end})
PartSec2:Slider({Name = "Speed", Min = 1, Max = 20, Default = 3, Callback = function(v) Settings.ParticleSpeed = v end})
PartSec2:Slider({Name = "Size", Min = 0.2, Max = 3, Default = 0.5, Increment = 0.1, Callback = function(v) Settings.ParticleSize = v end})
PartSec2:Label("Particle Color"):Colorpicker({Default = Settings.ParticleColor, Callback = function(v) Settings.ParticleColor = v end})
PartSec2:Toggle({Name = "Character Trail", Callback = function(v) Settings.TrailEnabled = v
if not v then pcall(function() for _,obj in pairs(Player.Character:GetDescendants()) do if obj.Name == "FlickTrail" or obj.Name == "FlickTrailA" then obj:Destroy() end end end) end
end})
PartSec2:Slider({Name = "Trail Lifetime", Min = 0.1, Max = 3, Default = 0.5, Increment = 0.1, Callback = function(v) Settings.TrailLifetime = v end})
PartSec2:Label("Trail Color"):Colorpicker({Default = Settings.TrailColor, Callback = function(v) Settings.TrailColor = v end})
PartSec2:Toggle({Name = "Aura Effect", Callback = function(v) Settings.AuraEnabled = v
if not v then pcall(function() for _,obj in pairs(Player.Character:GetDescendants()) do if obj.Name == "FlickAura" then obj:Destroy() end end end) end
end})
PartSec2:Label("Aura Color"):Colorpicker({Default = Settings.AuraColor, Callback = function(v) Settings.AuraColor = v end})
-- ══════════════════════════════════════════
-- PAGE 4: MOVEMENT
-- ══════════════════════════════════════════
local MovePage = Window:Page({Name = "Movement"})
local SpeedSec = MovePage:Section({Name = "Speed"})
SpeedSec:Toggle({Name = "Speed Hack", Callback = function(v) Settings.SpeedEnabled = v
if not v then pcall(function() local h = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid") if h then h.WalkSpeed = 16 end end) end
end})
SpeedSec:Slider({Name = "Walk Speed", Min = 16, Max = 200, Default = 32, Callback = function(v) Settings.SpeedValue = v end})
local JumpSec = MovePage:Section({Name = "Jump"})
JumpSec:Toggle({Name = "Custom Jump Power", Callback = function(v) Settings.JumpPower = v
if not v then pcall(function() local h = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid") if h then h.JumpPower = 50 end end) end
end})
JumpSec:Slider({Name = "Jump Power", Min = 50, Max = 300, Default = 50, Callback = function(v) Settings.JumpValue = v end})
JumpSec:Toggle({Name = "Infinite Jump", Callback = function(v) Settings.InfJumpEnabled = v end})
local FlySec = MovePage:Section({Name = "Fly & Noclip"})
FlySec:Toggle({Name = "Fly (Space + WASD)", Callback = function(v) Settings.FlyEnabled = v
if not v then pcall(function() local hrp = Player.Character:FindFirstChild("HumanoidRootPart")
for _, obj in pairs(hrp:GetChildren()) do if obj.Name == "FlickBP" or obj.Name == "FlickBG" then obj:Destroy() end end
end) end
end})
FlySec:Slider({Name = "Fly Speed", Min = 10, Max = 200, Default = 50, Callback = function(v) Settings.FlySpeed = v end})
FlySec:Toggle({Name = "Noclip", Callback = function(v) Settings.NoclipEnabled = v end})
local BHopSec = MovePage:Section({Name = "BunnyHop"})
BHopSec:Toggle({Name = "BunnyHop (Space)", Callback = function(v) Settings.BHopEnabled = v end})
-- ══════════════════════════════════════════
-- PAGE 5: MISC
-- ══════════════════════════════════════════
local MiscPage = Window:Page({Name = "Misc"})
local UtilSec = MiscPage:Section({Name = "Utility"})
UtilSec:Toggle({Name = "Anti-AFK", Default = true, Callback = function(v) Settings.AntiAFK = v end})
UtilSec:Toggle({Name = "Click TP (Ctrl+Click)", Callback = function(v) Settings.ClickTP = v end})
UtilSec:Button({Name = "Rejoin Server", Callback = function() pcall(function() TeleportService:Teleport(game.PlaceId, Player) end) end})
UtilSec:Button({Name = "Server Hop", Callback = function()
pcall(function()
local data = HttpService:JSONDecode(game:HttpGet("https://games.roblox.com/v1/games/"..game.PlaceId.."/servers/Public?sortOrder=Asc&limit=100"))
for _, s in pairs(data.data) do
if s.id ~= game.JobId then TeleportService:TeleportToPlaceInstance(game.PlaceId, s.id, Player) break end
end
end)
end})
UtilSec:Button({Name = "Copy Place ID", Callback = function() pcall(function() setclipboard(tostring(game.PlaceId)) end) end})
UtilSec:Button({Name = "Reset Character", Callback = function() pcall(function() Player.Character:FindFirstChildOfClass("Humanoid").Health = 0 end) end})
-- ── HUD ──
local HUDSec = MiscPage:Section({Name = "HUD (On-Screen)"})
HUDSec:Toggle({Name = "Enable HUD", Default = true, Callback = function(v) Settings.HUDEnabled = v end})
HUDSec:Toggle({Name = "Watermark", Default = true, Callback = function(v) Settings.HUDWatermark = v end})
HUDSec:Toggle({Name = "FPS Counter", Default = true, Callback = function(v) Settings.HUDFPS = v end})
HUDSec:Toggle({Name = "Health Bar", Default = true, Callback = function(v) Settings.HUDHealth = v end})
HUDSec:Toggle({Name = "Speed Display", Default = true, Callback = function(v) Settings.HUDSpeed = v end})
HUDSec:Toggle({Name = "Coordinates", Default = true, Callback = function(v) Settings.HUDCoords = v end})
HUDSec:Toggle({Name = "Target Info", Default = true, Callback = function(v) Settings.HUDTarget = v end})
HUDSec:Toggle({Name = "Player Count", Default = true, Callback = function(v) Settings.HUDPlayers = v end})
HUDSec:Label("HUD Accent Color"):Colorpicker({Default = Settings.HUDColor, Callback = function(v) Settings.HUDColor = v end})
local KeybindSec = MiscPage:Section({Name = "Keybinds"})
KeybindSec:Label("Нажми кнопку и потом назначь клавишу")
KeybindSec:Keybind({Name = "Toggle Aimbot", Default = Enum.KeyCode.Unknown, Callback = function(v) Settings.KeybindAimbot = v end})
KeybindSec:Keybind({Name = "Toggle Speed", Default = Enum.KeyCode.Unknown, Callback = function(v) Settings.KeybindSpeed = v end})
KeybindSec:Keybind({Name = "Toggle Fly", Default = Enum.KeyCode.Unknown, Callback = function(v) Settings.KeybindFly = v end})
KeybindSec:Keybind({Name = "Toggle Noclip", Default = Enum.KeyCode.Unknown, Callback = function(v) Settings.KeybindNoclip = v end})
KeybindSec:Keybind({Name = "Toggle Radar", Default = Enum.KeyCode.Unknown, Callback = function(v) Settings.KeybindRadar = v end})
KeybindSec:Keybind({Name = "Panic Key (выкл всё)", Default = Enum.KeyCode.Delete, Callback = function(v) Settings.PanicKey = v end})
local InfoSec = MiscPage:Section({Name = "Info"})
InfoSec:Label("Player: " .. Player.DisplayName .. " (@" .. Player.Name .. ")")
InfoSec:Label("UserID: " .. Player.UserId)
InfoSec:Label("PlaceID: " .. game.PlaceId)
InfoSec:Label("Executor: Velocity 0.8.0")
InfoSec:Label("Script: FlickSpeed v3.5")
-- ══════════════════════════════════════════
-- PAGE 6: CONFIGS
-- ══════════════════════════════════════════
local ConfigPage = Window:Page({Name = "Configs"})
-- Переменная для хранения текущего выбранного конфига
local selectedConfig = "default"
-- ── Менеджер конфигов ──
local CfgSec = ConfigPage:Section({Name = "Config Manager"})
-- Поле для ввода имени конфига (через Label + кнопки)
-- Дропдаун со списком конфигов
local configDropdown
local function RefreshDropdown()
local list = ConfigSystem:GetList()
if configDropdown then
configDropdown:Refresh(list, true)
end
end
configDropdown = CfgSec:Dropdown({
Name = "Select Config",
Default = selectedConfig,
Options = ConfigSystem:GetList(),
Callback = function(v)
selectedConfig = v
end
})
-- Текстбокс для имени нового конфига
local newConfigName = "myconfig"
CfgSec:Textbox({
Name = "Config Name",
Default = "myconfig",
Placeholder = "Введи имя конфига...",
Callback = function(v)
if v and v ~= "" then
newConfigName = v
end
end
})
-- ── Сохранение / Загрузка / Удаление ──
local CfgBtnSec = ConfigPage:Section({Name = "Actions"})
CfgBtnSec:Button({Name = "💾 Save Config", Callback = function()
local name = newConfigName ~= "" and newConfigName or selectedConfig
local ok = pcall(function() ConfigSystem:Save(name) end)
if ok then
RefreshDropdown()
-- Уведомление
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Конфиг сохранён: " .. name,
Duration = 3,
})
end
print("[FlickSpeed] Конфиг сохранён: " .. name)
else
warn("[FlickSpeed] Ошибка сохранения конфига!")
end
end})
CfgBtnSec:Button({Name = "📂 Load Config", Callback = function()
local ok = pcall(function() ConfigSystem:Load(selectedConfig) end)
if ok then
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Конфиг загружен: " .. selectedConfig,
Duration = 3,
})
end
print("[FlickSpeed] Конфиг загружен: " .. selectedConfig)
else
warn("[FlickSpeed] Ошибка загрузки конфига: " .. selectedConfig)
end
end})
CfgBtnSec:Button({Name = "🗑️ Delete Config", Callback = function()
if selectedConfig == "default" or selectedConfig == "autosave" then
warn("[FlickSpeed] Нельзя удалить системный конфиг!")
return
end
local deleted = pcall(function() ConfigSystem:Delete(selectedConfig) end)
if deleted then
RefreshDropdown()
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Конфиг удалён: " .. selectedConfig,
Duration = 3,
})
end
print("[FlickSpeed] Конфиг удалён: " .. selectedConfig)
end
end})
CfgBtnSec:Button({Name = "🔄 Refresh List", Callback = function()
RefreshDropdown()
print("[FlickSpeed] Список конфигов обновлён.")
end})
-- ── Быстрые пресеты ──
local PresetSec = ConfigPage:Section({Name = "Quick Presets"})
-- Пресет: Rage (агрессивные настройки)
PresetSec:Button({Name = "🔴 Preset: Rage", Callback = function()
Settings.Enabled = true
Settings.SilentAim = true
Settings.FOV = 500
Settings.HitPart = "Head"
Settings.ShotDelay = 0
Settings.WallCheck = false
Settings.TeamCheck = true
Settings.Prediction = true
Settings.PredictionAmount = 0.2
Settings.Smoothing = false
Settings.AutoFire = true
Settings.TriggerBot = true
Settings.TriggerDelay = 0
Settings.HitboxSink = true
Settings.HitboxSinkDepth = 25
-- ESP
Settings.Boxes = true
Settings.Names = true
Settings.Distance = true
Settings.Tracers = true
Settings.HealthBar = true
Settings.ChamsEnabled = true
Settings.GlowEnabled = true
Settings.RainbowGlow = true
-- HUD
Settings.HUDEnabled = true
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Пресет: Rage загружен!",
Duration = 3,
})
end
print("[FlickSpeed] Пресет Rage применён.")
end})
-- Пресет: Legit (легит настройки)
PresetSec:Button({Name = "🟢 Preset: Legit", Callback = function()
Settings.Enabled = true
Settings.SilentAim = false
Settings.FOV = 80
Settings.HitPart = "Head"
Settings.ShotDelay = 0.05
Settings.WallCheck = true
Settings.TeamCheck = true
Settings.Prediction = true
Settings.PredictionAmount = 0.1
Settings.Smoothing = true
Settings.SmoothFactor = 8
Settings.AutoFire = false
Settings.TriggerBot = false
Settings.HitboxSink = false
Settings.HitboxDesync = false
-- ESP (минимальное)
Settings.Boxes = false
Settings.Names = true
Settings.Distance = true
Settings.Tracers = false
Settings.HealthBar = true
Settings.ChamsEnabled = false
Settings.GlowEnabled = false
-- HUD
Settings.HUDEnabled = true
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Пресет: Legit загружен!",
Duration = 3,
})
end
print("[FlickSpeed] Пресет Legit применён.")
end})
-- Пресет: Visual Only (только визуалы)
PresetSec:Button({Name = "🟣 Preset: Visual", Callback = function()
Settings.Enabled = false
Settings.Boxes = true
Settings.Names = true
Settings.Distance = true
Settings.Tracers = true
Settings.HealthBar = true
Settings.SkeletonESP = true
Settings.ChamsEnabled = true
Settings.GlowEnabled = true
Settings.CrosshairEnabled = true
Settings.HUDEnabled = true
Settings.Fullbright = true
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Пресет: Visual загружен!",
Duration = 3,
})
end
print("[FlickSpeed] Пресет Visual применён.")
end})
-- Пресет: Reset (сброс всего)
PresetSec:Button({Name = "⚪ Reset All", Callback = function()
Settings.Enabled = false
Settings.SilentAim = true
Settings.FOV = 150
Settings.HitPart = "Head"
Settings.ShotDelay = 0.01
Settings.WallCheck = false
Settings.TeamCheck = false
Settings.Smoothing = false
Settings.SmoothFactor = 5
Settings.Prediction = false
Settings.PredictionAmount = 0.13
Settings.AutoFire = false
Settings.TriggerBot = false
Settings.TriggerDelay = 0.05
Settings.HitboxSink = false
Settings.HitboxSinkDepth = 15
Settings.HitboxDesync = false
Settings.HitboxDesyncOffset = 10
Settings.Boxes = false
Settings.Names = false
Settings.Distance = false
Settings.Tracers = false
Settings.HealthBar = false
Settings.SkeletonESP = false
Settings.ChamsEnabled = false
Settings.GlowEnabled = false
Settings.RainbowGlow = false
Settings.CrosshairEnabled = false
Settings.ShowFOV = true
Settings.Fullbright = false
Settings.NoFog = false
Settings.CustomTime = false
Settings.SpeedEnabled = false
Settings.FlyEnabled = false
Settings.NoclipEnabled = false
Settings.InfJumpEnabled = false
Settings.JumpPower = false
Settings.SparklesEnabled = false
Settings.FireEnabled = false
Settings.SmokeEnabled = false
Settings.ParticlesEnabled = false
Settings.TrailEnabled = false
Settings.AuraEnabled = false
Settings.ClickTP = false
Settings.HUDEnabled = true
-- Восстановить Lighting
Lighting.Brightness = OriginalLighting.Brightness
Lighting.ClockTime = OriginalLighting.ClockTime
Lighting.FogEnd = OriginalLighting.FogEnd
Lighting.FogStart = OriginalLighting.FogStart
Lighting.GlobalShadows = OriginalLighting.GlobalShadows
Lighting.Ambient = OriginalLighting.Ambient
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Все настройки сброшены!",
Duration = 3,
})
end
print("[FlickSpeed] Настройки сброшены.")
end})
-- ── Автозагрузка при старте ──
local AutoloadSec = ConfigPage:Section({Name = "Autoload"})
AutoloadSec:Label("Автосохранение при выходе: ON")
AutoloadSec:Button({Name = "📥 Load Autosave", Callback = function()
local ok = pcall(function() ConfigSystem:Load("autosave") end)
if ok then
print("[FlickSpeed] Автосохранение загружено.")
if Settings.Notifications then
game:GetService("StarterGui"):SetCore("SendNotification", {
Title = "FlickSpeed",
Text = "Автосохранение загружено!",
Duration = 3,
})
end
else
warn("[FlickSpeed] Автосохранение не найдено.")
end
end})
-- ══════════════════════════════════════════
-- DRAWING OBJECTS
-- ══════════════════════════════════════════
local FOVCircle = Drawing.new("Circle")
FOVCircle.Thickness = 1; FOVCircle.Filled = false; FOVCircle.NumSides = 64
local TargetLine = Drawing.new("Line")
TargetLine.Thickness = 1.5
local TargetCircle = Drawing.new("Circle")
TargetCircle.Thickness = 1.5; TargetCircle.Filled = false; TargetCircle.Radius = 15
-- Crosshair lines
local CrossLines = {}
for i = 1, 4 do
CrossLines[i] = Drawing.new("Line")
CrossLines[i].Thickness = 1; CrossLines[i].Visible = false
end
local CrossDot = Drawing.new("Circle")
CrossDot.Filled = true; CrossDot.Radius = 2; CrossDot.Visible = false
-- Hit Marker drawings (4 lines)
local HitMarkerLines = {}
for i = 1, 4 do
HitMarkerLines[i] = Drawing.new("Line")
HitMarkerLines[i].Thickness = 1.5
HitMarkerLines[i].Visible = false
end
local hitMarkerTimer = 0
local hitMarkerActive = false
-- Off-Screen Arrow pool (max 20 players)
local ArrowPool = {}
for i = 1, 20 do
ArrowPool[i] = {
tri = Drawing.new("Triangle"),
}
ArrowPool[i].tri.Filled = true
ArrowPool[i].tri.Visible = false
end
-- Radar drawings
local RadarBG = Drawing.new("Square")
RadarBG.Filled = true; RadarBG.Transparency = 0.4; RadarBG.Visible = false
local RadarBorder = Drawing.new("Square")
RadarBorder.Filled = false; RadarBorder.Thickness = 1.5; RadarBorder.Visible = false
local RadarSelfDot = Drawing.new("Circle")
RadarSelfDot.Filled = true; RadarSelfDot.Radius = 4; RadarSelfDot.Visible = false
local RadarLabel = Drawing.new("Text")
RadarLabel.Size = 12; RadarLabel.Text = "RADAR"; RadarLabel.Outline = true; RadarLabel.Visible = false
-- Radar enemy dots pool
local RadarDots = {}
for i = 1, 20 do
RadarDots[i] = Drawing.new("Circle")
RadarDots[i].Filled = true; RadarDots[i].Radius = 3; RadarDots[i].Visible = false
end
-- ESP Cache
local ESPCache = {}
local CurrentTarget = nil
local Connections = {}
local function GetESP(plr)
if not ESPCache[plr] then
local e = {
Box = Drawing.new("Square"),
BoxOutline = Drawing.new("Square"),
Name = Drawing.new("Text"),
Distance = Drawing.new("Text"),
Tracer = Drawing.new("Line"),
HealthBarBG = Drawing.new("Square"),
HealthBar = Drawing.new("Square"),
Skeleton = {},
}
e.Box.Thickness = 1; e.Box.Filled = false
e.BoxOutline.Thickness = 3; e.BoxOutline.Filled = false; e.BoxOutline.Color = Color3.new(0, 0, 0)
e.Name.Center = true; e.Name.Size = 14; e.Name.Outline = true
e.Distance.Center = true; e.Distance.Size = 13; e.Distance.Outline = true
e.Tracer.Thickness = 1
e.HealthBarBG.Filled = true; e.HealthBarBG.Color = Color3.new(0, 0, 0)
e.HealthBar.Filled = true
for i = 1, 5 do e.Skeleton[i] = Drawing.new("Line"); e.Skeleton[i].Thickness = 1.5 end
ESPCache[plr] = e
end
return ESPCache[plr]
end
Players.PlayerRemoving:Connect(function(plr)
if ESPCache[plr] then
for _, v in pairs(ESPCache[plr]) do
if type(v) == "table" then
for _, line in pairs(v) do pcall(function() line:Remove() end) end
else pcall(function() v:Remove() end) end
end
ESPCache[plr] = nil
end
end)
-- ══════════════════════════════════════════
-- CORE FUNCTIONS
-- ══════════════════════════════════════════
local function IsVisible(targetPart)
if not Settings.WallCheck then return true end
local params = RaycastParams.new()
params.FilterDescendantsInstances = {Camera, Player.Character}
params.FilterType = Enum.RaycastFilterType.Exclude
params.IgnoreWater = true
local cast = workspace:Raycast(Camera.CFrame.Position, targetPart.Position - Camera.CFrame.Position, params)
if cast and cast.Instance then return cast.Instance:IsDescendantOf(targetPart.Parent) end
return true
end
local function IsEnemy(plr)
if not Settings.TeamCheck then return true end
return plr.Team ~= Player.Team
end
local function UpdateTarget()
local target, dist = nil, Settings.FOV
local mouse = UIS:GetMouseLocation()
for _, p in pairs(Players:GetPlayers()) do
if p ~= Player and p.Character and IsEnemy(p) then
local part = p.Character:FindFirstChild(Settings.HitPart)
local hum = p.Character:FindFirstChildOfClass("Humanoid")
if part and hum and hum.Health > 0 then
local pos, vis = Camera:WorldToViewportPoint(part.Position)
if vis then
local mDist = (Vector2.new(pos.X, pos.Y) - mouse).Magnitude
if mDist < dist and IsVisible(part) then
dist = mDist; target = part
end
end
end
end
end
return target
end
-- ══════════════════════════════════════════
-- AIMBOT INPUT
-- ══════════════════════════════════════════
UIS.InputBegan:Connect(function(input, proc)
if proc or not Settings.Enabled then return end
if input.UserInputType == Enum.UserInputType.MouseButton1 and Settings.SilentAim then
if CurrentTarget then
local targetPos = CurrentTarget.Position
if Settings.Prediction then
local vel = CurrentTarget.AssemblyLinearVelocity or CurrentTarget.Velocity or Vector3.new()
targetPos = targetPos + vel * Settings.PredictionAmount
end
local oldCF = Camera.CFrame
Camera.CFrame = CFrame.new(Camera.CFrame.Position, targetPos)
task.wait(Settings.ShotDelay)
Camera.CFrame = oldCF
end
end
if Settings.ClickTP and input.UserInputType == Enum.UserInputType.MouseButton1 and UIS:IsKeyDown(Enum.KeyCode.LeftControl) then
pcall(function()
local mouse = Player:GetMouse()
if mouse.Target then
Player.Character.HumanoidRootPart.CFrame = CFrame.new(mouse.Hit.Position + Vector3.new(0, 3, 0))
end
end)
end
end)
UIS.JumpRequest:Connect(function()
if Settings.InfJumpEnabled then
pcall(function() Player.Character:FindFirstChildOfClass("Humanoid"):ChangeState(Enum.HumanoidStateType.Jumping) end)
end
end)
Player.Idled:Connect(function()
if Settings.AntiAFK then
pcall(function()
local VU = game:GetService("VirtualUser")
VU:Button2Down(Vector2.new(), workspace.CurrentCamera.CFrame)
task.wait(1)
VU:Button2Up(Vector2.new(), workspace.CurrentCamera.CFrame)
end)
end
end)
-- ══════════════════════════════════════════
-- MAIN RENDER LOOP
-- ══════════════════════════════════════════
RunService.RenderStepped:Connect(function()
Camera = workspace.CurrentCamera
CurrentTarget = UpdateTarget()
local RGB = Color3.fromHSV(tick() % 5 / 5, 1, 1)
local VP = Camera.ViewportSize
local center = Vector2.new(VP.X / 2, VP.Y / 2)
local mousePos = UIS:GetMouseLocation()
FOVCircle.Visible = Settings.Enabled and Settings.ShowFOV
FOVCircle.Radius = Settings.FOV
FOVCircle.Position = mousePos
FOVCircle.Color = Settings.FOVColor
if CurrentTarget and Settings.Enabled then
local pos, vis = Camera:WorldToViewportPoint(CurrentTarget.Position)
if vis then
local tPos = Vector2.new(pos.X, pos.Y)
TargetLine.Visible = Settings.TargetTracer
TargetLine.From = center
TargetLine.To = tPos
TargetLine.Color = Settings.TargetColor
TargetCircle.Visible = Settings.TargetESP
TargetCircle.Position = tPos
TargetCircle.Color = Settings.TargetColor
else TargetLine.Visible = false; TargetCircle.Visible = false end
else TargetLine.Visible = false; TargetCircle.Visible = false end
if Settings.Smoothing and Settings.Enabled and CurrentTarget then
local targetPos = CurrentTarget.Position
if Settings.Prediction then
local vel = CurrentTarget.AssemblyLinearVelocity or CurrentTarget.Velocity or Vector3.new()
targetPos = targetPos + vel * Settings.PredictionAmount
end
local targetCF = CFrame.new(Camera.CFrame.Position, targetPos)
Camera.CFrame = Camera.CFrame:Lerp(targetCF, 1 / Settings.SmoothFactor)
end
if Settings.AutoFire and Settings.Enabled and CurrentTarget then
task.spawn(function()
pcall(function()
local pos, vis = Camera:WorldToViewportPoint(CurrentTarget.Position)
if vis and (Vector2.new(pos.X, pos.Y) - mousePos).Magnitude < 15 then
task.wait(Settings.TriggerDelay)
mouse1click()
end
end)
end)
end
-- HITBOX SINK
pcall(function()
local char = Player.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
local hum = char:FindFirstChildOfClass("Humanoid")
if not hrp or not hum then return end
if Settings.HitboxSink then
local depth = Settings.HitboxSinkDepth
if not hrp:FindFirstChild("FlickSinkAnchor") then
local marker = Instance.new("NumberValue")
marker.Name = "FlickSinkAnchor"
marker.Value = hum.HipHeight
marker.Parent = hrp
for _, motor in pairs(char:GetDescendants()) do
if motor:IsA("Motor6D") and motor.Part0 == hrp then
motor:SetAttribute("OrigC0Y", motor.C0.Position.Y)
end
end
end
hum.HipHeight = -depth
for _, motor in pairs(char:GetDescendants()) do
if motor:IsA("Motor6D") and motor.Part0 == hrp then
local origY = motor:GetAttribute("OrigC0Y") or 0
local pos3 = motor.C0.Position
motor.C0 = CFrame.new(pos3.X, origY + depth, pos3.Z) * (motor.C0 - motor.C0.Position)
end
end
elseif hrp:FindFirstChild("FlickSinkAnchor") then
local origHH = hrp:FindFirstChild("FlickSinkAnchor").Value
hum.HipHeight = origHH
for _, motor in pairs(char:GetDescendants()) do
if motor:IsA("Motor6D") and motor.Part0 == hrp then
local origY = motor:GetAttribute("OrigC0Y")
if origY then
local pos3 = motor.C0.Position
motor.C0 = CFrame.new(pos3.X, origY, pos3.Z) * (motor.C0 - motor.C0.Position)
end
end
end
hrp:FindFirstChild("FlickSinkAnchor"):Destroy()
end
if Settings.HitboxDesync and not Settings.HitboxSink then
local offset = Settings.HitboxDesyncOffset
local jitter = math.abs(math.sin(tick() * 15)) * offset
hum.HipHeight = -jitter
elseif not Settings.HitboxSink and not Settings.HitboxDesync then
if hrp:GetAttribute("OrigHipHeight") then
hum.HipHeight = hrp:GetAttribute("OrigHipHeight")
end
end
end)
-- Crosshair
if Settings.CrosshairEnabled then
local sz, gap, clr, thk = Settings.CrosshairSize, Settings.CrosshairGap, Settings.CrosshairColor, Settings.CrosshairThickness
CrossLines[1].Visible = true; CrossLines[1].From = center - Vector2.new(0, gap); CrossLines[1].To = center - Vector2.new(0, gap + sz); CrossLines[1].Color = clr; CrossLines[1].Thickness = thk
CrossLines[2].Visible = true; CrossLines[2].From = center + Vector2.new(0, gap); CrossLines[2].To = center + Vector2.new(0, gap + sz); CrossLines[2].Color = clr; CrossLines[2].Thickness = thk
CrossLines[3].Visible = true; CrossLines[3].From = center - Vector2.new(gap, 0); CrossLines[3].To = center - Vector2.new(gap + sz, 0); CrossLines[3].Color = clr; CrossLines[3].Thickness = thk
CrossLines[4].Visible = true; CrossLines[4].From = center + Vector2.new(gap, 0); CrossLines[4].To = center + Vector2.new(gap + sz, 0); CrossLines[4].Color = clr; CrossLines[4].Thickness = thk
CrossDot.Visible = Settings.DotEnabled; CrossDot.Position = center; CrossDot.Color = clr
else
for i = 1, 4 do CrossLines[i].Visible = false end; CrossDot.Visible = false
end
if Settings.Fullbright then Lighting.Brightness = 2; Lighting.ClockTime = 14; Lighting.GlobalShadows = false; Lighting.Ambient = Settings.AmbientColor end
if Settings.NoFog then Lighting.FogEnd = 999999; Lighting.FogStart = 999999 end
if Settings.CustomTime then Lighting.ClockTime = Settings.TimeValue end
pcall(function()
local char = Player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if hum then
if Settings.SpeedEnabled then hum.WalkSpeed = Settings.SpeedValue end
if Settings.JumpPower then hum.JumpPower = Settings.JumpValue end
end
if Settings.NoclipEnabled and char then
for _, p in pairs(char:GetDescendants()) do
if p:IsA("BasePart") then p.CanCollide = false end
end
end
if Settings.FlyEnabled and hrp then
local bp = hrp:FindFirstChild("FlickBP")
local bg = hrp:FindFirstChild("FlickBG")
if not bp then bp = Instance.new("BodyPosition") bp.Name = "FlickBP" bp.MaxForce = Vector3.new() bp.Parent = hrp end
if not bg then bg = Instance.new("BodyGyro") bg.Name = "FlickBG" bg.MaxTorque = Vector3.new() bg.Parent = hrp end
if UIS:IsKeyDown(Enum.KeyCode.Space) then
bp.MaxForce = Vector3.new(9e4, 9e4, 9e4)
bg.MaxTorque = Vector3.new(9e4, 9e4, 9e4)
bg.CFrame = Camera.CFrame
local md = Vector3.new()
if UIS:IsKeyDown(Enum.KeyCode.W) then md = md + Camera.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.S) then md = md - Camera.CFrame.LookVector end
if UIS:IsKeyDown(Enum.KeyCode.A) then md = md - Camera.CFrame.RightVector end
if UIS:IsKeyDown(Enum.KeyCode.D) then md = md + Camera.CFrame.RightVector end
bp.Position = md.Magnitude > 0 and hrp.Position + md.Unit * (Settings.FlySpeed / 25) or hrp.Position + Vector3.new(0, 0.2, 0)
else bp.MaxForce = Vector3.new(); bg.MaxTorque = Vector3.new() end
end
end)
-- Render players ESP + Chams
for _, p in pairs(Players:GetPlayers()) do
if p ~= Player then
local esp = GetESP(p)
local char = p.Character
if char and char:FindFirstChild("HumanoidRootPart") and char:FindFirstChild("Head") then
local hum = char:FindFirstChildOfClass("Humanoid")
if hum and hum.Health > 0 then
local hl = char:FindFirstChild("FlickHL")
if not hl then hl = Instance.new("Highlight") hl.Name = "FlickHL" hl.Parent = char end
hl.Enabled = Settings.ChamsEnabled or Settings.GlowEnabled
hl.FillColor = Settings.ChamColor
hl.OutlineColor = Settings.RainbowGlow and RGB or Settings.GlowColor
hl.FillTransparency = Settings.ChamsEnabled and Settings.ChamTransparency or 1
hl.OutlineTransparency = Settings.GlowEnabled and 0 or 1
local hrp = char.HumanoidRootPart
local head = char.Head
local pos, vis = Camera:WorldToViewportPoint(hrp.Position)
local headPos = Camera:WorldToViewportPoint(head.Position + Vector3.new(0, 0.5, 0))
local legPos = Camera:WorldToViewportPoint(hrp.Position - Vector3.new(0, 3, 0))
if vis then
local height = math.abs(headPos.Y - legPos.Y)
local width = height / 2
local topLeft = Vector2.new(pos.X - width / 2, headPos.Y)
esp.BoxOutline.Visible = Settings.Boxes
esp.BoxOutline.Size = Vector2.new(width, height)
esp.BoxOutline.Position = topLeft
esp.Box.Visible = Settings.Boxes
esp.Box.Size = Vector2.new(width, height)
esp.Box.Position = topLeft
esp.Box.Color = Settings.BoxColor
esp.Name.Visible = Settings.Names
esp.Name.Text = p.DisplayName
esp.Name.Position = Vector2.new(pos.X, headPos.Y - 18)
esp.Name.Color = Settings.NameColor
esp.Distance.Visible = Settings.Distance
if Player.Character and Player.Character:FindFirstChild("HumanoidRootPart") then
esp.Distance.Text = math.floor((Player.Character.HumanoidRootPart.Position - hrp.Position).Magnitude) .. "m"
end
esp.Distance.Position = Vector2.new(pos.X, legPos.Y + 4)
esp.Distance.Color = Settings.DistanceColor
esp.Tracer.Visible = Settings.Tracers
esp.Tracer.From = Vector2.new(VP.X / 2, VP.Y)
esp.Tracer.To = Vector2.new(pos.X, legPos.Y)
esp.Tracer.Color = Settings.TracerColor
if Settings.HealthBar then
local barW = 3; local barH = height
local barX = topLeft.X - barW - 3
local barY = math.min(headPos.Y, legPos.Y) -- fix: always top of box
local healthPct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
esp.HealthBarBG.Visible = true
esp.HealthBarBG.Position = Vector2.new(barX, barY)
esp.HealthBarBG.Size = Vector2.new(barW, barH)
esp.HealthBar.Visible = true
-- заполняем снизу вверх: пустое сверху, полное снизу
local fillH = barH * healthPct
esp.HealthBar.Position = Vector2.new(barX, barY + (barH - fillH))
esp.HealthBar.Size = Vector2.new(barW, fillH)
esp.HealthBar.Color = Color3.fromRGB(math.floor(255 * (1 - healthPct)), math.floor(255 * healthPct), 0)
else esp.HealthBarBG.Visible = false; esp.HealthBar.Visible = false end
if Settings.SkeletonESP then
local function bonePos(name)
local b = char:FindFirstChild(name)
if b then local p2, v2 = Camera:WorldToViewportPoint(b.Position) if v2 then return Vector2.new(p2.X, p2.Y) end end return nil
end
local headP = bonePos("Head")
local torsoP = bonePos("UpperTorso") or bonePos("Torso") or bonePos("HumanoidRootPart")
local lArmP = bonePos("LeftUpperArm") or bonePos("Left Arm")
local rArmP = bonePos("RightUpperArm") or bonePos("Right Arm")
local lLegP = bonePos("LeftUpperLeg") or bonePos("Left Leg")
local rLegP = bonePos("RightUpperLeg") or bonePos("Right Leg")
local bones = {{headP, torsoP}, {torsoP, lArmP}, {torsoP, rArmP}, {torsoP, lLegP}, {torsoP, rLegP}}
for i = 1, 5 do
if bones[i][1] and bones[i][2] then
esp.Skeleton[i].Visible = true; esp.Skeleton[i].From = bones[i][1]; esp.Skeleton[i].To = bones[i][2]; esp.Skeleton[i].Color = Settings.SkeletonColor
else esp.Skeleton[i].Visible = false end
end
else for i = 1, 5 do esp.Skeleton[i].Visible = false end end
else
esp.Box.Visible = false; esp.BoxOutline.Visible = false; esp.Name.Visible = false
esp.Distance.Visible = false; esp.Tracer.Visible = false
esp.HealthBar.Visible = false; esp.HealthBarBG.Visible = false
for i = 1, 5 do esp.Skeleton[i].Visible = false end
end
else
esp.Box.Visible = false; esp.BoxOutline.Visible = false; esp.Name.Visible = false
esp.Distance.Visible = false; esp.Tracer.Visible = false
esp.HealthBar.Visible = false; esp.HealthBarBG.Visible = false
for i = 1, 5 do esp.Skeleton[i].Visible = false end
if char:FindFirstChild("FlickHL") then char.FlickHL.Enabled = false end
end
else
esp.Box.Visible = false; esp.BoxOutline.Visible = false; esp.Name.Visible = false
esp.Distance.Visible = false; esp.Tracer.Visible = false
esp.HealthBar.Visible = false; esp.HealthBarBG.Visible = false
for i = 1, 5 do esp.Skeleton[i].Visible = false end
end
end
end
-- Hand chams
pcall(function()
if Settings.HandsEnabled then
local view = Camera:FindFirstChild("Viewmodel") or Player.Character
if view then
for _, obj in pairs(view:GetDescendants()) do
if obj:IsA("BasePart") and (obj.Name:lower():find("hand") or obj.Name:lower():find("arm")) then
obj.Color = Settings.HandColor
obj.Material = Settings.HandGlow and Enum.Material.ForceField or Enum.Material.Neon
end
end
end
end
end)
-- PARTICLES
pcall(function()
local char = Player.Character
if not char then return end
local hrp = char:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local RGB = Color3.fromHSV(tick() % 5 / 5, 1, 1)
if Settings.SparklesEnabled then
if not hrp:FindFirstChild("FlickSparkle") then
local s = Instance.new("Sparkles") s.Name = "FlickSparkle" s.Parent = hrp
end
local sp = hrp:FindFirstChild("FlickSparkle")
if sp then sp.SparkleColor = Settings.RainbowParticles and RGB or Settings.SparkleColor; sp.Enabled = true end
end
if Settings.FireEnabled then
if not hrp:FindFirstChild("FlickFire") then
local f = Instance.new("Fire") f.Name = "FlickFire" f.Parent = hrp
end
local fire = hrp:FindFirstChild("FlickFire")
if fire then fire.Size = Settings.FireSize; fire.Color = Settings.FireColor; fire.SecondaryColor = Settings.RainbowParticles and RGB or Settings.FireColor end
end
if Settings.SmokeEnabled then
if not hrp:FindFirstChild("FlickSmoke") then
local sm = Instance.new("Smoke") sm.Name = "FlickSmoke" sm.Parent = hrp
end
local smoke = hrp:FindFirstChild("FlickSmoke")
if smoke then smoke.Opacity = Settings.SmokeOpacity; smoke.Color = Settings.SmokeColor; smoke.Enabled = true end
end
if Settings.ParticlesEnabled then
if not hrp:FindFirstChild("FlickParticle") then
local pe = Instance.new("ParticleEmitter") pe.Name = "FlickParticle"
pe.Texture = Settings.ParticleTexture
pe.LightEmission = 1; pe.LightInfluence = 0
pe.Parent = hrp
end
local pe = hrp:FindFirstChild("FlickParticle")
if pe then
pe.Rate = Settings.ParticleRate
pe.Speed = NumberRange.new(Settings.ParticleSpeed)
pe.Size = NumberSequence.new(Settings.ParticleSize)
pe.Lifetime = NumberRange.new(0.5, 1.5)
local pCol = Settings.RainbowParticles and RGB or Settings.ParticleColor
pe.Color = ColorSequence.new(pCol)
pe.Enabled = true
end
end
if Settings.TrailEnabled then
local head = char:FindFirstChild("Head")
if hrp and head and not hrp:FindFirstChild("FlickTrail") then
local a0 = Instance.new("Attachment") a0.Name = "FlickTrailA" a0.Position = Vector3.new(0, 1, 0) a0.Parent = hrp
local a1 = Instance.new("Attachment") a1.Name = "FlickTrailA" a1.Position = Vector3.new(0, -2, 0) a1.Parent = hrp
local tr = Instance.new("Trail") tr.Name = "FlickTrail"
tr.Attachment0 = a0; tr.Attachment1 = a1
tr.Lifetime = Settings.TrailLifetime; tr.LightEmission = 1
tr.MinLength = 0; tr.FaceCamera = true
tr.Parent = hrp
end
local tr = hrp:FindFirstChild("FlickTrail")
if tr then
tr.Lifetime = Settings.TrailLifetime
local tCol = Settings.RainbowParticles and RGB or Settings.TrailColor
tr.Color = ColorSequence.new(tCol)
tr.Transparency = NumberSequence.new({NumberSequenceKeypoint.new(0, 0), NumberSequenceKeypoint.new(1, 1)})
tr.Enabled = true
end
end
if Settings.AuraEnabled then
if not hrp:FindFirstChild("FlickAura") then
local pe = Instance.new("ParticleEmitter") pe.Name = "FlickAura"
pe.Texture = "rbxassetid://243098098"
pe.Rate = 50; pe.Speed = NumberRange.new(0.5, 2)
pe.Size = NumberSequence.new({NumberSequenceKeypoint.new(0, 1.5), NumberSequenceKeypoint.new(1, 0)})
pe.Lifetime = NumberRange.new(0.5, 1); pe.LightEmission = 1; pe.LightInfluence = 0
pe.SpreadAngle = Vector2.new(180, 180)
pe.Parent = hrp
end
local aura = hrp:FindFirstChild("FlickAura")
if aura then aura.Color = ColorSequence.new(Settings.RainbowParticles and RGB or Settings.AuraColor); aura.Enabled = true end
end
end)
end)
-- ══════════════════════════════════════════
-- HUD (Drawing API)
-- ══════════════════════════════════════════
local HUD = {}
HUD.WatermarkBG = Drawing.new("Square"); HUD.WatermarkBG.Filled = true; HUD.WatermarkBG.Color = Color3.fromRGB(15, 15, 20); HUD.WatermarkBG.Transparency = 0.15
HUD.WatermarkAccent = Drawing.new("Line"); HUD.WatermarkAccent.Thickness = 2
HUD.WatermarkText = Drawing.new("Text"); HUD.WatermarkText.Size = 14; HUD.WatermarkText.Font = Drawing.Fonts.Plex; HUD.WatermarkText.Outline = true
local HUDLines = {}
for i = 1, 6 do
HUDLines[i] = Drawing.new("Text")
HUDLines[i].Size = 13; HUDLines[i].Font = Drawing.Fonts.Plex; HUDLines[i].Outline = true; HUDLines[i].Visible = false
end
HUD.HealthBG = Drawing.new("Square"); HUD.HealthBG.Filled = true; HUD.HealthBG.Color = Color3.fromRGB(20, 20, 25); HUD.HealthBG.Transparency = 0.2
HUD.HealthFill = Drawing.new("Square"); HUD.HealthFill.Filled = true
HUD.HealthText = Drawing.new("Text"); HUD.HealthText.Size = 12; HUD.HealthText.Font = Drawing.Fonts.Plex; HUD.HealthText.Outline = true; HUD.HealthText.Center = true
local fpsValues = {}; local lastFPS = 60
RunService.RenderStepped:Connect(function(dt)
table.insert(fpsValues, 1/dt)
if #fpsValues > 30 then table.remove(fpsValues, 1) end
local sum = 0; for _, v in pairs(fpsValues) do sum = sum + v end
lastFPS = math.floor(sum / #fpsValues)
if not Settings.HUDEnabled then
HUD.WatermarkBG.Visible = false; HUD.WatermarkAccent.Visible = false; HUD.WatermarkText.Visible = false
HUD.HealthBG.Visible = false; HUD.HealthFill.Visible = false; HUD.HealthText.Visible = false
for i = 1, 6 do HUDLines[i].Visible = false end
return
end
local VP = workspace.CurrentCamera.ViewportSize
local accentCol = Settings.HUDColor
if Settings.HUDWatermark then
local wmText = "FlickSpeed v3.5"
if Settings.HUDFPS then wmText = wmText .. " | " .. lastFPS .. " FPS" end
wmText = wmText .. " | " .. Player.DisplayName
local wmW = #wmText * 7.5 + 20
HUD.WatermarkBG.Visible = true
HUD.WatermarkBG.Position = Vector2.new(VP.X - wmW - 12, 8)
HUD.WatermarkBG.Size = Vector2.new(wmW, 26)
HUD.WatermarkAccent.Visible = true
HUD.WatermarkAccent.From = Vector2.new(VP.X - wmW - 12, 8)
HUD.WatermarkAccent.To = Vector2.new(VP.X - 12, 8)
HUD.WatermarkAccent.Color = accentCol
HUD.WatermarkText.Visible = true
HUD.WatermarkText.Position = Vector2.new(VP.X - wmW - 2, 12)
HUD.WatermarkText.Text = wmText
HUD.WatermarkText.Color = Color3.fromRGB(230, 230, 240)
else
HUD.WatermarkBG.Visible = false; HUD.WatermarkAccent.Visible = false; HUD.WatermarkText.Visible = false
end
local infoLines = {}
pcall(function()
local char = Player.Character
local hum = char and char:FindFirstChildOfClass("Humanoid")
local hrp = char and char:FindFirstChild("HumanoidRootPart")
if Settings.HUDSpeed and hum then table.insert(infoLines, "⚡ Speed: " .. math.floor(hum.WalkSpeed)) end
if Settings.HUDCoords and hrp then
local p = hrp.Position
table.insert(infoLines, "📍 " .. string.format("X:%.0f Y:%.0f Z:%.0f", p.X, p.Y, p.Z))
end
if Settings.HUDTarget and CurrentTarget then
table.insert(infoLines, "🎯 Target: " .. (CurrentTarget.Parent and CurrentTarget.Parent.Name or "?"))
end
if Settings.HUDPlayers then
table.insert(infoLines, "👥 Players: " .. #Players:GetPlayers() .. "/" .. Players.MaxPlayers)
end
end)
for i = 1, 6 do
if i <= #infoLines then
HUDLines[i].Visible = true
HUDLines[i].Position = Vector2.new(12, VP.Y - 30 - (#infoLines - i) * 18)
HUDLines[i].Text = infoLines[i]
HUDLines[i].Color = Color3.fromRGB(220, 220, 230)
else
HUDLines[i].Visible = false
end
end
if Settings.HUDHealth then
pcall(function()
local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid")
if hum then
local barW = 200; local barH = 6
local barX = VP.X / 2 - barW / 2; local barY = VP.Y - 20
local pct = math.clamp(hum.Health / hum.MaxHealth, 0, 1)
HUD.HealthBG.Visible = true; HUD.HealthBG.Position = Vector2.new(barX - 1, barY - 1); HUD.HealthBG.Size = Vector2.new(barW + 2, barH + 2)
HUD.HealthFill.Visible = true; HUD.HealthFill.Position = Vector2.new(barX, barY); HUD.HealthFill.Size = Vector2.new(barW * pct, barH)
HUD.HealthFill.Color = Color3.fromRGB(255 * (1 - pct), 255 * pct, 0)
HUD.HealthText.Visible = true; HUD.HealthText.Position = Vector2.new(VP.X / 2, barY - 16)
HUD.HealthText.Text = math.floor(hum.Health) .. " / " .. math.floor(hum.MaxHealth) .. " HP"
HUD.HealthText.Color = Color3.fromRGB(230, 230, 240)
else
HUD.HealthBG.Visible = false; HUD.HealthFill.Visible = false; HUD.HealthText.Visible = false
end
end)
else HUD.HealthBG.Visible = false; HUD.HealthFill.Visible = false; HUD.HealthText.Visible = false end
end)
-- ══════════════════════════════════════════
-- DRAWING: HIT CHAMS POOL
-- ══════════════════════════════════════════
local HitChamsPool = {}
for i = 1, 30 do
HitChamsPool[i] = {
line = Drawing.new("Line"),
circle = Drawing.new("Circle"),
timer = 0,
active = false,
fromPos = Vector2.new(),
toPos = Vector2.new(),
hitPos = Vector2.new(),
}
HitChamsPool[i].line.Visible = false
HitChamsPool[i].line.Thickness = 1.5
HitChamsPool[i].circle.Visible = false
HitChamsPool[i].circle.Filled = false
HitChamsPool[i].circle.Thickness = 1.5
HitChamsPool[i].circle.Radius = 8
end
local function SpawnHitChams(fromScreen, toScreen)
for _, hc in pairs(HitChamsPool) do
if not hc.active then
hc.active = true
hc.timer = tick()
hc.fromPos = fromScreen
hc.toPos = toScreen
hc.hitPos = toScreen
break
end
end
end
-- ══════════════════════════════════════════
-- 3D HIT CHAMS SYSTEM
-- ══════════════════════════════════════════
local HitChams3DActive = {} -- {target=char, timer=tick(), prevHP=n}
local function Spawn3DHitChams(targetChar, damageDone)
if not Settings.HitChams3D then return end
local hrp = targetChar:FindFirstChild("HumanoidRootPart")
if not hrp then return end
local dur = Settings.HitChams3DDuration
local col = Settings.HitChams3DColor
-- 1. HIGHLIGHT FLASH — быстрая вспышка Highlight
if Settings.HitChams3DHighlight then
task.spawn(function()
pcall(function()
local hl = Instance.new("Highlight")
hl.FillColor = col
hl.OutlineColor = col
hl.FillTransparency = 0
hl.OutlineTransparency = 0
hl.Parent = targetChar
-- Fade out
local steps = 10
for i = 1, steps do
task.wait(dur / steps)
pcall(function()
hl.FillTransparency = i / steps
hl.OutlineTransparency = i / steps
end)
end
pcall(function() hl:Destroy() end)
end)
end)
end
-- 2. BLOOD PARTICLES — кровяные частицы на месте попадания
if Settings.HitChams3DBlood then
task.spawn(function()
pcall(function()
local pe = Instance.new("ParticleEmitter")
pe.Name = "FlickBlood"
pe.Texture = "rbxassetid://284205403" -- кровяная текстура
pe.Color = ColorSequence.new(col)
pe.LightEmission = 0.3
pe.LightInfluence = 0.5
pe.Rate = 0
pe.Speed = NumberRange.new(8, 20)
pe.Rotation = NumberRange.new(0, 360)
pe.RotSpeed = NumberRange.new(-90, 90)
pe.Size = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.2),
NumberSequenceKeypoint.new(0.5, 0.15),
NumberSequenceKeypoint.new(1, 0)
})
pe.Lifetime = NumberRange.new(0.2, 0.5)
pe.SpreadAngle = Vector2.new(80, 80)
pe.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0),
NumberSequenceKeypoint.new(1, 1)
})
pe.Parent = hrp
pe:Emit(15) -- выпустить 15 частиц разово
task.wait(0.6)
pcall(function() pe:Destroy() end)
end)
end)
end
-- 3. 3D BEAM — луч от нашего HRP до цели через Part+Beam
if Settings.HitChams3DBeam then
task.spawn(function()
pcall(function()
local myHRP = Player.Character and Player.Character:FindFirstChild("HumanoidRootPart")
if not myHRP then return end
local a0 = Instance.new("Attachment")
a0.Position = Vector3.new(0, 0, 0)
a0.Parent = myHRP
local a1 = Instance.new("Attachment")
a1.Position = Vector3.new(0, 0, 0)
a1.Parent = hrp
local beam = Instance.new("Beam")
beam.Attachment0 = a0
beam.Attachment1 = a1
beam.Color = ColorSequence.new(col)
beam.Width0 = 0.15
beam.Width1 = 0.05
beam.LightEmission = 1
beam.LightInfluence = 0
beam.FaceCamera = true
beam.Segments = 1
beam.CurveSize0 = 0
beam.CurveSize1 = 0
beam.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, 0.2),
NumberSequenceKeypoint.new(1, 0.8)
})
beam.Parent = myHRP
-- Fade out по шагам
local steps = 8
for i = 1, steps do
task.wait(dur / steps)
pcall(function()
beam.Transparency = NumberSequence.new({
NumberSequenceKeypoint.new(0, i / steps),
NumberSequenceKeypoint.new(1, 1)
})
end)
end
pcall(function() beam:Destroy(); a0:Destroy(); a1:Destroy() end)
end)
end)
end
-- 4. BILLBOARD -HP над головой
if Settings.HitChams3DBillboard then
task.spawn(function()
pcall(function()
local head = targetChar:FindFirstChild("Head")
if not head then return end
local bb = Instance.new("BillboardGui")
bb.Name = "FlickDmgBB"
bb.AlwaysOnTop = true
bb.Size = UDim2.new(0, 80, 0, 30)
bb.StudsOffset = Vector3.new(
math.random(-10, 10) * 0.1, -- небольшой рандом по X
2 + math.random(0, 10) * 0.1,
0
)
bb.Parent = head
local lbl = Instance.new("TextLabel")
lbl.BackgroundTransparency = 1
lbl.Size = UDim2.new(1, 0, 1, 0)
lbl.Font = Enum.Font.GothamBold
lbl.TextScaled = true
lbl.TextColor3 = col
lbl.TextStrokeTransparency = 0.3
lbl.TextStrokeColor3 = Color3.new(0, 0, 0)
local dmgText = damageDone and ("-" .. math.floor(damageDone)) or "HIT"
lbl.Text = dmgText
lbl.Parent = bb
-- Анимация: плывёт вверх и исчезает
local steps = 15
for i = 1, steps do
task.wait(dur / steps)
pcall(function()
bb.StudsOffset = bb.StudsOffset + Vector3.new(0, 0.12, 0)
lbl.TextTransparency = i / steps
lbl.TextStrokeTransparency = 0.3 + (0.7 * i / steps)
end)
end
pcall(function() bb:Destroy() end)
end)
end)
end
end
-- Слушаем здоровье врагов для 3D Hit Chams
local function Watch3DHitChams(p)
pcall(function()
if p == Player then return end
local char = p.Character
if not char then return end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum then return end
local lastHP = hum.Health
hum.HealthChanged:Connect(function(newHP)
if newHP < lastHP then
local dmg = lastHP - newHP
Spawn3DHitChams(char, dmg)
end
lastHP = newHP
end)
end)
end
-- Подключаем ко всем текущим и будущим игрокам
for _, p in pairs(Players:GetPlayers()) do
Watch3DHitChams(p)
p.CharacterAdded:Connect(function()
task.wait(0.5)
Watch3DHitChams(p)
end)
end
Players.PlayerAdded:Connect(function(p)
p.CharacterAdded:Connect(function()
task.wait(0.5)
Watch3DHitChams(p)
end)
end)
-- ══════════════════════════════════════════
-- KEYBIND TOGGLE LOGIC + PANIC + BHOP
-- ══════════════════════════════════════════
UIS.InputBegan:Connect(function(input, proc)
if proc then return end
local k = input.KeyCode
-- Panic Key
if k == Settings.PanicKey then
Settings.Enabled = false
Settings.ChamsEnabled = false
Settings.GlowEnabled = false
Settings.Boxes = false
Settings.Names = false
Settings.Distance = false
Settings.Tracers = false
Settings.HealthBar = false
Settings.SkeletonESP = false
Settings.SpeedEnabled = false
Settings.FlyEnabled = false
Settings.NoclipEnabled = false
Settings.HitMarker = false
Settings.HitChamsEnabled = false
Settings.ArrowsEnabled = false
Settings.RadarEnabled = false
Settings.CrosshairEnabled = false
Settings.BHopEnabled = false
print("[FlickSpeed] PANIC KEY — всё выключено")
return
end
-- Keybind toggles
if k == Settings.KeybindAimbot and k ~= Enum.KeyCode.Unknown then
Settings.Enabled = not Settings.Enabled
end
if k == Settings.KeybindSpeed and k ~= Enum.KeyCode.Unknown then
Settings.SpeedEnabled = not Settings.SpeedEnabled
end
if k == Settings.KeybindFly and k ~= Enum.KeyCode.Unknown then
Settings.FlyEnabled = not Settings.FlyEnabled
end
if k == Settings.KeybindNoclip and k ~= Enum.KeyCode.Unknown then
Settings.NoclipEnabled = not Settings.NoclipEnabled
end
if k == Settings.KeybindRadar and k ~= Enum.KeyCode.Unknown then
Settings.RadarEnabled = not Settings.RadarEnabled
end
-- Hit Marker + Hit Chams trigger on LMB
if input.UserInputType == Enum.UserInputType.MouseButton1 then
if CurrentTarget then
local pos, vis = Camera:WorldToViewportPoint(CurrentTarget.Position)
if vis then
local mousePos = UIS:GetMouseLocation()
local screenTarget = Vector2.new(pos.X, pos.Y)
if (screenTarget - mousePos).Magnitude < Settings.FOV then
-- Hit Marker
if Settings.HitMarker then
hitMarkerActive = true
hitMarkerTimer = tick()
end
-- Hit Chams
if Settings.HitChamsEnabled then
local VP2 = Camera.ViewportSize
local fromScr = Vector2.new(VP2.X / 2, VP2.Y / 2)
SpawnHitChams(fromScr, screenTarget)
end
end
end
end
end
end)
-- BunnyHop
UIS.JumpRequest:Connect(function()
if Settings.BHopEnabled then
pcall(function()
local hum = Player.Character and Player.Character:FindFirstChildOfClass("Humanoid")
if hum and hum:GetState() == Enum.HumanoidStateType.Landed then
hum:ChangeState(Enum.HumanoidStateType.Jumping)
end
end)
end
end)
-- ══════════════════════════════════════════
-- RENDER: HIT MARKER + ARROWS + RADAR
-- ══════════════════════════════════════════
RunService.RenderStepped:Connect(function(dt)
local VP = workspace.CurrentCamera.ViewportSize
local center = Vector2.new(VP.X / 2, VP.Y / 2)
-- ── HIT MARKER ──
if Settings.HitMarker and hitMarkerActive then
local elapsed = tick() - hitMarkerTimer
if elapsed < Settings.HitMarkerDuration then
local t = elapsed / Settings.HitMarkerDuration -- 0..1
local alpha = 1 - t
-- Стрелки расходятся от центра
local expandOffset = t * 6
local sz = Settings.HitMarkerSize
local gap = 4 + expandOffset
local clr = Settings.HitMarkerColor
local thk = Settings.HitMarkerThickness
HitMarkerLines[1].Visible = true
HitMarkerLines[1].From = center - Vector2.new(0, gap)
HitMarkerLines[1].To = center - Vector2.new(0, gap + sz)
HitMarkerLines[1].Color = clr; HitMarkerLines[1].Thickness = thk; HitMarkerLines[1].Transparency = alpha
HitMarkerLines[2].Visible = true
HitMarkerLines[2].From = center + Vector2.new(0, gap)
HitMarkerLines[2].To = center + Vector2.new(0, gap + sz)
HitMarkerLines[2].Color = clr; HitMarkerLines[2].Thickness = thk; HitMarkerLines[2].Transparency = alpha
HitMarkerLines[3].Visible = true
HitMarkerLines[3].From = center - Vector2.new(gap, 0)
HitMarkerLines[3].To = center - Vector2.new(gap + sz, 0)
HitMarkerLines[3].Color = clr; HitMarkerLines[3].Thickness = thk; HitMarkerLines[3].Transparency = alpha
HitMarkerLines[4].Visible = true
HitMarkerLines[4].From = center + Vector2.new(gap, 0)
HitMarkerLines[4].To = center + Vector2.new(gap + sz, 0)
HitMarkerLines[4].Color = clr; HitMarkerLines[4].Thickness = thk; HitMarkerLines[4].Transparency = alpha
else
hitMarkerActive = false
for i = 1, 4 do HitMarkerLines[i].Visible = false end
end
else
for i = 1, 4 do HitMarkerLines[i].Visible = false end
end
-- ── HIT CHAMS ──
for _, hc in pairs(HitChamsPool) do
if hc.active then
local elapsed = tick() - hc.timer
if elapsed < Settings.HitChamsDuration then
local alpha = 1 - (elapsed / Settings.HitChamsDuration)
-- Линия от прицела до точки попадания
hc.line.Visible = Settings.HitChamsEnabled
hc.line.From = hc.fromPos
hc.line.To = hc.toPos
hc.line.Color = Settings.HitChamsLineColor
hc.line.Thickness = Settings.HitChamsThickness
hc.line.Transparency = alpha
-- Круг на точке попадания (расширяется)
hc.circle.Visible = Settings.HitChamsEnabled
hc.circle.Position = hc.hitPos
hc.circle.Radius = 6 + elapsed / Settings.HitChamsDuration * 14
hc.circle.Color = Settings.HitChamsCircleColor
hc.circle.Thickness = Settings.HitChamsThickness
hc.circle.Transparency = alpha
else
hc.active = false
hc.line.Visible = false
hc.circle.Visible = false
end
else
hc.line.Visible = false
hc.circle.Visible = false
end
end
-- ── OFF-SCREEN ARROWS ──
local arrowIdx = 0
if Settings.ArrowsEnabled then
pcall(function()
local myChar = Player.Character
local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart")
for _, p in pairs(Players:GetPlayers()) do
if p ~= Player and p.Character then
local hum = p.Character:FindFirstChildOfClass("Humanoid")
local hrp = p.Character:FindFirstChild("HumanoidRootPart")
if hrp and hum and hum.Health > 0 then
local screenPos, onScreen = Camera:WorldToViewportPoint(hrp.Position)
if not onScreen then
arrowIdx = arrowIdx + 1
if arrowIdx > #ArrowPool then break end
local arrow = ArrowPool[arrowIdx]
-- Направление от центра к игроку
local dir = (Vector2.new(screenPos.X, screenPos.Y) - center).Unit
local angle = math.atan2(dir.Y, dir.X)
local radius = Settings.ArrowRadius
local sz = Settings.ArrowSize
local tipPos = center + Vector2.new(math.cos(angle), math.sin(angle)) * radius
-- Стрелка — треугольник
local perp = Vector2.new(-math.sin(angle), math.cos(angle))
local tip = tipPos
local base1 = tipPos - dir * sz + perp * (sz * 0.4)
local base2 = tipPos - dir * sz - perp * (sz * 0.4)
arrow.tri.Visible = true
arrow.tri.PointA = tip
arrow.tri.PointB = base1
arrow.tri.PointC = base2
arrow.tri.Color = Settings.ArrowColor
arrow.tri.Transparency = 0.85
end
end
end
end
end)
end
-- Скрыть неиспользуемые стрелки
for i = arrowIdx + 1, #ArrowPool do
ArrowPool[i].tri.Visible = false
end
-- ── RADAR ──
if Settings.RadarEnabled then
pcall(function()
local myChar = Player.Character
local myHRP = myChar and myChar:FindFirstChild("HumanoidRootPart")
if not myHRP then
RadarBG.Visible = false; RadarBorder.Visible = false
RadarSelfDot.Visible = false; RadarLabel.Visible = false
for i = 1, #RadarDots do RadarDots[i].Visible = false end
return
end
local rSize = Settings.RadarSize
local rX = 20 -- отступ от левого края
local rY = 20 -- отступ от верхнего края
local rCenter = Vector2.new(rX + rSize / 2, rY + rSize / 2)
-- Фон
RadarBG.Visible = true
RadarBG.Position = Vector2.new(rX, rY)
RadarBG.Size = Vector2.new(rSize, rSize)
RadarBG.Color = Settings.RadarBGColor
-- Рамка
RadarBorder.Visible = true
RadarBorder.Position = Vector2.new(rX, rY)
RadarBorder.Size = Vector2.new(rSize, rSize)
RadarBorder.Color = Color3.fromRGB(80, 80, 100)
-- Надпись
RadarLabel.Visible = true
RadarLabel.Position = Vector2.new(rX + 4, rY + 2)
RadarLabel.Color = Color3.fromRGB(180, 180, 200)
-- Точка себя
RadarSelfDot.Visible = true
RadarSelfDot.Position = rCenter
RadarSelfDot.Color = Settings.RadarSelfColor
-- Поворот камеры (для ориентации радара)
local camYaw = Camera.CFrame:ToEulerAnglesYXZ()
local dotIdx = 0
for _, p in pairs(Players:GetPlayers()) do
if p ~= Player and p.Character then
local hum = p.Character:FindFirstChildOfClass("Humanoid")
local hrp = p.Character:FindFirstChild("HumanoidRootPart")
if hrp and hum and hum.Health > 0 then
dotIdx = dotIdx + 1
if dotIdx > #RadarDots then break end
-- Относительная позиция
local relPos = hrp.Position - myHRP.Position
local scale = Settings.RadarScale
-- Поворачиваем относительно направления камеры
local rotX = relPos.X * math.cos(-camYaw) - relPos.Z * math.sin(-camYaw)
local rotZ = relPos.X * math.sin(-camYaw) + relPos.Z * math.cos(-camYaw)
local radarX = rCenter.X + rotX * scale * (rSize / 2)
local radarY = rCenter.Y + rotZ * scale * (rSize / 2)
-- Зажимаем в границы радара
radarX = math.clamp(radarX, rX + 4, rX + rSize - 4)
radarY = math.clamp(radarY, rY + 4, rY + rSize - 4)
RadarDots[dotIdx].Visible = true
RadarDots[dotIdx].Position = Vector2.new(radarX, radarY)
RadarDots[dotIdx].Color = Settings.RadarDotColor
end
end
end
for i = dotIdx + 1, #RadarDots do RadarDots[i].Visible = false end
end)
else
RadarBG.Visible = false; RadarBorder.Visible = false
RadarSelfDot.Visible = false; RadarLabel.Visible = false
for i = 1, #RadarDots do RadarDots[i].Visible = false end
end
end)
Window:Init()
print("[FlickSpeed v3.5] Loaded! | Velocity 0.8.0 | HitMarker + Arrows + Radar")



if u have any problems comment
styler mais... rien ne marche
@poloduneufquatre everything works for me what executor u use?
how did you even prompt this to make that....
russian schoolboy 2.0