Ninja Tycoon script keyless | fly, speed hack, auto kill mobs
Ninja Tycoon Keyless
Ninja Tycoon script keyless | fly, speed hack, auto kill mobs
👤 alexriderr 👁 10 views ❤️ 0 likes ⏱ Sep 11, 2026
This **keyless script for Ninja Tycoon** is also **mobile friendly** and works with **Delta, Fluxus**, and other high-UNC mobile executors. It includes useful features such as **Speed Hack, God Mode, Fly**, and many more options to enhance your gameplay.
✨ Features
fly speed hack auto kill mobs go to enemy base god mode and much more
📋 Script Code
-- 🥷 Ninja Tycoon | Auto Kill + Fly + Speed + Enemy Base
-- Mobile compatible: Delta, Fluxus, Codex, Arceus X
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local Workspace = game:GetService("Workspace")

local LocalPlayer = Players.LocalPlayer
local character = LocalPlayer.Character or LocalPlayer.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")
local rootPart = character:WaitForChild("HumanoidRootPart")

LocalPlayer.CharacterAdded:Connect(function(newChar)
    character = newChar
    humanoid = newChar:WaitForChild("Humanoid")
    rootPart = newChar:WaitForChild("HumanoidRootPart")
end)

--═══════════════════════════════════
-- GUI
--═══════════════════════════════════
local ScreenGui = Instance.new("ScreenGui")
ScreenGui.Name = "NinjaTycoonHub"
ScreenGui.ResetOnSpawn = false
ScreenGui.ZIndexBehavior = Enum.ZIndexBehavior.Sibling

local ok, _ = pcall(function()
    ScreenGui.Parent = game:GetService("CoreGui")
end)
if not ok then
    ScreenGui.Parent = LocalPlayer:WaitForChild("PlayerGui")
end

local MainFrame = Instance.new("Frame")
MainFrame.Size = UDim2.new(0, 260, 0, 310)
MainFrame.Position = UDim2.new(0.5, -130, 0.5, -155)
MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 25)
MainFrame.BorderSizePixel = 0
MainFrame.Active = true
MainFrame.Draggable = true
MainFrame.Parent = ScreenGui

Instance.new("UICorner", MainFrame).CornerRadius = UDim.new(0, 12)

local stroke = Instance.new("UIStroke")
stroke.Color = Color3.fromRGB(80, 40, 120)
stroke.Thickness = 1.5
stroke.Parent = MainFrame

local TitleBar = Instance.new("Frame")
TitleBar.Size = UDim2.new(1, 0, 0, 40)
TitleBar.BackgroundColor3 = Color3.fromRGB(25, 15, 40)
TitleBar.BorderSizePixel = 0
TitleBar.Parent = MainFrame

Instance.new("UICorner", TitleBar).CornerRadius = UDim.new(0, 12)

local Title = Instance.new("TextLabel")
Title.Size = UDim2.new(1, -50, 1, 0)
Title.Position = UDim2.new(0, 12, 0, 0)
Title.BackgroundTransparency = 1
Title.Text = "🥷 NINJA TYCOON"
Title.TextColor3 = Color3.fromRGB(200, 140, 255)
Title.TextSize = 15
Title.Font = Enum.Font.GothamBold
Title.TextXAlignment = Enum.TextXAlignment.Left
Title.Parent = TitleBar

local CloseBtn = Instance.new("TextButton")
CloseBtn.Size = UDim2.new(0, 34, 0, 34)
CloseBtn.Position = UDim2.new(1, -38, 0, 3)
CloseBtn.BackgroundColor3 = Color3.fromRGB(50, 20, 25)
CloseBtn.Text = "✕"
CloseBtn.TextColor3 = Color3.fromRGB(255, 80, 80)
CloseBtn.TextSize = 16
CloseBtn.Font = Enum.Font.GothamBold
CloseBtn.Parent = TitleBar

Instance.new("UICorner", CloseBtn).CornerRadius = UDim.new(0, 8)

local Scroll = Instance.new("ScrollingFrame")
Scroll.Size = UDim2.new(1, -14, 1, -52)
Scroll.Position = UDim2.new(0, 7, 0, 46)
Scroll.BackgroundTransparency = 1
Scroll.BorderSizePixel = 0
Scroll.ScrollBarThickness = 3
Scroll.ScrollBarImageColor3 = Color3.fromRGB(100, 60, 160)
Scroll.CanvasSize = UDim2.new(0, 0, 0, 0)
Scroll.AutomaticCanvasSize = Enum.AutomaticSize.Y
Scroll.Parent = MainFrame

