Privacy Policy
Kingshot KVK Prep SchedulerLast updated: October 14, 2026The short version: the scheduler runs in your browser, and your schedule never leaves your device unless you choose to save or publish it. Organizers sign in through Discord or Google to collect sign-ups; players answering a form never need an account. There are no ads, no tracking cookies, and we never sell personal information. We may sell anonymized, site-wide statistics that identify no one (Section 3).
1. Who we are
Kingshot KVK Prep Scheduler (kingshotprep.com, the “Service”) is a fan-made scheduling tool for the mobile game Kingshot, with a free plan and a paid Supporter plan, operated by Kingshot Prep, an individual sole proprietor. For the purposes of the EU and UK General Data Protection Regulation (GDPR), Kingshot Prep is the data controller for the data described in this policy, reachable through our contact form.
2. What stays in your browser
Estimating points, filling slots, editing, and downloading a save file all happen entirely in your browser, and so does reading a save file you open. A schedule only leaves your device if you choose “save to account” or “publish a link”.
Hosted sign-up forms are the exception, and the only one. The answers your players submit to a form you host here are sent to us and stored so that you can collect and import them — see “Hosted sign-up forms” in Section 3.
The Service keeps a few small settings in your browser’s local storage: your light/dark theme choice, whether you dismissed the kingdom-number prompt, and, if you fill in a sign-up form hosted here, the random token described in Section 3. These stay on your device and identify nobody.
3. Information we collect and store
Account data. Organizing a week needs an account: creating a sign-up form and reading its responses both happen under one. If you sign in with Discord or Google, our authentication provider (Supabase) stores your account ID, the email address and display name shared by that provider, and an avatar URL if one is provided. We never see or store a password.
Kingdom numbers (optional). After signing in you may be asked which kingdom(s) you schedule for. This is used only to understand overall usage of the tool, is never shown to other users, can be skipped, and can be changed or cleared any time in Settings.
Saved schedules. A schedule you save to your account stores the full schedule: the in-game data submitted by your players through your sign-up form (in-game names, player IDs, alliance tags, Town Center tier, pledged resources and speedups, availability, and form comments), plus slot assignments and your edits. It is associated with your account and visible only to you. If you built it from a sign-up form hosted here, it also records which form it came from and how far through that form’s responses it got, so that it can offer you answers that arrived or were corrected since.
Transfer plans (optional). A signed-in organizer can plan the players their kingdom brings in through a transfer window. A plan stores its settings (name, kingdom, goals, invite text and message templates), its groups (name, origin kingdom, leader, the alliance they join, promised invites and a note) and, for each player, their player ID, in-game name, kingdom, power, Town Center level, Mystic Trial, alliance tag, the alliance they will join, map coordinates, status and the organizer’s notes. It also keeps an activity log of who changed what on the plan, the newest 500 entries. A plan is visible only to its owner and to accounts the owner invites to it as a viewer or an editor. Only the owner can invite or remove people, and removing someone ends their access at once. An invite shows the invited account the plan’s name and the owner’s display name, and once accepted, everyone on the plan sees each other’s display names, never an email address.
Player lookups. When an organizer fetches a player or refreshes stats, our server sends that player ID, and nothing else, to MightPulse (Section 6), which returns the player’s public in-game profile. We keep the result in server memory for up to a day so the same player is not looked up twice, and store it in the plan it was fetched for. Transfer groups and power caps come from the public transfer data on Kingshot Optimizer (kingshotoptimizer.com); that request carries no user or player data.
Hosted sign-up forms (optional). A signed-in organizer can host their sign-up form on this Service. Creating one stores the form’s setup (its title, description, alliance options, deadline and which optional questions it asks) under that organizer’s account. Each answer a player submits to it is stored as sent: in-game name, player ID, alliance tag, Town Center level, availability, pledged resources and speedups, and any comment. Players do not need an account, and we do not ask them for an email address or any contact detail. Responses are readable by the organizer who owns the form, who can correct an answer in one of them (a mistyped player ID, a Town Center level a player got wrong), delete a single response, and delete the form, which deletes every response sent to it, and by any other account that organizer invites to the form as a viewer or an editor. Only the owner can invite or remove people, and removing someone ends their access at once. The form’s title and description are the organizer’s own words, and a description may link to places we do not run, such as a kingdom’s Discord. Form links use random IDs, cannot be listed or guessed in practice, and are excluded from search-engine indexing. A player’s browser also keeps one random identifier of its own so several sign-ups from the same person can be grouped together; it identifies nobody and never leaves that browser except attached to that person’s own submissions.
Published share links. Publishing creates a read-only snapshot containing only the schedule title and each slot’s player name and player ID. Resources, availability, and comments are not included. The snapshot is visible to anyone who has the link. Links use random IDs, cannot be listed or guessed in practice, and are excluded from search-engine indexing.
Read-only plan links (Supporter). A plan’s owner can turn on a read-only link. It shows the plan’s name and kingdom, its groups and the alliance each joins, and each player’s name, ID, kingdom, power, Town Center level, Mystic Trial and status. Notes, promises, group leaders, coordinates, message templates and the activity log are not included. It is visible to anyone who has the link, uses a random ID, is excluded from search-engine indexing, and stops working when the owner turns it off, deletes the plan, or no longer has the Supporter plan.
Aggregate schedule statistics. When you publish and save a schedule, we also store a small statistical summary of it — counts and totals such as roster size, slots filled, projected point totals, and stage and resource distributions. These summaries contain no player names, player IDs, or alliance tags, and we use them to understand overall usage, improve the Service, and build the anonymized statistics below.
Anonymized statistics. From data collected on or after November 5, 2026, we may compute site-wide statistics from saved schedules and hosted form responses, such as the typical Town Center level or average pledged speedups across all players, and share or sell them. They contain no names, player IDs, alliance tags, kingdom numbers, comments or form text, are never broken down by form, alliance or kingdom, and every figure combines at least 100 players from at least 10 different forms, so no one can be picked out. Data collected before November 5, 2026 is never used for them.
Supporter plan (optional). If you donate through Ko-fi to become a Supporter, Ko-fi and its payment providers handle the payment (Section 6). We never see or store your card or bank details. Ko-fi tells us when a donation arrives, including your message, which is where we read your code. We store only the Ko-fi transaction ID, the amount, currency and date, and the account the code matched; not your name, email or message. A Supporter account that translates player comments also has a count of the characters it translated this month.
Technical data. To protect the Service from abuse we rate-limit requests using your IP address (or your account ID when signed in). These identifiers are held briefly in server memory and are discarded within minutes; we do not write IP addresses to a database or to logs, and the reverse proxy in front of the app does not log requests either. Analytics events carry no IP address, as Section 5 describes. Our hosting provider (Section 6) processes IP addresses as part of delivering the site, under its own policies.
4. Cookies
The Service sets only strictly necessary cookies: the session cookies that keep you signed in (set by our authentication provider, Supabase). There are no advertising or tracking cookies, which is why there is no cookie consent banner. If you never sign in, browsing the scheduler and published schedule pages works without any identifying cookies.
5. Analytics
We use PostHog, through its EU-hosted service PostHog Cloud EU (Section 6), to understand how the Service is used. It is cookie-free: nothing is stored on or read from your device for analytics. Our server records actions it already handles, such as signing in, saving or publishing a schedule, creating a form, submitting a response, sending feedback, or reaching a plan limit. A small analytics script that is part of the site reports which pages you open, where you click and on what kind of element (never its text), how fast pages load, and your screen and window size. It sends these to our own server, never to PostHog. Nothing records the contents of a schedule, a form, a response, feedback, or any player data. We do not use Google Analytics or any advertising tracker.
Before anything reaches PostHog, our server replaces any form, schedule, plan or link ID in a page address with a placeholder, removes query parameters other than campaign tags, and blanks any text, link or label in what was clicked. Each event then carries the page path, the referring site, a coarse browser, operating system and device type, and your browser’s language. Your IP address, your browser’s user-agent string and your timezone are never sent, so analytics has no location data.
Events are tied to an identifier our server computes from your IP address and browser with a random value it keeps only in memory and replaces every day, whether or not you are signed in. You count as a new visitor each day, and nobody, us included, can link one day’s visits to another’s, or to you or your account. If you are signed in, events also say so, and how old the account is in broad ranges (under a week, one week, 2 to 4 weeks, 5 to 12 weeks, or older). PostHog never receives your name, email address, kingdom numbers, or account ID.
A content blocker may stop the script; the events our server records are part of using the Service and are counted either way. Since no event can be linked to you, there is nothing per person to look up or delete.
6. Who processes data on our behalf
We do not sell personal information, share it for advertising, or give anyone access to it beyond the service providers needed to run the site. The anonymized statistics in Section 3 are not personal information.
- Supabase: database and authentication (accounts, saved schedules, share snapshots, hosted forms, transfer plans, kingdom numbers).
- Discord / Google: sign-in providers. They tell us who you are; we do not receive your contacts, messages, or any other data from them. They learn that you signed in to this site, and, because your profile picture is shown straight from their servers rather than copied to ours, they also see your browser ask for it while you are signed in.
- Ko-fi: takes Supporter donations, with PayPal or Stripe, under its own privacy policy. It tells us when a donation arrives, with its amount and your message.
- DeepL: translation. A form’s description is sent to DeepL when a player picks another language, and a player’s comment is sent when an organizer asks for it in English. Only that text is sent, with nothing that identifies who wrote it.
- MightPulse: player lookups for transfer plans. It receives the player ID being looked up, from our server, with nothing that identifies you or the plan.
- Hostinger: the hosting provider whose server the Service runs on. Like any host, it sees the traffic that reaches the site.
- PostHog Inc.: product analytics, hosted in the EU (PostHog Cloud EU). It receives the events described in Section 5, and no account, schedule, or player data.
Our contact form is hosted on Tally.so. What you submit through it goes to our Tally account and is handled under Tally’s own privacy policy; submit only what you are comfortable sending. Sign-up forms are hosted here, and the responses are stored by us as described in Section 3. We would disclose data if legally required to, and have never been asked to.
7. Information about other players
Schedules are built from data that kingdom organizers collect from their players through sign-up forms. If an organizer saves or publishes a schedule, or hosts their sign-up form here, the in-game information described in Section 3 is stored with it. The organizer is responsible for collecting that data with their players’ knowledge, as our Terms of Service require. A transfer plan holds the same kind of in-game information about the players a kingdom is inviting, mostly taken from their public game profile, plus any notes its organizers write.
If you are a player who appears in a saved or published schedule, or who answered a sign-up form hosted here, and you want your information removed or corrected, ask your schedule organizer: they can fix an answer in a response, they can delete that one response, they can delete a form, which deletes every response sent to it, and they can delete a schedule or its published link, and a plan’s owner or editors can remove you from a transfer plan. You can also reach us through our contact form (any report type works) with the form, share or plan link and your in-game name or player ID in the description, and we will remove it.
8. How we use information
- to provide the Service: saving schedules, serving published links, keeping you signed in;
- to protect the Service: rate limiting and abuse prevention;
- to understand how the Service is used: the analytics in Section 5 and optional kingdom numbers;
- to produce the anonymized statistics described in Section 3, which we may share or sell;
- to respond when you contact us.
For readers in the EEA/UK, the legal bases are performance of a contract (providing the Service you asked for), legitimate interests (security, abuse prevention, usage analytics, and anonymizing data for the statistics in Section 3), and consent where we ask for something optional, which you may withdraw at any time.
9. Retention and deletion
Saved schedules, hosted forms and account data are kept until you delete them. Deleting a schedule also deletes any share links published from it and the aggregate statistics row described in Section 3; a deleted or revoked link stops working within about a minute. Deleting a hosted form deletes every response players submitted to it, and its link stops working the same way. Deleting a transfer plan deletes its groups, players, activity log, invites and read-only link. Removing a player deletes that player’s row; activity entries that named them keep the text they were written with until they age out of the newest 500. Deleting your account removes your profile and every schedule, share link, hosted form, form response and transfer plan it owns, along with any access it had to forms and plans other organizers shared with it, and the record of what it bought. Ko-fi keeps its own record of past payments.
You can delete individual schedules from your account page, and you can delete your account itself from the Settings page. Deletion is immediate and irreversible, and removes your profile and every schedule and share link the account owns. If you cannot sign in, you can instead request deletion through our contact form (any report type works; just say in the description that it is an account-deletion request), and we will confirm the request comes from the account owner before acting on it. Rate-limiting data expires from memory within minutes on its own.
10. Your rights
Depending on where you live, you may have the right to access, correct, export, delete, or restrict the processing of your personal data, and to object to processing based on legitimate interests. If you are in the EEA or UK, you also have the right to lodge a complaint with your data protection authority. If you are a California resident, you have the rights to know, delete, and correct, and the right to opt out of the sale or sharing of personal information. We do not sell or share personal information as defined by the CCPA, and we do not use it for cross-context behavioral advertising.
To exercise any of these rights, use our contact form. Any report type works; describe the request in the description field. We will not discriminate against you for doing so.
11. International transfers
The Service’s providers may store or process data outside your country, including in the United States and the European Union. Where required, transfers rely on safeguards such as the providers’ standard contractual clauses.
12. Security
All traffic is encrypted with HTTPS. Saved schedules are protected by database-level row security so that only your own account can read them, published snapshots expose only the minimal fields described above, and the application runs with restrictive browser security headers. No system is perfectly secure, but the Service is designed to store as little as possible in the first place.
13. Children
The Service is not directed at children under 13, and we do not knowingly collect personal information from them. If you believe a child under 13 has created an account, contact us and we will delete it.
14. Changes to this policy
We may update this policy as the Service evolves. The “Last updated” date at the top reflects the current version, and material changes will be reflected here before they take effect.
15. Contact
Privacy questions and requests: use our contact form. More about the project is on the About page.