Shindo Life [250] artwork
Shindo Life [250]

Silent Aim mobile

by Bloxive Imports
0 views0 likes0 copies1 hour ago

About this script

For the script to work, you need to enable all the options. It is highly recommended for use in war, as no one will know who hit them, whereas in a 1v1 it will be very obvious but feel free to use it however you like. For more scripts like these, join my Discord server and get verified i have more scripts there that you'll like. https://discord.gg/s2t6sZGFMh

Script code

Lua
--// Bendecido Silent Aim - Shindo Life 2 (Mobile Optimized & Compact UI Edition)
--// Engine: Janus & Tesavek Optimizations

local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local UserInputService = game:GetService("UserInputService")
local Workspace = game:GetService("Workspace")
local CoreGui = game:GetService("CoreGui")

local LocalPlayer = Players.LocalPlayer
local Camera = Workspace.CurrentCamera

local Settings = {
    Enabled = true,
    FOV = 120, -- Reducido por defecto para pantallas móviles
    ShowFOV = true,
    TeamCheck = false,
    Prediction = 0.165,
    TargetPart = "HumanoidRootPart",
    AbilityInfRange = false,
    
    UseWhitelist = false, 
    UseBlacklist = false, 
    Whitelist = {},
    Blacklist = {}
}

local GuiVisible = true

-- Cache de funciones para 0 Lag
local getrawmetatable = getrawmetatable or get_raw_metatable
local hookmetamethod = hookmetamethod or hook_meta_method
local getnamecallmethod = getnamecallmethod or get_namecall_method
local Vector2_new = Vector2.new
local CFrame_new = CFrame.new
local math_floor = math.floor
local WorldToViewportPoint = Camera.WorldToViewportPoint

local CurrentTarget = nil
local IsDragging = false

--// GUI SETUP (COMPACTO PARA CELULAR)
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "Irving_MobileAim_" .. math.random(10000,99999)
ScreenGui.Parent = CoreGui
ScreenGui.ResetOnSpawn = false

-- Botón Flotante para Ocultar/Mostrar el Menú Completo en Celular
local FloatingToggleBtn = Instance.new("TextButton")
FloatingToggleBtn.Size = UDim2.new(0, 45, 0, 45)
FloatingToggleBtn.Position = UDim2.new(0.02, 0, 0.15, 0)
FloatingToggleBtn.BackgroundColor3 = Color3.fromRGB(20, 20, 30)
FloatingToggleBtn.Text = "⚙️"
FloatingToggleBtn.TextSize = 20
FloatingToggleBtn.Parent = ScreenGui
Instance.new("UICorner", FloatingToggleBtn).CornerRadius = UDim.new(1, 0)

local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 240, 0, 270)
MainFrame.Position = UDim2.new(0.15, 0, 0.2, 0)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 22)
MainFrame.BorderSizePixel = 0
MainFrame.Visible = true
MainFrame.Parent = ScreenGui
Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 8)

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, 0, 0, 25)
Title.BackgroundColor3 = Color3.fromRGB(25, 25, 38)
Title.Text = "🔥 Irving Mobile Aim"
Title.TextColor3 = Color3.fromRGB(255, 80, 80)
Title.TextSize = 12
Title.Font = Enum.Font.GothamBold
Title.Parent = MainFrame
Instance.new("UICorner", Title).CornerRadius = UDim.new(0, 8)

local StatusLabel = Instance.new("TextLabel")
StatusLabel.Size = UDim2.new(1, -10, 0, 20)
StatusLabel.Position = UDim2.new(0, 5, 0, 30)
StatusLabel.BackgroundTransparency = 1
StatusLabel.Text = "Estado: ✅ ACTIVADO"
StatusLabel.TextColor3 = Color3.fromRGB(0, 255, 100)
StatusLabel.TextSize = 10
StatusLabel.Font = Enum.Font.GothamBold
StatusLabel.TextXAlignment = Enum.TextXAlignment.Left
StatusLabel.Parent = MainFrame

local FOVToggle = Instance.new("TextButton")
FOVToggle.Size = UDim2.new(0.9, 0, 0, 26)
FOVToggle.Position = UDim2.new(0.05, 0, 0, 55)
FOVToggle.BackgroundColor3 = Color3.fromRGB(50, 50, 70)
FOVToggle.Text = "👁️ FOV Visible: ON"
FOVToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
FOVToggle.TextSize = 10
FOVToggle.Font = Enum.Font.GothamBold
FOVToggle.Parent = MainFrame
Instance.new("UICorner", FOVToggle).CornerRadius = UDim.new(0, 6)

local TeamToggle = Instance.new("TextButton")
TeamToggle.Size = UDim2.new(0.9, 0, 0, 26)
TeamToggle.Position = UDim2.new(0.05, 0, 0, 87)
TeamToggle.BackgroundColor3 = Color3.fromRGB(150, 50, 50)
TeamToggle.Text = "👥 TeamCheck: OFF"
TeamToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
TeamToggle.TextSize = 10
TeamToggle.Font = Enum.Font.GothamBold
TeamToggle.Parent = MainFrame
Instance.new("UICorner", TeamToggle).CornerRadius = UDim.new(0, 6)

