This mod prevents players from combat logging on a Hytale server. When a player takes damage from another player, a mob, or the environment, they are tagged for a configurable duration. If they disconnect while tagged, they are instantly killed.
Discord
Join the server to report bugs, suggest features, or just chat: >> Join Discord <<
Features
- Customizable Combat Timer – Set how long players stay in combat.
- Damage Source Control – Choose if combat triggers from players (PvP), mobs (PvE), or environmental damage (fall, fire, drowning, etc.).
- Fully Customizable Messages – Change the alerts for entering and leaving combat (supports Hex Colors
#FFAA00 and Markdown **text**).
- Live Combat HUD – Shows your active combat timer directly on the HUD (toggleable via config).
- Disconnect Punishment – Automatically kill the player or execute a command if they log out during combat.
- Command Blacklist – Block specific commands (e.g.,
/tpa, /home) during combat.
Permissions
combatlog.bypass – Players with this permission will not be tagged in combat.
combatlog.admin – Allows use of /combatlog and all subcommands (enable, disable, reload, clear).
Commands
/combatlog or /cl – Shows mod status and version.
/combatlog enable – Enables the mod.
/combatlog disable – Disables the mod and clears all tags.
/combatlog reload – Reloads configuration from file.
/combatlog clear – Removes all active combat tags globally.


Supported Languages
- English (
en_US)
- Brazilian Portuguese (
pt_BR) - Translated by ab3g7ph_39718
Want to add your language? Join the Discord!
Configuration
All settings are configured in the mods/Devify_CombatLog/config.json file.
Note: If you don't see the new settings in your config file after updating, simply delete the old file. The mod will generate a fresh one with the latest options automatically.
Feel free to use in your server or modpack.
Developer API
Query Methods (org.combatlog.plugin.api.CombatLogApi) (Soft-failing: Returns safe defaults like false, 0, or empty info instead of throwing exceptions if the mod is unavailable.)
isAvailable(): Returns true if CombatLog is loaded and active.
isTagged(UUID playerUuid): Returns true if the player is in combat.
getRemainingMillis(UUID playerUuid): Returns remaining combat time in milliseconds.
getTagInfo(UUID playerUuid): Returns a CombatTagInfo object with detailed data.
Events (org.combatlog.plugin.api.event.*)
CombatTagStartedEvent
- Properties:
playerUuid, cause, attackerName, attackerIsPlayer
- Causes:
PVP, PVE, ENVIRONMENT, UNKNOWN
CombatTagEndedEvent
- Properties:
playerUuid, reason, lastCause, lastAttackerName, lastAttackerIsPlayer
- Reasons:
EXPIRED, DEATH, DISCONNECT, CLEARED, MOD_DISABLED, MANUAL
Example Usage
import org.combatlog.plugin.api.CombatLogApi;
import org.combatlog.plugin.api.event.CombatTagStartedEvent;
import org.combatlog.plugin.api.event.CombatTagEndedEvent;
// Check combat status
if (CombatLogApi.isAvailable() && CombatLogApi.isTagged(playerUuid)) {
long remaining = CombatLogApi.getRemainingMillis(playerUuid);
// Handle tagged player logic
}
// Listen to events
getEventRegistry().registerGlobal(CombatTagStartedEvent.class, event -> {
// Combat started logic
});
getEventRegistry().registerGlobal(CombatTagEndedEvent.class, event -> {
// Combat ended logic
});