M
ScriptKeyless
AUTOFARM (UNDETECTABLE) FREE NO KEY !
[BETA] Urban Reload 💀Desktop compatibleWave · Codex · Delta · Synapse Z · Volt · Potassium · Seliware · OpiumWare · Real · Matcha
Description
Un auto-farm de combat qui vise, tire et élimine automatiquement tous les ennemis proches, avec une interface complète pour tout régler et des sécurités pour éviter les tirs inutiles. Tu maintiens une touche, il fait le reste. ⚠️ Avertissement L'utilisation de scripts automatisés dans Roblox viole les Conditions d'Utilisation et peut entraîner un bannissement définitif . À utiliser uniquement dans ton propre jeu ou en environnement privé de test .
GAME[BETA] Urban Reload 💀
UPDATEDOct 25, 2026
ACCESSKeyless
PLATFORMDesktop
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- LocalScript dans StarterPlayerScripts
-- =========================================================
-- AutoKill Hoods - Rayfield Gen2
-- =========================================================
local Rayfield = loadstring(game:HttpGet('https://sirius.menu/rayfield'))()
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local VIM = game:GetService("VirtualInputManager")
local UIS = game:GetService("UserInputService")
local player = Players.LocalPlayer
local camera = Workspace.CurrentCamera
-- ===== CONFIG =====
local CONFIG = {
ENABLED = true,
MAX_DISTANCE = 500,
AIM_OFFSET = Vector3.new(0, 1, 0),
WEAPON_KEY = Enum.KeyCode.Two,
SPAM_KEY = Enum.KeyCode.E,
ACTIVATION_KEY = Enum.KeyCode.F,
WEAPON_CHECK = 0.5,
MONEY_GAINED = 0,
}
local state = {
firing = false,
toggleMode = false,
waitingFor = nil,
mouseHeld = false,
}
-- ===== HOODLOCAL =====
local hoodLocal = Workspace:WaitForChild("HoodLocal", 10)
if not hoodLocal then
warn("[AutoKill] HoodLocal introuvable dans Workspace")
return
end
-- ===== DÉTECTION ARGENT =====
local function getMoney()
local leaderstats = player:FindFirstChild("leaderstats")
if leaderstats then
for _, stat in ipairs(leaderstats:GetChildren()) do
if stat:IsA("IntValue") or stat:IsA("NumberValue") then
local n = string.lower(stat.Name)
if string.find(n, "cash") or string.find(n, "money")
or string.find(n, "coin") or string.find(n, "argent")
or string.find(n, "dollar") then
return stat.Value
end
end
end
end
for _, attrName in ipairs({"Money","Cash","Coins","Argent","Dollars"}) do
local ok, val = pcall(function() return player:GetAttribute(attrName) end)
if ok and typeof(val) == "number" then return val end
end
return nil
end
local moneyStart = getMoney() or 0
local lastMoney = moneyStart
-- =========================================================
-- GUI RAYFIELD
-- =========================================================
local Window = Rayfield:CreateWindow({
Name = "AutoKill Hoods",
LoadingTitle = "AutoKill Hoods",
LoadingSubtitle = "by Script",
ShowText = "AutoKill",
Theme = "Default",
ToggleUIKeybind = "K",
ConfigurationSaving = {
Enabled = false,
FolderName = nil,
FileName = "AutoKillConfig",
},
Discord = { Enabled = false, Invite = "noinvitelink", RememberJoins = false },
KeySystem = false,
KeySettings = {
Title = "AutoKill", Subtitle = "Key", Note = "",
FileName = "AutoKillKey", SaveKey = false, GrabKeyFromSite = false, Key = {"Hello"},
},
})
local TabMain = Window:CreateTab("Main", 4483362458)
local TabKeys = Window:CreateTab("Touches", 4483362458)
-- =========================================================
-- ONGLET MAIN
-- =========================================================
TabMain:CreateSection("Activation", false)
TabMain:CreateToggle({
Name = "Script activé",
Info = "Active / désactive le script global",
CurrentValue = true,
Flag = "AutoKill_Enabled",
Callback = function(Value)
CONFIG.ENABLED = Value
if not Value then state.firing = false end
end,
})
TabMain:CreateSection("Compteurs", false)
local hoodCountLabel = TabMain:CreateLabel("Hoods devant : 0", nil)
local moneyLabel = TabMain:CreateLabel("Argent gagné : 0", nil)
local statusLabel = TabMain:CreateLabel("Statut : prêt (F pour tirer)", nil)
TabMain:CreateSection("Actions", false)
TabMain:CreateButton({
Name = "Forcer équip arme",
Interact = 'Interact',
Callback = function()
VIM:SendKeyEvent(true, CONFIG.WEAPON_KEY, false, game)
task.wait(0.03)
VIM:SendKeyEvent(false, CONFIG.WEAPON_KEY, false, game)
end,
})
TabMain:CreateButton({
Name = "Réinitialiser argent gagné",
Interact = 'Interact',
Callback = function()
CONFIG.MONEY_GAINED = 0
moneyStart = getMoney() or 0
lastMoney = moneyStart
pcall(function() moneyLabel:Set("Argent gagné : 0") end)
end,
})
TabMain:CreateSection("Paramètres", false)
TabMain:CreateSlider({
Name = "Distance max",
Info = "Distance max pour cibler un hood",
Range = {10, 2000},
Increment = 10,
Suffix = "studs",
CurrentValue = 500,
Flag = "AutoKill_Distance",
Callback = function(Value)
CONFIG.MAX_DISTANCE = Value
end,
})
TabMain:CreateSlider({
Name = "Vérif arme",
Range = {100, 2000},
Increment = 100,
Suffix = "ms",
CurrentValue = 500,
Flag = "AutoKill_WeaponCheck",
Callback = function(Value)
CONFIG.WEAPON_CHECK = Value / 1000
end,
})
TabMain:CreateToggle({
Name = "Mode toggle (F = on/off)",
Info = "Si ON : F active/désactive. Si OFF : F doit être maintenu.",
CurrentValue = false,
Flag = "AutoKill_ToggleMode",
Callback = function(Value)
state.toggleMode = Value
end,
})
-- =========================================================
-- ONGLET TOUCHES
-- =========================================================
TabKeys:CreateSection("Configuration des touches", false)
local weaponKeyBtn = TabKeys:CreateButton({
Name = "Touche ARME : [" .. CONFIG.WEAPON_KEY.Name .. "]",
Interact = 'Interact',
Callback = function()
state.waitingFor = "weapon"
weaponKeyBtn:Set("Touche ARME : [appuie...]")
end,
})
local spamKeyBtn = TabKeys:CreateButton({
Name = "Touche SPAM : [" .. CONFIG.SPAM_KEY.Name .. "]",
Interact = 'Interact',
Callback = function()
state.waitingFor = "spam"
spamKeyBtn:Set("Touche SPAM : [appuie...]")
end,
})
local activationKeyBtn = TabKeys:CreateButton({
Name = "Touche ACTIVATION : [" .. CONFIG.ACTIVATION_KEY.Name .. "]",
Info = "Touche qui déclenche le tir (maintenu ou toggle)",
Interact = 'Interact',
Callback = function()
state.waitingFor = "activation"
activationKeyBtn:Set("Touche ACTIVATION : [appuie...]")
end,
})
UIS.InputBegan:Connect(function(input, gp)
if gp then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
if state.waitingFor then
if state.waitingFor == "weapon" then
CONFIG.WEAPON_KEY = input.KeyCode
weaponKeyBtn:Set("Touche ARME : [" .. input.KeyCode.Name .. "]")
elseif state.waitingFor == "spam" then
CONFIG.SPAM_KEY = input.KeyCode
spamKeyBtn:Set("Touche SPAM : [" .. input.KeyCode.Name .. "]")
elseif state.waitingFor == "activation" then
CONFIG.ACTIVATION_KEY = input.KeyCode
activationKeyBtn:Set("Touche ACTIVATION : [" .. input.KeyCode.Name .. "]")
end
state.waitingFor = nil
return
end
if input.KeyCode == CONFIG.ACTIVATION_KEY and CONFIG.ENABLED then
if state.toggleMode then
state.firing = not state.firing
else
state.firing = true
end
end
end
end)
UIS.InputEnded:Connect(function(input, gp)
if gp then return end
if input.UserInputType == Enum.UserInputType.Keyboard then
if input.KeyCode == CONFIG.ACTIVATION_KEY and not state.toggleMode then
state.firing = false
end
end
end)
-- =========================================================
-- FONCTIONS UTILITAIRES
-- =========================================================
local function isValidHood(hood)
if not hood then return false end
if not hood:IsA("Model") then return false end
local hum = hood:FindFirstChildOfClass("Humanoid")
if not hum or hum.Health <= 0 then return false end
local root = hood:FindFirstChild("HumanoidRootPart") or hood.PrimaryPart
if not root then return false end
return true, root, hum
end
local function isValidTarget(hood)
local valid, root = isValidHood(hood)
if not valid then return false end
local myChar = player.Character
if not myChar then return false end
local myRoot = myChar:FindFirstChild("HumanoidRootPart")
if not myRoot then return false end
if (myRoot.Position - root.Position).Magnitude > CONFIG.MAX_DISTANCE then return false end
local rayParams = RaycastParams.new()
rayParams.FilterDescendantsInstances = {myChar, hoodLocal}
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local result = Workspace:Raycast(
Vector3.new(root.Position.X, root.Position.Y + 50, root.Position.Z),
Vector3.new(0, -100, 0), rayParams)
if result and root.Position.Y < result.Position.Y - 5 then return false end
return true, root
end
local function getAllHoods()
local myChar = player.Character
if not myChar then return {} end
local myRoot = myChar:FindFirstChild("HumanoidRootPart")
if not myRoot then return {} end
local validList = {}
for _, hood in ipairs(hoodLocal:GetChildren()) do
local valid, root = isValidTarget(hood)
if valid and root then
table.insert(validList, {root = root, dist = (myRoot.Position - root.Position).Magnitude})
end
end
table.sort(validList, function(a, b) return a.dist < b.dist end)
return validList
end
local function hasLineOfSight(root)
local myChar = player.Character
if not myChar then return false end
local myRoot = myChar:FindFirstChild("HumanoidRootPart")
if not myRoot then return false end
local rayParams = RaycastParams.new()
rayParams.FilterDescendantsInstances = {myChar, hoodLocal}
rayParams.FilterType = Enum.RaycastFilterType.Exclude
local origin = myRoot.Position + Vector3.new(0, 1.5, 0)
local result = Workspace:Raycast(origin, (root.Position + CONFIG.AIM_OFFSET) - origin, rayParams)
if result and result.Instance then
local hitModel = result.Instance:FindFirstAncestorOfClass("Model")
if hitModel and hitModel:FindFirstChildOfClass("Humanoid") then return true end
return false
end
return true
end
local function spamKey()
VIM:SendKeyEvent(true, CONFIG.SPAM_KEY, false, game)
task.wait(0.01)
VIM:SendKeyEvent(false, CONFIG.SPAM_KEY, false, game)
end
local function hasToolEquipped()
local myChar = player.Character
if not myChar then return false end
for _, c in ipairs(myChar:GetChildren()) do
if c:IsA("Tool") then return true end
end
return false
end
local function forceEquipWeapon()
if not CONFIG.ENABLED then return end
if hasToolEquipped() then return end
VIM:SendKeyEvent(true, CONFIG.WEAPON_KEY, false, game)
task.wait(0.03)
VIM:SendKeyEvent(false, CONFIG.WEAPON_KEY, false, game)
end
-- =========================================================
-- GESTION CLIC GAUCHE / DROIT MAINTENUS
-- =========================================================
local function holdMouse()
if state.mouseHeld then return end
state.mouseHeld = true
VIM:SendMouseButtonEvent(0, 0, 1, true, game, 0)
task.wait(0.02)
VIM:SendMouseButtonEvent(0, 0, 0, true, game, 0)
end
local function releaseMouse()
if not state.mouseHeld then return end
state.mouseHeld = false
VIM:SendMouseButtonEvent(0, 0, 0, false, game, 0)
task.wait(0.02)
VIM:SendMouseButtonEvent(0, 0, 1, false, game, 0)
end
-- =========================================================
-- BOUCLE ARME
-- =========================================================
task.spawn(function()
while true do
task.wait(CONFIG.WEAPON_CHECK)
forceEquipWeapon()
end
end)
-- =========================================================
-- BOUCLE ARGENT
-- =========================================================
task.spawn(function()
while true do
task.wait(1)
local current = getMoney()
if current then
if lastMoney == nil then
lastMoney = current
moneyStart = current
end
if current > lastMoney then
CONFIG.MONEY_GAINED = CONFIG.MONEY_GAINED + (current - lastMoney)
pcall(function() moneyLabel:Set("Argent gagné : " .. CONFIG.MONEY_GAINED) end)
end
lastMoney = current
end
end
end)
-- =========================================================
-- BOUCLE PRINCIPALE (visée + tir)
-- =========================================================
task.spawn(function()
while true do
task.wait(0.05)
local list = getAllHoods()
pcall(function() hoodCountLabel:Set("Hoods devant : " .. #list) end)
if not CONFIG.ENABLED or not state.firing then
releaseMouse()
pcall(function()
if not CONFIG.ENABLED then
statusLabel:Set("Statut : désactivé")
elseif state.toggleMode then
statusLabel:Set("Statut : prêt (F pour activer)")
else
statusLabel:Set("Statut : prêt (maintenir F)")
end
end)
continue
end
local myChar = player.Character
if not myChar or not myChar:FindFirstChildOfClass("Humanoid") then
releaseMouse()
continue
end
if myChar.Humanoid.Health <= 0 then
releaseMouse()
continue
end
if #list == 0 then
releaseMouse()
pcall(function() statusLabel:Set("Statut : tir actif - aucune cible") end)
continue
end
local bestTarget, bestDist = nil, math.huge
for _, entry in ipairs(list) do
if hasLineOfSight(entry.root) and entry.dist < bestDist then
bestDist = entry.dist
bestTarget = entry.root
end
end
if bestTarget then
camera.CFrame = CFrame.lookAt(camera.CFrame.Position, bestTarget.Position + CONFIG.AIM_OFFSET)
holdMouse()
spamKey()
pcall(function()
statusLabel:Set(string.format("Statut : TIR (%.0f studs, %d cibles)", bestDist, #list))
end)
else
releaseMouse()
pcall(function() statusLabel:Set("Statut : tir actif - pas de ligne de vue") end)
end
end
end)
-- =========================================================
-- NETTOYAGE CLIENT
-- =========================================================
player.OnTeleport:Connect(function()
releaseMouse()
end)
local function hookCharacter(char)
if not char then return end
local hum = char:FindFirstChildOfClass("Humanoid")
if hum then
hum.Died:Connect(function()
releaseMouse()
state.firing = false
end)
end
end
player.CharacterAdded:Connect(function(char)
task.wait(0.5)
hookCharacter(char)
end)
if player.Character then
hookCharacter(player.Character)
end
-- =========================================================
print(string.format(
"[AutoKill] Script lancé | Touche: %s | Distance: %d | %s",
CONFIG.ACTIVATION_KEY.Name,
CONFIG.MAX_DISTANCE,
state.toggleMode and "Toggle" or "Maintenu"
))Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place