local InfRangeToggle = Instance.new("TextButton")
InfRangeToggle.Size = UDim2.new(0.9, 0, 0, 26)
InfRangeToggle.Position = UDim2.new(0.05, 0, 0, 119)
InfRangeToggle.BackgroundColor3 = Color3.fromRGB(150, 50, 50)
InfRangeToggle.Text = "🌀 Skills Inf Range: OFF"
InfRangeToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
InfRangeToggle.TextSize = 10
InfRangeToggle.Font = Enum.Font.GothamBold
InfRangeToggle.Parent = MainFrame
Instance.new("UICorner", InfRangeToggle).CornerRadius = UDim.new(0, 6)

-- Botón Maestro de Encendido/Apagado Rápido en UI
local MasterToggle = Instance.new("TextButton")
MasterToggle.Size = UDim2.new(0.9, 0, 0, 32)
MasterToggle.Position = UDim2.new(0.05, 0, 0, 155)
MasterToggle.BackgroundColor3 = Color3.fromRGB(40, 120, 80)
MasterToggle.Text = "⚡ ON / OFF AIMBOT"
MasterToggle.TextColor3 = Color3.fromRGB(255, 255, 255)
MasterToggle.TextSize = 11
MasterToggle.Font = Enum.Font.GothamBold
MasterToggle.Parent = MainFrame
Instance.new("UICorner", MasterToggle).CornerRadius = UDim.new(0, 6)

local InfoLabel = Instance.new("TextLabel")
InfoLabel.Size = UDim2.new(0.9, 0, 0, 60)
InfoLabel.Position = UDim2.new(0.05, 0, 0, 195)
InfoLabel.BackgroundTransparency = 1
InfoLabel.Text = "💡 Tip: Usa el botón ⚙️ flotante para minimizar la interfaz y evitar estorbos."
InfoLabel.TextColor3 = Color3.fromRGB(150, 150, 170)
InfoLabel.TextSize = 9
InfoLabel.Font = Enum.Font.Gotham
InfoLabel.TextWrapped = true
InfoLabel.Parent = MainFrame

-- FOV Circle
local FOVCircle = Drawing.new("Circle")
FOVCircle.Position = Vector2_new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
FOVCircle.Radius = Settings.FOV
FOVCircle.Color = Color3.fromRGB(255, 255, 255)
FOVCircle.Thickness = 1.2
FOVCircle.Filled = false
FOVCircle.Transparency = 1
FOVCircle.Visible = Settings.ShowFOV

--// TARGET DETECTION
local function GetBestTarget()
    local bestTarget = nil
    local shortestDistance = Settings.FOV
    -- En móviles usamos el centro de la pantalla si no hay puntero de ratón físico
    local screenCenter = Vector2_new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
    local myChar = LocalPlayer.Character
    local myTeam = LocalPlayer.Team
    
    if not myChar then return nil end

    for _, player in ipairs(Players:GetPlayers()) do
        if player ~= LocalPlayer and player.Character then
            if Settings.UseWhitelist and not Settings.Whitelist[player.Name] then continue end
            if Settings.UseBlacklist and Settings.Blacklist[player.Name] then continue end
            if Settings.TeamCheck and player.Team and myTeam and player.Team == myTeam then continue end

            local char = player.Character
            local hum = char:FindFirstChild("Humanoid")
            local root = char:FindFirstChild(Settings.TargetPart)

            if hum and root and hum.Health > 0 then
                local screenPos, onScreen = WorldToViewportPoint(Camera, root.Position)
                if onScreen then
                    local dist = (Vector2_new(screenPos.X, screenPos.Y) - screenCenter).Magnitude
                    if dist < shortestDistance then
                        shortestDistance = dist
                        bestTarget = {
                            Player = player,
                            Root = root,
                            Position = root.Position,
                            Velocity = root.AssemblyLinearVelocity,
                            Distance = dist
                        }
                    end
                end
            end
        end
    end
    return bestTarget
end

--// BACKGROUND LOOPS
task.spawn(function()
    while true do
        CurrentTarget = Settings.Enabled and GetBestTarget() or nil
        task.wait(0.05)
    end
end)

RunService.RenderStepped:Connect(function()
    if Settings.ShowFOV and GuiVisible then
        FOVCircle.Position = Vector2_new(Camera.ViewportSize.X / 2, Camera.ViewportSize.Y / 2)
    end
end)

