CombatKeepInventory
CombatKeepInventory is a Minecraft server plugin designed to control inventory loss based on how a player dies, with dedicated Bukkit/Paper and Velocity support.
The plugin provides a combat-aware death system that distinguishes between normal deaths and deaths caused by another player. It can preserve a player's inventory when they die outside of PvP combat while allowing inventory loss when they are killed by another player.
Core Features
- Combat state management with configurable combat duration.
- Automatic combat detection when players damage each other.
- Combat state refresh when combat interactions continue.
- Proper combat state termination when combat ends.
- Forced combat termination when required by the server.
- PvP death detection and combat-aware inventory handling.
- Configurable inventory retention rules.
- Support for normal deaths and player-caused deaths as separate cases.
- Optional WorldGuard integration for region-based combat rules.
- Optional PvPManager integration when available.
- Combat damage attribution support.
- Bukkit/Paper platform detection.
- Velocity proxy integration for network-wide combat state tracking.
- Synchronization of combat states between backend servers and the Velocity proxy.
- Proxy-side session tracking for server switching and cluster exits.
- Configurable proxy-side combat punishment handling.
- Public API for integration with other plugins.
Bukkit/Paper Module
The Bukkit module handles gameplay-side combat and death processing.
Its responsibilities include:
- Detecting player-versus-player damage.
- Starting and refreshing combat sessions.
- Ending or force-ending combat sessions.
- Determining the cause of death.
- Applying the configured inventory rule.
- Communicating combat state changes to the Velocity proxy.
- Integrating with supported protection and combat plugins.
- Providing Bukkit-side API access for other plugins.
The Bukkit implementation is designed to work with modern Paper/Bukkit-based servers while keeping platform-specific functionality separated from the core module.
Velocity Module
The Velocity module provides proxy-level combat state management.
It receives combat state updates from backend servers and maintains a centralized representation of active combat sessions.
Supported state transitions include:
START
REFRESH
END
FORCE_END
The proxy layer can therefore track whether a player is currently considered to be in combat even when that player changes backend servers.
The Velocity implementation also provides session tracking and configurable punishment handling for situations such as leaving a server cluster or switching servers while a combat session is active.
Core API
CombatKeepInventory is divided into platform-independent core contracts and platform implementations.
The core module provides the public contracts used by the Bukkit and Velocity modules, allowing other plugins to integrate with CombatKeepInventory without depending directly on platform-specific implementation classes.
The API exposes functionality related to:
- Combat state.
- Platform information.
- Platform capabilities.
- Combat management.
- Inventory rules.
- Damage attribution.
- Proxy sessions.
- Server switching.
- Cluster exit handling.
- Plugin messaging.
On the backend, combat events are processed by the combat manager and Bukkit combat service. Combat state changes are then transmitted through the combat state bridge to Velocity.
On the proxy, the corresponding listener receives these state messages and updates the proxy combat state manager. The Velocity API exposes the resulting state to other proxy-side components and plugins.
Configuration
CombatKeepInventory provides separate configuration for the Bukkit and Velocity implementations.
The Bukkit configuration controls gameplay-side behavior such as:
- Combat duration.
- Inventory handling.
- Combat-related rules.
- Optional integration settings.
- Messages and notifications.
The Velocity configuration controls proxy-side behavior such as:
- Proxy combat tracking.
- Server switching behavior.
- Cluster exit handling.
- Punishment behavior.
- Combat state synchronization.
- Proxy messages.
Configuration is loaded by the corresponding platform implementation rather than being treated as unused metadata.
Compatibility
CombatKeepInventory is designed as a modular plugin with:
- Bukkit/Paper backend support.
- Velocity proxy support.
- Java 21 runtime.
- Modern Minecraft server environments.
- Optional WorldGuard integration.
- Optional PvPManager integration.
The exact supported Minecraft version range depends on the APIs and dependencies used by the specific release.
Designed for Network Servers
The plugin is particularly suitable for networks using a Velocity proxy with multiple backend servers.
CombatKeepInventory allows combat state information to remain available at the proxy level rather than being limited to a single backend server.
This makes it possible for network administrators to implement consistent combat-leave and server-switch handling across a multi-server environment.
API and Extensibility
CombatKeepInventory exposes API contracts intended for integration with other plugins.
External plugins can use the API to query platform information, inspect supported capabilities, access combat state information, and integrate their own systems with CombatKeepInventory without modifying its internal implementation.
The separation between "cki-core", "cki-bukkit", and "cki-velocity" also allows future platform-specific functionality to be added without redesigning the entire plugin.
CombatKeepInventory is intended to provide a clean separation between combat logic, platform-specific implementation, proxy synchronization, and public API contracts while remaining suitable for both standalone servers and larger Minecraft server networks.
CombatKeepInventory is a Minecraft server plugin designed to control inventory loss based on how a player dies, with dedicated Bukkit/Paper and Velocity support.
The plugin provides a combat-aware death system that distinguishes between normal deaths and deaths caused by another player. It can preserve a player's inventory when they die outside of PvP combat while allowing inventory loss when they are killed by another player.
Core Features
- Combat state management with configurable combat duration.
- Automatic combat detection when players damage each other.
- Combat state refresh when combat interactions continue.
- Proper combat state termination when combat ends.
- Forced combat termination when required by the server.
- PvP death detection and combat-aware inventory handling.
- Configurable inventory retention rules.
- Support for normal deaths and player-caused deaths as separate cases.
- Optional WorldGuard integration for region-based combat rules.
- Optional PvPManager integration when available.
- Combat damage attribution support.
- Bukkit/Paper platform detection.
- Velocity proxy integration for network-wide combat state tracking.
- Synchronization of combat states between backend servers and the Velocity proxy.
- Proxy-side session tracking for server switching and cluster exits.
- Configurable proxy-side combat punishment handling.
- Public API for integration with other plugins.
Bukkit/Paper Module
The Bukkit module handles gameplay-side combat and death processing.
Its responsibilities include:
- Detecting player-versus-player damage.
- Starting and refreshing combat sessions.
- Ending or force-ending combat sessions.
- Determining the cause of death.
- Applying the configured inventory rule.
- Communicating combat state changes to the Velocity proxy.
- Integrating with supported protection and combat plugins.
- Providing Bukkit-side API access for other plugins.
The Bukkit implementation is designed to work with modern Paper/Bukkit-based servers while keeping platform-specific functionality separated from the core module.
Velocity Module
The Velocity module provides proxy-level combat state management.
It receives combat state updates from backend servers and maintains a centralized representation of active combat sessions.
Supported state transitions include:
START
REFRESH
END
FORCE_END
The proxy layer can therefore track whether a player is currently considered to be in combat even when that player changes backend servers.
The Velocity implementation also provides session tracking and configurable punishment handling for situations such as leaving a server cluster or switching servers while a combat session is active.
Core API
CombatKeepInventory is divided into platform-independent core contracts and platform implementations.
The core module provides the public contracts used by the Bukkit and Velocity modules, allowing other plugins to integrate with CombatKeepInventory without depending directly on platform-specific implementation classes.
The API exposes functionality related to:
- Combat state.
- Platform information.
- Platform capabilities.
- Combat management.
- Inventory rules.
- Damage attribution.
- Proxy sessions.
- Server switching.
- Cluster exit handling.
- Plugin messaging.
On the backend, combat events are processed by the combat manager and Bukkit combat service. Combat state changes are then transmitted through the combat state bridge to Velocity.
On the proxy, the corresponding listener receives these state messages and updates the proxy combat state manager. The Velocity API exposes the resulting state to other proxy-side components and plugins.
Configuration
CombatKeepInventory provides separate configuration for the Bukkit and Velocity implementations.
The Bukkit configuration controls gameplay-side behavior such as:
- Combat duration.
- Inventory handling.
- Combat-related rules.
- Optional integration settings.
- Messages and notifications.
The Velocity configuration controls proxy-side behavior such as:
- Proxy combat tracking.
- Server switching behavior.
- Cluster exit handling.
- Punishment behavior.
- Combat state synchronization.
- Proxy messages.
Configuration is loaded by the corresponding platform implementation rather than being treated as unused metadata.
Compatibility
CombatKeepInventory is designed as a modular plugin with:
- Bukkit/Paper backend support.
- Velocity proxy support.
- Java 21 runtime.
- Modern Minecraft server environments.
- Optional WorldGuard integration.
- Optional PvPManager integration.
The exact supported Minecraft version range depends on the APIs and dependencies used by the specific release.
Designed for Network Servers
The plugin is particularly suitable for networks using a Velocity proxy with multiple backend servers.
CombatKeepInventory allows combat state information to remain available at the proxy level rather than being limited to a single backend server.
This makes it possible for network administrators to implement consistent combat-leave and server-switch handling across a multi-server environment.
API and Extensibility
CombatKeepInventory exposes API contracts intended for integration with other plugins.
External plugins can use the API to query platform information, inspect supported capabilities, access combat state information, and integrate their own systems with CombatKeepInventory without modifying its internal implementation.
The separation between "cki-core", "cki-bukkit", and "cki-velocity" also allows future platform-specific functionality to be added without redesigning the entire plugin.
CombatKeepInventory is intended to provide a clean separation between combat logic, platform-specific implementation, proxy synchronization, and public API contracts while remaining suitable for both standalone servers and larger Minecraft server networks.
CombatKeepInventory is a free Minecraft Java mod. Compatible with Minecraft 1.21, 26.1, 26.2. Downloaded 15 times (via Spigot). Download it and open it directly in the game.