Getting started

Two ways in, and which one you want decides most of what follows.

Raise your own colors

One run through a stepper: connect Discord, name it, attach its server, say who you are. All you need first is a verified email and no current unit.

Start a community

Find a unit to serve with

Every unit's profile carries its schedule, its roster, and how it recruits. Apply from the profile, or redeem an invitation somebody has already given you.

Browse communities
Both paths run on a connected Discord account. Founding asks for one as its first step, so there is nothing to do in advance; if you are joining, connect yours under Settings → Linked accounts before you apply. It is how a roster entry somebody already made for you attaches to your account, turnout history and all.

The public profile

Every community has a profile anyone can read: its colors, its own account of itself, the staff, the next muster in the reader's own timezone, and who turns out most. The calendar and roster sit right on it, because when a unit meets is how it recruits. From the masthead a visitor can apply to join or follow, which is not membership: it only brings the unit's events into their feed.

ExampleA unit's profile as a visitor finds it
Follow
The Pennsylvania Army logo

Community

The Pennsylvania Army

Enlisted
93
In Discord
317
Allegiance
USA
Established
February 2020
Apply to join
CalendarDrills and line battles, in your timezoneRoster93 on the books

About

The PA Army is a non-historically accurate European / North American community. We do private events on the weekend, ranging from line battles to normal skirmishes.

Coming upOne muster scheduled
Calendar

Saturday 12 September

Gallery

Battle plans

Shared WoRSketch boards for this unit's planning.

Staff

Elsewhere

Most mustered

  1. 1PA-[69thPVI] Sgt. CrossguidePA-[69thPVI] Sgt. Crossguide1043
  2. 2PA - War Torn AnusPA - War Torn Anus1004
  3. 3PA-[72ndPVI] Cpl. KiptapPA-[72ndPVI] Cpl. Kiptap927
  4. 4PA-Maj. WebPA-Maj. Web718
  5. 5PJPA-[PIB] Sgt. Jeff708
  6. 6PA-[72ndPVI] Chmn. MAOneyPA-[72ndPVI] Chmn. MAOney663
  7. 7PA-[72ndPVI] Cpt. EmpBobbyPA-[72ndPVI] Cpt. EmpBobby529
  8. 8PA-[72ndPVI] CplCpt. KilroyPA-[72ndPVI] CplCpt. Kilroy484
  9. 9PA-[69thPVI] 2Lt. MilkPA-[69thPVI] 2Lt. Milk473
  10. 10PA-[72ndPVI] 2Lt. HobbitPA-[72ndPVI] 2Lt. Hobbit470

Game statistics

A profile has two tabs. The wall is what somebody wrote; the game statistics tab is what they did in the game, and it answers from two places at once. Steam says what the account holds: level and progress toward the next, hours in the field, achievements, seasonal event tallies. kepi.live says how they fight, from the servers it tracks: rounds, kills against deaths, what they kill with, what kills them, and which army suits them.

The band across the top of the tab draws both, grouped by who said it, because "in the field" and "on server" are both durations and mean different things. Every figure names its source beside it.

The after action panel is the short version. The full report opens from the account menu on any page, and there you can page back through rounds, filter by map, mode or era, read a command record if the player has one, and look up anybody else by name or by Steam ID.

None of it is compulsory. Every widget has a switch under Settings → Profile & widgets, and linking Steam turns the Steam-fed ones on for you rather than leaving them to be found.

A record that looks empty usually is not. kepi.live only sees the servers it tracks, so rounds played elsewhere are not counted and never were. A Steam block that reads as nothing at all normally means the Steam profile is not public: game details have to be public too, not just the profile. Neither is a statement about how much somebody plays, and we cannot correct a figure at its source.

Joining a unit

  • Membership

    Apply from the profile or accept an invitation. Membership ties your account to the unit and lets you answer events on the site. One unit at a time: leave your current one before applying to another.

  • The roster

    Who is actually in the unit, including people who only live in Discord. Staff enlist them straight from the server, and members can enlist themselves with the bot when the unit allows it.

  • Mercenaries

    You serve with one unit, but any unit may carry you on its roster so it can muster you when you field with it. Add a guest the same way you add anyone else. Each unit keeps its own record of the nights you turned out for it.

    How a guest arrived decides what the entry is worth. An officer mustering somebody who was never on the books is a vouch, and that entry stands as a full mercenary. Pressing a turnout button on a schedule post is not: it records that night and nothing else, and grants no standing in the unit until an officer musters them or gives them a rank.

