RU EN
Internal bot of the RMRP project

RMRP Staff

An internal Discord bot of the RMRP project for staff position management: granting and revoking staff positions, automatic recalculation of roles and nicknames, and operation accounting. The bot is built exclusively for the project's internal Discord servers; it does not provide services to third parties and is not listed in public bot directories.

πŸŽ–οΈ Positions and roles

One command β€” one personnel record: a position is granted or revoked and the member's role set is recalculated automatically from the project configuration.

🧩 Reliability

Every operation is written to a log with WAL semantics and a .bak copy; unfinished operations are replayed on startup and grants to temporarily absent members are not lost.

πŸ“œ Audit

A dedicated command log records who did what, when and with which result. It is available to the project administration only.

Purpose

The bot serves the personnel workflow of the RMRP project on its internal Discord servers. It turns administration decisions into Discord changes: it grants and revokes the roles that correspond to a position, department and rank, and updates the member's nickname in the approved format. Access rules are computed from the initiator's current position, so commands are available only to those the project's hierarchy authorises.

Features

Commands

All commands are Discord slash commands; access is checked against the caller's position.

CommandWhat it does
/setstaffGrants a staff position: the roles matching the position, department and rank.
/setleaderGrants a leader position.
/setcuratorGrants a curator position.
/setnameSets a member's nickname in the approved format.
/unsetleaderRevokes a leader position and recalculates roles.
/unsetcuratorRevokes a curator position and recalculates roles.
/resetnameRestores the nickname to its original value.
/staffallBulk grant of roles from a fixed list of server positions.
/staffallremoveBulk revocation of roles from the same list.
/removallogsRevocation log: who revoked a position, from whom and when.
/myrankShows the caller their current position and related roles.
/validateIntegrity check: consistency of roles, nicknames and the position journal.
/pendinggrantsLists and applies the queue of deferred grants.

Access rules and hierarchy

A dedicated permission engine computes whether an operation is allowed, based on the initiator's current position: personnel commands are open to the project's senior positions, and for each position the rules define which ranks and departments it may grant or revoke. Positions are matched to Discord roles through the project configuration, and ambiguous name matches are resolved automatically. No one can grant or revoke a position above their own level.

Discord permissions used

Manage Roles Manage Nicknames Kick Members View Audit Log View Channels Send Messages Embed Links Read Message History

Of the privileged gateway intents only Server Members Intent is used β€” it is required to look up a member and their roles during personnel operations. Message Content Intent is not requested: the bot does not read message content and works entirely through slash commands. Presence Intent is not used either.

Data processed and why

DataWhyWhere it is stored
Member IDs, usernames and server nicknames to identify the member, their current position, and to update the nickname in the project format the bot's service JSON files on the Operator's server
Role IDs, position names, departments and ranks to compute the role set for a position and to validate the initiator's rights project configuration and service JSON files
Personnel operation log: who granted or revoked what, for whom and when audit of administration decisions and recovery of unfinished operations operation log and position journal (JSON, with a backup copy)
Deferred grant queue (member, server, roles and nickname to apply) so a personnel decision is not lost while the member is temporarily absent (TTL 14 days) a service JSON file of the bot
Technical logs of operation and warnings diagnostics of failures and monitoring of Discord API load log files on the Operator's server

The bot does not process direct messages, channel content, voice data, payment, medical or location data, or data of members of other Discord servers.

Retention and reliability

The bot's service /health endpoint is available locally only (http://127.0.0.1:8080/health) and is not exposed to the internet.

The bot's data is used solely for the internal personnel records of the RMRP project. It is never sold and never shared with third parties for marketing purposes β€” see the Privacy Policy and the Terms of Use for details.

Legal documents

Contact

Official project Discord: discord.gg/6Az63EPEAA
Player support: forum.rmrp.ru β€” help
Project support e-mail: donate@rmrp.ru
Project website: rmrp.ru

Data protection requests are handled by the RMRP project team.

Discord is an independent platform; the bot uses the official Discord API and is not affiliated with Discord Inc. The RMRP game project is an independent GTA 5 RP project, not affiliated with Rockstar Games / Take-Two Interactive.