VoxelTropia

Wiki / Combat and PvP

Mechanics | specification

Combat and PvP

How a player's damage, defense, health and regeneration are calculated, where on the lobby you may fight other players, how the combat tag with a dummy after logging out works, what protects allies, and what a player loses on death.

Combat stats

Minecraft calculates damage and health: weapons, armor, enchantments, potions and item quality work as usual. Player stats are multipliers applied on top of those values. Every player starts with them at the base level. All stats are visible in the /stats window (also /statystyki), together with a breakdown by source. /stats <player> shows the stats of another player on the same server.

StatBaseCapEffect
Health1005,000Maximum health: Health / 5 health points (100 = 20 pts = 10 hearts).
Defense05,000Damage taken x 100 / (100 + Defense).
Strength02,000Damage dealt by the player x (1 + Strength / 100).
Crit Chance30%100%Chance of a critical hit on every blow and projectile hit.
Crit Damage50%5,000%Critical hit x (1 + Crit Damage / 100).
Speed100400Movement speed x Speed / 100.
Health Regen01,000Every 5 s restores as many health points as its value, also in combat.

The remaining stats (Magic Find, Mining Fortune, Farming Fortune) do not affect combat.

Stat sources

  1. Base from the table above.
  2. Equipped items: armor in four slots (helmet, chestplate, leggings, boots) and the item in the main hand, if it is not a piece of armor. A helmet held in the hand gives nothing. The off hand gives nothing.
  3. Active pet: the value from the pet definition x level / 100 x rarity multiplier (Pets).
stat = base + items + pet clamped to the range 0 ... cap
  • Stats on an item are in the first lines of its description, e.g. "Strength: +20", "Crit Chance: +5%".
  • A blueprint-crafted item has its positive stats scaled by quality: value x (50% + 50% x quality). At 50% quality that gives 75% of the value, rounded to 0.01 (Crafted item quality).
  • Stats are recalculated after putting on or taking off armor, changing the held item, swapping hands, dropping and picking up an item, closing a window, summoning a pet, joining a server, changing world and respawning. Independently of that, they are recalculated every second for everyone (e.g. when an item breaks).

Items with combat stats

ItemStatsAs a crafted item at 50% quality
Sword of RenewalHealth Regen +2Health Regen +1.5

Pets with combat stats

Values at level 100. At another level multiply by level / 100, e.g. level 50 gives half.

PetStatCommonUncommonRareEpicLegendary
BeeSpeed1216.52125.530
Fire SlimeCrit Chance6%8.2%10.5%12.8%15%
Fire SlimeCrit Damage32%44%56%68%80%
Iron GolemHealth80110140170200
Iron GolemDefense6082.5105127.5150
ZombieHealth6082.5105127.5150
ZombieStrength2433425160

Damage dealt

The attacker's stats apply when the damage is dealt by a player: with a blow or with a projectile they fired or threw (arrow, trident, etc.). The target can be a mob or a player.

  1. Base damage is calculated by Minecraft: weapon, attack charge, jump critical (x 1.5), weapon enchantments.
  2. Strength: x (1 + Strength / 100).
  3. Pet bonus against mobs: a pet with an ability against certain mobs multiplies damage by x (1 + bonus / 100). Only against the listed mob types.
  4. Critical hit: a roll with the Crit Chance probability. On a hit x (1 + Crit Damage / 100). The target sprays crit sparks and the attacker hears the crit sound.
  5. Target's defense: if the target is a player, x 100 / (100 + their Defense).
  6. Target's armor, protection enchantments, Resistance and extra hearts (absorption) are applied last, as in Minecraft, to the result above.
