Docs menu

docs / combat

Combat

Turn-based fights against enemies you write, wild encounters in chat, world bosses for the whole server, and duels between members.

Combat level#

Combat is the RPG's own level, separate from chat level. Fights, world bosses, quest and achievement rewards, and items that give XP all pay Combat XP; none of it raises chat level. Combat level sets a member's stats, which enemies they meet, and which gear they can use. It has its own curve, from Combat 1 to 99 by default, tuned for fighting: about 60 early fights to Combat 10. Change it under Combat (Advanced).

Note

When Combat split off from chat level, every existing member started at the Combat level matching their chat level (capped at 99), so nobody got weaker. New members start at Combat 1, and from then on the two grow separately. Members see their Combat level on /me.

How a fight works#

  • /fight picks an enemy suited to the member's level (from the channel's place, if it has one), or one they name.
  • The enemy shows its next move before the member picks theirs: a heavy blow coming, a wind-up, a guard. Reading it is the game: guard the big hit, strike while it winds up.
  • Each round the member picks one of their moves, drinks a potion (which uses the turn), or flees.
  • Speed decides who acts first, and the fight says so under the buttons. Some moves always go first.
  • A win pays the enemy's Combat XP and gold, and rolls its drops. An enemy well below the member's level pays less XP (10% less per level past its max, down to 25%), and the result says where fairer fights are.
  • One fight at a time. /fight brings it back if it scrolled away. Walking away, or a bot restart, counts as fleeing.
  • Fights show a drawn battle scene of both sides and their statuses. Turn it off under Combat if you prefer text.

Moves#

Players and enemies use the same moves, built at Dashboard → Combat → Moves from blocks: hit (power, several hits, pierce, lifesteal), guard, counter, heal, boost a stat, apply a status, stun and cleanse. Blocks can aim at yourself, which is how drawbacks work (a heavy hit that lowers your defence), and can need a condition (if the target is bleeding) or a chance.

  • Wind-up: takes turns to charge first, and the other side sees it coming.
  • Cooldown and uses per fight keep strong moves from being spammed.
  • Who gets it: players by Combat level and any requirements, only once learned from a move scroll, or from gear that grants it.
  • Members choose four with /moves. A level-up that opens a move says so.
  • Enemies pick from their own move list by weight. Without one they attack, sometimes hit hard, sometimes guard.

Statuses

Owner-made effects that last some turns: a share of max HP lost or gained each turn (bleed, regen), stat changes (−25% attack), and how many times they stack. The defaults are Bleeding, Poisoned, Burning, Regenerating and Wounded.

Parties#

Anyone can press Join on a fight to help. Each member picks their move and the round plays once everyone has picked or the timer runs out. Each extra player adds the enemy's HP again, and each player rolls their own drops. A knocked-out member gets half rewards and no drops.

SettingDefault
Players per fight3
Time to pick a move30 s
Enemy HP per extra player+100%
Joiners must be in the enemy's level rangeOn

An enemy can be set solo only.

Places#

Places map channels (or whole categories) to enemy pools: wolves in #the-woods, the Lich only in #the-crypt. Each enemy in a pool has a weight, and an enemy's own spawn weight makes rare elites rare everywhere. Fights in a place open in a thread by default, to keep chat clear. Channels outside every place meet any enemy that suits the level.

Unlocking places#

A place can be earned. On Dashboard → Combat rules → Players, under Roles at levels, give a role at a Combat level (or a gathering or crafting skill level): “At Combat 14 give @Crypt Dweller”. Then, in Discord, hide the place's channels from everyone without that role. The moment a member gets there, havocish gives the role, the channels appear in their list, and it's announced. Pick the place it opens and the announcement names it: “🗺️ @member unlocked ⚰️ The Barrow Crypt!”

  • Roles are given, never taken away: a member who earned the Crypt keeps it.
  • It's checked after fights, gathering, crafting, buying and world bosses, and when a manager sets a level with /admin set.
  • Both starter packs come with levels set for their tougher places. Roles belong to your server, so you pick the role; the health check reminds you until you do.
  • havocish can only give roles below its own: drag its role above the unlock roles in Server Settings → Roles.

Health and losing#

  • HP carries over between fights and refills on its own: from 0 to full in 2 hours. Food and potions heal right away.
  • A loss, or a knockout in a party or by a world boss, brings you back at 25% HP.
  • It also leaves you Wounded for 10 minutes: −20% attack and defence, in and out of fights. Pick another status, change the time, or set it to 0 under Combat → Health.
  • Losing to an enemy drops 5% of carried gold (at least 10). Duels have their own penalty, off by default. Each can also take Combat XP, off by default since it can undo a level.

Player stats#

Every member's stats are a base plus a bit per Combat level, plus whatever their gear adds. Tune them at Dashboard → Combat (Advanced).

StatBasePer level
Health100+10
Attack10+2
Defence5+1
Speed5+1
Crit chance5%+0.5%
Crit multiplier1.5×+0.1×

Chat level bonus

Chatting makes members a little stronger too: each chat level adds +2 HP and +0.5 attack by default, on top of the Combat-level stats, shown on /me. It counts at most 5 + twice your Combat level chat levels, so a chat-40 regular starts at Combat 1 with 7 levels' worth and gets the full +80 HP and +20 attack by Combat 18: chatting helps, but doesn't skip the early game. Change it, or set it to 0, at Dashboard → Combat rules.

Enemies#

Each enemy is a slot on the Combat page. Enemies are what make combat work, so start from a starter pack if you're unsure.

FieldWhat it does
HP, attack, defence, speed, critHow tough it is.
Min and max Combat levelWhich members can meet it in /fight and encounters. A max of 0 means no upper limit.
Combat XP and gold rewardWhat beating it pays.
DropsItems it can drop, each with a chance from 0 to 1 and a quantity.
MovesWhat it can do, with weights. Bosses and elites deserve their own.
Spawn weightHow often it turns up compared with others. 0.2 makes an elite rare.
World bossMakes it a server-wide boss instead (below).

Wild encounters#

While people chat, an enemy sometimes turns up in the channel. The first member to click Fight takes it on.

SettingDefault
Chance per XP-earning message2%
Shortest gap between encounters600 s
Leaves if nobody fights it after120 s
ChannelsAny channel that gives XP

World bosses#

Mark an enemy as a world boss and the whole server fights it together. Rewards are split by damage dealt, and the top damage dealer rolls its drops. Managers can summon one any time with /boss summon.

The boss acts in waves. Its next move is shown on the message with a countdown, and it lands on everyone who attacked since the last wave. Guard takes 70% off, without using an attack. Each member is told privately what the wave did to them. Its guard moves make it harder to hurt until the next wave; heals heal it.

SettingDefault
Spawn on their ownOff
Chance per XP-earning message0.2%
Shortest gap between random bosses6 hours
Time to kill before it escapes30 minutes
How often one member can attackEvery 20 s
Time between waves25 s

Note

Give bosses lots of HP. They're meant to take many members several minutes.

Duels#

/duel @member challenges someone to an automatic fight, optionally with gold on the line.

SettingDefaultWhat it does
Min / max wager0 / no limit0 minimum allows friendly duels.
Rake0%A cut of the pot that's removed from the economy.
Challenge timeout120 sHow long the challenge waits for an answer.
Cooldown300 sStops a strong member re-challenging a weak one back to back.
Round cap50Reaching it is a draw and no gold moves.