Problem/Opportunity Space
The teleport window's Residential Areas list only shows estates you own or are a resident of, and only with the game's default names. There's no way to add entries for places you visit often but don't own (a friend's plot, an FC you frequent), so reaching them means remembering the ward/plot and manually navigating every time. This is the deferred "Feature B" half of the teleport-label work; Feature A (renaming your own rows) ships separately as the Personal Estate Labels tweak.
Acceptance Criteria
- User can add a custom bookmark for a plot they do not own (world, district, ward, plot)
- Bookmarks can be scoped as global (always shown) or world-specific (shown only when on that world)
- Bookmarks appear alongside real residential entries and are individually editable/removable
- Bookmarks persist across sessions and game restarts
- Selecting a bookmark gets the user to (or toward) the destination without a manual walk
Suggested solution
Let users define custom teleport bookmarks for arbitrary plots. Since the game has no teleport action for a plot you lack access to (Telepo.Teleport only reaches entries already in your list), selecting a bookmark routes through Lifestream, either via IPC or (as a lazy first pass) a Lifestream chat-command call, to teleport to the nearest residential aetheryte and walk to the plot. Estimated cost to the nearest aetheryte can be shown via Telepo.GetTeleportCost (residential cost is quartered).
Bookmarks come in two scopes: global entries always appear (e.g. "friends house"), and world-specific entries appear only while on their bound world (e.g. "random fc" shows only on Jenova).
Suggested design
- Config stores a list of bookmarks: label + world + district + ward + plot, plus a scope (global, or world-specific bound to a home world)
- On render, filter bookmarks by scope: always include global; include world-specific only when its bound world matches the player's current world
- Bookmark rows injected into the
AtkComponentTreeList in AddonTeleport, re-applied on refresh (the agent rebuilds the list from Telepo.TeleportList each update)
- Selection handler hands off to Lifestream (IPC preferred, command-call as the lazy fallback)
- Cost column populated from
Telepo.GetTeleportCost(aetheryteRow, multiplier, favored, residentArea: true)
- Design imagery: mock the Residential Areas list with an injected "Sumi's House - Jenova, Shirogane W21 P14" row
Testing Considerations
Happy path
Sad path
Problem/Opportunity Space
The teleport window's Residential Areas list only shows estates you own or are a resident of, and only with the game's default names. There's no way to add entries for places you visit often but don't own (a friend's plot, an FC you frequent), so reaching them means remembering the ward/plot and manually navigating every time. This is the deferred "Feature B" half of the teleport-label work; Feature A (renaming your own rows) ships separately as the Personal Estate Labels tweak.
Acceptance Criteria
Suggested solution
Let users define custom teleport bookmarks for arbitrary plots. Since the game has no teleport action for a plot you lack access to (
Telepo.Teleportonly reaches entries already in your list), selecting a bookmark routes through Lifestream, either via IPC or (as a lazy first pass) a Lifestream chat-command call, to teleport to the nearest residential aetheryte and walk to the plot. Estimated cost to the nearest aetheryte can be shown viaTelepo.GetTeleportCost(residential cost is quartered).Bookmarks come in two scopes: global entries always appear (e.g. "friends house"), and world-specific entries appear only while on their bound world (e.g. "random fc" shows only on Jenova).
Suggested design
AtkComponentTreeListinAddonTeleport, re-applied on refresh (the agent rebuilds the list fromTelepo.TeleportListeach update)Telepo.GetTeleportCost(aetheryteRow, multiplier, favored, residentArea: true)Testing Considerations
Happy path
Sad path
Telepo.TeleportList