BDO Node War Roster Guide: Building a Winning Composition

A Node War roster is not a list of names. It is a set of capacity-bound groups, and the difference between a guild that fields a coherent war party and one that shows up with nine Shai is almost always a rostering problem rather than a gear problem. This guide explains how a Node War roster is actually structured in Project Athena, what each group is for, and the arithmetic that keeps the whole thing consistent.

The groups on a Node War roster

Every Node War event carries a fixed set of groups. Four of them consume capacity, three of them do not. Understanding which is which is most of the battle, because officers routinely try to solve an overflow problem by editing a group that was never taking a seat in the first place.

Standard Tier 1 roster groups
GroupDiscord buttonConsumes capacityPurpose
Mainball/FFAFFAYesThe main body of the war party. Receives whatever capacity is left after every other group is allocated.
DefenseDEFYesPlayers held back for fort and objective defence rather than the moving ball.
ZerkerZERKYesA reserved seat count for Berserkers, whose grab pressure is disproportionate at small roster sizes.
ShaiSHAIYesA reserved seat count for Shai support.
TentativeTentativeNoA maybe. Records intent without taking a fighting slot.
AbsenceAbsenceNoAn explicit no, so attendance data separates "did not answer" from "cannot make it".
BenchNot selectableNoOverflow destination. Uncapped, and never chosen directly by a member.

Mainball/FFA is a remainder, not a number

This is the single most useful thing to internalise. You never type a Mainball/FFA capacity. It is derived, every time anything else changes, from one rule:

Mainball/FFA = total capacity - all non-Mainball, non-Bench group capacities

Bench is excluded because it has no cap; it is the overflow bucket, not a competing allocation. Tentative and Absence are excluded for the same reason. So on a Tier 1 Thursday war with a total capacity of 30 and the default specialist slots of Defense 5, Zerker 2 and Shai 2, Mainball/FFA lands on 21. Push Defense up to 8 and Mainball/FFA drops to 18 the moment the change is saved. Set specialist slots so aggressively that they exceed the total and Mainball/FFA floors at zero rather than going negative.

The practical consequence: the sum of your active groups can never quietly exceed the number of players the war actually allows. There is no state in which the announcement promises 34 seats for a 30-player war.

Tier 1 defaults and why they are what they are

A new Tier 1 roster starts at Defense 5, Zerker 2, Shai 2. Those numbers are not sacred, but they are a sane opening position for a 25 to 30 player war: roughly a sixth of the roster held for defence, and a hard ceiling of two on each of the two classes that guilds most often over-sign. Reserving the specialist seats explicitly means a member who clicks SHAI third gets benched rather than displacing a Mainball body. If your guild runs a different doctrine, change the numbers once and Mainball/FFA re-derives itself.

Bench overflow: the roster never says no

When a member clicks a button for a group that is already full, they are not rejected. They are placed on Bench, and the group they asked for is kept alongside their name for display. Two things follow from that. First, you keep the signal: an officer can see that four people wanted Defense and only five seats existed, which is exactly the information you need before next week. Second, promotion is trivial, because the intent is already recorded when somebody drops out an hour before the war.

The same rule applies retroactively. If you shrink a group after signups have already landed, existing members who no longer fit are moved to Bench in stored order β€” earliest signups keep their seats. Nobody is deleted, and nobody silently vanishes from the roster. The tier and composition guide covers that behaviour in more detail, since it bites hardest when you switch a war down a tier.

Tentative and Absence

These two exist so your attendance history means something. A guild that only records confirmed attendance cannot distinguish a member who declined in advance from one who ignored the announcement entirely, and those are very different conversations. Neither response consumes capacity, so marking Tentative never costs a seat that a committed player could have taken.

One member, one response

Each member holds exactly one response per event. Clicking a different button moves the response instead of duplicating it, and Sign off removes it. That invariant is what makes the counts printed on the Discord announcement trustworthy: the number next to a group is the number of bodies, not the number of clicks.

Building a composition in practice

  • Set the total first. The tier and weekday preset gives you a sensible number. Adjust it only if your war genuinely allows a different headcount.
  • Allocate specialists second. Every seat you reserve is a seat taken from Mainball/FFA, so reserve only what you would actually be unhappy to field without.
  • Leave Mainball/FFA alone. It settles itself. If the derived number looks wrong, the error is in the total or in a specialist group.
  • Read the Bench before you read the roster. A long Bench full of one group is a capacity plan that disagrees with your guild's actual class spread.
  • Post early. Announcements go out the day before the war by default, which gives members a full evening to answer rather than a panicked ten minutes.

Common rostering mistakes

Reserving seats you never fill. A Zerker slot count of four in a guild with two Berserkers costs you two Mainball bodies every single war. Reserved capacity is spent whether or not somebody occupies it.

Editing capacity after the announcement without checking the Bench. The move-to-Bench rule is deterministic and fair, but it is still a surprise to whoever gets moved. Shrink groups before you post, not after.

Treating Tentative as a soft yes. It is not a seat. If you need a hard number, ask for a hard number.

Once your composition is stable, the next thing worth automating is the announcement itself β€” see the Discord bot setup walkthrough β€” and then the post-war analysis, which is covered in the Guild League scoreboard tracking guide. Full command reference lives in the documentation.

Frequently asked questions

How many people can sign up for a Node War?

Total capacity comes from the tier and weekday preset. Tier 1 caps at 30 on Sunday, Tuesday and Thursday and 25 on Monday, Wednesday and Friday. Tier 2 runs 40 to 50 and Tier 3 runs 55 to 75. Officers can override the total, and the roster groups are recalculated against whatever number is stored.

How is the Mainball/FFA capacity calculated?

Mainball/FFA is never entered directly. It is the remainder: total capacity minus every other capacity-consuming group except Bench. Raising Defense by two lowers Mainball/FFA by two automatically, so the roster can never be oversubscribed by a typo.

What happens when the group a member picks is already full?

The member is placed on Bench instead of being rejected, and the group they asked for is retained next to their name. Bench has no capacity limit, so a war that fills up still records everyone who showed intent, and an officer can promote from Bench when a slot frees up.

Do Tentative and Absence responses use up a roster slot?

No. Tentative and Absence are non-roster responses. They record an answer against the event without consuming capacity, which keeps the attendance picture honest while leaving every fighting slot available.

Can one member sign up for two groups at once?

No. Each member holds exactly one response per event. Clicking a different button moves them rather than duplicating them, and Sign off removes the response entirely. That one-response rule is what makes the counts on the announcement trustworthy.

Run your next Node War with Project Athena

Project Athena is free. Sign in with Discord, pick a server you administer, and you can have a roster posted before your next war window opens. The documentation covers every command, and the home page is the short version.

Sign in with Discord