Combat Logic
Combat Logic adds ARPG-style mechanics on top of vanilla combat—without replacing it. Spend stamina on dodges and skills, raise combo rank (E→SSS) for damage and regeneration bonuses, and read everything from a compact top-right HUD.
Hostile mobs show localized names and current/max HP. A vertical action feed (up to four lines) replaces chat spam for combat feedback. Parry works against mobs and players (PvP), with a 3-second cooldown after each successful parry.
World owners can scale hostile HP. Each player can disable combo or stamina/actions independently. Uses Script API (beta) and custom commands.
Core systems
Stamina
- Maximum: 100
- Base regen: 1 every 25 ticks (not during roll i-frames)
- Combo rank regen bonus (combo system ON for that player):
| Rank | Multiplier | Typical regen / pulse |
|---|---|---|
| E | ×1.00 | 1 |
| D | ×1.12 | 1 |
| C | ×1.25 | 1 |
| B | ×1.40 | 1 |
| A | ×1.60 | 2 |
| S | ×1.85 | 2 |
| SS | ×2.15 | 2 |
| SSS | ×2.50 | 3 |
Creative / Spectator: exempt from combat ticks.
Dodge
| Move | Input | STA | Notes |
|---|---|---|---|
| Roll | Sneak + Jump | 28 | ~14 tick i-frames, forward dash (ROLL_SPEED 0.75) |
| Step | Move, then sneak within ~0.5 s | 14 | Sidestep; longer distance (STEP_SPEED 0.92) |
Per-move cooldowns: roll 22 ticks, step 12 ticks.
Parry (shield only)
Open parry window (~10 ticks / 0.5 s)
- Start blocking with shield, or
- Sneak + shield when about to be hit (window opens on hurt check)
Successful parry requires
- Actions system ON
- Shield equipped (main or off hand)
- Active parry window
- Damage: melee (entityAttack) or projectile
- Attacker: any entity (mobs and players / PvP)
- Not on parry cooldown
On success
- Cancel that hit’s damage
- Stun attacker ~3 s (slowness + weakness, 60 ticks)
- VFX / sound
- HUD feed: Parry
- 3 s parry cooldown (60 ticks): no new window, no success until it ends
Does not work: fire, fall, explosion, etc.; no stamina cost for parry.
Action skills
| Skill | Input | STA | Effect |
|---|---|---|---|
| Focus | Double-tap sneak (melee weapon) | 18 | Next hit ×1.5 damage |
| Uppercut | Attack during jump window | 12 | Launch + knockback |
Blocked with shield, bow, food, bucket, etc.
Combo
- +1 per hit; reset after 60 ticks (~3 s) without a hit
- Ranks E→SSS at 1 / 2 / 5 / 10 / 20 / 40 / 70 hits
- Damage: +5% per hit after the first, cap +500%
- Brief rank-up flash on HUD
Enemy HP
- Hostile mobs only
- Two-line name tag: localized name +
cur/maxHP - Refresh on spawn, hurt, proximity
- Clears custom name before mob kills player (death message fix)
Difficulty (world)
| Mode | Hostile HP |
|---|---|
| normal | ×1 |
| hard | ×3 |
| insane | ×5 |
World-stored; reapplied when changed.
HUD (top-right)
- Panel: 168×58 px,
ui/hud_screen.json, text viatitleprefixCLHUD:
| Section | Content | Hidden when |
|---|---|---|
| STA | Bar + % | Actions OFF |
| CB | Rank, hits, mult | Combo OFF |
| LINK | Combo timeout bar | Combo OFF |
| » lines | Action feed (max 4, one event per line, ~2.5 s each) | HUD OFF |
Action feed events: Roll, Step, Parry, Focus, Uppercut, STA depleted — not in chat.
Toggle: /combatlogic:cl_hud
Custom commands
Namespace: combatlogic:
Enums: combatlogic:difficulty, combatlogic:toggle
Return messages: plain strings (trCmd).
| Command | Permission | Description |
|---|---|---|
/combatlogic:cl_help |
Any | Controls + commands (chat) |
/combatlogic:cl_hud |
Any | Toggle HUD |
/combatlogic:cl_difficulty <normal|hard|insane> |
Operator | World mob HP scale |
/combatlogic:cl_difficulty_show |
Any | Current multiplier |
/combatlogic:cl_combo [on|off|status] |
Any | Combo system; no arg = toggle |
/combatlogic:cl_stamina [on|off|status] |
Any | Stamina + dodge + parry + skills |
/combatlogic:cl_actions … |
Any | Alias of cl_stamina |
HUD compatibility
Likely conflicts: other packs editing hud_screen.json → hud_content; scripts constantly driving title/subtitle.
Moderate: persistent actionbar bars, large right scoreboard.
Usually fine: chat-only, worldgen, texture packs.
Put Combat Logic RP above other HUD RPs; test with others disabled if layout breaks.