CoreEngineWIKI
ESC
NavigateEnter OpenESC Close

PvP & Security

Combat tag, anti-logout, anti-spawn-camp, anti-stash, pet protection, death-loot protection, sieges and the ignore/soft-mute system.

PvP rules #

YAML
PvP:
  Enabled: true                 # global master switch
  RulesEnabledInWorld:          # decides PER WORLD whether PvP happens
    "*": false                  # default: PvP off everywhere, enable worlds explicitly
  CombatTimeoutSeconds: 15      # how long you count as in combat after the last hit
  BlockedCommands: [home, spawn, tpa, tpaccept, tpahere, warp, back, tp, teleport, rtp]
  AllowCombatItemDrop: false    # dropping items in combat
  ProtectPlayersInLandClaims:   # victim location decides
    PvPWorld: false
    NonPvPWorld: true
  ProtectPlayersInAdminLandClaims: true
  ProtectPlayersInSubdivisions: false

Whether PvP runs in a world is decided solely by RulesEnabledInWorld. In blocked worlds the damage is cancelled; in allowed worlds both participants are combat-tagged (including projectiles).

Additional permissions2
Additional permissionsDefaultDescription
coreengineclaim.nopvpimmunityopWaives PvP protection in non-PvP worlds AND fresh-spawn invincibility
coreengineclaim.siegeimmuneopCannot be sieged
⚠️

Warning: Without at least one true world in RulesEnabledInWorld the whole combat system (anti-logout, anti-stash, command block) never triggers, since it needs a PvP hit to happen first.

💡

Tip: Claim PvP protection has two deliberate exceptions: an already combat-tagged victim stays attackable (no escape-claim mid-fight), and during a siege between the participants it is lifted. AllowPearlsToPvpZones is a reserved key with no function; ender pearls are governed by Claims.EnderPearlsRequireAccessTrust.

Combat tag: every hit extends both players' tag. Red boss bar with countdown, expires automatically, removed on death. On logout the status persists (for the anti-logout penalty) and the bar returns on rejoin.

Command block in combat: the first word of every command is checked against BlockedCommands; GUI teleports are also caught. Bed, end portal and world changes stay free.

Anti-logout #

PvP.PunishLogout: true (default): if a combat-tagged player logs out, their full inventory is dropped at their location (with death-loot protection), health is set to 0 and the action is written to the audit log.

Anti-spawn-camp #

PvP.ProtectFreshSpawns: true (default): invincibility for FreshSpawnDurationSeconds (10 s) after every respawn, with a green boss bar. The very first login is the join protection's job; while that still runs and covers every kind of damage (mode: all), no second bar is laid over it.

The protection ends instantly if the protected player attacks or picks up an item (the pickup is still blocked then). Splash potions bounce off without ending it.

Anti-stash #

Combat-tagged players cannot drop items (AllowCombatItemDrop: false) and cannot open foreign inventories (chests, furnaces, ender chests, even CoreEngine menus). Own inventory and crafting stay free.

Pet protection #

Applies to tamed wolves, cats, parrots, horse-likes, axolotls, foxes and allays.

Action5
ActionRule
DamageOnly the owner hits (also projectiles); environment damage stays
Feed/lureOwner only
LeashOwner only
RideOwner always; others only with access trust in a claim of the owner at the spot
Re-tameRejected if the animal already belongs to someone
Commands1
CommandSyntaxPermissionDefaultDescription
Give pet/givepet(no permission checked)trueSelection mode: next right-click on your own animal, then name entry + confirmation
💡

Tip: /givepet checks ownership three times (selection, entry, confirmation) and can be disabled via Pets.EnableGivePetCommand: false.

Death-loot protection #

All death drops are pickup-only by the owner for PvP.LootProtectionSeconds (180 s); <= 0 disables the marking.

Commands2
CommandSyntaxPermissionDefaultDescription
Unlock own drops/claim unlockdropscoreengineclaim.claim.unlockdropstrueUnlocks your protected drops
Unlock foreign drops/claim admin unlockdrops <player>coreengineclaim.claim.admin.unlockdropsopUnlocks foreign drops server-wide

Sieges #

Optional, off by default.

YAML
Sieges:
  Enabled: false
  MaxDurationSeconds: 1800
  Worlds: []        # empty = all worlds allowed
Commands1
CommandSyntaxPermissionDefaultDescription
Start siege/claim siege <player>coreengineclaim.claim.siegetrueSieges a player in their own claim

Start conditions: system on, world allowed and a PvP world, target online, not siegeimmune, neither already in a siege, both standing in the target's claim. On start both are combat-tagged; the attacker may build and break in the sieged claim.

Ends on: death of a participant, defender leaves their claim, logout (triggers the anti-logout penalty) or timeout.

Ignore & soft-mute #

Independent of PvP.

Commands5
CommandSyntaxPermissionDefaultDescription
Ignore/ignoreplayer <player> (/ignore)(no permission)trueHides a player's chat
Unignore/unignoreplayer <player> (/unignore)(no permission)trueStops ignoring
List/ignoredplayerlist (/ignorelist)(no permission)trueShows your ignore list
Soft-mute/softmute <player>coreengineclaim.softmuteopOnly visible to other soft-muted players
Separate/separate <p1> <p2>coreengineclaim.adminopForces mutual ignoring
Additional permissions3
Additional permissionsDefaultDescription
coreengineclaim.notignorableopCannot be ignored or soft-muted
coreengineclaim.eavesdropopReads private messages (/msg, /tell, ...)
coreengineclaim.eavesdropsignsopGets every new sign text reported
ℹ️

Note: Spam.Enabled is a reserved placeholder with no function (CoreEngine handles chat moderation). No SmartBan/anti-alt system exists; use a separate plugin for that.

Full example config #

YAML
PvP:
  Enabled: true
  RulesEnabledInWorld:
    "*": false
    pvp_world: true
  ProtectFreshSpawns: true
  FreshSpawnDurationSeconds: 10
  PunishLogout: true
  CombatTimeoutSeconds: 15
  AllowCombatItemDrop: false
  BlockedCommands: [home, spawn, tpa, tpaccept, tpahere, warp, back, tp, teleport, rtp]
  ProtectPlayersInLandClaims:
    PvPWorld: false
    NonPvPWorld: true
  ProtectPlayersInAdminLandClaims: true
  ProtectPlayersInSubdivisions: false
  LootProtectionSeconds: 180

Sieges:
  Enabled: true
  MaxDurationSeconds: 1800
  Worlds:
    - pvp_world

Pets:
  EnableGivePetCommand: true