7 Gakuran Scripts Collection – OP Auto Parry, Godmode & Keyless Hubs

Photo of author
By Ali
Published by

Gakuran scripts are Lua code snippets injected via a mobile ready Roblox executor to automate perfect parries, unlock godmode, and modify character attributes in the competitive combat game (学乱) Gakuran. Utilizing an optimized pastebin loadstring allows players to bypass skill cooldowns, track opponent stamina with custom HUDs, and dominate PvP encounters without manual timing errors.

Below we list 7 working scripts for Gakuran with core feature lists, security key requirements, and verified code loaders for both PC and Mobile platforms. Popular executors like Volt, Potassium, and Wave are fully supported across these builds.

#Script NameGameKey FeaturesKey SystemMobile ReadyExecutor Compatibility
1zanegamers – Best Hub(学乱) GakuranGet any style, perfect auto parry, player ESP✅ Yes✅ YesVolt, Potassium
2MazeRbx – Keyless Parry(学乱) GakuranAuto parry builder, auto rhythm, keyless loader❌ No (Keyless)✅ YesVolt, Potassium
3Kernel – HP & Stamina HUD(学乱) GakuranCustom HUD, stamina tracking, draggable UI❌ No (Keyless)✅ YesVolt, Potassium, Wave, Delta, Codex, Synapse Z, OpiumWare, Seliware
4ChampionHub – Godmode Hub(学乱) GakuranNever miss parry, godmode, server hop✅ Yes✅ YesVolt, Potassium, Delta, Codex, Synapse Z, OpiumWare, Seliware
5JTonTheTrack1 – Parry & ESP(学乱) GakuranAuto parry, visual ESP, combat helpersUnknownNot confirmedNot specified
6kukluxk – Mobile HUD (RU)(学乱) GakuranOpen-source HP/Stamina monitor, mobile toggle❌ No (Keyless)✅ YesVolt, Potassium, Wave, Delta, Codex, Synapse Z, OpiumWare, Seliware
7zanegamers – Free Key Godmode(学乱) GakuranGodmode, get any height, get any style✅ Yes✅ YesNot specified

1. zanegamers – Best Hub Get Any Style

This feature-packed combat suite is engineered for aggressive PvP dominance in Gakuran. It eliminates standard movement penalties while providing complete visual awareness over enemy cooldowns and stats.

Features:

  • Unlock any fighting style instantly without meeting standard game requirements.
  • Execute perfect auto parries with a built-in timing visualizer and logger.
  • Track opponents using comprehensive Player ESP (HP bars, stamina, boxes, and tracers).
  • Bypass dribble cooldowns, ragdoll physics, and enemy stun effects.
script_key="KEYISINTHESERVER";loadstring(game:HttpGet("https://api.luarmor.net/files/v4/loaders/673fccd83442f4d820f57c439b4bc4cd.lua"))()

🔑 Key System | 📱 Mobile Ready

2. MazeRbx – Keyless Auto Parry & Rhythm

A lightweight, mobile-supported script that focuses strictly on combat timing. Because it is completely keyless, players can execute the code instantly without navigating through external ad gateways.

Features:

  • Defend automatically against 45 pre-configured enemy attack animations.
  • Customize parry offsets, hold durations, and maximum capture ranges via the AP Builder.
  • Automate rhythm mechanics with customizable hit-chance percentages (from 0% to 100%).
loadstring(game:HttpGet("https://owed.lol/loader.lua"))()

🔑 Keyless Script | 📱 Mobile Ready

3. Kernel – Free HP & Stamina Bar HUD

An open-source, non-exploit utility designed to improve the standard game user interface. It creates a draggable, mobile-friendly HUD on your screen to accurately monitor vital character statistics during fights.

Features:

  • Monitor exact health points and hidden physical or GC-related stamina values in real time.
  • Toggle the custom HUD interface on and off using an optimized mobile touch button.
  • Customize interface positioning using smart drag-and-drop screen mechanics.
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "Gakuran_HUD_V5_Mobile"
screenGui.ResetOnSpawn = false
if gethui then 
    screenGui.Parent = gethui() 
elseif syn and syn.protect_gui then 
    syn.protect_gui(screenGui)
    screenGui.Parent = game:GetService("CoreGui")
else
    screenGui.Parent = game:GetService("CoreGui")
end