Founding a unit

Press Start a community and answer the stepper. It connects your Discord account, then asks for a name, which of your servers this is, your side and a line about the unit, which roles carry your officer ranks, and where the schedule should post. Only that last one is optional, and it can be answered later.

None of it has to be done in one sitting, and none of it is permanent. The stepper works out where you are from the unit itself rather than remembering a position, so you can close the tab and come back to the same place, and the Manage panel carries a way back in while anything is still outstanding.

The one rule worth knowing before you start: you have to run the server you attach, by owning it or holding Administrator or Manage Server in it. Discord is asked at that moment, never taken on trust, and a server belongs to one unit at a time. If the bot is already in your server, pick it anyway; that is how the unit learns which one is yours. Detaching later, from Manage → Discord, frees it up again.

The Manage panel

The owner, and anyone whose rank grants something, gets a Manage button on the profile. Every section is gated by rank permissions, not by job titles, so a unit decides for itself which ranks may enlist, promote, take muster, run the schedule, or draw its battle plans. Two officers in the same unit can open different consoles.

Overview

Manage

The unit's dashboard, and the first thing the console shows you: where the unit stands, the numbers worth glancing at, and anything waiting on somebody.

  • See what needs attention before anything else
  • Read the quick numbers on strength and turnout
  • Pick up setup wherever you left it

1 of 11, Overview

Schedule and muster

A recurring schedule fills the calendar eight weeks ahead on its own, weekly, monthly, or every N days, and rebuilds itself when its time changes. One-time events cover everything outside the rhythm: a scrim, a tournament match.

Every event posts to your Discord as a card like this one. Members answer Going, Maybe, or Can't on the card or on the site, and the same counts show in both places, live.

Afterwards, staff take muster and the plan becomes turnout: who came as promised, who turned up anyway, who did not show. Every muster feeds each member's running totals, which is what the profile's turnout board is counting.

Every muster gets a page of its own on the site, so a roll taken in Discord is readable by anyone the unit sends the link to, with no screenshot and no scrolling back through a channel.

Whether a muster belongs to an event is yours to choose, under Manage → Discord. With Sync muster with events on, /muster asks which scheduled event the turnout is for, and the roll lands on that event's turnout page beside who said they were coming, which is what turns an RSVP into a record of who actually showed. Off, a muster stands alone: the command just logs a voice channel or a single member, and the roll gets its own page with no event attached. Units that drill to a schedule want it on; units that muster whenever people happen to be in voice usually do not.

Operations

An operation is one dated battle that several units turn out for together. A unit's own schedule is its calendar; an operation is the larger thing that calendar answers to, and it is the unit of attendance when more than one unit is involved. Registering for one writes a linked entry into your own calendar as well, so a member sees it beside everything else without anyone copying it across.

An operation is hosted by the site, by a community, or under a name of its own where the host is not a unit here. The host sets whether registrations are taken as they come or reviewed first; open is the default, and a unit awaiting review sits on the waitlist rather than in the order of battle. Caps on units and on players are optional.

Published, and featured

These are two separate axes and it is worth knowing which you are asking for. Visibility is yours: private while you build it, unlisted to share by link, or public. Publishing costs nothing and happens the moment you ask. Featuring is what puts an operation on the public index where strangers find it, and that is curated: you request it, and it is granted or declined. A public operation that has not been featured is still perfectly usable; it just is not advertised.

Rounds and plans

An operation is made of rounds. A round names the map, holds the board drawn for it, and owns the assignments, so "which map, who is where" is answered in one place per round rather than in a pinned message.

A unit can submit a plan for a round from its own WoRSketch shelf. What the operation holds is a copy, deliberately: keep drawing on your own board afterwards and the submitted plan does not change, and nothing the operation does to its copy reaches back to yours. Plans are optional. A unit that submits none still holds its place in the order of battle.

