-- [[ 1. THE EMERGENCY LOADER ]] local function ForceParent() local success, target = pcall(function() return game:GetService("CoreGui") end) if not success or not target then success, target = pcall(function() return game:GetService("Players").LocalPlayer:WaitForChild("PlayerGui") end) end return target end -- Destroy old versions if they exist to prevent "Ghost GUIs" for _, v in pairs(ForceParent():GetChildren()) do if v.Name == "Gojo_Ninja_V4" then v:Destroy() end end local ScreenGui = Instance.new("ScreenGui") ScreenGui.Name = "Gojo_Ninja_V4" ScreenGui.Parent = ForceParent() ScreenGui.ResetOnSpawn = false -- [[ 2. MINIMIZE SYSTEM ]] local customImageID = "rbxassetid://18826457174" local MaxBtn = Instance.new("ImageButton") MaxBtn.Size = UDim2.new(0, 60, 0, 60) MaxBtn.Position = UDim2.new(0.5, -30, 0, 10) MaxBtn.Image = customImageID MaxBtn.Visible = false MaxBtn.Parent = ScreenGui Instance.new("UIStroke", MaxBtn).Thickness = 2 Instance.new("UICorner", MaxBtn).CornerRadius = UDim.new(0, 10) -- [[ 3. MAIN FRAME ]] local MainFrame = Instance.new("Frame") MainFrame.Size = UDim2.new(0, 380, 0, 300) MainFrame.Position = UDim2.new(0.5, -190, 0.5, -150) MainFrame.BackgroundColor3 = Color3.fromRGB(15, 15, 22) MainFrame.Active = true MainFrame.Draggable = true MainFrame.Parent = ScreenGui local MainStroke = Instance.new("UIStroke", MainFrame) MainStroke.Thickness = 3 MainStroke.Color = Color3.fromRGB(80, 80, 150) Instance.new("UICorner", MainFrame) -- Minimize Logic local MiniBtn = Instance.new("TextButton", MainFrame) MiniBtn.Size = UDim2.new(0, 30, 0, 30) MiniBtn.Position = UDim2.new(1, -35, 0, 5) MiniBtn.Text = "-" MiniBtn.BackgroundColor3 = Color3.fromRGB(40, 40, 60) MiniBtn.TextColor3 = Color3.new(1, 1, 1) Instance.new("UICorner", MiniBtn) MiniBtn.MouseButton1Click:Connect(function() MainFrame.Visible = false MaxBtn.Visible = true end) MaxBtn.MouseButton1Click:Connect(function() MainFrame.Visible = true MaxBtn.Visible = false end) -- [[ 4. BUTTONS & UI ]] local function createToggle(name, parent, yPos, color) local btn = Instance.new("TextButton", parent) btn.Size = UDim2.new(1, 0, 0, 35) btn.Position = UDim2.new(0, 0, 0, yPos) btn.Text = name .. ": OFF" btn.BackgroundColor3 = Color3.fromRGB(25, 25, 35) btn.TextColor3 = Color3.new(1, 1, 1) btn.Font = Enum.Font.SourceSansBold Instance.new("UIStroke", btn).Color = color Instance.new("UICorner", btn) return btn end local LeftSide = Instance.new("Frame", MainFrame) LeftSide.Size = UDim2.new(0, 170, 0, 200) LeftSide.Position = UDim2.new(0, 15, 0, 50) LeftSide.BackgroundTransparency = 1 local RightSide = Instance.new("Frame", MainFrame) RightSide.Size = UDim2.new(0, 170, 0, 200) RightSide.Position = UDim2.new(1, -185, 0, 50) RightSide.BackgroundTransparency = 1 local SwingBtn = createToggle("Auto Swing", LeftSide, 0, Color3.fromRGB(255, 50, 50)) local BeltBtn = createToggle("Auto Belts", RightSide, 0, Color3.fromRGB(50, 255, 50)) local SwordBtn = createToggle("Auto Swords", RightSide, 45, Color3.fromRGB(50, 150, 255)) local SellBtn = createToggle("Auto Sell", RightSide, 90, Color3.fromRGB(255, 150, 50)) -- Inputs local BurstInput = Instance.new("TextBox", LeftSide) BurstInput.Size = UDim2.new(1, 0, 0, 30) BurstInput.Position = UDim2.new(0, 0, 0, 45) BurstInput.Text = "5" BurstInput.PlaceholderText = "Burst (Max 50)" BurstInput.BackgroundColor3 = Color3.fromRGB(30, 30, 40) BurstInput.TextColor3 = Color3.new(1, 1, 1) Instance.new("UICorner", BurstInput) -- [[ 5. AUTO-ACTION LOGIC ]] local States = {Swing = false, Belts = false, Swords = false, Sell = false} -- Remote firing function that safely checks for ninjaEvent local function secureFire(...) local event = game:GetService("Players").LocalPlayer:FindFirstChild("ninjaEvent") if event then event:FireServer(...) end end -- Teleport Logic (Auto Sell) task.spawn(function() while task.wait(0.3) do if States.Sell then local p = game.Players.LocalPlayer.Character and game.Players.LocalPlayer.Character:FindFirstChild("HumanoidRootPart") if p then p.CFrame = CFrame.new(64.68, 2.97, -33.23) task.wait(0.1) p.CFrame = CFrame.new(62.62, 2.97, -29.22) end end end end) -- Swing Logic task.spawn(function() while task.wait() do if States.Swing then local b = math.clamp(tonumber(BurstInput.Text) or 1, 1, 50) for i = 1, b do secureFire("swingKatana") end end end end) -- Shop Logic task.spawn(function() while task.wait(0.8) do if States.Belts then secureFire("buyAllBelts", "Blazing Vortex Island") end if States.Swords then secureFire("buyAllSwords", "Blazing Vortex Island") end end end) -- Toggle Connections local function setup(btn, key, name) btn.MouseButton1Click:Connect(function() States[key] = not States[key] btn.Text = name .. ": " .. (States[key] and "ON" or "OFF") btn.BackgroundColor3 = States[key] and Color3.fromRGB(40, 100, 40) or Color3.fromRGB(25, 25, 35) end) end setup(SwingBtn, "Swing", "Auto Swing") setup(BeltBtn, "Belts", "Auto Belts") setup(SwordBtn, "Swords", "Auto Swords") setup(SellBtn, "Sell", "Auto Sell")