local function makeDraggable(gui, onClickCallback)
    local dragging = false
    local dragStart = nil
    local startPos = nil
    local hasDragged = false

    gui.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            hasDragged = false
            dragStart = input.Position
            startPos = gui.Position
        end
    end)

    gui.InputChanged:Connect(function(input)
        if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
            local delta = input.Position - dragStart
            if math.abs(delta.X) > 5 or math.abs(delta.Y) > 5 then
                hasDragged = true
                gui.Position = UDim2.new(
                    startPos.X.Scale, startPos.X.Offset + delta.X, 
                    startPos.Y.Scale, startPos.Y.Offset + delta.Y
                )
            end
        end
    end)

    gui.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = false
            if not hasDragged and onClickCallback then
                onClickCallback()
            end
        end
    end)
end

local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 50, 0, 50)
toggleBtn.Position = UDim2.new(0, 15, 0, 15)
toggleBtn.BackgroundColor3 = Color3.fromRGB(12, 12, 15)
toggleBtn.BackgroundTransparency = 0.2
toggleBtn.BorderSizePixel = 0
toggleBtn.Text = "HUD"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 14
toggleBtn.Active = true
toggleBtn.Parent = screenGui
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8)

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 220, 0, 80)
mainFrame.Position = UDim2.new(1, -240, 0, 45)
mainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 15)
mainFrame.BackgroundTransparency = 0.2
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Visible = false
mainFrame.Parent = screenGui
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8)

makeDraggable(mainFrame, nil)
makeDraggable(toggleBtn, function()
    mainFrame.Visible = not mainFrame.Visible
end)

local hpText = Instance.new("TextLabel")
hpText.Size = UDim2.new(1, -20, 0, 30)
hpText.Position = UDim2.new(0, 12, 0, 8)
hpText.BackgroundTransparency = 1
hpText.TextColor3 = Color3.fromRGB(255, 80, 80)
hpText.TextSize = 16
hpText.Font = Enum.Font.GothamBold
hpText.TextXAlignment = Enum.TextXAlignment.Left
hpText.Text = "HP: ..."
hpText.Parent = mainFrame

local stamText = Instance.new("TextLabel")
stamText.Size = UDim2.new(1, -20, 0, 30)
stamText.Position = UDim2.new(0, 12, 0, 40)
stamText.BackgroundTransparency = 1
stamText.TextColor3 = Color3.fromRGB(255, 180, 60)
stamText.TextSize = 16
stamText.Font = Enum.Font.GothamBold
stamText.TextXAlignment = Enum.TextXAlignment.Left
stamText.Text = "STAMINA: ..."
stamText.Parent = mainFrame

local hum = nil
local hpConn = nil
local function updateHp()
    if hum then
        hpText.Text = string.format("HP  %.0f / %.0f", hum.Health, hum.MaxHealth)
    end
end
local function setupCharacter(char)
    hum = char:WaitForChild("Humanoid", 5)
    if hpConn then hpConn:Disconnect() end
    if hum then
        hpConn = hum:GetPropertyChangedSignal("Health"):Connect(updateHp)
        updateHp()
    else
        hpText.Text = "HP: Error"
    end
end
if player.Character then setupCharacter(player.Character) end
player.CharacterAdded:Connect(setupCharacter)

local staminaSource = nil
local sourceType = nil
local lastStamVal = -1
local function findPhysicalStamina()
    local char = player.Character
    if not char then return nil, nil end
    local stats = char:FindFirstChild("Stats") or char:FindFirstChild("Data") or char:FindFirstChild("Folder")
    if stats then
        local stamObj = stats:FindFirstChild("Stamina") or stats:FindFirstChild("stamina") or stats:FindFirstChild("Energy")
        if stamObj and stamObj:IsA("ValueObject") then return stamObj, "Value" end
    end
    local directStam = char:FindFirstChild("Stamina") or char:FindFirstChild("stamina")
    if directStam and directStam:IsA("ValueObject") then return directStam, "Value" end
    if char:GetAttribute("Stamina") ~= nil then return "CharAttribute", "Attribute"
    elseif player:GetAttribute("Stamina") ~= nil then return "PlayerAttribute", "Attribute" end
    return nil, nil
end
local function findGCRelatedStamina()
    if not getgc then return nil, nil end
    local gctables = getgc()
    for _, v in pairs(gctables) do
        if type(v) == "table" then
            local hasStam = rawget(v, "Stamina") or rawget(v, "stamina") or rawget(v, "_stamina")
            if hasStam and type(hasStam) == "number" then
                local isCombatTable = rawget(v, "Posture") or rawget(v, "MaxStamina") or rawget(v, "Blocking") or rawget(v, "Stunned") or rawget(v, "MaxStam")
                if isCombatTable then return v, "Table" end
            end
        end
    end
    return nil, nil
