Legal

Privacy Policy

Last updated: June 23, 2026
Contents
  1. Who we are
  2. What we collect
  3. Why we collect it
  4. How long we keep it
  5. Who can access it
  6. Third-party services
  7. Cookies & browser storage
  8. Global chat & direct messages
  9. Your rights & data removal
  10. Security
  11. Contact

1. Who we are

KrulHub is an open-source script hosting platform for Roblox executor users, plus a self-service Lua obfuscation portal (/obfuscate) for users obfuscating their own scripts. We do not operate as a registered business entity. This policy describes what data the service collects, why, and how long it is retained.

2. What we collect

Different features collect different data. Nothing here is collected for analytics, profiling, or sale.

Public scripts (no login)

Discord login (optional, required for the user obfuscator)

Ro-Clothes community submissions

Real-time avatar sync (opt-in)

Diagnostics telemetry (opt-in, default off)

Moderation & administration

We do not collect device fingerprints, automatic crash dumps, or any data tying telemetry to a real person. Diagnostics telemetry (above) is the only opt-in script-side data stream; it is disabled by default.

3. Why we collect it

4. How long we keep it

5. Who can access it

Submission contents, the ban list, and admin logs are accessible only to administrators holding the operator's admin token. Your own Discord session and user-obfuscator scripts are scoped to your Discord ID and are not visible to other users. Avatar-sync entries are visible to anyone who knows a given Roblox placeId:jobId pair — in practice, only users inside that specific Roblox server instance. No data is sold, shared, or disclosed to third parties.

6. Third-party services

7. Cookies & browser storage

No tracking or analytics cookies are set.

7.5. Global chat & direct messages

Anonymity: the chat layer is anonymous by design. We do not collect any personally identifiable information when you register a chat UID — no email, no real name, no Roblox UserId, no Discord ID. The 8-character UID you pick is the only public identifier; the secret you generate is stored on your machine and used only to sign your requests.

What we record: every message you send (global room and direct messages) is recorded server-side in a Cloudflare Durable Object's persistent storage. We keep them so other participants can read them, so moderators can review reports, and so the global ring can serve recent history to people who join mid-conversation. Each record contains: the message text, your UID, your chosen nickname at send time, and a UNIX timestamp.

Soft delete: when you delete one of your own messages, the text is blanked on the way out to other participants but a tombstone is retained server-side for moderation history.

Moderation access: the operator and any delegated moderators can read the full global ring, the full message history of any direct-message conversation, and the report queue. Moderators can temp-mute, hard-ban, wipe the global ring, or wipe a specific DM conversation.

Anti-spam metadata: per-UID send timing and sustained-volume counters are tracked in memory only; they are forgotten when the chat service restarts and are not written to persistent storage. The registration rate-limit counter is keyed by IP, scoped to one hour, and expires automatically.

Typing pings: a "typing" indicator is broadcast while you compose a message. It contains your UID and chosen nickname only and expires within seconds after you stop typing.

Reports: if you report another user's message, your UID, the reported message text, and your stated reason are added to a moderator-only queue capped at 200 entries (oldest dropped past that).

What we do NOT do: we do not link your chat UID to your Roblox UserId, to your Discord OAuth identity (if any), or to your IP address in any persistent store. IP is touched only at the rate-limit layer and is never written into a chat record.

Retention: messages persist until either you (for your own messages) or a moderator deletes them, or until the global ring rotates a message out the back of its capped buffer. Mod-issued temporary mutes expire automatically; hard bans persist until manually lifted.

8. Your rights & data removal

You can delete your own user-obfuscator scripts directly from the obfuscator portal. For removal of a submitted Ro-Clothes bundle, a community publish record, or your Discord session data, contact the operator via the KrulHub Discord server. Avatar-sync state requires no action — disable the toggle in the script and it expires within 300 seconds.

Diagnostics telemetry: toggle off the "Send Anonymous Diagnostics" switch in the Ro-Clothes script to stop further uploads — this is immediate. To delete telemetry already received, share the first 8 characters of your install ID (visible in the script's "View Pending" panel) with the operator on Discord and we will purge matching R2 objects. We don't have a way to map an install ID back to a person, so removal requests must come from the install owner.

Chat: you can soft-delete your own messages from inside the chat UI — the text is blanked for everyone immediately. For a hard delete (including removal of the tombstone), or for deletion of a full DM conversation, share your chat UID with the operator on Discord. We will only act on requests that come from someone who can sign with that UID's secret, since we have no other way to verify ownership of an anonymous UID.

9. Security

All public and admin endpoints are rate-limited. Admin routes require a secret Bearer token. Public scripts are open source and shipped from R2 with a per-request consent stub. All data is stored in Cloudflare KV or R2 with no external database. Traffic is TLS-only.

10. Contact

Questions or removal requests? Reach the operator through the KrulHub Discord server.