I build a 1-bit persistent browser MMO on my own, and this month I added councils to guilds. Sharing the two decisions I went back and forth on, because both turned out to be about counting people rather than counting votes.
Quorum counts who has actually been around. It is 55 percent of members seen in the last fourteen days, not 55 percent of everyone who ever joined. Rosters rot. If quorum counts the dead weight, a guild that has quietly emptied out can never decide anything again, and the people still turning up are held hostage by names that stopped logging in months ago.
A passed vote lapses if the leader does not seal it within seven days. Passing a thing is not the same as the thing happening, and without an expiry a leader can simply never action a vote they dislike, which is worse than voting it down. A recall vote exists for the same reason.
Eight vote kinds in the end: rule, project, spend, seat, poll, petition, expel, recall. The petition one only opens after thirty days of the host's silence, which is my hedge against an absentee leader locking the whole thing up.
The bug worth sharing: guild ranks carry ten permission bits, and "may take from the vault" and "may open the officers' chests" were the same bit. Any leader who let every rank take from the vault had also, silently, handed every rank the officers' chests. I did not find it. A player did, because they were doing something I would never have thought to try. Separating the bits took a migration, which was the fiddly part.
That is roughly the shape of the project: one person, so most of the interesting bugs arrive from whoever is playing. If you want to poke at it, it is free and runs in a browser with no download, and I would rather have testers than an audience: https://fortisq.itch.io/bitiverse
Happy to answer anything about the guild model or how the world is persisted, if it is useful to anyone building something similar.

1 Comments
eleijeep@piefed.social · 1 pts · 18h
How did I know to look for this on the itch.io page just from reading your post, I wonder.