end
local function resolveStaminaSource()
    local src, t = findPhysicalStamina()
    if src then staminaSource = src; sourceType = t; return end
    src, t = findGCRelatedStamina()
    if src then staminaSource = src; sourceType = t; return end
    staminaSource = nil; sourceType = nil
end

player.CharacterRemoving:Connect(function()
    staminaSource = nil; sourceType = nil; lastStamVal = -1
end)

task.spawn(function()
    local scanCooldown = 0
    while task.wait(0.05) do
        if not staminaSource then
            if tick() - scanCooldown > 3 then
                scanCooldown = tick()
                resolveStaminaSource()
            end
            if mainFrame.Visible then
                stamText.Text = "STAMINA: Searching..."
            end
            continue
        end

        if not mainFrame.Visible then continue end

        local currentStam = nil
        local success = pcall(function()
            if sourceType == "Value" then currentStam = staminaSource.Value
            elseif sourceType == "Attribute" then
                local char = player.Character
                if staminaSource == "CharAttribute" and char then currentStam = char:GetAttribute("Stamina")
                else currentStam = player:GetAttribute("Stamina") end
            elseif sourceType == "Table" then
                currentStam = rawget(staminaSource, "Stamina") or rawget(staminaSource, "stamina") or rawget(staminaSource, "_stamina")
            end
        end)

        if not success or currentStam == nil then
            staminaSource = nil; sourceType = nil
            continue
        end

        if currentStam ~= lastStamVal then
            lastStamVal = currentStam
            stamText.Text = string.format("STAMINA  %.0f", currentStam)
            if currentStam < 30 then stamText.TextColor3 = Color3.fromRGB(255, 100, 100)
            else stamText.TextColor3 = Color3.fromRGB(255, 180, 60) end
        end
    end
end)

UserInputService.InputBegan:Connect(function(input, gp)
    if not gp and input.KeyCode == Enum.KeyCode.Insert then
        mainFrame.Visible = not mainFrame.Visible
    end
end)

🔑 Keyless Script | 📱 Mobile Ready

4. ChampionHub – Never Miss Auto Parry & Godmode

ChampionHub provides an all-in-one combat enhancement script built specifically to counter players who team up in public servers. It combines defensive godmode loops with offensive timing assists.

Features:

  • Block incoming strikes flawlessly with an automated face-lock parry system.
  • Activate infinite stamina and godmode to survive multi-target engagements.
  • Teleport directly to target players or server hop automatically when fights conclude.
-- https://discord.gg/2VQ4KWD9w
script_key="GETTHEKEYINSIDETHESERVER";loadstring(game:HttpGet("https://api.luarmor.net/files/v4/loaders/d1cd53bc8b5b179e010a9d7b811e5d04.lua"))()

🔑 Key System | 📱 Mobile Ready

5. JTonTheTrack1 – Auto Parry & ESP Suite

A streamlined script engineered for simple execution. While lightweight on system resources, it delivers essential combat utilities to help players predict incoming attacks and track enemy movements across the map.

Features:

  • Parry enemy combat animations automatically during close-quarters brawls.
  • Highlight enemy locations and status bars through solid obstacles with visual ESP.
  • Load configurations rapidly with a stable, single-line loader.
loadstring(game:HttpGet("https://api.jnkie.com/api/v1/luascripts/public/6448a11f7f4030529fb16498d4fccbea5625d689df2628fa08ebf62b941c760b/download"))()

🔑 Key system: unknown | 📱 Mobile: not confirmed

6. kukluxk – Mobile HP & Stamina HUD (RU)

This version of the open-source HUD tracker features Russian localization and specialized touch-scaling for mobile viewports. It provides an undetectable, clean overlay to track vital combat resources without triggering anti-cheat mechanisms.

Features:

  • Analyze character health and stamina depletion rates with zero display lag.
  • Adjust UI positioning seamlessly on touchscreen devices without blocking combat vision.
  • Execute across all major mobile and PC executors safely without security keys.
local Players = game:GetService("Players")
local UserInputService = game:GetService("UserInputService")
local player = Players.LocalPlayer

local screenGui = Instance.new("ScreenGui")
screenGui.Name = "Gakuran_HUD_V5_Mobile"
screenGui.ResetOnSpawn = false
if gethui then 
    screenGui.Parent = gethui() 
elseif syn and syn.protect_gui then 
    syn.protect_gui(screenGui)
    screenGui.Parent = game:GetService("CoreGui")
else
    screenGui.Parent = game:GetService("CoreGui")
end

