Admin ranks and membership
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
- Managing accounts: the /comadmin subcommands that apply these rules
- Permission bits: choose which commands each tier can run