Limit how many regions the viewer connects to; stretch: disconnect from / block specific regions #972

Open
opened 2026-10-23 09:26:43 +00:00 by sky_line · 0 comments
Owner

Related: #971 (network draw distance as a user setting). The network draw distance limits neighbours by distance; this is about limiting them by count and, as a stretch, by choice.

Wanted

  1. Region connection cap: a setting for the maximum number of simultaneously connected regions (the one you're in + N neighbours). When the simulator offers more neighbours (EnableSimulator / child agents) than the cap, the viewer keeps the closest / most relevant ones (nearest edge first, the direction of travel favoured) and does not open or keeps closed the rest. Re-evaluated as you move, with hysteresis so regions don't flap.
  2. Stretch -- per-region control: disconnect from a particular neighbouring region on demand (e.g. from the world map or a region list), and a block list of regions the viewer never connects to as a neighbour (stops rendering their objects / avatars and their network traffic).

Constraints / research first

  • The region you're in can never be dropped; crossing into a region requires its connection, so a blocked or capped-out neighbour must be connected again before a crossing / teleport into it (or the crossing is refused with a clear message -- decide).
  • Check what the protocol allows: refusing to open a circuit for an EnableSimulator, closing a neighbour circuit (and whether the simulator keeps a child agent anyway / re-sends EnableSimulator), interaction with the network draw distance, seed capabilities, and region crossing / teleport. No server-side breakage, no rapid reconnect loops.
  • Avatars / chat / sounds from a blocked region: decide what still arrives (e.g. nearby chat across a border).
  • Persisted, user-visible settings; block list editable; logs show which regions were capped or blocked and why.

Test

  • Cap 1 (+ current): in the middle of a sim surrounded by 8 neighbours, only the nearest one connects; moving toward another edge swaps it in.
  • Block a neighbour: its objects disappear and its circuit closes; walking into it reconnects (or is refused as designed); the block list survives a restart.
Related: #971 (network draw distance as a user setting). The network draw distance limits neighbours by distance; this is about limiting them by **count** and, as a stretch, by **choice**. ## Wanted 1. **Region connection cap:** a setting for the maximum number of simultaneously connected regions (the one you're in + N neighbours). When the simulator offers more neighbours (EnableSimulator / child agents) than the cap, the viewer keeps the closest / most relevant ones (nearest edge first, the direction of travel favoured) and does not open or keeps closed the rest. Re-evaluated as you move, with hysteresis so regions don't flap. 2. **Stretch -- per-region control:** disconnect from a particular neighbouring region on demand (e.g. from the world map or a region list), and a **block list** of regions the viewer never connects to as a neighbour (stops rendering their objects / avatars and their network traffic). ## Constraints / research first - The region you're in can never be dropped; crossing into a region requires its connection, so a blocked or capped-out neighbour must be connected again before a crossing / teleport into it (or the crossing is refused with a clear message -- decide). - Check what the protocol allows: refusing to open a circuit for an EnableSimulator, closing a neighbour circuit (and whether the simulator keeps a child agent anyway / re-sends EnableSimulator), interaction with the network draw distance, seed capabilities, and region crossing / teleport. No server-side breakage, no rapid reconnect loops. - Avatars / chat / sounds from a blocked region: decide what still arrives (e.g. nearby chat across a border). - Persisted, user-visible settings; block list editable; logs show which regions were capped or blocked and why. ## Test - Cap 1 (+ current): in the middle of a sim surrounded by 8 neighbours, only the nearest one connects; moving toward another edge swaps it in. - Block a neighbour: its objects disappear and its circuit closes; walking into it reconnects (or is refused as designed); the block list survives a restart.
sky_line added this to the Slipstream project 2026-10-23 09:26:43 +00:00
Sign in to join this conversation.
No milestone
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
sky_line/Slipstream#972
No description provided.