Who may do what is decided per unit, not per person. You can act for a unit if you hold Manage operations in it, or if the host named you one of its leads. Simply belonging to a registered unit is a weaker thing and answers a different question: it decides which side of the field you stand on, and so whose plans for a round are yours to read.

The Discord assistant

The bot is the unit's second front door, not a separate product with its own copy of anything. A rank promoted in Discord is the same rank on the site; a Going pressed on a posted card is the same Going on the calendar. Setting a unit up happens on the website. The bot is for running it where your members already are.

Where the two halves meet

  • One answer, both places

    A Going pressed on a Discord post and a Going chosen on the website land in the same book, and every posted card's live turnout updates either way.

  • Ranks follow roles

    Map a rank to a Discord role once. Granting the role raises the rank, and assigning the rank grants the role.

  • The roster mirrors the guild

    Discord-only members belong on the roster too, with their real avatars and their turnout history, whether or not they ever sign in here.

You decide how far roles reach. Under Manage → Discord, Full treats Discord as the record, enlisting, promoting and demoting. Add only enlists and promotes, so losing a role never costs anyone their rank. Off stops roles changing anything on their own. Worth a thought: a rank carrying permissions is what grants management access here, so under Full a role removed in Discord takes that access with it.

Getting it into your server

There is nothing to invite separately. Attaching your server in the founding stepper adds the bot in the same trip, which is why that is the only way in: an invite on its own puts the bot in your Discord without telling the site which server it landed in, and leaves you believing you are set up when no unit holds it.

The one thing that trip cannot do for you: drag the bot's role above your rank roles, once, in Server Settings. Discord drops a new bot at the bottom of the role list and a bot can only hand out roles below its own, so until somebody moves it the rank sync has nothing it is allowed to do. Manage → Discord names exactly which roles are out of reach while that is true.

Commands

Gated by rank permissions, not titles. The owner always passes, and any rank granted the matching permission can run the command, an NCO rank included. Run /help in your server to see exactly what your own rank unlocks.

  • /scheduleManage events

    Posts the coming week as one card per event, each with live Going, Maybe and Can't buttons, and creates new events without leaving Discord.

  • /musterTake muster

    Records who turned out, a whole voice channel at once or one member at a time, and posts the roll with everyone's running totals.

  • /promoteManage the roster

    Assigns a rank, and hands over the Discord role mapped to it in the same move.

  • /setupOwner

    Changes the unit's settings from Discord: allegiance, events channel, self-enlistment, role sync. Attaching a server happens on the website.

  • /enlistEveryone

    Puts you on the roster yourself, when the unit allows it.

  • /communityEveryone

    The unit's card for the channel: strength, headcount, and the chain of command by rank.

  • /whoamiEveryone

    Your account as the bot sees it, with your rank and your turnout. Answers privately.

  • /helpEveryone

    What your own rank can run, never a list of things you cannot. Carries buttons straight to your unit's pages here.

  • /pingEveryone

    Checks the bot is awake, with its round trip to Discord.

Common questions

