Admin ranks and membership

"Retired is not the same as dismissed. Different form, same desk, worse chair." — Clerk Second Class Umi Dray

Every account carries 2 separate values, a membership state and an admin level, and they constrain each other.

Changing either one needs clerical admin. Disabling an account needs leadership.


What it does

Membership says what standing someone has in your community. Admin level says what commands they can run. StoryForce keeps them linked, so an account can never hold more admin than its membership state allows.

That link is enforced on write, not on read. Drop someone's membership and the server strips their admin in the same breath, including on their live session if they are connected.


Membership states

Value Label What it means
0 Guest New or unvouched. Limited to one character whatever sf_charsperaccount says
1 Member Full standing. Can be given XP and can award it to others
2 Former member Left or stepped back. Keeps their characters, loses most privileges
3 Disabled Refused at login

Guests and former members are also blocked from community characters unless you turn that on. Former members lose /mynpc on the same basis. See server configuration for those 3 settings.

A disabled account is refused the moment the password checks out. The person is told the account is off, rather than that their password is wrong:

The same check runs when sessions are restored across a map change. Disabling somebody who is already in the world logs them out at the next map, though it does not disconnect them.


Admin levels

Value Label Typical use
0 none An ordinary player
1 community Storytellers. Story tools, entities, NPCs, cameras
2 clerical Account staff. Creating, retiring and promoting accounts, plus kick
3 leadership Owners. Disabling accounts, direct database edits, ban

Access is additive. A clerical admin gets everything community admins have, and leadership gets everything below it. Which commands sit at which level is yours to set, and permission bits covers how.


The clamp rules

Membership sets the ceiling for admin:

Membership Highest admin it can hold
Member leadership
Former member community
Guest none
Disabled none

3 things follow from that table.

Lowering membership strips admin down to the new ceiling automatically. Retire a clerical admin and 2 lines print, the strip first and the membership change second:

Promotion is refused outright when the target's membership cannot hold the rank:

Initiate the account to member first, then promote it.


Granting limits

Leadership can grant any rank. Every other holder of the promote bit can grant community and nothing higher, whatever their own rank. A clerical admin promoting somebody to clerical is stopped, and the refusal names the real ceiling rather than their own tier:

A clerical admin also cannot touch an account that already sits above community, in either direction:

Only leadership can demote another leadership admin. If no ordinary leadership login is left, the protected seed account still holds the rank and can step in.


Settings

Server-side. The membership state a new account gets from /comadmin create. 0 is guest and 1 is member, and anything outside 0 to 3 falls back to guest. Default 0. Server-side. Characters a member account can hold, clamped to 1 to 30. Guests always get one. Default 10. Server-side. Set to 1 to restrict /givexp to community admins and above. Default 0, which lets any member award XP.

Things to note

  • A leadership account is created by promoting twice, because promote and demote move one step at a time.
  • Stripped admin does not come back. Reinstating a former member restores their membership, not the rank they lost.
  • Live sessions update immediately. Someone demoted mid-session loses the commands there and then, with no message to them.
  • A seed account exists from the first boot and holds leadership. It is resolved by its database row afterwards, so changing the seed settings later does nothing. Change its password before you open the server.
  • The seed account is protected. It cannot be retired, disabled or dropped below leadership by any command, and it is hidden from account listings.
  • Disabling is not deleting. The row, the characters and the password all stay in the database.

Next