Skip to content

Privacy for server operators

Controller and processor roles, what to tell players, consent records, retention and erasure requests including the Roblox webhook.

5 min read

When you use Modhelm, you process personal data of your players: Discord IDs, Roblox IDs, descriptions, videos. This page explains the roles, what Modhelm does for you and what you have to do yourself. It is practical guidance, not legal advice.

Roles: you are the controller, Modhelm is the processor

  • You, the operator of the Discord server, decide why and how player data is processed. You are the controller under Art. 4 (7) GDPR.
  • Modhelm processes the data on your behalf and only on your instructions. Modhelm is your processor under Art. 28 GDPR.
  • The Data Processing Agreement you accept in the dashboard is the written contract the GDPR requires. It is available at modhelm.com/dpa and under Terms in the dashboard, with the version you accepted and the date.

For the network wide verification Modhelm acts in its own name, because one verification serves many servers. The privacy policy at modhelm.com/privacy covers that part.

What is processed

DataSourcePurpose
Discord ID and username of reporters and appellantsDiscord sign inQuestions, result messages
Roblox ID, names, picture, account age of reported playersPublic Roblox profileIdentify the player, show context
Descriptions, answers, videos, pictures, linksThe reporterEvidence for the decision
Bans, reasons, durations, notesYour teamModeration history
Roblox ID of banned players and the public reasonYour teamSent to Roblox to enforce the ban
Consent recordsThe personProof of consent

Data is stored on servers in Germany. API keys, bot tokens and OAuth tokens are encrypted at rest.

What you have to tell your players

Art. 13 GDPR requires that people know what happens with their data. Modhelm helps with:

  • A generated privacy notice in your portal at /privacy, naming you as the controller with the contact email you entered, listing the data, purposes, recipients, retention periods and rights.
  • A consent checkbox before every report, unban request and verification, never pre-ticked.

You still need your own privacy policy and imprint. Enter their links under Settings > Portal > Legal pages. For a custom domain they are mandatory.

Every consent is recorded with: who (Discord or Roblox ID), what for (report, unban request, verification, Roblox link, terms, DPA), the version and a SHA-256 fingerprint of the exact text in the language shown, the time, the source (web or Discord), a keyed hash of the IP address and a shortened user agent. Clear IP addresses are never stored.

Players see their own records under My data. You can request the records for your server from support if you need them for an inquiry.

Retention

DataKept until
Reports without a punishment180 days after the decision
Reports with a punishment, the punishment, related unban requestsOne year after the punishment ended
NotesUntil deleted, or with the player's data
VerificationUntil the person deletes it
Audit log14, 90 or 365 days depending on the plan
Everything of a serverDeleted when you delete the server data or remove the server

Deletion runs automatically. You do not need to clean up by hand.

Rights of players

Players can ask you for access, correction, deletion, restriction and a copy of their data. Modhelm gives you the tools:

  • Access and copy: the player page shows everything stored about one player. Data > Export downloads all data of the server as JSON.
  • Deletion: see below.
  • Verification data: players delete it themselves under My data or with /unverify.

You have one month to answer a request (Art. 12 (3) GDPR).

Erasure requests

There are three ways to delete everything your server stores about one Roblox player:

  1. Player page > Delete player data. Type the name to confirm. Reports with all evidence, notes, unban requests and punishments of this player on this server are deleted.
  2. API: DELETE /api/v1/players/{robloxUserId} with a token that has the "Delete player data" permission. See API.
  3. Roblox erasure webhook: automatic, see below.

In all three cases:

  • Active bans stay in place on Roblox. Modhelm forgets them, but Roblox keeps the restriction. If the player should be unbanned, lift the ban first. The result tells you how many bans are still active.
  • Messages already posted in Discord are not removed. Delete them by hand if needed.
  • Data on other servers is not touched.
  • The audit log keeps an entry that an erasure happened, without the player's ID.

Set up the Roblox erasure webhook

When a Roblox user asks Roblox to delete their personal data, Roblox notifies the creators of the experiences the user played. Roblox sends this only by webhook; there is no API to ask for it. Connect the webhook once and Modhelm deletes the player's data on your server automatically.

  1. In the dashboard, open Settings > Team & API > Roblox data deletion and click Create secret. Copy the Webhook URL and the Secret.
  2. Open the Creator Hub and go to Webhooks in the settings of the account or group that owns your experience.
  3. Click Add webhook.
  4. Paste the URL into the webhook URL field:
Text
https://modhelm.com/api/roblox/webhook/<your-server-id>
  1. Paste the secret into the Secret field.
  2. Under Triggers, select Right to erasure request.
  3. Save.

Modhelm verifies every delivery with the secret (HMAC-SHA256 over the timestamp and body), rejects old or repeated notifications and then runs the same deletion as the button on the player page. The audit log records that Roblox asked.

If you created a new secret in the dashboard, update it in the Creator Hub, otherwise deliveries are rejected.

Server data

Under Data you can export all data of the server as one JSON file and delete all data of the server permanently. Cancel your subscription first, otherwise it keeps running.

DSA and bans

Players who are banned see the reason and the duration in Roblox and get a way to appeal through the portal. That matches what the Digital Services Act expects from a statement of reasons and an internal complaint system. Write reasons that explain the decision, not just the rule number.