The things units actually get stuck on, most of them learned the hard way in somebody else's server first.

  • The bot is in my Discord, but the site says no server is attached.

    Those are two different things. Adding the bot puts it in your Discord; attaching tells the site which server is yours. Both happen in one press on the website, in the founding stepper or under Manage, Discord, so if the bot got in some other way the second half never happened. Use that button and pick the server even though the bot is already in it: nothing is added twice, and that press is what records it.

  • Who can see the FTP password we saved for our game server?

    Nobody reads it back, including you. It is encrypted before it is stored and the only thing that ever decrypts it is the connection being made on your behalf; every screen that shows a server shows it without the password, and a rank that may manage servers can replace one but never see the old one. Reaching it needs the Manage game servers permission on somebody's rank in your unit.

  • Do we have to give the bot an events channel?

    No, and setup will let you past it. Without one the calendar, roster, ranks and muster all still work; the bot simply has nowhere to post your schedule, so members answer on the site instead of on a card in Discord. Manage, Discord sets a channel whenever you decide you want one, and the schedule starts posting from then on.

  • The bot says it needs Manage Roles, but I already gave it that. Why?

    Because it is not the permission that is missing, it is the position. Discord only lets anyone hand out roles that sit below their own, and it puts a new bot at the bottom of your role list. Open Server Settings, Roles, and drag the bot's role above your rank roles. It cannot do this itself: Discord will not let a bot lift its own role, whatever permissions you grant it. Your community's Manage, Discord page shows where the bot currently sits and which roles that leaves out of reach.

  • The bot answered me privately and said it could not post in the channel.

    A channel can deny what the server allows. Even with Send Messages granted server-wide, a channel that denies it to a role the bot holds wins. Open that channel's permissions, add the bot's role, and allow Send Messages and Embed Links. Nothing is lost in the meantime: when the bot cannot post a roll it hands it back to you privately rather than dropping it.

  • Promoting someone took away the role that lets them see our channels.

    A promotion swaps rank roles: it adds the new rank's role and removes every other rank's, so nobody carries two. That is wrong for the base member role most units map to their lowest rank to open their channels. Edit that rank and turn on Keep this Discord role after a promotion, and it will be left alone from then on. Anyone already stripped needs the role handing back once in Discord.

  • I mapped a Discord role to a rank and nobody moved.

    Check where that rank sits in your ladder. A new rank is created at the bottom, below every existing one, so a role mapped to it is worth less than the base member rank people already hold. Drag the rank to its proper place in the list and it applies. Moving somebody down is a separate question: under Add only, the default, a sync never demotes anyone, so only Full will take a rank away when the role goes.

  • I ticked add everyone who already has this role and nobody appeared.

    Almost always the role is a bot's own. Discord marks those managed and will not let a person hold one, so there is no one to add and never will be; pick the role your members actually wear. Otherwise the import did run and found nobody new: it skips bots, and it leaves alone anyone already on the roster at that rank or above. The roster's Sync from Discord button reports exactly what it scanned and why it changed nothing.

  • What is the difference between the roster and the members list?

    The roster is who is actually in your unit, including people who are only in your Discord and have never made an account here. The members list counts site accounts alone. The bot musters the roster, which is why it is the wider of the two.

  • Can somebody be on two units' rosters at once?

    Yes. A player serves with one unit, but any unit may carry them on its roster as a mercenary so it can muster them when they field with it. Add them the same way you add anyone else, by Discord account; nothing has to be different about them. They keep their own unit and their own rank there.

  • If somebody fights for us as a mercenary, whose turnout does it count for?

    Both units count it in their own records, because each mustered them for its own event. Their profile shows the unit they actually serve with, so a guest appearance for you does not read as though they left their own unit. Nobody has to choose, and nothing is taken away from anyone.

  • A mercenary on our roster cannot answer our events. Why?

    They can, as long as they are on your roster with a linked account. Being on the roster is what lets somebody see a unit's schedule and answer Going or Can't, whether or not they belong to that unit. If they are Discord-only they can still be mustered by the bot, but they need an account here to answer on the website.

  • Searching for members in Discord finds nobody.

    That search needs the Server Members Intent, which is enabled for the application rather than in your server. If it is off, the bot can still act on people you name directly, but it cannot browse your member list to find them.

  • We drilled twice in one day. Does the second muster count?

    Yes. Each run of the command is counted separately, so a second drill credits everyone again. Running the same command twice by accident does not: a repeat of one command is ignored. Turnout tied to a scheduled event is credited once per event however many times you muster it, since it is still the one event.

  • The muster page shows my drill on the wrong day.

    Days are recorded in UTC, so an evening muster in the Americas is filed under the next day. The turnout itself is correct and the totals are unaffected; only the date on the page reads a day ahead.

  • Somebody was mustered by mistake. Can I take it back?

    Open that day's muster page and remove them from the roll. The turnout it recorded is deleted and their totals drop back to where they were. Only somebody who may award attendance sees the control.

  • I forgot to muster last night. Can I still record it?

    Open the muster page for the day it should have been on and add whoever turned out, several at once. The credit lands on that day rather than today, so your history stays honest. Adding the same people twice does not credit them twice.

  • Does the link the bot posts stop working?

    No. A muster is addressed by the day it was credited to, not by a token that expires, so the link keeps working and you can walk back through earlier days with the arrows. They step to the nearest day that actually holds turnout.

Take the field

Find a unit to serve with, or raise your own colors.

Other field manuals

All manuals