local function makeDraggable(gui, onClickCallback)
    local dragging = false
    local dragStart = nil
    local startPos = nil
    local hasDragged = false

    gui.InputBegan:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = true
            hasDragged = false
            dragStart = input.Position
            startPos = gui.Position
        end
    end)

    gui.InputChanged:Connect(function(input)
        if dragging and (input.UserInputType == Enum.UserInputType.MouseMovement or input.UserInputType == Enum.UserInputType.Touch) then
            local delta = input.Position - dragStart
            if math.abs(delta.X) > 5 or math.abs(delta.Y) > 5 then
                hasDragged = true
                gui.Position = UDim2.new(
                    startPos.X.Scale, startPos.X.Offset + delta.X, 
                    startPos.Y.Scale, startPos.Y.Offset + delta.Y
                )
            end
        end
    end)

    gui.InputEnded:Connect(function(input)
        if input.UserInputType == Enum.UserInputType.MouseButton1 or input.UserInputType == Enum.UserInputType.Touch then
            dragging = false
            if not hasDragged and onClickCallback then
                onClickCallback()
            end
        end
    end)
end

local toggleBtn = Instance.new("TextButton")
toggleBtn.Size = UDim2.new(0, 45, 0, 45)
toggleBtn.Position = UDim2.new(0, 15, 0, 15)
toggleBtn.BackgroundColor3 = Color3.fromRGB(12, 12, 15)
toggleBtn.BackgroundTransparency = 0.2
toggleBtn.BorderSizePixel = 0
toggleBtn.Text = "HUD"
toggleBtn.TextColor3 = Color3.fromRGB(255, 255, 255)
toggleBtn.Font = Enum.Font.GothamBold
toggleBtn.TextSize = 12
toggleBtn.Active = true
toggleBtn.Parent = screenGui
Instance.new("UICorner", toggleBtn).CornerRadius = UDim.new(0, 8)

local mainFrame = Instance.new("Frame")
mainFrame.Size = UDim2.new(0, 190, 0, 65)
mainFrame.Position = UDim2.new(1, -210, 0, 45)
mainFrame.BackgroundColor3 = Color3.fromRGB(12, 12, 15)
mainFrame.BackgroundTransparency = 0.2
mainFrame.BorderSizePixel = 0
mainFrame.Active = true
mainFrame.Visible = false
mainFrame.Parent = screenGui
Instance.new("UICorner", mainFrame).CornerRadius = UDim.new(0, 8)

makeDraggable(mainFrame, nil)
makeDraggable(toggleBtn, function()
    mainFrame.Visible = not mainFrame.Visible
end)

local hpText = Instance.new("TextLabel")
hpText.Size = UDim2.new(1, -20, 0, 25)
hpText.Position = UDim2.new(0, 12, 0, 8)
hpText.BackgroundTransparency = 1
hpText.TextColor3 = Color3.fromRGB(255, 80, 80)
hpText.TextSize = 14
hpText.Font = Enum.Font.GothamBold
hpText.TextXAlignment = Enum.TextXAlignment.Left
hpText.Text = "HP: ..."
hpText.Parent = mainFrame

local stamText = Instance.new("TextLabel")
stamText.Size = UDim2.new(1, -20, 0, 25)
stamText.Position = UDim2.new(0, 12, 0, 32)
stamText.BackgroundTransparency = 1
stamText.TextColor3 = Color3.fromRGB(255, 180, 60)
stamText.TextSize = 14
stamText.Font = Enum.Font.GothamBold
stamText.TextXAlignment = Enum.TextXAlignment.Left
stamText.Text = "STAMINA: ..."
stamText.Parent = mainFrame

local hum = nil
local hpConn = nil
local function updateHp()
    if hum then
        hpText.Text = string.format("HP  %.0f / %.0f", hum.Health, hum.MaxHealth)
    end
end
local function setupCharacter(char)
    hum = char:WaitForChild("Humanoid", 5)
    if hpConn then hpConn:Disconnect() end
    if hum then
        hpConn = hum:GetPropertyChangedSignal("Health"):Connect(updateHp)
        updateHp()
    else
        hpText.Text = "HP: Ошибка"
    end
end
if player.Character then setupCharacter(player.Character) end
player.CharacterAdded:Connect(setupCharacter)

