Privacy
Last updated 15 October 2026.
ODIN is a Discord bot and a website run by WarPulse LLC. This page lists what ODIN records, who can see it, how long it is kept and how to opt out or ask for deletion. Each line describes something ODIN does.
What ODIN records
- In a server that has turned voice tracking on, ODIN records your voice time: when each voice session started and ended, and the seconds it counted, in total and for each UTC day.
- Your level and XP are worked out from your voice time, and your streak counts the UTC days in a row that you were in voice.
- Each stay in a voice channel is one session. ODIN counts your sessions and works out your average and longest session from them.
- ODIN records how long each pair, trio and group of four members spent in voice together, for each UTC day. It uses this for
/duos,/triosand/quadsin Discord, and the website never shows it. - Once a day (UTC), ODIN copies each member's live streak, so the website can show how a streak has changed. These daily copies are kept for 40 days.
- ODIN works out records from the voice sessions: for each member, their longest session, biggest day, best week and most sessions in a day, and for each server, its longest session, the most voice time one member had in a day, its longest streak, its biggest day and the most members in voice on one day.
- ODIN stores your Discord user id, and the username, display name and avatar that Discord gives it for you. It saves them when it sees you in voice, so boards can show who you are, even if you never sign in to the website.
- The id of the voice channel is stored with each session, and message counts are kept per channel. The dashboard shows channel and role names to people who manage the server. If a server turns on "Show channel names to members", its members can also see per-channel statistics on the dashboard; no public page ever shows a channel name or id.
- For each server ODIN is in, it keeps a copy of the server's channels and roles, so the dashboard can offer them in pickers: for a channel, its id, name, type, position, category and whether it is age-restricted, and ODIN's own permissions in it; for a role, its id, name, colour, position, whether it is managed (made by a bot or an integration), whether it can be mentioned and the permissions it grants; and ODIN's own permissions in the server. The copy is updated when channels or roles change. If ODIN leaves the server, the copy is kept as it was and is no longer updated.
- The dashboard keeps a change log of changes to a server's settings and dashboard access: who made each change (their Discord user id), when, which setting, and its value before and after. Values that are secret are left out of the log. Only people who manage that server on the dashboard can see it, and its entries have no time limit. Changes to a member's own dashboard settings are logged the same way, and no page shows them.
- Discord sends ODIN the presence of members (their online status and current activities) in every server ODIN is in. ODIN holds it in memory only and stores none of it, apart from the game titles and play times described next.
- In a server that has turned game tracking on, for every member who has not opted out, ODIN stores game titles and play times: the name of a game shown as Playing, when it started and stopped, the server and your Discord user id. Only playing counts, not streaming, listening, watching or a custom status, and nothing else of the activity is stored.
- Game history recorded by the earlier ODIN bot is included in the same way: it was imported as game titles and play times, and
/gamesshows it, leaving out members who have opted out. - Game tracking has its own switch in each server.
/odin enableturns voice tracking and game tracking on together,/odin disableturns both off, and/odin statusshows both. While game tracking is off in a server, ODIN records no game activity there and/gamesshows nothing for it. - To show cover art on
/games, ODIN's server looks up game titles, and nothing else, at IGDB (igdb.com), a game database run by Twitch. A title is sent only when at least 3 members of one server have played it, never for an app or tool that ODIN has marked as not a game, and never together with a member, a server, a time or a play time. IGDB sees the request coming from ODIN's server and ODIN's Twitch application id, and its own privacy policy applies to that. - For each game title it finds at IGDB, ODIN stores the IGDB game id, IGDB's name for the game and the id of its cover image. These describe games, not members.
- Cover images are loaded by ODIN's bot from IGDB's image host (images.igdb.com), kept in memory for at most 24 hours and never saved. No member's browser contacts IGDB through these pages. Game data and cover art are provided by IGDB.com.
- When a server has Welcome or Goodbye on, ODIN posts a card with your name, your avatar and the member count when you join or leave; it stores nothing about the join or the leave.
- In servers where chat XP is on, ODIN counts your messages in channels an admin has not excluded: the count and the time of the last one, never the text, with a cooldown key kept for the cooldown's length only.
- Your XP, level and the adjustments that made them (source, amount, time) are stored per server.
- When an admin sets level rewards, ODIN records which roles it gave you and when, so it can take back only what it gave.
- While you are in a voice channel, ODIN keeps which channel you are in and whether you are earning XP (and why not), so the server's Voice now page can show it; it is replaced every minute and removed when you leave.
- Season scores are your XP within the season's dates; badges you earn are stored as the badge's id, the server and the date.
- Season results (rank and score of the top 100) are kept after a season closes and can be shown on a public page if the server's admins turn it on; you can hide your name there with
/odin privacy. - ODIN Idle keeps your game state (banks, upgrades, achievements, streak, play time), the server you selected and your withdrawals, including how far each one has drained; the idle leaderboard shows your name and avatar to signed-in visitors unless you hide them with
/odin privacyor on the dashboard. - Staff gem awards are recorded with the staff member, the amount and the reason.
- ODIN Idle's monthly season keeps your season score and, if you finish in the top 100, your rank after the season closes; hiding yourself from the idle leaderboard hides you here too.
- ODIN Idle's Odies store which Odies you caught and when, how well you have fed them, the cosmetics you own and wear, whether you are in the ship's crew, and the fuel you gave the shared ship each day. The ship page shows only shared totals, never names. Asking us to erase your data deletes all of this; fuel already added to the shared ship total stays, without your Discord user id.
- To decide when an Odie may appear, ODIN notes the last time your Idle tab was visible and active, and nothing else about it. An Odie that appeared and was missed is kept for 30 days. Erasure deletes this too.
- If you choose a site theme, ODIN remembers it in your account, with whether you want it used on every server's pages, so it follows you across devices.
- ODIN records which cosmetic themes you have unlocked (for example by reaching a level or finishing a season) and why; asking us to erase your data deletes them.
- ODIN shows your chosen profile theme on your profile and rank card wherever your profile is visible; opting out of a server hides it there.
- If you played the idle game in ODIN 1.0, we kept a read-only copy of your old idle stats and level to show on your profile; it is hidden if you opt out, and deleted if you ask us to erase your data.
- When a server turns on message stats, ODIN adds one to a counter for each message: for that member, that channel and that hour. It never reads, stores or logs what you write, attachments, links or replies, and it does not ask Discord for message content.
- When a server turns on emoji stats, ODIN adds one to a counter for each reaction emoji: for that emoji, that member and that hour. It does not read what you write.
- When a server turns on invite tracking, ODIN records which invite a new member used and who made it: your Discord user id, the inviter's id and the time you joined. You can hide yourself with
/odin optout, and erasure deletes it. - If a server turns on first-message reactions, ODIN remembers that you have posted there, nothing else.
What ODIN never records
- ODIN never reads or stores message content, never records audio, and never stores or shows music.
Who can see it
- Members of the same server can see that server's leaderboards, member profiles and server statistics after they sign in with Discord. People who are not members cannot see them, unless the server's owner publishes a public page (see below).
- In Discord, the boards (
/voice,/levels,/xp,/members,/streaks,/duos,/triosand/quads) are public replies in the channel where they are used, so everyone who can read that channel sees them. - A member profile shows the member's name and avatar, level, XP, voice time and rank for 24 hours, 7 days, 30 days and all time, current and best streak and, unless the member has hidden their activity details, the last active day (UTC) and a chart of recent daily activity.
- Server statistics show total voice time and active members for 24 hours, 7 days, 30 days and all time, the day tracking began, and a chart of recent daily activity.
- By default, other members of the server can also see these activity details of a member: the day they were first in voice, the last active day and when they were last in voice, their streak 28 days ago, their session count and average session for the last 24 hours, an 84 day calendar, patterns by hour of day and weekday, personal records with their dates, their streak history and a trend of their voice time.
- Activity details are public by default.
/odin privacy details:hidehides those details from other members in every server at once (it is one setting for all servers), and/odin privacy details:showshares them again. ODIN stores one record of this choice (your Discord user id and the time), and showing your details again deletes it. You always see your own details. It does not stop tracking or remove you from the boards: use/odin optoutin a server for that. - Even when a member hides their activity details, their name, avatar, rank, voice time, level, XP, streak numbers and session counts for 7 days, 30 days and all time stay visible.
- Server records show which member holds a record, and the day it was set unless that member has hidden their activity details. The server's biggest day and the most members in voice on one day have no holder, and count only members who keep their activity details public.
- Server-wide charts of when members are in voice (voice time by hour, by weekday and hour and by day, and sessions by day) count only members who keep their activity details public, so a member who hides them is left out of these patterns for everyone. Totals, boards and the records a member holds still count every member who has not opted out.
- Server-wide patterns, such as voice time by weekday and hour, hide any cell with fewer than 5 members and are shown only when at least 10 members were active.
/gamesshows a server's most played game titles with their cover art (when IGDB has one), total play time and number of sessions, as a public picture in the channel where it is used, or as text if the server chose text replies. It names no members, and the website never shows game titles, play times or cover art.- If a server turns voice tracking off, or turns off a leaderboard command or limits it to some roles, the website shows nothing for it.
- A member's own activity by hour and weekday is shown only to that member on the dashboard.
- A server owner can publish a public page of server-wide totals and charts. It never shows a member's name, picture or ID unless that member chose
/odin public on, and you can turn that off at any time. - People who manage a server on the dashboard can download its statistics as a CSV or JSON file, and Premium servers can read them through an API key; it never includes Discord user ids, and the same opt-out and privacy settings apply.
- A server can give roles automatically from activity (for example the most active members this month). Such a role is visible to everyone in the server like any role; opted-out members never get one, and lose it if they opt out.
- A counter channel's name shows one server-wide number, such as how many members are online, how many messages were sent today or how many hours were spent in voice. Anyone who can see that channel sees the number; it is never about one member, and it leaves out members who have opted out.
- Invite leaderboards show which members invited how many people, and how many of them are still here, on the website to members of the server and as a public reply to
/invitesin Discord. They never name the people who were invited, and/odin optouthides you from them both as the inviter and as the one who joined. - People who manage a server on the dashboard (its owner, and members with the Administrator or Manage Server permission) can give a role access to some of its dashboard modules. ODIN stores which role has which access, when it was set and by whom (a Discord user id), and members of that role can then see and change those settings.
Opting out
/odin optouthides you from every board, profile and statistic in that server,/gamesincluded, and stops ODIN tracking your voice time, game activity, messages and reactions there.- Your existing data is kept, not shown, and not deleted. ODIN stores one record of your choice (the server, your Discord user id and the time), and
/odin optinreverses it.
What the website stores
- When you sign in with Discord, the website stores your Discord user id, username, display name and avatar, and the time you last signed in. It asks Discord only for your identity, your list of servers and your roles in a server.
- To check which servers you belong to, the website keeps a copy of your Discord server list: each server's id, name and icon, whether you own it, and your permissions there. It is trusted for at most 30 seconds and deleted within about 20 minutes.
- To check which dashboard roles you hold in a server, the website keeps a copy of the ids of the roles you have there (and whether you are a member). It is trusted for at most 30 seconds and deleted within about 20 minutes.
- Your sign-in session is stored under a keyed hash of its cookie token, never the token itself, and your Discord access token is stored sealed (encrypted). No refresh token is stored. A session lasts at most 7 days.
- Sessions are deleted about 30 days after they expire or you sign out.
- To limit abuse, the website counts requests per signed-in user and per keyed hash of the visitor's IP address. The address itself is not stored in the database, and the counters are deleted within about 70 minutes.
- The website runs on ODIN's own servers behind Cloudflare; Cloudflare and our servers' request logs briefly hold visitors' IP addresses.
Cookies and other sites
- ODIN sets two essential cookies for sign-in:
__Host-odin_session, which keeps you signed in for up to 7 days, and__Host-odin_oauth, which exists for 10 minutes while a sign-in is in progress. These public pages set no cookie. - When you pick a site theme, ODIN also sets up to two small preference cookies for a year,
odin_theme(the theme name) andodin_theme_everywhere(a yes flag), so a page loads in your colours. They hold no personal data. - When you collapse the sidebar or turn the idle game's Wide layout off, ODIN also sets up to two small layout cookies for a year,
odin_sidebarandodin_idle_wide(each a yes or no flag), so a page loads at the width you chose. They hold no personal data. - There are no analytics, no advertising and no tracking scripts, and these pages load nothing from other sites.
- Signing in happens on Discord, and once you are signed in your browser loads avatars and server icons from Discord's own image host.
Keeping and deleting
- Emoji counts are kept per hour for 400 days and per day for as long as the server uses ODIN;
/odin optoutstops counting you, and an erasure request deletes them everywhere. - Invite records are kept for as long as the server uses ODIN;
/odin optouthides you from them, and erasure removes you from them. - These have no time limit: voice sessions, daily totals and together totals, game titles and play times, game matches from IGDB (the IGDB game id, name and cover image id), levels, XP and streaks, the usernames, display names and avatars saved from Discord, website accounts (the Discord user id, username, display name and avatar of everyone who has signed in) and, for each server, the Discord user id of its owner and of the member who last turned tracking on or off.
- ODIN keeps encrypted backups of its database: daily copies for 30 days and monthly copies for 6 months. Data that has been deleted stays in the backups until those copies expire.
- If ODIN is removed from a server, the data already recorded for it is kept, and the website stops showing it.
- You can ask ODIN to erase your data with
/privacy eraseor on the Account page of the website. It is done within 15 minutes and cannot be undone. For anything else, email [email protected]. - Erasure keeps two things: a moderation case about you stays as an anonymised record (the action, the case number and the date, without your Discord user id and without the reason the moderator wrote), and your do-not-track switch stays, so ODIN does not start tracking you again. Copies in backups expire after the periods above.
- ODIN keeps its statistics history, such as voice time, levels and streaks, for the long term, including after ODIN has left a server, for as long as you do not ask for erasure.
- Counts are kept per hour for 400 days and per day for as long as the server uses ODIN;
/odin optoutstops counting you and hides your counts in that server (they are kept, not shown), and an erasure request deletes them everywhere. - Posts from a server's Logging module stay in the Discord channel the server chose; ODIN does not keep its own copy.