Description
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
#FFAA00and 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/combatlogand all subcommands (enable,disable,reload,clear).
Commands
/combatlogor/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 byab3g7ph_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(): Returnstrueif CombatLog is loaded and active.isTagged(UUID playerUuid): Returnstrueif the player is in combat.getRemainingMillis(UUID playerUuid): Returns remaining combat time in milliseconds.getTagInfo(UUID playerUuid): Returns aCombatTagInfoobject with detailed data.
Events (org.combatlog.plugin.api.event.*)
CombatTagStartedEvent- Properties:
playerUuid,cause,attackerName,attackerIsPlayer - Causes:
PVP,PVE,ENVIRONMENT,UNKNOWN
- Properties:
CombatTagEndedEvent- Properties:
playerUuid,reason,lastCause,lastAttackerName,lastAttackerIsPlayer - Reasons:
EXPIRED,DEATH,DISCONNECT,CLEARED,MOD_DISABLED,MANUAL
- Properties:
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
});