local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 6)
layout.SortOrder = Enum.SortOrder.LayoutOrder
layout.Parent = Scroll

--═══════════════════════════════════
-- STATE
--═══════════════════════════════════
local connections = {}
local flying = false
local autoKill = false
local goToBase = false
local bodyVel, bodyGyro

local function storeConn(name, conn)
    if connections[name] then connections[name]:Disconnect() end
    connections[name] = conn
end

--═══════════════════════════════════
-- BUTTON BUILDER
--═══════════════════════════════════
local function createToggle(text, emoji, onEnable, onDisable)
    local btn = Instance.new("TextButton")
    btn.Size = UDim2.new(1, -4, 0, 42)
    btn.BackgroundColor3 = Color3.fromRGB(30, 25, 45)
    btn.Text = emoji .. "  " .. text
    btn.TextColor3 = Color3.fromRGB(210, 200, 230)
    btn.TextSize = 13
    btn.Font = Enum.Font.GothamSemibold
    btn.BorderSizePixel = 0
    btn.Parent = Scroll

    Instance.new("UICorner", btn).CornerRadius = UDim.new(0, 8)

    local s = Instance.new("UIStroke")
    s.Color = Color3.fromRGB(55, 40, 85)
    s.Thickness = 1
    s.Parent = btn

    local active = false
    btn.MouseButton1Click:Connect(function()
        active = not active
        if active then
            btn.BackgroundColor3 = Color3.fromRGB(30, 70, 35)
            s.Color = Color3.fromRGB(70, 200, 90)
            btn.TextColor3 = Color3.fromRGB(150, 255, 160)
            if onEnable then onEnable() end
        else
            btn.BackgroundColor3 = Color3.fromRGB(30, 25, 45)
            s.Color = Color3.fromRGB(55, 40, 85)
            btn.TextColor3 = Color3.fromRGB(210, 200, 230)
            if onDisable then onDisable() end
        end
    end)
    return btn
end

--═══════════════════════════════════
-- HELPER: FIND MOBS
--═══════════════════════════════════
-- Ninja Tycoon mobs usually in Workspace folders like "Enemies", "Mobs", "NPCs"
-- We scan for humanoid models that aren't players
local function findMobs()
    local mobs = {}
    for _, obj in pairs(Workspace:GetDescendants()) do
        if obj:IsA("Humanoid") and obj.Health > 0 then
            local mobChar = obj.Parent
            if mobChar and mobChar:IsA("Model") then
                local isPlayer = Players:GetPlayerFromCharacter(mobChar)
                if not isPlayer and mobChar ~= character then
                    local hrp = mobChar:FindFirstChild("HumanoidRootPart") or mobChar:FindFirstChildWhichIsA("BasePart")
                    if hrp then
                        table.insert(mobs, {humanoid = obj, rootPart = hrp, charModel = mobChar})
                    end
                end
            end
        end
    end
    return mobs
end

--═══════════════════════════════════
-- HELPER: FIND ENEMY BASE
--═══════════════════════════════════
-- Scan for tycoon bases/pads that don't belong to LocalPlayer
local function findEnemyBase()
    -- Common tycoon folder names
    local searchTerms = {"Tycoon", "Base", "Plot", "Factory"}
    local enemyBases = {}

    for _, obj in pairs(Workspace:GetDescendants()) do
        for _, term in pairs(searchTerms) do
            if string.find(obj.Name, term, 1, true) then
                -- Check if it's a model or folder containing tycoon stuff
                if obj:IsA("Model") or obj:IsA("Folder") then
                    -- Try to find owner info
                    local ownerVal = obj:FindFirstChild("Owner") or obj:FindFirstChild("OwnerName")
                    if ownerVal then
                        local ownerName = nil
                        if ownerVal:IsA("ObjectValue") and ownerVal.Value then
                            ownerName = ownerVal.Value.Name
                        elseif ownerVal:IsA("StringValue") then
                            ownerName = ownerVal.Value
                        end
                        if ownerName and ownerName ~= LocalPlayer.Name then
                            table.insert(enemyBases, obj)
                        end
                    else
                        -- No owner = unclaimed or enemy
                        table.insert(enemyBases, obj)
                    end
                end
            end
        end
    end

    -- Find closest mob to any enemy base or just find center of enemy base
    if #enemyBases > 0 then
        local base = enemyBases[1]
        -- Find the primary part or center
        local target = base.PrimaryPart or base:FindFirstChildWhichIsA("BasePart")
        if target then
            return target.Position
        end
    end
    return nil
