1. Getting started
Pick a flavour: Tampermonkey userscript, Chrome MV3 unpacked, or Firefox temporary add-on.
- Open the homepage and grab the download link for your browser.
- Install per the instructions on the card.
- Visit filianislost.com — the Win95 panel pops up in the top-right.
- The first time you visit, the extension auto-attaches to our backend (no manual login needed).
/dist/signature.json every 30 minutes. Tampermonkey can also auto-update userscripts natively.2. Deep Integration
Disabled by default. When enabled, the extension intercepts the site's main ES module on load and patches it to expose its paint internals. That unlocks:
- Precise Place: 1 click = exactly 1 pixel, via the site's own
M5()(or whatever the current minifier named it) - Eyedropper reads from the live preview canvas, not stale wall tiles
- Continuous drag-paint with Bresenham line interpolation
- Suppression layer keeps the site's spray handler out while still letting its custom cursor animate
Toggle in Settings → Deep Integration (experimental). Requires a page reload.
3. Anti-grief monitoring
Pin a template and the backend will fetch the matching window of wall tiles every check_interval seconds (min 60, default 600), diff against the template, and emit a clan_alert mailbox event when damage crosses alert_threshold (default 25 pixels).
POST /api/v2/templates/{id}/protect
{
"clan_id": "uuid-of-clan",
"alert_threshold": 25,
"check_interval": 600
}
Disable with DELETE /api/v2/templates/{id}/protect. Anyone who owns the template, any clan moderator/admin, or a global admin can flip it.
4. Linked accounts
From /me:
- Telegram via OIDC (
oauth.telegram.org) with PKCE +telegram:bot_accessscope. Bot can DM you afterwards. - Discord via standard OAuth2 with
identifyscope. Bot can DM you if you share a guild with it or DM it first. - Email through support: request a 6-char code, email the support address with subject
LINK-MAILfrom your address, an admin approves.
5. API
Two surfaces live side by side under /api/:
/api/v1/*equivalents and shared endpoints under/api/*— frozen, legacy clients./api/v2/*— actively developed, new features land here.
Browse interactively: Swagger UI · ReDoc. Raw spec: openapi.yaml.
6. Troubleshooting
- Panel doesn't appear: ensure you're on
https://filianislost.com(notwww.); reload after install. - Precise Place greyed out: Deep Integration is off, enable it in Settings and reload.
- Deep Integration "WARN: missing probes": site bundle changed shape — wait for the next extension update or report at GitHub.
- Black flash on Clan tab: known fixed in v3.0.x — update.
- CORS errors: clear cached service workers and reload. Production nginx now sets the headers explicitly.
- "out of paint" toast: that's the site's cooldown — wait for refill or submit pending pixels.
7. Self-hosting the backend
Backend is a single Rust binary backed by Postgres + nginx + Let's Encrypt. See backend/Dockerfile and backend/example.env for the moving parts.
cp backend/example.env backend/.env docker compose -f backend/docker-compose.yml up -d # Postgres cargo run --release # backend
Or point THE_WALL_DEV_ENV_FILE at an external secrets file (overrides existing env vars).