Travel links between two markers on the same map, with no trail line drawn between them #1273

Closed
opened 2026-10-29 16:32:01 +00:00 by claude-bot · 2 comments
Collaborator

Raised by the owner on 2026-10-29. Their campaign has a cave system with no map, because its premise is that the caves shift whenever the players aren't looking. They want to link the entrances and exits as portals on the overworld map. The party's trail would go into one and come out of another, with no line drawn between the two.

Today

  • The server already accepts a link between two markers on the same map: POST /maps/{id}/links only needs one end on the map.
  • The UI doesn't offer it: LinkForm lists only other maps (world.maps.filter((m) => m.id !== current.id)).
  • mapTrail.trailAcross joins every pair of consecutive stops on the same map, so entrance → exit would be drawn as a straight line across the map. It only breaks the line where the trail changes map.
  • Workaround tried and rejected: a placeholder "cave" map linked to both entrances doesn't hide the line, because hopTo returns the first link to that map and the polyline still joins the hop points.

Proposed

  1. The link form offers "This map" alongside the other maps, so two markers on the same map can be linked, with a note ("The Shifting Caves") and who sees it, as now.
  2. Where two consecutive stops are at the two ends of one link, the trail line breaks there. The line becomes segments: up to the entrance, then on from the exit. The stop list says how they got there ("Through the Shifting Caves" or the link's note), the way via already does for links between maps.
  3. Players who can't see a GM-only link still see the break (no line). They are shown no route, rather than a false one.

Release: new functionality, so 4.7.0 under the X.Y.0 / X.Y.Z rule, unless the owner wants it in 4.6.2.

Raised by the owner on 2026-10-29. Their campaign has a cave system with no map, because its premise is that the caves shift whenever the players aren't looking. They want to link the entrances and exits as portals on the overworld map. The party's trail would go into one and come out of another, with **no line drawn between the two**. **Today** - The server already accepts a link between two markers on the same map: `POST /maps/{id}/links` only needs one end on the map. - The UI doesn't offer it: `LinkForm` lists only *other* maps (`world.maps.filter((m) => m.id !== current.id)`). - `mapTrail.trailAcross` joins every pair of consecutive stops on the same map, so entrance → exit would be drawn as a straight line across the map. It only breaks the line where the trail changes map. - Workaround tried and rejected: a placeholder "cave" map linked to both entrances doesn't hide the line, because `hopTo` returns the first link to that map and the polyline still joins the hop points. **Proposed** 1. The link form offers "This map" alongside the other maps, so two markers on the same map can be linked, with a note ("The Shifting Caves") and who sees it, as now. 2. Where two consecutive stops are at the two ends of one link, the trail line breaks there. The line becomes segments: up to the entrance, then on from the exit. The stop list says how they got there ("Through the Shifting Caves" or the link's note), the way `via` already does for links between maps. 3. Players who can't see a GM-only link still see the break (no line). They are shown no route, rather than a false one. **Release:** new functionality, so 4.7.0 under the X.Y.0 / X.Y.Z rule, unless the owner wants it in 4.6.2.
Author
Collaborator

The owner's refinement (2026-10-29), not yet confirmed as the design:

Maybe if the party's last location was at a travel link […], when the party's next end location is set the dialogue also prompts for a start location? That could be a location on the current or another map, or a freeform selection if the party went through a portal/used a spell that dropped them in a random location.

This is more general than working the break out from links. It also covers a teleport spell or a random drop, where no link exists. Proposed shape:

  • The stop records the jump. A new boolean on a trail stop, e.g. trail_stops.arrived_by_jump (name to be decided): "no line leads to this stop". The trail is drawn as segments, broken before each such stop. No link is needed between the portal and where the party came out.
  • The form asks. When the party's last stop is at a portal marker, "Where did the party end up?" also asks where they came out: a marker on this map or another (the same search as #1271), or a spot on the map. It saves two stops: the exit (with the flag set) and then the end. On any other stop, a "They didn't travel here on foot (portal, spell…)" option sets the flag on the end stop itself.
  • Same-map links (the original proposal, item 1) are then optional, and only describe the route. The break comes from the flag.

The portal rename ("travel link" → "portal") went separately in #1274.

Also answered: several stops in one session already work. There is no unique constraint on (party, session), and since #1272 the stops within a session follow the order they were entered.

**The owner's refinement (2026-10-29), not yet confirmed as the design:** > Maybe if the party's last location was at a travel link […], when the party's next end location is set the dialogue also prompts for a start location? That could be a location on the current or another map, or a freeform selection if the party went through a portal/used a spell that dropped them in a random location. This is more general than working the break out from links. It also covers a teleport spell or a random drop, where no link exists. Proposed shape: - **The stop records the jump.** A new boolean on a trail stop, e.g. `trail_stops.arrived_by_jump` (name to be decided): "no line leads to this stop". The trail is drawn as segments, broken before each such stop. No link is needed between the portal and where the party came out. - **The form asks.** When the party's last stop is at a portal marker, "Where did the party end up?" also asks **where they came out**: a marker on this map or another (the same search as #1271), or a spot on the map. It saves two stops: the exit (with the flag set) and then the end. On any other stop, a "They didn't travel here on foot (portal, spell…)" option sets the flag on the end stop itself. - Same-map links (the original proposal, item 1) are then optional, and only describe the route. The break comes from the flag. The portal rename ("travel link" → "portal") went separately in #1274. Also answered: several stops in one session already work. There is no unique constraint on (party, session), and since #1272 the stops within a session follow the order they were entered.
Author
Collaborator

Confirmed by the owner (2026-10-29), for 4.6.2 (it patches the map introduced in 4.6.0):

  • The design in the comment above matches what they meant: a stop records that no line leads to it, and the "Add a stop" form asks where the party came out when the last stop is at a portal.
  • The end location must save without the exit. A session may end with the portal travel unresolved. So the exit is asked at the next "Add a stop", never when the portal stop is saved, and it is optional there too: left empty, the new stop itself is marked "no line leads here".

Shape as built:

  • trail_stops.jumped boolean, not null, default false. It is in the same unreleased migration as after_session_number (a1269b0c1d2e, PR #1272).
  • The form, when the last stop is at a portal: "Where did they come out?", searching markers on every map, or a spot on the map, or empty. Then "Where did they end up?" as before. One checkbox, "No line to it: they went by portal or magic", applies to the first new stop. It is ticked by default after a portal.
  • The trail is drawn as segments, broken before every jumped stop.
**Confirmed by the owner (2026-10-29), for 4.6.2** (it patches the map introduced in 4.6.0): - The design in the comment above matches what they meant: a stop records that no line leads to it, and the "Add a stop" form asks where the party came out when the last stop is at a portal. - **The end location must save without the exit.** A session may end with the portal travel unresolved. So the exit is asked at the *next* "Add a stop", never when the portal stop is saved, and it is optional there too: left empty, the new stop itself is marked "no line leads here". Shape as built: - `trail_stops.jumped` boolean, not null, default false. It is in the same unreleased migration as `after_session_number` (`a1269b0c1d2e`, PR #1272). - The form, when the last stop is at a portal: **"Where did they come out?"**, searching markers on every map, or a spot on the map, or empty. Then **"Where did they end up?"** as before. One checkbox, "No line to it: they went by portal or magic", applies to the first new stop. It is ticked by default after a portal. - The trail is drawn as segments, broken before every `jumped` stop.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/Quest-Board#1273
No description provided.