Skip to content

Privacy and download measurement

Honest numbers.Minimal data.

RuneFist counts official project downloads without turning that count into a profile of the person downloading. If you create an account or join a membership, RuneFist also needs enough information to sign you in, keep billing status in sync, and deliver private files. This page separates those purposes and explains the services involved.

Last updated 20 August 2026

Accounts and memberships

The data needed to deliver what you asked for.

Creating an account is optional for public pages and free public downloads. It becomes necessary when you want account-only features, a recurring membership, billing management, or a private member download.

A RuneFist account can also hold an in-app inbox. Product-update and studio-news email are separate, optional choices and stay off until you turn them on. Each choice can be withdrawn from the Account page or the unsubscribe control in an update email. Essential account, billing, security, and access messages are handled separately and are sent only when needed to operate or protect the service.

RuneFist Studios decides why and how RuneFist account and entitlement data is used. Stripe and Link separately process checkout and transaction information under their own notice and merchant terms.

Account

Email address, Supabase user ID, chosen display name, optional Google, Discord, or member-uploaded avatar, sign-in provider, and account timestamps.

Membership

Stripe customer and subscription IDs, tier, status, billing period, cancellation state, and the digital entitlements attached to the account.

Private downloads

The account and active entitlement are checked before RuneFist provides a private member file. Release metadata is stored separately from the file itself.

Security

Authentication and account-recovery events, short-lived signup-consent, email-action, CAPTCHA, OAuth, and reset state, service logs, and minimal Stripe webhook event IDs used to prevent duplicate processing and investigate abuse.

Updates and choices

Your in-app and optional email update choices, when and where an email choice was changed, the announcements shown to your account, read status, and limited delivery diagnostics used to prevent duplicate sends.

Creator-tool devices

A random installation UUID, the device name you choose, product and plugin version, activation and last-seen times, license-issue time, and revocation state. RuneFist does not create or store a hardware fingerprint.

RuneFist uses account and entitlement information to perform the service you request. Minimal security and abuse-prevention records support RuneFist's legitimate interest in protecting members and paid files. Optional product and studio update email relies on your explicit consent, which you can withdraw at any time without affecting account access. Payment records may also be processed where needed to meet legal and accounting obligations.

RuneFist does not receive or store your full card number. Stripe and Link collect payment, billing, and tax-location information on their hosted checkout. For eligible Managed Payments transactions, Link is shown as the merchant of record and handles the transaction under its checkout terms.

The counter for unique release downloads

Count the release once. Leave the person alone.

With JavaScript available, intentionally starting an official download sends a same-origin request to RuneFist. The server sets one first-party cookie containing a signed random identifier and returns a short-lived signed download ticket. It is HttpOnly, which keeps it out of website JavaScript, and it is sent only back to RuneFist. Ordinary page visits do not set this identifier.

The browser must return both that cookie and its ticket during the resulting same-origin download navigation before the count can change. The ticket is bound to that browser, project version, and download source, and expires after two minutes. The cookie expires one year after it is set or refreshed.

The server converts the random identifier into a different one-way token for that exact project version. Upstash stores that token in the release's deduplication set; it does not store the random cookie value itself. Downloading the same version ten times in that browser still adds one to the public number.

A later version can count once again because it is a separate release. That is why the public label is unique release downloads, not unique people or players.

One browser
One count for each project version
Cookie lifetime
One year
Stored identity
Release-specific one-way token

Where the number has limits

Trustworthy means explaining the edges.

A browser is not a person

Anonymous counting has honest limits.

Clearing RuneFist cookies, using private browsing, or downloading from another browser or device can count the same person again. A shared browser can count several people as one. If cookies are blocked, the signed round trip cannot finish, so the file is still delivered but that download is intentionally uncounted.

Official flow only

The count can be lower than reality.

A direct artifact link, a direct GET, the native no-JavaScript fallback, or a third-party mirror still delivers the file without increasing RuneFist's public counter. Cross-site embeds, automated page prefetches, HEAD requests, and ordinary crawlers cannot complete the signed same-origin round trip and are excluded. If the counter is unavailable, the download still continues and no false zero is shown.

Historical downloads stay separate

Isocraft's 13K+ Modrinth downloads are a separately labeled historical figure. They are not mixed into the live RuneFist count of unique release downloads, and older raw request totals are not presented as if they had been deduplicated.

Service providers and retention

Small records, clear jobs.

Supabase

Account authentication, membership and notification records, creator-tool device authorization, entitlements, and private file storage.

Privacy notice

Resend

Delivery and limited delivery diagnostics for account confirmation, password recovery, email-change, account-security messages, and only the product or studio updates you explicitly choose to receive by email. Resend receives the recipient address and the message needed for that purpose.

Privacy notice

Cloudflare Turnstile

When email/password access is enabled, bot and abuse protection for signup, password sign-in, confirmation resend, password-reset requests, and email-account deletion reauthentication. The Turnstile widget processes browser and network signals and returns a short-lived verification token; RuneFist does not use it for advertising.

Privacy notice

Stripe and Link

One-time support checkout, Managed Payments subscriptions, recurring billing, tax handling where applicable, receipts, fraud prevention, disputes, and transaction support.

