Privacy Policy

The English version of this document is the sole legally binding version; translations are provided for convenience only.

Last updated: October 19, 2026

This Privacy Policy explains how personal data is collected, used, disclosed, and protected on the website FOE-Tools (foe.tools) and its associated applications (together, the "Service"). Please read it together with the Cookie Policy and the Legal Notice.

For any privacy-related request, please use the contact form and select the "Legal" reason.


1. Data Controller

The data controller responsible for the processing described in this Policy is:

Krytos, a French société par actions simplifiée unipersonnelle (SASU), share capital €1,000.

  • Registered office: 9 rue des Colonnes, 75002 Paris, France.
  • RCS Paris 981 775 232; SIRET 981 775 232 00011; intra-community VAT FR54 981 775 232.
  • Publication director: Quentin Dauprat.

No data protection officer (DPO) has been appointed, as this is not legally required here. Privacy requests are handled through the contact form (select the "Legal" reason). Beyond the registered office listed above, there is no separate postal address for privacy requests.


2. Nature of the Service

FOE-Tools is a fan-made, independent set of calculators and planners for the game Forge of Empires. The Service is not affiliated with, endorsed, or sponsored by InnoGames GmbH. Forge of Empires and its related marks belong to InnoGames and their respective owners. Some game data may come from the Forge of Empires Fandom wiki (licensed CC-BY-SA). The design, source code, and algorithms of the Service are the property of Krytos SASU.


The table below summarizes the personal data processed, the purpose of each processing activity, and, for users in the EU/EEA and the United Kingdom, the applicable legal basis under the GDPR / UK GDPR. Where the legal basis is legitimate interest, the interest pursued is stated.

Category of dataPurposeLegal basis (GDPR / UK GDPR)
Account data (email address, hashed password or authentication credentials, session)Create and operate a user account, and keep the user signed inPerformance of a contract (Art. 6(1)(b))
User profiles and saved settings (in-game profile data the user chooses to save, such as Great Building levels or tracked worlds, synced across devices when signed in)Provide and synchronize saved tools and preferencesPerformance of a contract (Art. 6(1)(b)); legitimate interest (Art. 6(1)(f)) in keeping saved settings available across the user's devices
Payment and subscription data (billing details, VAT and country, subscription status, handled by Polar as Merchant of Record; card numbers are never stored by Krytos)Process subscriptions and meet tax and accounting obligationsPerformance of a contract (Art. 6(1)(b)); legal obligation (Art. 6(1)(c))
Contact and support data (email address, message content, and any optional attachments the user adds, such as a screenshot or a profile-data export)Answer and manage contact and support requests, including with AI assistance (see "AI assistance for support" below)Performance of a contract, or legitimate interest (Art. 6(1)(f)) in handling and resolving requests; consent (Art. 6(1)(a)) for the email verification of anonymous requests
Anti-bot challenge data (a proof-of-work challenge served by our servers, no cookie; Cloudflare Turnstile on some forms until the switch ends)Tell humans and bots apart, and prevent abuseLegitimate interest (Art. 6(1)(f)) in protecting the Service against bots, abuse, and fraud
Technical and security logs (IP address and request metadata, used transiently)Rate-limiting, web application firewall (WAF), and abuse preventionLegitimate interest (Art. 6(1)(f)) in keeping the Service secure and diagnosing incidents
Error monitoring (technical error context such as stack traces, the URL, and coarse technical metadata, via Sentry)Diagnose crashes and keep the Service reliableLegitimate interest (Art. 6(1)(f)) in detecting and fixing errors
Analytics (aggregate, cookieless traffic measurement via Cabin)Measure overall site usageLegitimate interest (Art. 6(1)(f)) in measuring aggregate audience and improving the Service; no cookies are set, so no consent is required
Anonymous v2 profile statistics (tool configuration saved by the previous version of the Service, with names, free text and account identifiers removed)Measure the migration from the previous version (how many profiles are migrated, which Great Buildings players follow, how the tools are configured)Legitimate interest (Art. 6(1)(f)) in understanding and improving the migration and the Service
Advertising (advertising identifiers and technical data set by the ad network and Google for ad-supported visitors)Ad delivery, frequency capping, and, where consent is given, personalizationConsent (Art. 6(1)(a)) via the IAB TCF 2.2 consent management platform