local staminaSource = nil
local sourceType = nil
local lastStamVal = -1
local function findPhysicalStamina()
    local char = player.Character
    if not char then return nil, nil end
    local stats = char:FindFirstChild("Stats") or char:FindFirstChild("Data") or char:FindFirstChild("Folder")
    if stats then
        local stamObj = stats:FindFirstChild("Stamina") or stats:FindFirstChild("stamina") or stats:FindFirstChild("Energy")
        if stamObj and stamObj:IsA("ValueObject") then return stamObj, "Value" end
    end
    local directStam = char:FindFirstChild("Stamina") or char:FindFirstChild("stamina")
    if directStam and directStam:IsA("ValueObject") then return directStam, "Value" end
    if char:GetAttribute("Stamina") ~= nil then return "CharAttribute", "Attribute"
    elseif player:GetAttribute("Stamina") ~= nil then return "PlayerAttribute", "Attribute" end
    return nil, nil
end
local function findGCRelatedStamina()
    if not getgc then return nil, nil end
    local gctables = getgc()
    for _, v in pairs(gctables) do
        if type(v) == "table" then
            local hasStam = rawget(v, "Stamina") or rawget(v, "stamina") or rawget(v, "_stamina")
            if hasStam and type(hasStam) == "number" then
                local isCombatTable = rawget(v, "Posture") or rawget(v, "MaxStamina") or rawget(v, "Blocking") or rawget(v, "Stunned") or rawget(v, "MaxStam")
                if isCombatTable then return v, "Table" end
            end
        end
    end
    return nil, nil
end
local function resolveStaminaSource()
    local src, t = findPhysicalStamina()
    if src then staminaSource = src; sourceType = t; return end
    src, t = findGCRelatedStamina()
    if src then staminaSource = src; sourceType = t; return end
    staminaSource = nil; sourceType = nil
end

player.CharacterRemoving:Connect(function()
    staminaSource = nil; sourceType = nil; lastStamVal = -1
end)

task.spawn(function()
    local scanCooldown = 0
    while task.wait(0.05) do
        if not staminaSource then
            if tick() - scanCooldown > 3 then
                scanCooldown = tick()
                resolveStaminaSource()
            end
            if mainFrame.Visible then
                stamText.Text = "STAMINA: Поиск..."
            end
            continue
        end

        if not mainFrame.Visible then continue end

        local currentStam = nil
        local success = pcall(function()
            if sourceType == "Value" then currentStam = staminaSource.Value
            elseif sourceType == "Attribute" then
                local char = player.Character
                if staminaSource == "CharAttribute" and char then currentStam = char:GetAttribute("Stamina")
                else currentStam = player:GetAttribute("Stamina") end
            elseif sourceType == "Table" then
                currentStam = rawget(staminaSource, "Stamina") or rawget(staminaSource, "stamina") or rawget(staminaSource, "_stamina")
            end
        end)

        if not success or currentStam == nil then
            staminaSource = nil; sourceType = nil
            continue
        end

        if currentStam ~= lastStamVal then
            lastStamVal = currentStam
            stamText.Text = string.format("STAMINA  %.0f", currentStam)
            if currentStam < 30 then stamText.TextColor3 = Color3.fromRGB(255, 100, 100)
            else stamText.TextColor3 = Color3.fromRGB(255, 180, 60) end
        end
    end
end)

UserInputService.InputBegan:Connect(function(input, gp)
    if not gp and input.KeyCode == Enum.KeyCode.Insert then
        mainFrame.Visible = not mainFrame.Visible
    end
end)

🔑 Keyless Script | 📱 Mobile Ready

7. zanegamers – Free Key Godmode & Any Height

An alternative configuration from zanegamers focusing on structural character modifications and defensive godmode loops. It allows players to manipulate their avatar height and stats to gain reach advantages in hand-to-hand combat.

Features:

  • Modify character height scaling dynamically to alter hitbox parameters.
  • Enable godmode protections to prevent damage from enemy parry counter-attacks.
  • Equip any fighting style freely while utilizing full Player ESP enhancements.

Script code not publicly available – check the source link below.

🔑 Key System | 📱 Mobile Ready

FAQ

Do these Gakuran scripts work on mobile?

Yes, most of the scripts listed above are Mobile Ready (marked with the 📱 badge). To use them on a smartphone or tablet, you must run a mobile-compatible Roblox executor such as Delta, Codex, or Arceus X.

Why is auto-parry important in (学乱) Gakuran?

Gakuran features a strict rhythm and timing-based combat system. Auto-parry scripts eliminate human reaction latency by automatically locking onto enemy animation frames and triggering blocks at the exact required millisecond.

What is the difference between a key system and a keyless script?

A key system requires you to complete verification steps on an external webpage (often involving advertisements) to obtain a password string. A keyless script (such as MazeRbx or Kernel) bypasses this entirely, executing immediately when pasted into your executor.

Click to rate this script!
[Total: 0 Average: 0]

Leave a Comment