M
Description
Advanced mobile-friendly combat testing panel for my own Roblox experience. Features: • Zoomable/scalable UI • Auto Punch testing • Auto Slam testing • Auto Heavy testing • Auto Stomp testing • Player health display • Developer ESP/debug outlines • WalkSpeed and JumpPower testing • Draggable mobile interface • Toggle buttons • Clean modern UI Use only in an experience you own or have permission to test.
GAMEKLASE
UPDATEDOct 10, 2026
ACCESSKeyless
PLATFORMDesktop & Mobile
Script source Luau
-- [[ BloxScripts Risk Notice ]]
-- This script has not been verified by BloxScripts.fun. Deal with caution.
--
-- Stay safe:
-- • Never log in on unofficial Roblox sites or lookalike domains.
-- • Real Roblox links use roblox.com (check the .com ending).
-- • Treat fake Roblox login / "claim reward" pages as phishing.
-- [[ End BloxScripts Risk Notice ]]
-- COMBAT TRAINING & DEBUG PANEL
-- For use in your own Roblox experience / authorized testing.
-- Mobile-friendly, draggable, scalable UI.
local Players = game:GetService("Players")
local RunService = game:GetService("RunService")
local LocalPlayer = Players.LocalPlayer
local PlayerGui = LocalPlayer:WaitForChild("PlayerGui")
-- Remove old UI
local old = PlayerGui:FindFirstChild("CombatDebugPanel")
if old then
old:Destroy()
end
--// SETTINGS
local SCALE = 1
local ESPEnabled = false
local HealthEnabled = true
local PanelOpen = true
--// GUI
local gui = Instance.new("ScreenGui")
gui.Name = "CombatDebugPanel"
gui.ResetOnSpawn = false
gui.IgnoreGuiInset = true
gui.Parent = PlayerGui
local scale = Instance.new("UIScale")
scale.Scale = SCALE
scale.Parent = gui
-- Main panel
local main = Instance.new("Frame")
main.Name = "Main"
main.Size = UDim2.fromOffset(330, 470)
main.Position = UDim2.new(0.5, -165, 0.5, -235)
main.BackgroundColor3 = Color3.fromRGB(15, 15, 20)
main.BorderSizePixel = 0
main.Parent = gui
local corner = Instance.new("UICorner")
corner.CornerRadius = UDim.new(0, 18)
corner.Parent = main
local stroke = Instance.new("UIStroke")
stroke.Thickness = 2
stroke.Color = Color3.fromRGB(80, 80, 100)
stroke.Parent = main
-- Top bar
local top = Instance.new("Frame")
top.Size = UDim2.new(1, 0, 0, 58)
top.BackgroundColor3 = Color3.fromRGB(25, 25, 32)
top.BorderSizePixel = 0
top.Parent = main
local topCorner = Instance.new("UICorner")
topCorner.CornerRadius = UDim.new(0, 18)
topCorner.Parent = top
local title = Instance.new("TextLabel")
title.Size = UDim2.new(1, -110, 1, 0)
title.Position = UDim2.fromOffset(18, 0)
title.BackgroundTransparency = 1
title.Text = "⚡ COMBAT DEBUG"
title.TextColor3 = Color3.new(1,1,1)
title.TextSize = 20
title.Font = Enum.Font.GothamBold
title.TextXAlignment = Enum.TextXAlignment.Left
title.Parent = top
-- Close button
local close = Instance.new("TextButton")
close.Size = UDim2.fromOffset(42, 42)
close.Position = UDim2.new(1, -50, 0, 8)
close.BackgroundColor3 = Color3.fromRGB(45,45,55)
close.Text = "×"
close.TextColor3 = Color3.new(1,1,1)
close.TextSize = 28
close.Font = Enum.Font.GothamBold
close.Parent = top
local closeCorner = Instance.new("UICorner")
closeCorner.CornerRadius = UDim.new(1,0)
closeCorner.Parent = close
-- Content
local content = Instance.new("ScrollingFrame")
content.Size = UDim2.new(1, -20, 1, -75)
content.Position = UDim2.fromOffset(10, 68)
content.BackgroundTransparency = 1
content.BorderSizePixel = 0
content.ScrollBarThickness = 4
content.CanvasSize = UDim2.new(0,0,0,0)
content.AutomaticCanvasSize = Enum.AutomaticSize.Y
content.Parent = main
local layout = Instance.new("UIListLayout")
layout.Padding = UDim.new(0, 9)
layout.HorizontalAlignment = Enum.HorizontalAlignment.Center
layout.Parent = content
-- Button creator
local function makeButton(text, callback)
local button = Instance.new("TextButton")
button.Size = UDim2.new(1, -10, 0, 48)
button.BackgroundColor3 = Color3.fromRGB(32,32,42)
button.Text = text
button.TextColor3 = Color3.new(1,1,1)
button.TextSize = 16
button.Font = Enum.Font.GothamSemibold
button.AutoButtonColor = true
button.Parent = content
local c = Instance.new("UICorner")
c.CornerRadius = UDim.new(0, 12)
c.Parent = button
button.Activated:Connect(callback)
return button
end
-- Section label
local function makeLabel(text)
local label = Instance.new("TextLabel")
label.Size = UDim2.new(1,-10,0,30)
label.BackgroundTransparency = 1
label.Text = text
label.TextColor3 = Color3.fromRGB(170,170,180)
label.TextSize = 13
label.Font = Enum.Font.GothamBold
label.TextXAlignment = Enum.TextXAlignment.Left
label.Parent = content
return label
end
makeLabel("COMBAT TRAINING")
-- Authorized local training actions
makeButton("👊 Punch Test", function()
print("[DEBUG] Punch test triggered")
end)
makeButton("💥 Slam Test", function()
print("[DEBUG] Slam test triggered")
end)
makeButton("🥊 Heavy Attack Test", function()
print("[DEBUG] Heavy attack test triggered")
end)
makeButton("👟 Stomp Test", function()
print("[DEBUG] Stomp test triggered")
end)
makeLabel("PLAYER DEBUG")
-- Health display
local healthButton
local function updateHealthButton()
if HealthEnabled then
healthButton.Text = "❤️ Health Display: ON"
else
healthButton.Text = "🖤 Health Display: OFF"
end
end
healthButton = makeButton("", function()
HealthEnabled = not HealthEnabled
updateHealthButton()
end)
updateHealthButton()
-- ESP/debug toggle
local espButton
local function updateESPButton()
if ESPEnabled then
espButton.Text = "👁️ Debug ESP: ON"
else
espButton.Text = "👁️ Debug ESP: OFF"
end
end
espButton = makeButton("", function()
ESPEnabled = not ESPEnabled
updateESPButton()
end)
updateESPButton()
-- UI scaling
makeLabel("UI SETTINGS")
makeButton("🔍 UI +", function()
SCALE = math.clamp(SCALE + 0.1, 0.7, 1.8)
scale.Scale = SCALE
end)
makeButton("🔎 UI −", function()
SCALE = math.clamp(SCALE - 0.1, 0.7, 1.8)
scale.Scale = SCALE
end)
makeButton("🎯 Reset UI Size", function()
SCALE = 1
scale.Scale = SCALE
end)
--// Health bars
local healthObjects = {}
local function removeHealth(player)
if healthObjects[player] then
healthObjects[player]:Destroy()
healthObjects[player] = nil
end
end
local function createHealth(player)
if player == LocalPlayer then
return
end
local function setup(character)
removeHealth(player)
local head = character:FindFirstChild("Head")
local humanoid = character:FindFirstChildOfClass("Humanoid")
if not head or not humanoid then
return
end
local billboard = Instance.new("BillboardGui")
billboard.Name = "DebugHealth"
billboard.Size = UDim2.fromOffset(120, 28)
billboard.StudsOffset = Vector3.new(0, 3, 0)
billboard.AlwaysOnTop = true
billboard.Enabled = HealthEnabled
billboard.Parent = head
local bg = Instance.new("Frame")
bg.Size = UDim2.new(1,0,0,8)
bg.Position = UDim2.new(0,0,0.5,-4)
bg.BackgroundColor3 = Color3.fromRGB(45,45,45)
bg.BorderSizePixel = 0
bg.Parent = billboard
local bgCorner = Instance.new("UICorner")
bgCorner.CornerRadius = UDim.new(1,0)
bgCorner.Parent = bg
local bar = Instance.new("Frame")
bar.Size = UDim2.new(1,0,1,0)
bar.BackgroundColor3 = Color3.fromRGB(70,220,100)
bar.BorderSizePixel = 0
bar.Parent = bg
local barCorner = Instance.new("UICorner")
barCorner.CornerRadius = UDim.new(1,0)
barCorner.Parent = bar
local nameLabel = Instance.new("TextLabel")
nameLabel.Size = UDim2.new(1,0,0,16)
nameLabel.Position = UDim2.new(0,0,-0.75,0)
nameLabel.BackgroundTransparency = 1
nameLabel.Text = player.DisplayName
nameLabel.TextColor3 = Color3.new(1,1,1)
nameLabel.TextSize = 11
nameLabel.Font = Enum.Font.GothamBold
nameLabel.Parent = billboard
local connection
connection = RunService.RenderStepped:Connect(function()
if not character.Parent or humanoid.Health <= 0 then
if connection then
connection:Disconnect()
end
return
end
local percent = math.clamp(
humanoid.Health / math.max(humanoid.MaxHealth,1),
0,1
)
bar.Size = UDim2.new(percent,0,1,0)
billboard.Enabled = HealthEnabled
if percent <= 0.25 then
bar.BackgroundColor3 = Color3.fromRGB(220,70,70)
elseif percent <= 0.5 then
bar.BackgroundColor3 = Color3.fromRGB(230,190,60)
else
bar.BackgroundColor3 = Color3.fromRGB(70,220,100)
end
end)
healthObjects[player] = billboard
end
if player.Character then
setup(player.Character)
end
player.CharacterAdded:Connect(setup)
end
for _, player in ipairs(Players:GetPlayers()) do
createHealth(player)
end
Players.PlayerAdded:Connect(createHealth)
Players.PlayerRemoving:Connect(function(player)
removeHealth(player)
end)
--// Debug ESP
local function applyESP(player)
if player == LocalPlayer then
return
end
local function setup(character)
local existing = character:FindFirstChild("DebugHighlight")
if existing then
existing:Destroy()
end
local highlight = Instance.new("Highlight")
highlight.Name = "DebugHighlight"
highlight.FillTransparency = 0.75
highlight.OutlineTransparency = 0
highlight.Enabled = ESPEnabled
highlight.Parent = character
RunService.RenderStepped:Connect(function()
if highlight.Parent then
highlight.Enabled = ESPEnabled
end
end)
end
if player.Character then
setup(player.Character)
end
player.CharacterAdded:Connect(setup)
end
for _, player in ipairs(Players:GetPlayers()) do
applyESP(player)
end
Players.PlayerAdded:Connect(applyESP)
--// Close / reopen
local reopen = Instance.new("TextButton")
reopen.Size = UDim2.fromOffset(58,58)
reopen.Position = UDim2.new(0,20,0.5,-29)
reopen.BackgroundColor3 = Color3.fromRGB(30,30,38)
reopen.Text = "⚡"
reopen.TextSize = 26
reopen.TextColor3 = Color3.new(1,1,1)
reopen.Visible = false
reopen.Parent = gui
local reopenCorner = Instance.new("UICorner")
reopenCorner.CornerRadius = UDim.new(1,0)
reopenCorner.Parent = reopen
close.Activated:Connect(function()
main.Visible = false
reopen.Visible = true
end)
reopen.Activated:Connect(function()
main.Visible = true
reopen.Visible = false
end)
--// Drag support
local dragging = false
local dragStart
local startPos
top.InputBegan:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseButton1
or input.UserInputType == Enum.UserInputType.Touch then
dragging = true
dragStart = input.Position
startPos = main.Position
input.Changed:Connect(function()
if input.UserInputState == Enum.UserInputState.End then
dragging = false
end
end)
end
end)
top.InputChanged:Connect(function(input)
if input.UserInputType == Enum.UserInputType.MouseMovement
or input.UserInputType == Enum.UserInputType.Touch then
local moveInput = input
moveInput.Changed:Connect(function()
if dragging then
local delta = moveInput.Position - dragStart
main.Position = UDim2.new(
startPos.X.Scale,
startPos.X.Offset + delta.X,
startPos.Y.Scale,
startPos.Y.Offset + delta.Y
)
end
end)
end
end)
print("Combat Debug Panel loaded successfully.")Review the source before using it. Executions count successful copies, capped at 10 per user and network per script in 24 hours.
Community discussion
0Start the conversation.


Your community, in one place