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
/me.How a fight works#
/fightpicks 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.
/fightbrings 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.
| Setting | Default |
|---|---|
| Players per fight | 3 |
| Time to pick a move | 30 s |
| Enemy HP per extra player | +100% |
| Joiners must be in the enemy's level range | On |
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).
| Stat | Base | Per level |
|---|---|---|
| Health | 100 | +10 |
| Attack | 10 | +2 |
| Defence | 5 | +1 |
| Speed | 5 | +1 |
| Crit chance | 5% | +0.5% |
| Crit multiplier | 1.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.
| Field | What it does |
|---|---|
| HP, attack, defence, speed, crit | How tough it is. |
| Min and max Combat level | Which members can meet it in /fight and encounters. A max of 0 means no upper limit. |
| Combat XP and gold reward | What beating it pays. |
| Drops | Items it can drop, each with a chance from 0 to 1 and a quantity. |
| Moves | What it can do, with weights. Bosses and elites deserve their own. |
| Spawn weight | How often it turns up compared with others. 0.2 makes an elite rare. |
| World boss | Makes 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.
| Setting | Default |
|---|---|
| Chance per XP-earning message | 2% |
| Shortest gap between encounters | 600 s |
| Leaves if nobody fights it after | 120 s |
| Channels | Any 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.
| Setting | Default |
|---|---|
| Spawn on their own | Off |
| Chance per XP-earning message | 0.2% |
| Shortest gap between random bosses | 6 hours |
| Time to kill before it escapes | 30 minutes |
| How often one member can attack | Every 20 s |
| Time between waves | 25 s |
Note
Duels#
/duel @member challenges someone to an automatic fight, optionally with gold on the line.
| Setting | Default | What it does |
|---|---|---|
| Min / max wager | 0 / no limit | 0 minimum allows friendly duels. |
| Rake | 0% | A cut of the pot that's removed from the economy. |
| Challenge timeout | 120 s | How long the challenge waits for an answer. |
| Cooldown | 300 s | Stops a strong member re-challenging a weak one back to back. |
| Round cap | 50 | Reaching it is a draw and no gold moves. |