We currently have a simple request feature allowing interaction between room/area owners, but I have this idea of an improved request feature…
The basics
A request is a set of one or more changes (edits to a room description, creation of a new exit, a new area image, etc.) that anyone can make.
Example
John wants to add his home area, John’s Den, to the Forest. He creates a request with 4 changes:
- create an exit from Outside John’s Den to Forest Path
- create a return exit from Forest Path to Outside John’s Den
- set The Forest as parent area to John’s Den
- edit the Forest Path description to include a note on this new trail
The request is sent to all the owners affected by any of the changes.
Example
Since Raeth owns the room Forest Path, and Accipiter owns the area The Forest, both Raeth and Accipiter gets the request.
For request changes to be applied, all affected owners must approve it. Any affected owner may add/remove changes to the request.
Example
Accipiter approves the request. Raeth, however, notices a spelling error in the new Forest Path description. He corrects it before approving.
Since the request is modified, both Accipiter and John needs to reapprove the edited request. Once done, the changes are applied.
Requests will show up in the Player panel (under the Bell-icon), and may be approved/declined. This can be done without waking up the owning character.
Public voting
An extended idea is to also allow public voting.
Once a request is made, the affected owner(s) may choose to let the public decide whether to accept or decline. When another player’s character enters an area, an indicator will show if there are any requests made public that they may vote upon.
Opening a public request, they can view it and vote to approve or disapprove. The request is open for voting for a set duration of time. Once the duration has passed, the request changes will be applied if a high enough percentage of players approved.
Area request mode
An area owner may configure a request mode which is applied to any request that affects the area, its rooms, or room exits. It will have 3 settings:
- Manual (Default) - The owner(s) decide to accept/decline/make public
- No requests - Requests are automatically rejected
- Public - Requests are automatically made public
Moderation
Some measures may need to be taken to avoid abuse of public voting:
- One vote per player (obviously)
- Builders/admins may instantly Accept/Decline public requests
- New players may need to unlock Voting based on some criteria
Challenges
I started implementing this, but ran into some question marks:
-
Request creation GUI - I couldn’t come up with a simple GUI/workflow to create and manage requests. But since creating requests may be considered an advanced feature, maybe it doesn’t need to be that simple? Maybe I can rely mainly on commands?
-
Voting GUI - The GUI for public voting would differ somewhat from normal request handling. It should probably be under the Area panel, and not Player panel? I need to think this through.
Well… that is what the idea looks like now. Feedback is appreciated as always!
/Accipiter