Providing account and contact data is necessary to create an account or to receive support; without it, the corresponding features of the Service cannot be offered. Personal data is collected directly from you and from your device or browser (for example, technical request metadata).

Anonymous (not signed-in) users

When a user is not signed in, profile data such as saved calculator settings stays in the browser using localStorage and never leaves the device. This is not a server-side processing activity: Krytos does not receive or store this data unless the user creates an account and then chooses to save it. The one exception is the anonymous v2 profile statistics described below.

Anonymous v2 profile statistics

When your browser still holds data saved by the previous version of the Service (v2), the Service detects it on your first visit to the new version and offers to migrate it. At that moment, the Service sends us a copy of that v2 data for statistics only. Before anything is stored, the server reduces it to the tool configuration the statistics need: the number of profiles, the Great Buildings followed (checked against the game's known list) with their numeric levels, and the numeric, boolean and enumerated options of each tool. Profile names, promotion-message names and texts, Great Building prefixes and suffixes, custom names, and every other free-text field are removed, every value that is not a known game identifier is discarded, numeric values are kept only within realistic game ranges, and profile identifiers are replaced by a position number (0, 1, 2...). The record is not linked to an account, an email address, or an IP address, and the server keeps only one record per distinct configuration, deduplicated by a content fingerprint. Records are deleted automatically 24 months after they are created (see Section 7).

Anonymous contact requests

For anonymous contact and support requests, a double opt-in email verification (including an MX record check) confirms the email address before a ticket is processed. Tickets that are not verified are purged.

Support attachments

Support requests are handled through a ticket system on the site, not by email. Any attachments you add to a ticket (for example a screenshot, or an export of your saved profile data) are stored in a private Cloudflare R2 object-storage bucket reserved for support attachments, under a key generated on the server from your ticket reference. This bucket is never served from the main website: an attachment is made available only through a short-lived signed link, to you on your ticket page and to support staff. Image attachments are validated and re-encoded before they are stored, and the storage key is always generated server-side (never supplied by the client). Attachments are deleted together with their ticket when the ticket is purged (see Section 7).

AI assistance for support

I use an AI assistant to help me handle support tickets. The assistant can read a ticket, check whether an account or a pending import exists for the request, and prepare a draft reply. It cannot send a message, close a ticket, or change an account: I read every draft and send it myself.

  • To help me answer, the assistant may also receive:
    • diagnostics about your account: whether your email is verified, the number of active sessions and the date of your last activity, the type, status and date of your purchases, the date of a pending password reset, the size of your saved profiles, and the status of a legacy (V2) import;
    • your other tickets on the same account or the same confirmed email address: their reference, status and an excerpt of the last reply from support;
    • search results across tickets, when I look for similar past requests;
    • aggregated site statistics (for example the number of accounts, signups per month, or active users), for analysis only: no personal data.
  • Email addresses are masked before the assistant sees them (for example q***@example.com), and attachments are never transmitted, only their metadata (name, type, size). The assistant never receives payment identifiers, IP addresses or the contents of your saved profiles.
  • Access is protected by OAuth and reserved to the site administrator. Each use of the assistant is logged (which tool, which ticket references it read or was shown, when; never the content of a ticket) and the log is deleted after 90 days.
  • This assistant runs on Scaleway Generative APIs, hosted in France: the content of a ticket is not used to train models, not passed on to model providers, and not kept after processing. It also sorts incoming tickets (category and priority) on the server.

The legal basis is the legitimate interest (Art. 6(1)(f)) in handling support requests efficiently. You may object to this processing through the contact form (select the "Legal" reason); I will then handle your ticket without AI assistance.


4. Advertising and Free vs. Paid Tiers

The Service is free and ad-supported for visitors who do not subscribe. For ad-supported visitors:

  • A single advertising network, either Playwire (RAMP platform) or NitroPay, serves all ad-supported visitors at any given time. Krytos selects it on the server, and the two networks never run side by side.
  • Advertising cookies and identifiers are set only after consent is given through the IAB TCF 2.2 consent management platform (CMP) provided by the ad network.
  • Google Consent Mode v2 applies, with a default of "denied" for advertising and analytics storage until consent is given.
  • Paid subscribers do not see ads.

See the Cookie Policy for details, and for how to manage or withdraw advertising consent.


5. Recipients and Subprocessors

Personal data may be processed by the recipients below, acting either as processors or as independent recipients. Where a recipient is located outside the EU/EEA, the transfer safeguard relied upon is indicated (see Section 6).

NameRole and purposeLocationTransfer safeguard
Cloudflare, Inc. (101 Townsend Street, San Francisco, CA 94107, USA)DNS for the foe.tools domain, object storage (R2: user avatars, portraits and support-ticket attachments), and the Turnstile anti-bot challenge, which some forms still use while the transition to the self-hosted captcha is in progressUSAEU-US Data Privacy Framework and/or Standard Contractual Clauses
netcup GmbH (Emmy-Noether-Straße 10, 76131 Karlsruhe, Germany)Application server (the authenticated app) and PostgreSQL database hostingGermany (EU)Within the EU (no transfer)
Polar (Polar Software Inc.)Merchant of Record for subscriptions and payments; seller of record; billing and EU/OSS VAT; card data processed by Polar and its underlying payment processors (for example, Stripe)USAEU-US Data Privacy Framework and/or Standard Contractual Clauses
Scaleway (Scaleway SAS) (8 rue de la Ville l'Évêque, 75008 Paris, France)Transactional email delivery (account, support, and verification emails) over SMTP, via Scaleway Transactional Email (TEM); and AI inference for the support assistant and the automated triage of support tickets (Scaleway Generative APIs), with no training on and no retention of the content; email addresses are masked and attachments are not sentFrance (EU)Within the EU (no transfer)
BunnyWay d.o.o. (bunny.net)CDN and edge hosting of the public website (foe.tools), edge caching, and DDoS and bot protectionSlovenia (EU)Within the EU (no transfer)
Playwire (Intergi / RAMP platform) or NitroPayAdvertising networks (header bidding); only one of the two is active at any given time; advertising cookies are set only after consentUSAEU-US Data Privacy Framework and/or Standard Contractual Clauses
Google (Google Ireland Ltd / Google LLC)AdSense, Ad Manager, and DoubleClick served through the ad network above; Consent Mode v2 (default denied); TCF 2.2 consent signalingUSA / EUEU-US Data Privacy Framework and/or Standard Contractual Clauses
Cabin (withcabin.com)Privacy-friendly, cookieless website analytics; aggregate traffic measurement only, with no cookies and no cross-site trackingOutside the EU/EEA where applicableStandard Contractual Clauses where applicable
Sentry (Functional Software, Inc.)Application error monitoring (client and server)USAEU-US Data Privacy Framework and/or Standard Contractual Clauses

Better Auth is a self-hosted authentication library used for session management. It runs on the Krytos-controlled netcup server and is not a third-party recipient; it is mentioned here only as the mechanism behind the session cookie.


6. International Transfers

Personal data is processed both in the EU (netcup, in Germany; Scaleway, in France; bunny.net, in Slovenia) and in the United States (Cloudflare, Polar, Sentry, Google, and the applicable ad network). Transfers to the United States rely on the EU-US Data Privacy Framework and/or the Standard Contractual Clauses, together with any applicable supplementary measures. For users in the United Kingdom, transfers rely on the UK Extension to the Data Privacy Framework and/or the UK International Data Transfer Addendum (IDTA) to the Standard Contractual Clauses. A copy of the relevant safeguards can be requested through the contact form (select the "Legal" reason).


7. Retention

  • Account data is kept until the user deletes the account or requests erasure.
  • Beta phase notice. During the current public beta, data may be wiped when the Service launches. Users are warned of this in advance through an in-app banner.
  • Support tickets are automatically closed and then purged after a defined period. When a ticket is purged, its messages and any stored attachments (in R2) are deleted with it. Unverified anonymous tickets, together with their attachments, are purged shortly after submission if the email address is not confirmed.
  • Technical and security logs are kept only for as long as they are needed for security and abuse prevention, and no longer.
  • Payment and accounting records are kept by Polar as Merchant of Record for the period required by applicable tax and accounting law (in France, generally 10 years for accounting records).
  • Anonymous v2 profile statistics are deleted automatically 24 months after they are created. They hold no name, no free text and no account identifier, so they cannot be linked back to you.

8. Your Rights (EU/EEA and UK: GDPR / UK GDPR)

Subject to the conditions and exemptions in applicable law, you have the right to:

  • access your personal data;
  • rectify inaccurate or incomplete data;
  • erase your data (the "right to be forgotten");
  • restrict processing;
  • port your data;
  • object to processing based on legitimate interests;
  • withdraw consent at any time, without affecting the lawfulness of processing carried out before withdrawal; and
  • lodge a complaint with a supervisory authority.

To exercise these rights, please use the contact form (select the "Legal" reason).

Supervisory authority. The lead supervisory authority is the CNIL (Commission Nationale de l'Informatique et des Libertés), France (www.cnil.fr). Users in the EU/EEA may also lodge a complaint with the supervisory authority of their country of residence; users in the UK may complain to the Information Commissioner's Office (ICO).


9. Your Rights (California: CCPA / CPRA)

If you are a California resident, you have the right to:

  • know and access the personal information collected about you;
  • delete personal information;
  • correct inaccurate personal information; and
  • opt out of the "sale" or "sharing" of personal information.

Categories of sources. Personal information is collected mainly directly from you and from your device or browser (for example, technical request metadata).

"Do Not Sell or Share My Personal Information." Krytos does not sell your personal information for money. That said, when you consent to personalized advertising, sharing advertising identifiers and related data with our advertising partners and Google may amount to a "sale" and/or "sharing" (cross-context behavioral advertising) as those terms are defined under the CCPA/CPRA. You can opt out at any time using the "Do Not Sell or Share My Personal Information" control in our consent tool (see the Cookie Policy), and we treat a Global Privacy Control (GPC) browser signal as a valid opt-out request where our consent management platform supports it.

You will not be discriminated against for exercising your rights. To submit a request, please use the contact form (select the "Legal" reason).


10. Security

Krytos uses appropriate technical and organizational measures to protect personal data, including a web application firewall, rate-limiting, self-hosted anti-bot proof-of-work challenges (solved in your browser and served from our own servers; a challenge identifier is kept for a few minutes at most against replay), transport encryption, hashed authentication credentials, and access controls. Some forms still use the Cloudflare Turnstile challenge while the transition to the self-hosted captcha is in progress. No method of transmission or storage is completely secure, and absolute security cannot be guaranteed.


11. Children

The Service is not directed to children under the age of 16 (in the EU/EEA) or 13 (in the United States). Krytos does not knowingly collect personal data from children below these ages. If you believe a child has provided personal data, please use the contact form so the data can be deleted.


12. Changes to This Policy

This Policy may be updated from time to time. The "Last updated" date at the top shows the most recent revision. Where appropriate, material changes will be communicated through the Service.


13. Contact

For any question or request about this Policy or your personal data, please use the contact form and select the "Legal" reason. See also the Cookie Policy and the Legal Notice.