damage = base x (1 + Strength / 100) x pet bonus x crit x 100 / (100 + target's Defense) crit = 1 + Crit Damage / 100 with probability Crit Chance, otherwise 1 average = base x (1 + Strength / 100) x (1 + Crit Chance / 100 x Crit Damage / 100) x ...
  • A projectile remembers the shooter's Strength, Crit Chance and Crit Damage from the moment of the shot. Changing the held item while the arrow is in flight changes nothing. The crit is rolled on impact.
  • A jump critical (Minecraft) and a stat critical are independent and can occur together: x 1.5 x (1 + Crit Damage / 100).
  • Pet blows do not get the player's Strength or crit, because those are already included in the pet's damage (Pets).
  • An animal tamed by a player (e.g. a wolf) hits without the player's stats.
  • A blocked blow (zone, ally) is not counted at all.
  • Energy weapons and magic also go through the same player attack path, so everything above applies to them as well: Energy weapons, Magic and mana. They also have their own profession multipliers and crit there.

Strength multiplier

Strength02050601002005002,000
Multiplierx 1x 1.2x 1.5x 1.6x 2x 3x 6x 21

Average crit multiplier

On average per blow: 1 + Crit Chance x Crit Damage. At the base values (30%, 50%) every blow is on average 15% stronger.

Crit Chance \ Crit Damage50%100%130%200%500%
30%x 1.15x 1.3x 1.39x 1.6x 2.5
45%x 1.225x 1.45x 1.585x 1.9x 3.25
60%x 1.3x 1.6x 1.78x 2.2x 4
100%x 1.5x 2x 2.3x 3x 6

Pet bonuses against mobs

PetFrom rarityMobsBonus (level 1 -> 100)
Fire SlimeRareSlime, Magma Cube+10% -> +40%
ZombieCommonZombie, Husk, Drowned, Zombie Villager+5% -> +25%

The bonus grows linearly with the pet's level: level 1 gives the lower value, level 100 the upper one.

Defense

Defense reduces every instance of damage the player takes: from a player, a mob, falling, fire, lava, poison, drowning. The reduction is applied before armor, and armor then works on the result.

taken = damage x 100 / (100 + Defense) effective health = Health x (1 + Defense / 100)

Defense does not apply to: falling into the void, the kill command, the world border and suicide. It also does not apply to mob abilities that ignore armor: those subtract health directly.

DefenseDamage takenReductionEffective health at Health 100Hits of 5 pts to die (Health 100)
0100.0%0.0%1004
2580.0%20.0%1255
5066.7%33.3%1506
10050.0%50.0%2008
15040.0%60.0%25010
20033.3%66.7%30012
30025.0%75.0%40016
50016.7%83.3%60024
1,0009.1%90.9%1,10044
5,0002.0%98.0%5,100204

Every 100 Defense is worth another full life. Defense never gives full immunity.

Health

maximum health (points) = Health / 5 1 point = half a heart hearts on screen = at most 20; with higher health one heart stands for more points
HealthHealth pointsHeartsHearts on screenPoints per heart
1002010102
1503015152
2004020202
3006030203
50010050205
1,0002001002010
5,00010005002050
  • Changing the maximum keeps the current health points, clamped to the new maximum. Example: a player has 35 of 40 pts and takes off armor with Health +100. The maximum drops to 20 pts and health to 20 pts. After putting the armor back on, they have 20 of 40 pts.
  • Minecraft effects (e.g. Health Boost from a potion) add to the maximum from the stat.

Health regeneration

Health Regen

Every 5 seconds each living player with Health Regen greater than 0 recovers health. It works everywhere: on the lobby, on islands and during combat. The timer is shared by all players and is not counted from the last blow, so the first healing arrives after 0-5 s.

every 5 s: health += min(Health Regen, maximum - health) in health points (1 = half a heart)
Health RegenPoints per minuteHearts per minuteFrom 1 pt to full, Health 100From 1 pt to full, Health 500
112695 s8 min 15 s
2241250 s4 min 10 s
5603020 s100 s
101206010 s50 s
202401205 s25 s

Times assume constant health, no damage in between, counted from the first healing.

Natural regeneration and healing on the lobby

  • On the lobby Minecraft's natural regeneration is disabled. Health is restored only by Health Regen from items and the pet.
  • Hunger does not drop anywhere (lobby and islands). Food can only raise the bar.
  • The lobby safe zone (Farpoint) heals everyone standing in it to full every 60 s. Outside the safe zone there is no such healing, so that a fight does not end with a sudden return to full health.
  • Joining the lobby gives full health and a full hunger bar, removes potion effects and puts the player at the spawn.

Worked examples

A blow against another player

Attacker: iron sword, full charge, no jump (base damage 6), Strength 60, Crit Chance 30%, Crit Damage 50%. Target: Defense 150, Health 100 (20 pts), no armor.

Without a crit: 6 x 1.6 x 100 / 250 = 3.84 pts. With a crit: 6 x 1.6 x 1.5 x 100 / 250 = 5.76 pts. On average: 4.416 pts per blow. Without crits the target falls after 6 blows.

A mob hits a player with Health Regen

The mob deals 8 damage. Player: Defense 100, Health 150 (30 pts), Health Regen 2, no armor.

Each blow takes 8 x 100 / 200 = 4 pts. Health Regen returns 2 pts every 5 s, that is 24 pts per minute. A mob that hits once every 5 s takes a net 2 pts per 5 s. The player lasts about 15 such cycles, that is 75 s.

An arrow at a mob with a pet bonus

A bow arrow with base damage 9, Strength 100, a pet with a +25% bonus against this mob type, Crit Damage 130%.

Without a crit: 9 x 2 x 1.25 = 22.5. With a crit: 22.5 x 2.3 = 51.75. The mob has no Defense, so only its armor counts further.

Zones on the lobby

The lobby map is divided into regions. Each region has a name shown on the panel on the right and one of three types. Terrain outside the regions is called Wilderness and has PvP.

TypeDamage from mobs and environmentPlayer vs player combatRegions
Safe zoneno (no damage at all)noFarpoint
Non-PvP regionyesnoZombie Zone, FallenKeep
PvP regionyesyesAshspire, Borderlands, Dark Forest, Hidden Camp, Sentinel Hill, SilenceForest, SkyHopper, SnowMountain, SnowValley, Winterwatch
Wildernessyesyesterrain outside the regions, including the strip by the map edge

Rules

  • The safe zone blocks all damage to a player: from players, mobs, falling, lava, and even the kill command. Creative mode is not covered by this protection.
  • A player-to-player blow goes through only if both stand in a PvP place. It is enough that one stands in a non-PvP zone or in the safe zone and the blow is lost without a message. So you cannot shoot from beyond the border at someone standing in a non-PvP zone, nor from the safe zone into a PvP region.
  • Escape window: a player who enters the safe zone straight from a PvP place still takes all damage for 3 s. Merely crossing the border does not end the fight. Entering the safe zone from a non-PvP region does not give this window.
  • Overlapping regions: when a place belongs to several regions, the first one in the order of the list below counts. The same region gives the name on the panel. Thanks to this Zombie Zone under Farpoint is dangerous even though the safe zone surrounds it.
  • A region may cover only a selected height range (e.g. underground). Without a range it covers the whole height of the world.

Zone map

WinterwatchSnowValleySnowMountainSkyHopperSilenceForestSilenceForestSentinel HillHidden CampFarpointFallenKeepDark ForestBorderlandsBorderlandsBorderlandsBorderlandsAshspireZombie ZoneWinterwatchSnowValleySnowMountainSkyHopperSilenceForestSentinel HillHidden CampFarpointFallenKeepDark ForestBorderlandsAshspireZombie Zonespawn
safe zone no PvP PvP grey background: Wilderness (PvP). Dashed line: a region covering only part of the height. North is up. The frame is the map edge x -515...483, z -495...503.

Regions in checking order

#RegionTypex rangez rangeHeightDescription
1Zombie ZoneNon-PvP region-47...-273...2318...36Underground beneath Farpoint - the Old Mage quest
2AshspirePvP region-384...-1-384...-129full
3Borderlands (4 parts)PvP region-416...415-416...447full
4Dark ForestPvP region0...383-384...-129full
5FallenKeepNon-PvP region96...383-128...127full
6FarpointSafe zone-128...95-128...127fullLobby safe zone
7Hidden CampPvP region-96...-33128...415full
8Sentinel HillPvP region-384...-97256...415full
9SilenceForest (2 parts)PvP region-384...-129-128...255full
10SkyHopperPvP region96...383128...255full
11SnowMountainPvP region96...383256...415full
12SnowValleyPvP region-32...95128...415full
13WinterwatchPvP region-224...-97128...255full
–WildernessPvP regionthe rest of the map

The range is the rectangle enclosing all parts of the region. A region made of several parts may not fill the whole rectangle (see the map).

Zone indicators

  • The lobby panel (on the right) shows the name of the region the player is standing in, and below it "PvP: on" (red) or "PvP: off" (green). The safe zone and a non-PvP region count as "off". The panel refreshes every 5 s.
  • Border warning: when a player walks toward a PvP place and is at most 8 blocks from it (in a straight line east, west, north or south, at the same height), they get "You are approaching a PvP zone" in chat and a quiet sound. Once per approach: the next warning only after moving away beyond 8 blocks or after entering the PvP zone. There is no warning while flying (creative, elytra) or when the player is moving away or standing still.
  • Entering a PvP zone from a non-PvP place: a large "PvP Zone" title on the screen (about 4 s), "You are in a PvP zone" in chat and a sound. Once per entry.
  • Entering a non-PvP region (e.g. from Farpoint to FallenKeep) gives no PvP title.

Islands

  • On islands PvP is always off, also between islands. The attacker gets the message "PvP is disabled on this island!". The panel on an island shows "off".
  • On islands there is no fall, fire or drowning damage. A player who falls below height 0 returns to the island spawn.
  • There is no combat music on islands.

Combat music

On the lobby a player in combat hears combat music instead of the normal background music. The track is composed of note block sounds, so it does not require a resource pack.

ParameterValue
What starts combatdamage dealt or taken from a mob or player, also by projectile; armor stands do not count; a blocked blow does not count
What keeps combat goingevery further hit, or a mob within 12 blocks that is chasing the player (has them as a target), even without a blow
End of combat10 s without hits and without a chase, a world change or leaving the lobby
Fade-in at the start4 s
Fade-out after combat3 s; returning to combat during the fade-out raises the volume from the current level, without a jump
Resumea new fight within 30 s of the end of the previous one plays the track from where it stopped; later, from the start of the main part
Background musicstopped every second during combat; after combat the client returns to its own music by itself
Volumethe "Jukebox/Note Blocks" slider in the client's sound settings

The fallback mode plays a single Minecraft music disc instead of the note-block track and repeats it every 178 s if the fight continues.

Combat tag

A player-to-player blow (direct or with a projectile) marks both players as in combat for 30 s. Each further blow counts 30 s from the start again. The tag works on every server, but PvP exists only on the lobby, so in practice it concerns the lobby.

  • The tag is not triggered by a blow blocked by a zone or a blow against an ally, because it does not take effect.
  • Fighting a mob does not trigger the tag.
  • Hitting the dummy of a player who escaped from combat (below) triggers the tag on the attacker.

What is blocked

  • Commands: /spawn, /island, /is, /wyspa, /wyspy, /hub, /lobby, /l, /home, /warp, /tpa, /tpahere, /tpaccept, /back, /rtp, /server, /visit, also with the plugin prefix (e.g. /voxeltropia:spawn).
  • Teleports: through NPCs, menus and other game mechanics, by command, by ender pearl, by chorus fruit, from spectator mode.
  • An attempt gives the message "You are in combat - wait N s.", where N is the remaining seconds (rounded up).

Not blocked: walking, running, elytra flight, riding, entering the safe zone, logging out.

Flow and messages

  1. First blow: "You are fighting a player - you cannot escape for 30 s." Further blows during the tag do not repeat the message.
  2. After 30 s without a player-to-player blow: "You are out of combat." The end of the tag is checked every second, so it may arrive up to 1 s late.
  3. Death ends the tag immediately, without a message.

Logging out in combat: the dummy

A player who leaves the game during the tag (and is alive) leaves a dummy in their place for 30 s:

  • it looks like the player (skin), has a red nickname above it and the label "Combat logger";
  • it wears the same armor and holds the same items as the player, but none of them drop;
  • it has the player's maximum health and their current health (at least 1 pt);
  • it stands still and cannot be pushed.
What happensResult
The player returns to the same server before 30 s passThe dummy disappears, the player stands in its place with its health. The combat tag starts again (30 s). Message: "You are back where your body stood - the fight goes on."
The dummy survives 30 sThe dummy disappears. The player is safe.
The dummy diesNothing drops, no experience. The killer gets "You killed <nick>, who logged out during the fight." and a kill in the PvP ranking. The player, on their next join to any server (within 7 days), after 1 s gets "You were killed by <nick> while you were logged out during a fight." and dies a normal death (Death and respawn).

Ally protection

Allies are players from the same society or the same party. Allies cannot hurt each other anywhere: on the lobby (also in PvP regions) and on islands. Details of society and party: Society and party.

Attack methodBetween allies
Blowblocked
Projectile (arrow, trident, snowball, etc.)blocked
An ally's tamed animalblocked
A thrown potion with a harmful effectdoes not affect the ally; other players in range receive it normally
A potion cloud with a harmful effectbypasses the ally
Setting on fire (fire enchantment on a sword or bow)blocked
  • A blocked blow does not trigger the combat tag and gives no message.
  • Helpful potions (e.g. healing) work on an ally normally.
  • A frozen society (the leader lost VIP) does not protect its members. After VIP is lost, the protection fades after one minute at the latest. A shared party keeps protecting.
  • A party can join players from different societies and without a society. The protection covers everyone in the same party.

Death and respawn

WhatAfter death
Inventorystays entirely, nothing drops (lobby and islands)
Enchanting experiencelevel drops to 0; experience orbs do not drop
Wallet (VED carried)10% is lost, rounded down to whole VED; the lost VED disappears, the killer does not receive it
Banksafe, nothing is lost
Combat tagends
Petdisappears for the duration of death and returns after respawn
PvP rankingthe player who killed (also with an arrow) gets a kill in the ranking; the same for killing a dummy; suicide does not count

Loss message: "You lost <amount> VED (10% of the cash you carried). VED in the bank is safe."

Example

A player has 1,234 VED in the wallet and 50,000 VED in the bank. After death they lose 123 VED (10% of 1,234 is 123.4, rounded down), leaving 1,111 VED in the wallet. The bank is unchanged. With a small wallet the rounded-down loss can be 0: with 9 VED nothing is lost.

Respawn

  • Lobby: always at the lobby spawn (Farpoint), unless the player has set a bed or a respawn anchor.
  • Island: at the spawn of the island where the player died.
  • After respawning the player has full health and their stats are recalculated from scratch.

Lobby map border

The lobby map is a rectangle from x -515 to 483 and from z -495 to 503 (blocks inclusive, 999 x 999 blocks). Below height 0 is the void.

SituationWhat happens
A player walks, runs or flies on an elytra past the edgean invisible wall at full height: the player stays in place and gets a slight push toward the center; elytra flight ends; action bar: "This is the edge of the map."
Ender pearl, chorus fruit, a command teleport past the edgethe teleport fails, the same message in chat
A vehicle (boat, horse, minecart) with a player past the edgethe vehicle stops and returns to its previous position
Falling below height 0the player immediately returns to the lobby spawn, without fall damage; message: "You fell below the map - back to spawn."
Joining the game outside the map or beneath itthe player is placed at the nearest point inside the map or at the spawn
  • The border and the void beneath the map are bypassed by creative mode only. An administrator in another mode is stopped like any player.
  • Teleports performed by the game itself (e.g. /spawn, NPCs) are not checked against the border.
  • Between the map edge and the regions lies a strip of Wilderness terrain with PvP.

Messages

WhenWhereText
Approaching a PvP zonechat + sound"You are approaching a PvP zone"
Entering a PvP zoneon-screen title"PvP Zone"
Entering a PvP zonechat + sound"You are in a PvP zone"
PvP state at the player's locationpanel"PvP: on / PvP: off"
Hitting a player on an islandchat"PvP is disabled on this island!"
Start of the combat tagchat"You are fighting a player - you cannot escape for 30 s."
Blocked command or teleportchat"You are in combat - wait {s} s."
End of the combat tagchat"You are out of combat."
Returning to the dummy's placechat"You are back where your body stood - the fight goes on."
Killing a dummy (killer)chat"You killed {nick}, who logged out during the fight."
Death after the dummy was killedchat"You were killed by {nick} while you were logged out during a fight."
Loss on deathchat"You lost {amount} VED (10% of the cash you carried). VED in the bank is safe."
Map edgeaction bar / chat"This is the edge of the map."
Falling below the mapchat"You fell below the map - back to spawn."
Health Regen description in /statswindow"Restores health every 5 seconds, also in combat."

Open questions

  • Health Regen unit. Health is counted in stat units (100 Health = 20 health points), and Health Regen in health points. So Health Regen 2 restores 2 pts, which equals 10 Health. To be decided whether Health Regen should be in Health units.
  • Natural regeneration on islands. The game disables it only on the lobby. On islands hunger does not drop, so normal Minecraft regeneration may heal quickly. To be decided whether islands should work like the lobby.
  • Joining the lobby heals to full. After the combat tag ends a player can leave and come back with full health. To be decided whether this is intended.
  • A non-PvP region blocks only blows and projectiles. A thrown potion with an effect (poison, weakness), a potion cloud and a player's tamed animal get through. Ally protection covers these cases, zone protection does not.
  • The dummy is not protected like a player. The safe zone, non-PvP region and ally protection apply only to players, so anyone can kill the dummy, including an ally or a mob (then the killer is "?"). The dummy also has no player Defense, only armor, so it dies faster than a player.
  • The dummy and another lobby server. Returning takes the dummy away only on the same server. A player who joins another lobby server does not recover the body, and the dummy can still die. Death after the dummy was killed is lost if the player does not join within 7 days.
  • The combat tag does not forbid entering the safe zone. After the 3 s escape window the player is untouchable there, even though the tag continues. During that window someone standing in the safe zone can also hit them.
  • Two lists of blocked commands. The game server additionally blocks /home, /warp, /tpa, /tpahere, /tpaccept, /back, /rtp, and the proxy additionally /visit. A command from one list is not blocked where it is missing. It would be better to have one list.
  • The panel refreshes every 5 s, so the PvP line may lag up to 5 s after crossing the border. Setting the refresh to every 1 s in the lobby config does not work.
  • Mob abilities that ignore armor subtract health directly: they bypass Defense, the safe zone and ally protection.
  • Loss on death disappears. The killer gets nothing from the victim's wallet. To be decided whether part of it should go to the killer in PvP.
  • PvP on islands. There is no island setting that enables PvP. Today PvP is off on every island.
  • Spectator mode beneath the map also returns to the spawn. The border settings description says the spectator is an exception.