--// __NAMECALL NETWORK INTERCEPTION HOOK
local oldNamecall
oldNamecall = hookmetamethod(game, "__namecall", function(self, ...)
    if not Settings.Enabled or not CurrentTarget then
        return oldNamecall(self, ...)
    end
    
    local method = getnamecallmethod()
    local args = {...}

    if Settings.AbilityInfRange and (method == "Raycast" or method == "raycast") then
        local origin = args[1]
        local targetPos = CurrentTarget.Root.Position + (CurrentTarget.Velocity * Settings.Prediction)
        args[2] = (targetPos - origin).Unit * 4.999999721059845e+27
        return oldNamecall(self, unpack(args))
    end

    if method == "FireServer" or method == "fireServer" or method == "InvokeServer" then
        local modified = false
        local predictedLocation = CurrentTarget.Root.Position + (CurrentTarget.Velocity * Settings.Prediction)

        for i, arg in pairs(args) do
            if typeof(arg) == "Vector3" then
                args[i] = predictedLocation
                modified = true
            elseif typeof(arg) == "CFrame" then
                if Settings.AbilityInfRange then
                    args[i] = CFrame_new(predictedLocation)
                else
                    args[i] = CFrame_new(LocalPlayer.Character.Head.Position, predictedLocation)
                end
                modified = true
            elseif type(arg) == "table" then
                for k, v in pairs(arg) do
                    if typeof(v) == "Vector3" then
                        arg[k] = predictedLocation
                        modified = true
                    elseif typeof(v) == "CFrame" then
                        if Settings.AbilityInfRange then
                            arg[k] = CFrame_new(predictedLocation)
                        else
                            arg[k] = CFrame_new(LocalPlayer.Character.Head.Position, predictedLocation)
                        end
                        modified = true
                    end
                end
            end
        end

        if modified then
            return oldNamecall(self, unpack(args))
        end
    end

    return oldNamecall(self, ...)
end)

--// UI INTERACTIONS & TOUCH EVENTS
FloatingToggleBtn.MouseButton1Click:Connect(function()
    GuiVisible = not GuiVisible
    MainFrame.Visible = GuiVisible
    FOVCircle.Visible = Settings.Enabled and Settings.ShowFOV and GuiVisible
    FloatingToggleBtn.BackgroundColor3 = GuiVisible and Color3.fromRGB(20, 20, 30) or Color3.fromRGB(120, 40, 40)
end)

MasterToggle.MouseButton1Click:Connect(function()
    Settings.Enabled = not Settings.Enabled
    StatusLabel.Text = Settings.Enabled and "Estado: ✅ ACTIVADO" or "Estado: ❌ DESACTIVADO"
    StatusLabel.TextColor3 = Settings.Enabled and Color3.fromRGB(0, 255, 100) or Color3.fromRGB(255, 50, 50)
    MasterToggle.BackgroundColor3 = Settings.Enabled and Color3.fromRGB(40, 120, 80) or Color3.fromRGB(150, 50, 50)
    FOVCircle.Visible = Settings.Enabled and Settings.ShowFOV and GuiVisible
end)

FOVToggle.MouseButton1Click:Connect(function()
    Settings.ShowFOV = not Settings.ShowFOV
    FOVCircle.Visible = Settings.ShowFOV and GuiVisible and Settings.Enabled
    FOVToggle.Text = Settings.ShowFOV and "👁️ FOV Visible: ON" or "👁️ FOV Visible: OFF"
    FOVToggle.BackgroundColor3 = Settings.ShowFOV and Color3.fromRGB(50, 50, 70) or Color3.fromRGB(70, 40, 40)
end)

TeamToggle.MouseButton1Click:Connect(function()
    Settings.TeamCheck = not Settings.TeamCheck
    TeamToggle.Text = Settings.TeamCheck and "👥 TeamCheck: ON" or "👥 TeamCheck: OFF"
    TeamToggle.BackgroundColor3 = Settings.TeamCheck and Color3.fromRGB(40, 120, 80) or Color3.fromRGB(150, 50, 50)
end)

InfRangeToggle.MouseButton1Click:Connect(function()
    Settings.AbilityInfRange = not Settings.AbilityInfRange
    InfRangeToggle.Text = Settings.AbilityInfRange and "🌀 Skills Inf Range: ON" or "🌀 Skills Inf Range: OFF"
    InfRangeToggle.BackgroundColor3 = Settings.AbilityInfRange and Color3.fromRGB(40, 120, 80) or Color3.fromRGB(150, 50, 50)
end)

-- Arrastre Táctil para el MainFrame (Móvil Friendly)
local dragging, dragInput, dragStart, startPos
Title.InputBegan:Connect(function(input)
    if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
        dragging = true
        dragStart = input.Position
        startPos = MainFrame.Position
        input.Changed:Connect(function()
            if input.UserInputState == Enum.UserInputState.End then dragging = false end
        end)
    end
end)

UserInputService.InputChanged:Connect(function(input)
    if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
        local delta = input.Position - dragStart
        MainFrame.Position = UDim2.new(startPos.X.Scale, startPos.X.Offset + delta.X, startPos.Y.Scale, startPos.Y.Offset + delta.Y)
    end
end)