
Key RequiredUniversal

local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
-- ====================== CONFIG ======================
local Config = ({
Aimbot = {
Enabled = false,
Key = Enum.KeyCode.E,
FOV = 65,
ShowFOV = true,
Smooth = 0.1,
TargetPart = "Head",
Mode = "Smooth" -- "Smooth" alebo "Fast"
},
ESP = {
Box = false,
Tracers = false,
Names = false,
Color = Color3.fromRGB(0, 255, 50)
}
})
-- ====================== WINDOW ======================
local Window = Rayfield:CreateWindow({
Name = "[FPS]flick - By GOXm",
Icon = 9835676498,
LoadingTitle = "GOXm's script",
LoadingSubtitle = "by GOXm",
Theme = "AmberGlow",
ToggleUIKeybind = "K",
ConfigurationSaving = {
Enabled = true,
FolderName = "GOXm_FPS",
FileName = "Config"
}
})
-- ====================== SERVICES ======================
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local aiming = false
-- ====================== DRAWING ======================
local fovCircle = Drawing.new("Circle")
fovCircle.Thickness = 1.6
fovCircle.Transparency = 0.6
fovCircle.Color = Color3.fromRGB(255, 0, 0)
fovCircle.Filled = false
fovCircle.Visible = false
local function NewLine()
local l = Drawing.new("Line")
l.Thickness = 1.5
l.Transparency = 1
l.Color = Config.ESP.Color
l.Visible = false
return l
end
local function NewText()
local t = Drawing.new("Text")
t.Size = 16
t.Center = true
t.Outline = true
t.Font = 2
t.Transparency = 1
t.Color = Config.ESP.Color
t.Visible = false
return t
end
-- ====================== AIMBOT LOGIC ======================
local function getClosest()
local closest, shortest = nil, math.huge
for _, v in pairs(Players:GetPlayers()) do
if v ~= LocalPlayer and v.Character and v.Character:FindFirstChild("Humanoid") and v.Character.Humanoid.Health > 0 then
local target = v.Character:FindFirstChild(Config.Aimbot.TargetPart)
if target then
local screenPos, onScreen = Camera:WorldToViewportPoint(target.Position)
if onScreen then
local distFromCenter = (Vector2.new(screenPos.X, screenPos.Y) - Vector2.new(Camera.ViewportSize.X/2, Camera.ViewportSize.Y/2)).Magnitude
if distFromCenter <= Config.Aimbot.FOV and distFromCenter < shortest then
shortest = distFromCenter
closest = target
end
end
end
end
end
return closest
end
RunService.RenderStepped:Connect(function()
-- FOV Circle
fovCircle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
fovCircle.Radius = Config.Aimbot.FOV
fovCircle.Visible = Config.Aimbot.Enabled and Config.Aimbot.ShowFOV
-- Aimbot
if Config.Aimbot.Enabled and aiming then
local target = getClosest()
if target then
local lookAt = CFrame.new(Camera.CFrame.Position, target.Position)
if Config.Aimbot.Mode == "Fast" then
Camera.CFrame = lookAt
else
local smoothAmount = math.clamp(1 - Config.Aimbot.Smooth, 0.01, 1)
Camera.CFrame = Camera.CFrame:Lerp(lookAt, smoothAmount)
end
end
end
end)
UserInputService.InputBegan:Connect(function(input, gpe)
if not gpe and input.KeyCode == Config.Aimbot.Key then
aiming = true
end
end)
UserInputService.InputEnded:Connect(function(input)
if input.KeyCode == Config.Aimbot.Key then
aiming = false
end
end)
-- ====================== 3D ESP ======================
local function CreateESP(player)
local lines = {}
for i = 1, 12 do lines[i] = NewLine() end
local tracer = NewLine()
local nameTag = NewText()
local connection = RunService.RenderStepped:Connect(function()
if not player or not player.Parent then
for _, v in pairs(lines) do v:Remove() end
tracer:Remove()
nameTag:Remove()
connection:Disconnect()
return
end
local char = player.Character
local hrp = char and char:FindFirstChild("HumanoidRootPart")
local hum = char and char:FindFirstChild("Humanoid")
if hrp and hum and hum.Health > 0 then
local pos, onScreen = Camera:WorldToViewportPoint(hrp.Position)
-- 3D Box
if Config.ESP.Box and onScreen then
local size = Vector3.new(2, 3, 1.5)
local cf = hrp.CFrame
local p = {
Camera:WorldToViewportPoint((cf * CFrame.new(-size.X, size.Y, -size.Z)).Position),
Camera:WorldToViewportPoint((cf * CFrame.new( size.X, size.Y, -size.Z)).Position),
Camera:WorldToViewportPoint((cf * CFrame.new( size.X, size.Y, size.Z)).Position),
Camera:WorldToViewportPoint((cf * CFrame.new(-size.X, size.Y, size.Z)).Position),
Camera:WorldToViewportPoint((cf * CFrame.new(-size.X, -size.Y, -size.Z)).Position),
Camera:WorldToViewportPoint((cf * CFrame.new( size.X, -size.Y, -size.Z)).Position),
Camera:WorldToViewportPoint((cf * CFrame.new( size.X, -size.Y, size.Z)).Position),
Camera:WorldToViewportPoint((cf * CFrame.new(-size.X, -size.Y, size.Z)).Position)
}
local connections = {{1,2},{2,3},{3,4},{4,1},{5,6},{6,7},{7,8},{8,5},{1,5},{2,6},{3,7},{4,8}}
for i, conn in pairs(connections) do
lines[i].From = Vector2.new(p[conn[1]].X, p[conn[1]].Y)
lines[i].To = Vector2.new(p[conn[2]].X, p[conn[2]].Y)
lines[i].Visible = true
end
else
for _, v in pairs(lines) do v.Visible = false end
end
-- Tracers
if Config.ESP.Tracers and onScreen then
tracer.From = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y)
tracer.To = Vector2.new(pos.X, pos.Y)
tracer.Visible = true
else
tracer.Visible = false
end
-- Name Tags
if Config.ESP.Names and onScreen then
nameTag.Text = player.Name
nameTag.Position = Vector2.new(pos.X, pos.Y - 40)
nameTag.Visible = true
else
nameTag.Visible = false
end
else
for _, v in pairs(lines) do v.Visible = false end
tracer.Visible = false
nameTag.Visible = false
end
end)
end
for _, plr in pairs(Players:GetPlayers()) do
if plr ~= LocalPlayer then CreateESP(plr) end
end
Players.PlayerAdded:Connect(function(plr)
if plr ~= LocalPlayer then CreateESP(plr) end
end)
-- ====================== UI TABS ======================
-- AIMBOT TAB
local AimbotTab = Window:CreateTab("🔫 Aimbot", nil)
AimbotTab:CreateToggle({
Name = "Enable Aimbot (Hold E)",
CurrentValue = false,
Callback = function(v) Config.Aimbot.Enabled = v end
})
AimbotTab:CreateToggle({
Name = "Show FOV Circle",
CurrentValue = true,
Callback = function(v) Config.Aimbot.ShowFOV = v end
})
AimbotTab:CreateDropdown({
Name = "Target Part",
Options = {"Head", "Torso"},
CurrentOption = {"Head"},
Callback = function(Option)
Config.Aimbot.TargetPart = (Option[1] == "Torso" and "HumanoidRootPart" or "Head")
end
})
AimbotTab:CreateDropdown({
Name = "Aimbot Mode",
Options = {"Smooth", "Fast"},
CurrentOption = {"Smooth"},
Callback = function(Option) Config.Aimbot.Mode = Option[1] end
})
AimbotTab:CreateSlider({
Name = "Smoothness",
Range = {0, 0.95},
Increment = 0.01,
CurrentValue = 0.1,
Callback = function(v) Config.Aimbot.Smooth = v end
})
AimbotTab:CreateSlider({
Name = "FOV Radius",
Range = {30, 250},
Increment = 1,
CurrentValue = 65,
Callback = function(v) Config.Aimbot.FOV = v end
})
-- ESP TAB
local EspTab = Window:CreateTab("👁️ ESP", nil)
local BoxToggle = EspTab:CreateToggle({
Name = "3D Box ESP",
CurrentValue = false,
Callback = function(v) Config.ESP.Box = v end
})
EspTab:CreateKeybind({
Name = "Toggle Box ESP",
CurrentKeybind = "None",
Callback = function() Config.ESP.Box = not Config.ESP.Box; BoxToggle:Set(Config.ESP.Box) end
})
local TracerToggle = EspTab:CreateToggle({
Name = "Tracers",
CurrentValue = false,
Callback = function(v) Config.ESP.Tracers = v end
})
EspTab:CreateKeybind({
Name = "Toggle Tracers",
CurrentKeybind = "None",
Callback = function() Config.ESP.Tracers = not Config.ESP.Tracers; TracerToggle:Set(Config.ESP.Tracers) end
})
local NameToggle = EspTab:CreateToggle({
Name = "Name Tags",
CurrentValue = false,
Callback = function(v) Config.ESP.Names = v end
})
EspTab:CreateKeybind({
Name = "Toggle Name Tags",
CurrentKeybind = "None",
Callback = function() Config.ESP.Names = not Config.ESP.Names; NameToggle:Set(Config.ESP.Names) end
})
-- Destroy button (ak chceš nechať)
local SettingsTab = Window:CreateTab("⚙️ Settings", nil)
SettingsTab:CreateButton({
Name = "Destroy Script",
Callback = function() Rayfield:Destroy() end
})No comments yet for this script.



