Version / Update: v1.0.0
- Download / Script Link
- -- M Script | ENTRENCHED WW1 | FINAL BUILD
-- Silent Aim + No Recoil + Scope Assist + ESP + Hitbox
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Camera = workspace.CurrentCamera
local LocalPlayer = Players.LocalPlayer
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local UserInputService = game:GetService("UserInputService")
-- STATE
local status = {
Active = true,
SilentAim = true,
NoRecoil = true,
ScopeAssist = true,
Triggerbot = true,
ESP = true,
Hitbox = true,
FPS = true
}
local fovRadius = 250
local scopeFOV = 120
local shootDelay = 0.12
local lastShoot = 0
local fpsValues = {}
local drawings = {}
local isScoped = false
-- ========== BYPASS ==========
local function bypass(func)
local s, e = pcall(func)
if not s then warn("Bypass:", e) end
return s
end
-- ========== TEAM CHECK ==========
local function isEnemy(p)
if p == LocalPlayer then return false end
local lt = LocalPlayer.Team
local tt = p.Team
if not lt or not tt then return true end
return lt.Name ~= tt.Name
end
-- ========== VISIBILITY ==========
local function isVisible(part)
local origin = Camera.CFrame.Position
local dir = (part.Position - origin).Unit
local ray = Ray.new(origin, dir * (part.Position - origin).Magnitude)
local hit = workspace:FindPartOnRay(ray, LocalPlayer.Character)
if hit then
if hit:IsDescendantOf(part.Parent) then return true end
if hit:IsDescendantOf(LocalPlayer.Character) then return true end
return false
end
return true
end
-- ========== SCOPE DETECTION ==========
local function checkScope()
local camera = workspace.CurrentCamera
if camera.FieldOfView < 70 then
isScoped = true
else
isScoped = false
end
return isScoped
end
-- ========== SILENT AIM + SCOPE ASSIST ==========
local function getSilentTarget()
local closest = nil
local bestDist = fovRadius
local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local currentFOV = isScoped and scopeFOV or fovRadius
for _, p in ipairs(Players:GetPlayers()) do
if isEnemy(p) and p.Character then
local head = p.Character:FindFirstChild("Head")
local hum = p.Character:FindFirstChild("Humanoid")
if head and hum and hum.Health > 0 then
local pos, onScreen = Camera:WorldToViewportPoint(head.Position)
if onScreen then
local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude
if dist < bestDist and isVisible(head) then
bestDist = dist
closest = head
end
end
end
end
end
return closest, bestDist
end
-- ========== AIM ASSIST (SCOPE ONLY) ==========
local function scopeAimAssist()
if not status.ScopeAssist then return end
if not isScoped then return end
local target, dist = getSilentTarget()
if target and dist <= scopeFOV then
-- Soft lock: tarik crosshair ke target
local screenPos, onScreen = Camera:WorldToViewportPoint(target.Position)
if onScreen then
local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local offset = Vector2.new(screenPos.X, screenPos.Y) - center
local strength = math.clamp(1 - (dist / scopeFOV), 0.3, 0.9)
-- Simulate mouse movement (soft aim assist)
local move = offset * strength * 0.25
if move.Magnitude > 0.5 then
-- Apply via mouse move simulation
mousemoverel(move.X, move.Y)
end
end
end
end
-- ========== NO RECOIL (ZERO SPREAD) ==========
local function applyNoRecoil()
if not status.NoRecoil then return end
bypass(function()
local tool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
if not tool then return end
-- Scan weapon configs
for _, obj in ipairs(tool:GetDescendants()) do
if obj:IsA("NumberValue") then
local name = string.lower(obj.Name)
if name:find("recoil") or name:find("spread") or name:find("kick") then
obj.Value = 0
end
if name:find("accuracy") then
obj.Value = 100
end
if name:find("ammo") and not name:find("max") then
obj.Value = 999
end
end
if obj:IsA("CFrameValue") and string.lower(obj.Name):find("recoil") then
obj.Value = CFrame.new()
end
if obj:IsA("Vector3Value") and string.lower(obj.Name):find("recoil") then
obj.Value = Vector3.new(0, 0, 0)
end
end
-- Bypass weapon module if exists
local weaponModule = tool:FindFirstChild("WeaponScript")
if weaponModule and weaponModule:IsA("ModuleScript") then
local oldGet = getfenv(weaponModule).GetRecoil
if oldGet then
getfenv(weaponModule).GetRecoil = function() return 0 end
end
end
end)
end
-- ========== HOOK SHOOT REMOTE ==========
local function hookWeapon()
bypass(function()
local tool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
if not tool then return end
local shootRemote = nil
for _, r in ipairs(ReplicatedStorage:GetDescendants()) do
if r:IsA("RemoteEvent") and (r.Name:lower():find("shoot") or r.Name:lower():find("fire")) then
shootRemote = r
break
end
end
if not shootRemote then return end
local oldFire = shootRemote.FireServer
shootRemote.FireServer = function(self, ...)
if status.Active and status.SilentAim then
local target = getSilentTarget()
if target then
local args = {...}
if #args > 0 then
if type(args[1]) == "Vector3" then
args[1] = target.Position
elseif type(args[1]) == "CFrame" then
args[1] = CFrame.new(args[1].Position, target.Position)
end
end
return oldFire(self, unpack(args))
end
end
return oldFire(self, ...)
end
end)
end
-- ========== TRIGGERBOT ==========
local function isTargetInFOV()
local center = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
local currentFOV = isScoped and scopeFOV or fovRadius
for _, p in ipairs(Players:GetPlayers()) do
if isEnemy(p) and p.Character then
local head = p.Character:FindFirstChild("Head")
local hum = p.Character:FindFirstChild("Humanoid")
if head and hum and hum.Health > 0 then
local pos, onScreen = Camera:WorldToViewportPoint(head.Position)
if onScreen then
local dist = (Vector2.new(pos.X, pos.Y) - center).Magnitude
if dist <= currentFOV and isVisible(head) then
return true, head
end
end
end
end
end
return false, nil
end
local function triggerbot()
if not status.Triggerbot then return end
local hasTarget, targetHead = isTargetInFOV()
if hasTarget and targetHead then
local now = tick()
if now - lastShoot >= shootDelay then
lastShoot = now
bypass(function()
local tool = LocalPlayer.Character and LocalPlayer.Character:FindFirstChildOfClass("Tool")
if tool then
for _, r in ipairs(ReplicatedStorage:GetDescendants()) do
if r:IsA("RemoteEvent") and (r.Name:lower():find("shoot") or r.Name:lower():find("fire")) then
r:FireServer(targetHead.Position)
break
end
end
end
end)
end
end
end
-- ========== HITBOX ==========
local function enlargeHitboxes()
if not status.Hitbox then return end
bypass(function()
for _, p in ipairs(Players:GetPlayers()) do
if isEnemy(p) and p.Character then
local head = p.Character:FindFirstChild("Head")
if head then
head.Size = Vector3.new(7, 7, 7)
head.Transparency = 0.3
head.CanCollide = false
end
local torso = p.Character:FindFirstChild("UpperTorso")
if torso then
torso.Size = Vector3.new(6, 5, 4)
torso.Transparency = 0.3
end
end
end
end)
end
-- ========== ESP ==========
local function updateESP()
if not status.ESP then
for _, p in ipairs(Players:GetPlayers()) do
if p.Character then
local esp = p.Character:FindFirstChild("MijusticeESP")
if esp then esp:Destroy() end
end
end
return
end
bypass(function()
for _, p in ipairs(Players:GetPlayers()) do
if isEnemy(p) and p.Character then
local esp = p.Character:FindFirstChild("MijusticeESP")
if not esp then
esp = Instance.new("Highlight")
esp.Name = "MijusticeESP"
esp.FillColor = Color3.fromRGB(255, 0, 0)
esp.OutlineColor = Color3.fromRGB(200, 0, 0)
esp.FillTransparency = 0.5
esp.Adornee = p.Character
esp.Parent = p.Character
end
esp.Enabled = true
end
end
end)
end
-- ========== FPS ==========
local function updateFPS()
if not status.FPS then
for _, d in pairs(drawings) do
if d and d.Remove then d:Remove() end
end
drawings = {}
return
end
bypass(function()
local fpsText = drawings["fps"]
if not fpsText then
fpsText = Drawing.new("Text")
fpsText.Size = 16
fpsText.Color = Color3.fromRGB(255, 0, 0)
fpsText.Outline = true
drawings["fps"] = fpsText
end
local now = tick()
table.insert(fpsValues, now)
while #fpsValues > 0 and fpsValues[1] < now - 1 do table.remove(fpsValues, 1) end
fpsText.Text = "FPS: " .. #fpsValues
fpsText.Position = Vector2.new(10, 10)
fpsText.Visible = true
end)
end
-- ========== NO RECOIL LOOP ==========
spawn(function()
while true do
if status.Active and status.NoRecoil then
applyNoRecoil()
end
wait(0.05)
end
end)
-- ========== SCOPE ASSIST LOOP ==========
spawn(function()
while true do
if status.Active and status.ScopeAssist then
checkScope()
scopeAimAssist()
end
wait(0.016)
end
end)
-- ========== MAIN LOOPS ==========
spawn(function()
hookWeapon()
end)
spawn(function()
while true do
if status.Active then
enlargeHitboxes()
updateESP()
end
wait(0.2)
end
end)
spawn(function()
while true do
if status.Active then
triggerbot()
end
wait(0.05)
end
end)
RunService.RenderStepped:Connect(function()
if not status.Active then
for _, d in pairs(drawings) do
if d and d.Remove then d:Remove() end
end
drawings = {}
return
end
updateFPS()
checkScope()
-- FOV Circle
local circle = drawings["fov"]
if not circle then
circle = Drawing.new("Circle")
drawings["fov"] = circle
end
circle.Visible = true
circle.Radius = isScoped and scopeFOV or fovRadius
circle.Thickness = 1.5
circle.Color = isScoped and Color3.fromRGB(0, 255, 0) or Color3.fromRGB(255, 0, 0)
circle.Filled = false
circle.Position = Vector2.new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
end)
-- ========== UI ==========
local function showNotification(msg)
local gui = Instance.new("ScreenGui")
gui.Name = "MijusticeNotify"
gui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local frame = Instance.new("Frame")
frame.Size = UDim2.new(0, 320, 0, 50)
frame.Position = UDim2.new(0.5, -160, 0.85, 0)
frame.BackgroundColor3 = Color3.fromRGB(10, 10, 10)
frame.BackgroundTransparency = 0.15
frame.BorderSizePixel = 0
frame.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 12)
corner.Parent = frame
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(255, 0, 0)
stroke.Thickness = 2
stroke.Parent = frame
local txt = Instance.new("TextLabel")
txt.Size = UDim2.new(1, 0, 1, 0)
txt.BackgroundTransparency = 1
txt.Text = msg
txt.TextColor3 = Color3.fromRGB(255, 50, 50)
txt.TextSize = 14
txt.Font = Enum.Font.GothamBold
txt.Parent = frame
wait(2.5)
frame:Destroy()
end
local function loadingScreen()
local gui = Instance.new("ScreenGui")
gui.Name = "MijusticeLoad"
gui.Parent = LocalPlayer:WaitForChild("PlayerGui")
gui.IgnoreGuiInset = true
local bg = Instance.new("Frame")
bg.Size = UDim2.new(1, 0, 1, 0)
bg.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
bg.BackgroundTransparency = 0
bg.Parent = gui
local text = Instance.new("TextLabel")
text.Size = UDim2.new(1, 0, 1, 0)
text.BackgroundTransparency = 1
text.Text = "MIJUSTICE"
text.TextColor3 = Color3.fromRGB(255, 0, 0)
text.TextSize = 50
text.Font = Enum.Font.GothamBlack
text.Parent = bg
for i = 1, 20 do
text.TextTransparency = (i / 20)
bg.BackgroundTransparency = (i / 20) * 0.8
wait(0.03)
end
bg:Destroy()
end
local function createToggle()
local gui = Instance.new("ScreenGui")
gui.Name = "MijusticeToggle"
gui.Parent = LocalPlayer:WaitForChild("PlayerGui")
local btn = Instance.new("ImageButton")
btn.Size = UDim2.new(0, 65, 0, 65)
btn.Position = UDim2.new(0.02, 0, 0.85, 0)
btn.BackgroundColor3 = Color3.fromRGB(20, 20, 20)
btn.BackgroundTransparency = 0.2
btn.BorderSizePixel = 0
btn.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(1, 0)
corner.Parent = btn
local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(255, 0, 0)
stroke.Thickness = 2
stroke.Parent = btn
local txt = Instance.new("TextLabel")
txt.Size = UDim2.new(1, 0, 1, 0)
txt.BackgroundTransparency = 1
txt.Text = "ON"
txt.TextColor3 = Color3.fromRGB(255, 0, 0)
txt.TextSize = 22
txt.Font = Enum.Font.GothamBold
txt.Parent = btn
btn.MouseButton1Click:Connect(function()
status.Active = not status.Active
status.SilentAim = status.Active
status.NoRecoil = status.Active
status.ScopeAssist = status.Active
status.Triggerbot = status.Active
status.ESP = status.Active
status.Hitbox = status.Active
status.FPS = status.Active
if status.Active then
txt.Text = "ON"
txt.TextColor3 = Color3.fromRGB(255, 0, 0)
stroke.Color = Color3.fromRGB(255, 0, 0)
showNotification("MIJUSTICE | ALL FEATURES ON")
else
txt.Text = "OFF"
txt.TextColor3 = Color3.fromRGB(150, 150, 150)
stroke.Color = Color3.fromRGB(150, 150, 150)
showNotification("MIJUSTICE OFF")
end
end)
btn.TouchTap:Connect(function()
btn.MouseButton1Click:Fire()
end)
end
-- EXECUTE
loadingScreen()
createToggle()
showNotification("MIJUSTICE | NO RECOIL + SCOPE ASSIST")[ View More ]
Simple script, any bugs report in comment MENTION FEATUREAimbotRed WallhackHitboxmore..
- Works on mobile
- Yes