Version / Update: v1.0.0
- Download / Script Link
- --please join the discord https://discord.gg/KWcpdvbY
local uiLib = loadstring(game:HttpGet("https://sirius.menu/rayfield"))()
local window = uiLib:CreateWindow({
Name = "discord.gg/KWcpdvbY",
LoadingTitle = "discord.gg/KWcpdvbY",
LoadingSubtitle = "starting...",
ConfigurationSaving = { Enabled = false },
KeySystem = false
})
local aimTab = window:CreateTab("Aim", 4483362458)
local cfg = {
fov = 150,
smooth = 6,
pred = 0.14,
part = "Head",
wall = true,
maxDist = math.huge,
drawFov = true
}
local enabled = false
local players = game:GetService("Players")
local runService = game:GetService("RunService")
local workspace = game:GetService("Workspace")
local cam = workspace.CurrentCamera
local lp = players.LocalPlayer
local fovCircle = Drawing.new("Circle")
fovCircle.Color = Color3.fromRGB(255,80,80)
fovCircle.Thickness = 2
fovCircle.NumSides = 120
fovCircle.Filled = false
fovCircle.Transparency = 0.7
fovCircle.Visible = cfg.drawFov
fovCircle.ZIndex = 999
local function updateFov()
if not fovCircle then return end
fovCircle.Position = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2)
fovCircle.Radius = cfg.fov
end
local function alive(plr)
if not plr or plr == lp then return false end
local char = plr.Character
if not char then return false end
local hum = char:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then return false end
return true
end
local function canSee(part)
if not cfg.wall then return true end
if not part then return false end
local origin = cam.CFrame.Position
local dir = part.Position - origin
local params = RaycastParams.new()
params.FilterDescendantsInstances = {lp.Character}
params.FilterType = Enum.RaycastFilterType.Exclude
params.IgnoreWater = true
local hit = workspace:Raycast(origin, dir, params)
if not hit then return true end
return hit.Instance:IsDescendantOf(part.Parent)
end
local function predict(part)
if not part then return end
local root = part.Parent:FindFirstChild("HumanoidRootPart") or part
local vel = root.AssemblyLinearVelocity or Vector3.zero
return part.Position + (vel * cfg.pred)
end
local function getTarget()
local center = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2)
local best, closest = nil, cfg.fov
for _, plr in ipairs(players:GetPlayers()) do
if not alive(plr) then continue end
local char = plr.Character
local part = char:FindFirstChild(cfg.part)
or char:FindFirstChild("Head")
or char:FindFirstChild("HumanoidRootPart")
if not part then continue end
local pos = predict(part)
local screen, onScreen = cam:WorldToViewportPoint(pos)
if not onScreen then continue end
local dist2d = (Vector2.new(screen.X, screen.Y) - center).Magnitude
if dist2d > cfg.fov then continue end
local dist3d = (pos - cam.CFrame.Position).Magnitude
if dist3d > cfg.maxDist then continue end
if not canSee(part) then continue end
if dist2d < closest then
closest = dist2d
best = part
end
end
return best
end
aimTab:CreateToggle({
Name = "Enabled",
CurrentValue = false,
Callback = function(v)
enabled = v
end
})
aimTab:CreateKeybind({
Name = "Toggle Key",
CurrentKeybind = "Z",
Callback = function()
enabled = not enabled
end
})
aimTab:CreateSlider({
Name = "FOV",
Range = {50,500},
Increment = 5,
CurrentValue = cfg.fov,
Callback = function(v)
cfg.fov = v
fovCircle.Radius = v
end
})
aimTab:CreateSlider({
Name = "Smooth",
Range = {0,20},
Increment = 1,
CurrentValue = cfg.smooth,
Callback = function(v)
cfg.smooth = v
end
})
aimTab:CreateSlider({
Name = "Prediction",
Range = {0,0.3},
Increment = 0.005,
CurrentValue = cfg.pred,
Callback = function(v)
cfg.pred = v
end
})
aimTab:CreateToggle({
Name = "Wall Check",
CurrentValue = cfg.wall,
Callback = function(v)
cfg.wall = v
end
})
aimTab:CreateToggle({
Name = "Draw FOV",
CurrentValue = cfg.drawFov,
Callback = function(v)
cfg.drawFov = v
fovCircle.Visible = v
end
})
aimTab:CreateDropdown({
Name = "Hit Part",
Options = {"Head","UpperTorso","HumanoidRootPart","LowerTorso"},
CurrentOption = {"Head"},
Callback = function(v)
cfg.part = v
end
})
runService.RenderStepped:Connect(function()
updateFov()
if not enabled then return end
local target = getTarget()
if not target then return end
local pos = predict(target)
local screen = cam:WorldToViewportPoint(pos)
local center = Vector2.new(cam.ViewportSize.X/2, cam.ViewportSize.Y/2)
local delta = Vector2.new(screen.X, screen.Y) - center
local div = (cfg.smooth <= 0) and 1 or cfg.smooth
pcall(function()
mousemoverel(delta.X/div, delta.Y/div)
end)
end)
cam:GetPropertyChangedSignal("ViewportSize"):Connect(updateFov)
uiLib:Notify({
Title = "discord.gg/KWcpdvbY",
Content = "loaded",
Duration = 4
})[ View More ]
only open source hitmark/fantasma script i thinkaimbotwall checkfov circlebasic aimbot scriptALSO SCRIPT WORKS ON RIVALS !