# Explore Modesto (Your 209 Agent) > A free, browser-based walking game on your209agent.com for finding trails and parks worth a visit around Modesto, California. Players walk a cartoon street of stands; each stand is a real place with a TikTok video filmed there in person. There are no ratings, reviews, accounts or purchases. Visits (which stands a player opened) are kept only in the player's own browser. ## Pages - https://www.your209agent.com/explore : the game (a Phaser with an HTML layer around it) - https://www.your209agent.com/ : the rest of Your 209 Agent, a real estate agent's site for the Central Valley - https://www.your209agent.com/privacy : privacy ## Controls Walk: hold arrow keys or WASD, or press and drag on the map. Visit a stand: tap it to jump straight there, or walk up to it from any side until a glowing ring lights up around it, then press Take a look. The Places button in the bottom-left corner lists every stand to jump to (or use the 'Places on this map' list below); new stands are tagged New. Every stand you open stamps your passport (in the game menu and the Places list). Browse the slides: left/right arrow keys or the arrow buttons. Close: Escape or the ✕ button. Enter opens the stand the avatar is standing at. A quick tap of an arrow key takes one short step (20 pixels); holding it walks. ## The page around the canvas The canvas has no readable content, so /explore also has: - A visually hidden section labelled "How to play" with the controls above. - A "Places" button (`data-testid="places-button"`) in the bottom-left corner. It opens a list (`data-testid="places-list"`) of every stand, grouped by category, and the landmarks; each entry is a button with `data-place-id`, and a stand already opened in this browser is marked "visited" (one added since this browser last played, and not opened yet, shows "New"). Choosing one jumps the avatar there and, for a stand, opens it. Its "Passport" button (`data-testid="places-passport"`), like "Passport" in the game menu (`data-testid="menu-passport"`), opens the passport (`data-testid="passport"`): a stamp for every stand opened in this browser, and one for each finished set (every trail, every park, every stand in the city). Each place stamp is a button (`data-stamp-id`): it closes the passport and shows an arrow around the avatar pointing at that stand, and lights its ring, until the avatar walks there, a menu opens or the avatar jumps. The status line says which way to walk. - A list labelled "Places on this map": one button per stand ("Visit ", with `data-stall-id`) and per free lot ("Suggest a spot sign", with `data-lot-id`). It is invisible until a button in it has keyboard focus, but each button can be clicked where it is (a see-through 2 px target at the top-right edge of the screen). - A list labelled "Landmarks on this map", the same way: "Go to Modesto Arch" and so on, with `data-landmark-id`. - A status line (`role="status"`, `data-testid="game-status"`) that says where the player is ("You are on the Trails & Parks map in Modesto."), what the avatar is at ("Near: Dos Rios State Park. Take a look available.") and which slide is showing. - The stand's slides, a dialog (`data-testid="stall-dialog"`) with Previous slide, Next slide, Go to slide and Close buttons. A place with details opens on an "About" slide first (cost, hours, parking, restrooms, dogs, strollers, what is worth knowing), then its videos. - `data-testid` on the main controls: `game-canvas`, `game-menu-button`, `view-menu-button`, `stall-dialog`, `menu-prev`, `menu-next`, `menu-close`, `claim-cta` (Suggest a spot). - The canvas reports the avatar's feet position as `data-avatar="x,y"` in world pixels. x grows to the right and y grows down the screen; the road is along the bottom. ## Links into the game - `/explore?place=` starts the avatar at that stand and opens it. - `/explore?place=&slide=` opens it on slide n (from 1). - While a stand is open, the address changes to match the slide showing, so it can be copied and shared. ## JavaScript API Once the game has loaded, `window.explore` offers reading and moving around. Nothing in it submits or sends anything. - `explore.version`: "1" - `explore.help()`: the controls text - `explore.state()`: `{ area, city, market, near, position, menuOpen, stallId, slide, totalSlides, guideTo, hostLine }`. `guideTo` is the stand the passport's arrow points at, or null; `hostLine` is Roger's arrival line for this page load, or null. `near` is `{ id, name, type }` or null, where `type` is `"stall"` (a stand), `"lot"` or `"landmark"`. `position` is the avatar's feet `{ x, y }` in world pixels; `slide` is 1-based - `explore.stalls()`: `[{ id, name, type: "stall" | "lot", area }]`: the stands and the suggest sign on this map. Always current; the list below is from the last deploy - `explore.landmarks()`: `[{ id, name, type: "landmark", area, x, y, radius }]`: things to walk to that are not stands - `explore.goTo(id)`: a Promise; jumps the avatar into a stand's or lot's ring, or to a landmark's edge - `explore.moveTo(x, y)`: a Promise; walks the avatar to a spot in world pixels, bumping into things like a player. Resolves `{ x, y, reached }` - `explore.walk(direction, ms)`: a Promise; walks `"up"`, `"down"`, `"left"` or `"right"` for ms milliseconds (up to 10000). Resolves `{ x, y, reached }`; `reached` is false if anything stopped or shortened the walk - `explore.openMenu(id?)`: a Promise; opens that stand (moving there first), or the stand the avatar is at - `explore.slide(n)`: a Promise; shows slide n, from 1 to `totalSlides`, or `"next"` / `"prev"` - `explore.closeMenu()`: a Promise; closes the stand - Every Promise resolves once the status line says the same as `state()`. ## Ids Ids are stable and appear in shared links, so they are never renamed. `your209agent` is the tour guide stand: how the map works, and how to suggest a spot. ## Stands and landmarks on each map ### Trails & Parks, Modesto - `your209agent` (stand, Tour guide): Your 209 Agent. Link: https://www.your209agent.com/explore?place=your209agent - `tuolumne-river-regional-park` (stand, Parks): Tuolumne River Regional Park. Link: https://www.your209agent.com/explore?place=tuolumne-river-regional-park - `dos-rios-state-park` (stand, Parks): Dos Rios State Park. Link: https://www.your209agent.com/explore?place=dos-rios-state-park - `dry-creek-trail-edgebrook` (stand, Trails): Dry Creek Trail (Edgebrook). Link: https://www.your209agent.com/explore?place=dry-creek-trail-edgebrook - `virginia-corridor-trail` (stand, Trails): Virginia Trail. Link: https://www.your209agent.com/explore?place=virginia-corridor-trail - `modesto-trails-and-parks-6` (lot): Suggest a spot sign. A free spot; its "Suggest a spot" button opens the suggestion form Landmarks: - `arch` (landmark): Modesto Arch, at x 1000, y 1570 - `river` (landmark): Tuolumne River, at x 450, y 1230 5 published stands in all. ## Left to the person Suggesting a spot opens a form in the game, which a person fills in. Nothing in the game fills in or sends it for them.