---
id: world-map-and-portals/011
title: Seeing where you are — a readable Area name, "You are here" on the world map, pinch zoom, and the identity chip off the title screen
epic: world-map-and-portals
state: done
priority: 2
blocked_by: []
estimate: S
created: 2026-08-16
updated: 2026-08-18
claimed_by: null
claimed_at: null
delivers: []
review_artifact: land-of-lor/game/world/client/ui/world_map_screen.gd
---

## What prompted it

Kris, playing v3 on the phone: the Area name in the top bar was there but effectively
invisible, and the world map showed the whole world without ever saying which part of it you
were standing in. Small asks — and worth recording that they paid for themselves within the
hour: **012 was only diagnosable because of them.** "It's still William 3rd's Home" is a
sentence you can only say if the screen tells you where you are.

## What landed

- **The Area name is readable.** It was 12px `TAB_INACTIVE` plum-grey over the world's own
  ground — present, unreadable, in the one place it has to be readable. Now 17px Pixelify
  white with a hard black outline and a soft drop shadow.

- **"You are here" on the world map.** A speech bubble over whichever ball you are standing
  in, its point at your approximate spot *inside* the circle — your grid cell as a fraction
  of the Area, capped at 0.62r so the marker never sits on the ring. Tapping the bubble
  collapses it to just that dot; tapping the dot brings it back.

  The ball is matched **by name**. The map speaks slugs, `hello_ack` speaks world ids, and
  neither knows the other — but both carry the same display name, and a fogged area carries
  no name at all, so it can never be matched by accident. That choice is what kept this a
  client-only change with no director deploy.

- **Pinch zoom, in the world and on the map.** In-game it multiplies the camera offset
  (0.55–2.4); on the map it is `screen = world * zoom + pan`, zoomed about the pinch
  midpoint so what is under your fingers stays there (0.4–4.0). Mouse wheel does the same on
  desktop; "Re-centre" resets zoom as well as pan.

  Kris asked for this **only if it was near-zero risk**. It is, because of how it is gated:
  every line of new input handling requires **two fingers down**, so the one-finger path is
  byte-for-byte what it was. That mattered — tap-to-move has broken on Android before.

- **The "Signed in as …" chip stopped appearing on the title screen.** It showed after a cold
  start but not after returning from a world, which is the tell: it was never hidden
  *anywhere*. It just happened to be covered by whatever was added to `ui_layer` last, and on
  boot the chip is built *after* the title. Draw order is not a visibility rule. The top row
  and its Retry button are now explicitly shown only while a world is live.

## Verified

Rendered every screen through `_shots.gd` (both bubble states, and the label over a
grass-green ground). Godot 116 tests. Shipped as APK v4 to Kris's phone, which is where 012
was then found.