Vantage — privacy
Covers everything Vantage runs: this Discord bot, the Vantage service the mod talks to
(api.vantage.cherishev.dev, which also serves the web pages), and what the mod sends to either.
Last reviewed 2026-09-27.
This page is the published copy of PRIVACY.md in the Vantage bot’s
repository, which holds its source and its history.
Discord requires a privacy policy from any bot that collects user data, and a service that keeps statistics about players owes them one whether anybody requires it or not. This page describes what the code actually does, not what it is meant to do one day. Where it says something is never collected, that is a property of the code — the mod has no way to read it, or the service’s schema refuses it — rather than a promise about how the data is treated once it has arrived.
Who runs it
Vantage is built and run by one person, its maintainer. There is no company behind it, no staff and no partner. The service runs on one server, which only the maintainer has access to, and the bot runs beside it. Everything between the mod, your browser and the service travels over HTTPS.
Nothing described here is sold, shared or used for advertising, and there is no analytics of any kind. What leaves Vantage goes only where a job needs it: Mojang confirms a sign-in and serves skins, Hypixel answers a profile lookup, a public mirror serves item icons, and Discord receives the posts. None of them is told who is looking at a page.
Vantage is not affiliated with or endorsed by Hypixel or Mojang.
The Discord bot
What it receives
Only what you deliberately send it:
- Slash-command input — the words you type into
/features search, the area you pick for/request, and the options you give/carry. - Form input — the title and detail of a
/request, and the summary, steps and version line of a/bug. - A Vet card, if you paste one into
/carry request. It is a short code the mod makes on your screen (/vt carry), and it carries your Minecraft name and uuid, your Vantage Vet points and tier, the hours you played in the last seven days, your mod version, when it was made and the carry you asked for. It is signed so the bot can tell the mod made it, and the bot refuses it once it is twenty minutes old, so a screenshot of it is no use to anybody else for long. - Your Discord identity as Discord supplies it — your user id, so a post can say who asked. Discord gives the bot this with every interaction; the bot does not look you up, and does not ask Discord for anything else about you.
The bot runs with no message intents. It reads nothing anybody writes in the server except the input to its own commands and the posts in its two forum channels: their titles, to spot a duplicate before you post, and the text of each feature request, to grade it (below).
What it keeps
The bot has no database; it keeps a few small files beside itself.
- A
/requestor/bugbecomes a post in a Discord forum channel. Discord stores it; the bot does not keep a second copy. That post is public to everyone who can see the channel, and it carries your name. - If your post looks like one that already exists, the bot holds your draft in memory for ten minutes while you decide whether to post it anyway, then discards it. Restarting the bot discards it sooner.
- Once a day the bot counts the 👍 reactions on request posts and writes a file of titles, links and vote counts. It does not record who voted.
- Once a day it also grades the open requests for the maintainer’s shortlist. It reads the text of each request post, counts the replies and how many different people wrote them, and never reads what a reply says. The file it writes holds titles, links, scores and counts — not who replied.
- Carries. A
/carry requestis posted in the carries channel for carriers to see, naming you, your Minecraft name, your Vet points and tier, your hours in the last seven days and your note. The bot keeps a record of the request — your Discord id, the Vet card’s name, uuid, points, tier and hours, the carry type, your note, who claimed it and when it closed — and keeps that record after the request closes. A request nobody closes out closes itself after 48 hours./carry offerkeeps your Discord id with the carry types you offer and how many carries you have completed, which is what/carry topranks, and the bot counts how many carries each requester has received.
It also posts, on its own, the project’s commits, tags and releases and the maintainer’s announcements. Those are about the code, not about anybody using it.
What it never does
- Reads your messages, your other servers, or anything you did not type into one of its commands, apart from the posts in its own forum channels, which it reads to spot duplicates and to grade requests.
- Receives anything from the mod on its own. Nothing in the Minecraft client talks to this bot; a Vet card reaches it only because you paste it.
- Links your Discord account to your Minecraft account anywhere except in a carry request’s record, which holds both because its post shows both. Vantage Stats has no Discord side at all.
- Sends what you type anywhere except the Discord channel you filed it in.
Bug reports from the mod
The mod’s bug-report screen sends a report to the Vantage service, which files it as a post in the bugs forum through a Discord webhook. A report carries what you typed, the Vantage and Minecraft versions, the mod loader, the list of installed mods, the feature it is about, a stack trace if there was one, and the last lines Vantage itself logged — never the game’s own log, which can hold chat and a session token. The screen shows you the whole report before anything is sent.
Player names and uuids in it are replaced with pseudonyms such as player_a3f2e1 before it is
stored or posted, so the people in your party do not end up in a public forum. The replacement is
pattern-based: it catches the forms names actually appear in — rank tags, chat brackets, party lines,
whispers, uuids — but not a name written into a sentence, which is why the screen shows you everything
first.
The service keeps one row per distinct problem: a fingerprint, a count, when it was first and last seen, the first report’s summary, its Vantage version and the Discord thread it was filed in. Nothing in that row says who sent it. What you typed lives in the Discord post.
Looking up a player
/pv <name> in the mod, and /p/<name> on the web, show a player’s
SkyBlock profiles. The name is turned into a uuid through Mojang’s public lookup (by the mod, or by the
service for the web page). The service asks Hypixel for that uuid with Vantage’s one API key and answers
with a document it builds from an allowlist — skills, collections, slayers, dungeons, pets, inventories
and the like. A co-op partner’s data is emptied, so looking up one player never hands out three other
people’s inventories, and the bank’s transaction log, which names other players, is dropped.
- The answer is kept in memory for a few hours, so a name posted in a channel costs Hypixel one request rather than fifty. It is never written to a database, and a restart clears it.
- Nothing is fetched on a timer and no history is built: a profile is fetched because somebody opened it.
- Anybody can be looked up, as on any profile site, because this is Hypixel’s public data. What Hypixel’s API shows about you is set by the API settings in SkyBlock’s own settings menu; switch them off and neither this viewer nor any other profile site can show those parts.
- A found
/p/page is an ordinary public page, and search engines may index it. - The key is Vantage’s own and never leaves the server. Vantage never asks for your Hypixel API key, and the mod has no setting for one. Only the maintainer can apply for the production key the viewer needs; until Hypixel grants it, the viewer says the service is not configured and fetches nothing.
Vantage Stats
Vantage Stats is an opt-in statistics page: the mod records what you do in SkyBlock, and the service turns that into a page in the mod’s own look. Everything in this section applies only to players who turn it on.
It is off
It records nothing and sends nothing until you turn it on, and turning it on means reading a screen that lists every category, what each one sends and what is never sent — and then saying yes to the categories you want. Ten categories, each independent, all off to begin with. The feature’s own toggle only arms it; with every category off it still records nothing and still makes no network calls. Consent belongs to the Minecraft account signed in to the game, so a second account on the same computer starts with everything off.
Proving it is your account
Signing in uses Mojang’s own joinServer/hasJoined handshake: your game
proves itself to Mojang, and Mojang tells the service it was you. Your Minecraft access token goes to
Mojang and to nobody else — not to Vantage, not into a config file, not into a log. The check
the service makes with Mojang names your username and a one-time code, and never your address. It runs only
when you press the button on the consent screen or type /vantage stats link, only while you are in
a world on Hypixel, and by itself at most once per game session, when the service says a sign-in has run
out.
From that, the service keeps your uuid, the username Mojang gave back, your time zone (so a day on your page is your day, not the server’s) and a sign-in token of its own. The token is stored only as a hash and runs out about a month after the game last used it. A sign-in is recorded with a mod version and a last-used time, and no address, device or location. The game’s status screen signs out this computer, or every sign-in at once, browser sessions included; neither deletes any statistics.
What is sent, and under which switch
Numbers you generated about your own SkyBlock profile, as your own client observed them; none of it is read from Hypixel’s API. Each category below is a switch, and the sentence beside it is the one on the consent screen. The service enforces the same list and drops anything that arrives for a category that is off.
| category | what it sends |
|---|---|
| Activity | When you played, where you were and for how long. Where means the island or area, never a position. |
| Combat | What you killed and what killed you: mobs, bosses, slayers, dungeons, Kuudra, dragons, deaths. |
| Gathering | What you mined, farmed, fished, foraged and hunted. |
| What dropped | Every item that landed in your inventory, counted by item. |
| Economy | Coins in and out, purse, bank, networth, what your museum is worth, and your own bazaar and auction activity. |
| Progression | Levels and totals as they stand: skills, slayers, dungeons, collections, bestiary, Rift — and fairy souls, museum donations, gifts and island upgrades. |
| Items | The items you are carrying and storing: gear, accessories, pets, inventories, sacks. |
| Events | Seasonal events: chocolate, hoppity, carnival, bingo, Jerry. |
| Timeline | A diary of your notable moments: level-ups, rare drops, personal bests, deaths. |
| Vantage | Which Vantage features you use, and your Vantage Vet score. |
With any category on, each upload also carries what a page needs in order to exist: your SkyBlock profile’s id, name and game mode, the mod and Minecraft versions, and a random id for this game install, made once and never derived from your hardware.
An item is sent as its SkyBlock id, name, rarity, lore and a short fixed list of attributes — never the item’s raw data. The parts of your profile the mod reads from menus you open (skills, pets, collections and so on) carry the time they were read, and the page shows them “as of” that time rather than passing an old number off as current.
The first time you turn it on, the mod also sends, once, the history it already keeps on your computer for that account — playtime, grind sessions, loot and slayer totals, the Vet counters, the death ledger — so the page is not empty on day one. It goes only into the categories you turned on, it is marked as imported, and it can be deleted on its own. Local files that hold other players’ names are never read for it.
What is never sent, ever
Chat, of any kind. Coordinates, of any kind. Your Minecraft access token, and any API key. File paths, or anything about your computer. Anything at all from outside Hypixel SkyBlock — the recorder pauses in lobbies and on other players’ islands, where the sidebar describes somebody else. And nothing about any other player: no party or lobby rosters, no co-op member names, no guild members, no auction sellers or bidders, no names of players who killed you. Item text that names somebody, which SkyBlock’s own lore does, has those lines removed before it leaves your computer, and a batch that still carries a name where no name could honestly appear is refused outright by the service.
These are not filters over data that was collected anyway: the recorder has no code path that reads them.
On your computer
The mod keeps its side in config/vantage/stats/: your consent and categories, the numbers it
has recorded, uploads waiting to go, and the sign-in token, readable only by you where the system allows.
None of it is part of a config profile you export or share. /vantage stats export writes
everything recorded for your account to a file you can read, with no network call, in the same shape as the
service’s own export — so you can compare the two and see that the service holds what the mod sent
and nothing more.
What the service stores
Everything Vantage Stats holds is in its own database file, separate from the one that holds bug reports. The split is deliberate: the bug-report database holds nothing about any person, this one holds everything about the people who asked it to, and keeping them apart means a question about one never needs a caveat about the other.
It holds your account (uuid, username, time zone, storage used), your settings and share link, your SkyBlock profiles, your game installs (the random id, the mod and Minecraft versions, when each was first and last seen), the daily numbers and their lifetime totals, your sessions, your timeline, the profile sections and item details the mod sent, and your sign-ins. Every row exists because you turned a category on. The service adds your numbers up and serves them; it does not price, rank or compare you with anybody. Storage is capped at 64 MiB per account, which a heavy player does not approach in years of play.
Who can see it
You choose.
- Link only is the default. Your page exists at an address containing 22 random characters that nobody can guess; it is not listed anywhere, it is never kept by a shared cache and it tells search engines not to index it. A request for your name answers exactly as it would for a player who does not exist. You can rotate the link, which kills the old one on the very next request.
- Public also puts the page at your username and your uuid, like any profile site, and a public page can be indexed by search engines. A name belongs to whoever most recently proved it to Mojang: if you rename, your public address moves with you, and nobody who takes your old name inherits your page. The page always shows your uuid beside your name, so two accounts can be told apart.
Either way you can keep a category collected but hidden from everyone but you, hide individual SkyBlock profiles, and round every time on the page down to the day, so a reader sees that you played on 20 September but not at what time. Switching from public back to link only takes effect at once; a public copy may survive in a cache for up to a minute, and the settings screen says so in those words.
Anyone you give your link to can open the page, and so can a link preview: paste it into Discord and Discord fetches the page to draw one.
Turning a category off
Turning a category off stops recording it and stops sending it — including anything already waiting in the upload queue — and hides what it recorded before from everyone but you, immediately, public page included. It does not delete what was already recorded: the settings screen tells you exactly how many rows are now hidden and puts the delete button underneath that number. Turning it back on resumes recording and shows the old rows again. Off and deleted are two different promises, and they are not run together.
How long it is kept
Two years by default, and you can set anything from 30 days to ten years. Days older than that are folded into lifetime totals and then deleted, so your all-time numbers survive without a day-by-day diary being kept forever. Each SkyBlock profile keeps its newest 1,000 sessions and 5,000 timeline entries. The service’s record of each upload, which lets a retried upload be recognised rather than counted twice, is kept for seven days, and expired sign-ins are deleted within the hour. An account nobody signs in to is not deleted by itself: its page stays as you left it until you delete it.
Deleting, and getting a copy
One command, from the game or from your page, and the answer is the number of rows removed from each table — a count rather than a confirmation, because a deletion nobody can observe is one nobody has reason to believe.
/vantage stats delete, then/vantage stats delete confirmwithin 30 seconds, deletes what this computer holds and then everything the service holds, and prints both tables. Your page link changes, you stay signed in, and your categories stay on, so recording starts again unless you turn them off.- Your page’s settings can narrow a deletion to chosen categories, one profile, the days before a date, or only what was imported when you first turned it on, and the game’s status screen deletes the categories you have switched off.
- Delete my account, on the status screen or your page, removes the account itself: the data, the settings, the share link, your name in the lookup index, every sign-in including any browser session, pending sign-in attempts, the service’s record of your uploads, and the cached copy of your skin.
A deletion happens at once, in one transaction. There is no soft delete, no tombstone and no recycle bin, and nothing is kept “for analytics”. The only other copies are the database backups the service’s runbook calls for — nightly, kept for a fortnight — so a deleted row has left every backup within two weeks. If you no longer have the mod, ask the maintainer (below).
Deleting does not turn a category off, and turning a category off does not delete; both sit on the same screen, side by side, for that reason. You can also download everything the service holds for you, as one file, from the status screen or your page at any time.
What the person running it can see
The service has an operator’s dashboard that can be reached only from the server itself. For Vantage Stats it shows totals — how many accounts there are and how much they store — and never anybody’s recorded statistics, profile or page. To answer a request from you, the operator can look up one account by its exact uuid or exact name and see only its metadata: the uuid and name, whether the page is public, how many profiles and game installs it has, how much storage it uses, when it last synced and how many devices are signed in. It cannot list accounts or search by part of a name, it has a limited number of lookups an hour and a day, and every lookup is written to an audit log kept for 90 days, which records the account only as a keyed pseudonym — one that anyone holding the server’s database file could still match against an account they already know, for those 90 days. The operator can delete an account — the same deletion as Delete my account, answered with the same count of rows — and does so only when its owner asks, which is how you delete if you no longer have the mod. The operator can also pause uploads or sign-ins, and for maintenance can hold every change, deletions and sign-outs included, for at most six hours at a time; the mod keeps what it recorded and sends it later, and a deletion refused during maintenance is refused with a message asking you to try again, never accepted and then lost.
Signing in from a browser
To change settings from your page, the mod opens it with a one-time code that lasts 60 seconds and rides in
the part of the address a browser never sends to a server, so it cannot land in anybody’s log. The page
trades it for one cookie, __Host-vst: secure, HTTP-only, same-site, twelve hours long, and good
for nothing but proving the browser is yours. It can change settings, export and delete, but never upload. The
game’s status screen counts it among your sign-ins and Sign out of all revokes it, and the page
can sign itself out.
Viewing a page, yours or anybody’s, sets no cookie. The page remembers your own display choices, such as its colour preset, in your browser’s local storage, which never leaves your browser.
Hypixel data on the stats page
Every number on a Vantage Stats page is one your own client saw. Reading parts of your profile from Hypixel’s API for this page instead is designed but not built. If it is built, it will use the one key the service already holds, fetch only when a page is opened and cache what it gets, and never run on a timer or build a history from repeated fetches — Hypixel’s own rules forbid that. Every section filled that way will say so on the page, and this page will name those sections in the same change that builds it.
What Vantage Stats does not do
No leaderboards, no comparing you with anybody, and no search by statistic. No free text that anybody can write on your page — no tagline, no comments — so there is nothing on it you did not generate by playing.
Addresses, logs and images
Anybody who connects to a server gives it an address. This is what Vantage does with yours:
- Rate limits. So that one address cannot spend everybody’s share of bug reports, lookups, page views, images and sign-in attempts, the service counts requests per address per clock hour, in the bug-report database. A row holds the address, the hour and a count, and is deleted within two hours. Counts kept per account or per sign-in are stored under a keyed hash rather than your uuid, so that database still holds nothing that names a person.
- Logs. Like any web server, the service logs each request’s time, address and path. The log stays on the server, is read when something breaks or somebody is abusing the service, is never copied into either database, and the system discards old entries on its own.
- Images. Every skin, head and item icon on the web pages is fetched by the service and served from its own address, so a viewer’s address never reaches Mojang or a content network, and the pages load nothing from any other host. The images are cached on the server’s disk; the cached copy of your own skin is deleted with your Vantage Stats account.
The mod also talks to services Vantage does not run — Hypixel’s public resources, public price data, Mojang’s name lookup, GitLab for announcements and updates, and the site a feature names when you switch it on, such as Google’s translator for Translate On Click or elitebot.dev for the Elite leaderboards. Those calls go straight from your game to them and pass through nothing of Vantage’s.
Removing what you posted
- A forum post: delete it, or ask a moderator to. Deleting the post removes it from Discord and from the next day’s tally and grading, which are rebuilt from scratch each time. The ten-minute draft needs no removal: leave the button unclicked and it expires.
- Carries:
/carry offer types:noneremoves your carrier registration and your line on/carry top. To have a carry request’s record removed, or the count of carries you have received, ask the maintainer. - A bug report from the mod is a Discord post like any other, and a moderator can delete it. The service’s row for it holds no name.
- Vantage Stats: see Deleting, and getting a copy above.
- A player lookup leaves nothing to remove; it ages out of memory within hours.
For anything else, or to ask what is held about you, open a post in the bug forum or contact the maintainer through the mod’s repository, https://gitlab.com/Ekoss/vantage.
Changes
This page lives in the bot’s repository, so its history is the change log. Anything that widens what Vantage collects — in the bot, the service or the mod — has to change this page in the same commit.