Privacy notice

Google

Optional Google sign-in. Google returns the identity details you approve; RuneFist never receives your Google password.

Privacy notice

Discord

Optional Discord sign-in. Discord returns the identity details you approve; RuneFist never receives your Discord password.

Privacy notice

Vercel

Website hosting, delivery, security, and operational request logs.

Privacy notice

Upstash

Release-specific one-way download tokens, aggregate public download totals, account-security rate limits, and short-lived membership checkout coordination.

Privacy notice

Some providers may process information outside the Netherlands or the European Economic Area. Their linked notices explain their locations and the legal safeguards they use for international transfers.

Cookies and sessions

Supabase authentication uses first-party session cookies so you can remain signed in securely. An OAuth login also uses short-lived state and verifier values to finish the redirect safely. These are necessary for the account feature you choose to use.

Email signup can set a separate HttpOnly consent-intent cookie for up to 24 hours. Its timestamp and signature are bound to one account and the current Terms and Privacy versions, so the checkbox can be verified after email confirmation without revealing whether that email already has an account. It is cleared when the confirmation callback finishes.

Opening an account confirmation, password-recovery, or email-change link sets a separate signed HttpOnly action-intent cookie for up to ten minutes. The initial link visit does not complete the action. RuneFist verifies the one-time action with Supabase only after you press the confirmation button, which helps prevent automated email scanners from consuming the link.

A creator tool starts activation with random device and user codes plus a random device credential. RuneFist stores only domain-separated HMAC digests of those codes and credentials in short-lived server-only authorization state. The approval code expires after ten minutes; expired request rows are deleted after a further 24-hour cleanup window.

When email/password access is enabled, Cloudflare Turnstile loads on its signup, sign-in, confirmation-resend, and password-reset request forms, and when an email/password user reauthenticates before account deletion, to detect automated abuse. The browser receives a short-lived verification token that RuneFist passes to Supabase for validation. Google and Discord sign-in do not use this RuneFist Turnstile challenge.

The separate anonymous download-count cookie is described above. Stripe, Link, Google, or Discord can set their own cookies when you visit their checkout or sign-in pages; their notices govern those cookies. RuneFist does not currently use third-party advertising cookies or sell personal information.

How long it stays

Account details and current entitlements remain while the account is active. Self-service deletion is available from the Account page after any Stripe membership has fully ended. It removes the RuneFist authentication account, profile, and library mapping, including member-uploaded profile images; Stripe, Link, or RuneFist may retain transaction and security records when law, fraud prevention, disputes, or accounting duties require it.

If you upload a profile image, RuneFist converts it to a private square WebP for the signed-in account. The original upload and embedded image metadata such as EXIF or GPS data are not kept. Replacing or removing the image removes the previous stored version; removing it can reveal the current Google or Discord image as the account fallback. RuneFist does not use profile images for facial recognition, advertising, or engagement tracking.

Minimal processed webhook event IDs may be retained to prevent the same payment event being applied twice. Full Stripe webhook payloads are not deliberately stored in the RuneFist database. Turnstile challenge tokens are not deliberately stored in the RuneFist database. Auth-mail delivery diagnostics and hosting security logs follow the relevant provider's retention rules.

Update preferences and their consent timestamps remain while your account is active so RuneFist can respect your latest choice. In-app read receipts remain with the relevant account. Notification delivery records retain only the limited status, attempt, provider reference, and error details needed to avoid duplicate email and investigate delivery problems; they are not used to profile reading behavior.

Authorized creator-tool installation records remain with the account until the account is deleted. Revocation marks an installation inactive so it cannot refresh access. These records contain random identifiers, rotating credential HMACs, plugin metadata, and activity and revocation timestamps—not the plaintext device credential. Blockbench stores that random plaintext credential and a signed, time-limited offline license locally on the installation so the tool can renew access and work during the displayed offline period. The license names the random device and product, not the account or its artwork.

While a member starts checkout, Upstash can temporarily hold a one-way account token plus a random checkout attempt ID or the pending Stripe Checkout session ID, so duplicate tabs cannot create duplicate subscriptions. The renewable coordination lock lasts about 90 seconds without a heartbeat, and pending checkout state expires after about 35 minutes. It is not used to profile activity across accounts or projects.

RuneFist does not knowingly invite a child who cannot legally manage an account to create one alone. A parent or guardian can contact RuneFist about an account created without the required permission.

Storage and control

Your data stays yours.

Vercel serves RuneFist.com and its official download flow. Upstash stores the per-release one-way tokens and aggregate counts. Tokens are retained while their release remains officially available so repeat downloads can stay deduplicated; the aggregate release total may remain after a release is retired.

You can remove the random identifier at any time by clearing RuneFist.com's site cookies in your browser. Downloads continue to work without the counter. For an account privacy request or a question about this notice, contact RuneFist through an official studio channel. RuneFist may need to verify that the account belongs to you before completing a request.

Email privacy and account requests to runefiststudios@gmail.com.

You also have the right to complain to your local data protection authority. In the Netherlands, that is the Autoriteit Persoonsgegevens.