by kernitus and Rayzr522
Fine-tune Minecraft combat, movement, and item balance without breaking your server. OldCombatMechanics (OCM) is a free, open-source toolkit for Spigot and Paper that lets you mix 1.8-style snappiness with modern features, per world and per player.
____________________________________________________________
Why servers pick OCM ✨
- ✦ Modular: enable only what you need: cooldowns, tool damage, knockback, shields, potions, reach, sounds, more.
- ⚡ Performant: lean listeners only enabled as needed; reflection lookups are cached and recurring tasks are minimised (shared where possible) to keep tick time low on busy PvP servers.
- ⚑ Modesets: ship different rules for different worlds or players; perfect for mixed PvP/PvE, minigames, or duels.
- ⏪ Backwards-friendly: runs on Java 8+, supports 1.9 to latest; integrates cleanly with PlaceholderAPI and PacketEvents.
- ✅ Tested for you: live integration tests run real Paper servers across multiple versions every build.
- £ Zero cost: fully open source, optional basic telemetry (bStats only), no paywalls.
____________________________________________________________
Quick start ⚡
- Drop the jar into plugins/ (Spigot or Paper derivatives 1.9+).
- Restart and edit config.yml to pick your modules and modesets.
- Use /ocm reload to apply changes instantly.
- Let players choose their ruleset via /ocm modeset (name).
____________________________________________________________
Modesets ⚑
- Per-player/per-world presets that decide which features are active; each world has an allowed list and a default modeset.
- Let players pick (/ocm modeset (name)) to run, for example, 1.8-style PvP in an arena world whilst keeping vanilla rules in survival.
____________________________________________________________
Configurable Features ⚙
Features are grouped in modules and can be individually configured and disabled. Disabled modules will have no impact on server performance.
Combat ⚔
Tweak timing, damage, and reach.
- Attack cooldown: adjust or remove 1.9+ cooldown
- Attack frequency: set global hit delay
- Tool damage: pre-1.9 weapon values
- Attack range (Paper 1.21.11+): 1.8-style reach
- Critical hits: control crit multiplier
- Player regen: tune regen rates
Armour ❖
Balance defence and wear.
- Armour strength: scale armour protection
- Armour durability: change durability loss
Swords & Shields ⚔
Control block and sweep behaviour.
- Sword blocking: restore old right-click block; on Paper 1.21.2+ we also add the native sword blocking animation via the consumable component
- Shield damage reduction: scale shield protection
- Sword sweep: enable or disable sweeps
- Sword sweep particles: hide or show sweep visuals
Knockback ➜
Shape knockback per source.
- Player knockback: adjust PvP knockback
- Fishing knockback: fishing-rod knockback
- Fishing rod velocity: pull speed
- Projectile knockback: arrows and other projectiles
Gapples & Potions ✚
Change consumable power.
- Golden apple crafting and effects: notch and normal
- Potion effects and duration: old-style values
- Chorus fruit: teleport behaviour and range
New feature disabling ✖
Toggle later-version mechanics.
- Item crafting: block selected recipes
- Offhand: disable offhand use
- New attack sounds: mute new swing sounds
- Enderpearl cooldown: enable or remove cooldown
- Brewing stand refuel: alter fuel use
- Burn delay: adjust fire tick delay
____________________________________________________________
Compatibility & Testing ✅
- OCM targets Spigot 1.9+ and runs on Java 8 and up.
- We stick to Spigot/Paper APIs for forward compatibility; NMS/reflection is used only when necessary.
- Integration tests boot real Paper servers across multiple versions each build to verify behaviour.
- Most plugins work fine with OCM. Explicitly tested integrations include PlaceholderAPI (see wiki).
____________________________________________________________
Licence ✎
- Source code in the GitHub repository is under the Mozilla Public Licence 2.0 (MPL-2.0).
- Pre-built jars bundle PacketEvents (GPLv3). Those binary distributions are provided under GPLv3 terms due to the included dependency.
- If you build a jar without PacketEvents, you may distribute that build under MPL-2.0, subject to its terms.
____________________________________________________________
Development Builds ⚡
Oftentimes a particular bug fix or feature has already been implemented but a new version of OCM has not been released yet. You can find the most up-to-date version of the plugin on
Hangar (Snapshot channel).
Contributions ✚
If you are interested in contributing, please check this page first:
CONTRIBUTING.md
____________________________________________________________
This plugin uses
bStats metrics. You can disable it in the bStats plugin folder.
YOU ARE WELCOME TO LEAVE A REVIEW, BUT PROBLEM REPORTS AND FEATURE SUGGESTIONS WILL ONLY BE TAKEN INTO CONSIDERATION ON GITHUB.