end

--═══════════════════════════════════
-- FEATURES
--═══════════════════════════════════

-- ▸ FLY
createToggle("Fly", "🕊️",
    function()
        flying = true
        bodyVel = Instance.new("BodyVelocity")
        bodyVel.MaxForce = Vector3.new(9e9, 9e9, 9e9)
        bodyVel.Velocity = Vector3.zero
        bodyVel.Parent = rootPart

        bodyGyro = Instance.new("BodyGyro")
        bodyGyro.MaxTorque = Vector3.new(9e9, 9e9, 9e9)
        bodyGyro.P = 9e4
        bodyGyro.Parent = rootPart

        storeConn("fly", RunService.RenderStepped:Connect(function()
            if not flying or not rootPart.Parent then return end
            local cam = Workspace.CurrentCamera
            local moveDir = humanoid.MoveDirection

            local flyVec = Vector3.zero
            if moveDir.Magnitude > 0 then
                flyVec = cam.CFrame:VectorToWorldSpace(moveDir)
            end
            if humanoid.Jump then
                flyVec = flyVec + Vector3.new(0, 1, 0)
            end

            bodyVel.Velocity = flyVec * 90
            bodyGyro.CFrame = cam.CFrame
        end))
    end,
    function()
        flying = false
        if connections["fly"] then connections["fly"]:Disconnect() end
        if bodyVel then bodyVel:Destroy() bodyVel = nil end
        if bodyGyro then bodyGyro:Destroy() bodyGyro = nil end
    end
)

-- ▸ SPEED HACK
createToggle("Speed Hack", "🏃",
    function()
        storeConn("speed", RunService.Heartbeat:Connect(function()
            if humanoid and humanoid.Parent then
                humanoid.WalkSpeed = 120
            end
        end))
    end,
    function()
        if connections["speed"] then connections["speed"]:Disconnect() end
        if humanoid and humanoid.Parent then humanoid.WalkSpeed = 16 end
    end
)

-- ▸ AUTO KILL MOBS (proximity-based — walk near them, they die)
createToggle("Auto Kill Mobs (Proximity)", "⚔️",
    function()
        autoKill = true
        storeConn("autokill", RunService.Heartbeat:Connect(function()
            if not autoKill then return end

            local myPos = rootPart.Position
            local KILL_RADIUS = 35 -- studs, walk near = they die

            local mobs = findMobs()
            for _, mob in pairs(mobs) do
                if mob.humanoid.Health > 0 then
                    local dist = (mob.rootPart.Position - myPos).Magnitude
                    if dist  0 and obj.Parent ~= character then
                    local isPlayer = Players:GetPlayerFromCharacter(obj.Parent)
                    if not isPlayer then
                        local hrp = obj.Parent:FindFirstChild("HumanoidRootPart") or obj.Parent:FindFirstChildWhichIsA("BasePart")
                        if hrp and (hrp.Position - myPos).Magnitude <= RADIUS then
                            obj.Health = 0
                        end
                    end
                end
            end
        end))
    end,
    function()
        if connections["killaura"] then connections["killaura"]:Disconnect() end
    end
)

--═══════════════════════════════════
-- CLOSE
--═══════════════════════════════════
CloseBtn.MouseButton1Click:Connect(function()
    for _, conn in pairs(connections) do
        conn:Disconnect()
    end
    if bodyVel then bodyVel:Destroy() end
    if bodyGyro then bodyGyro:Destroy() end
    ScreenGui:Destroy()
end)
🎮 Similar Scripts
💬 Comments (0)
Login to post a comment
No comments yet. Be the first!
Script Info
Game Ninja Tycoon
TypeKeyless
Authoralexriderr
Views10
Likes0
PublishedSep 11, 2026
🎮 Play Game on Roblox
🕐 Recent Scripts
Console for 2026
Console for 2026
Just a baseplate. • 👁 4
Keyless
V Hub San Diego Border Roleplay script keyless
V Hub San Diego Border Roleplay script keyless
San Diego Roleplay • 👁 5
Keyless
Steal the Brainrot Base Script keyless
Steal the Brainrot Base Script keyless
Steal The Brainrot Base🧠 • 👁 4
Keyless
Search for The Needle script by Luigi hub
Search for The Needle script by Luigi hub
Search For The Needle • 👁 5
Keyless
Extender void script keyless for Baddies Roblox
Extender void script keyless for Baddies Roblox
Baddies 💅 • 👁 6
Keyless