As MeshCore meshes have grown, so has the noise. To keep a busy area from drowning in re-flooded traffic, MeshCore added the concept of regions (also called scopes) β a way to tag flood traffic so repeaters only forward what's meant for them. MeshMonitor 4.12.0 brings first-class support for regions to the MeshCore experience.
What is a region / scope? β
A region is a named tag attached to a flooded packet. MeshCore derives a transport key from the region name and uses it to decide whether a repeater should forward a packet β there's no parent/child hierarchy, just name matching. Operators in dense areas configure their repeaters with region denyf *, which stops forwarding of legacy, unscoped flood packets β so any sender that wants its traffic to propagate must tag it with the right region. (An alternative, flood.max.unscoped, lets a limited number of unscoped packets through instead.)
If you've ever joined a regional MeshCore network β say a "Germany" or a Pacific-Northwest mesh β and found your messages weren't getting anywhere, a missing scope tag is very often why.
The MeshCore project documents all of this in detail:
- Region Filtering β the original explanation of scoped group channels and repeater filtering.
- Default Scope Region β the v1.15 "default scope" for companions and repeaters.
- MeshCore CLI Commands β including
region,region denyf, andflood.max.unscoped. - MeshCore Docs & FAQ β general reference.
What MeshMonitor 4.12.0 adds β
Per-channel and per-source scope. Each MeshCore channel can carry a Region/Scope, and each source gets a default scope (meshcoreDefaultScope) in MeshCore Settings. In 4.12.0 the scope is applied to all originated flood traffic β channel messages, DMs, adverts, remote-admin logins, remote telemetry, and remote CLI β so your traffic actually propagates on a denyf'd mesh.
Discover Regions. A one-click sweep (#3765) queries the repeaters you can reach directly (zero hops), routes the query straight to them, and reports back the regions they advertise β distinguishing "no nearby repeaters" from "repeaters that reported no regions."
Per-message overrides. Need to send a single message into a different region without changing your defaults? A scope control next to the compose box lets you override the region for just that message (#3704). It's one-off and never persisted, with a datalist of discovered regions.
See the scope on received messages. Incoming messages now show the region they were sent with (#3762): π for no scope, π with the region name when it's known, or π with a short hex code when it isn't β so you can tell at a glance whether a message arrived scoped, and to which region.
A saved-regions catalog. Regions you discover or use are kept in a catalog (#3783), and region pickers throughout the UI offer them as suggestions, so you're not retyping names or hunting for hex codes.
Try it β
Open a MeshCore source, head to Settings to set a default scope, add a Region/Scope to a channel, or hit Discover Regions to see what's around you. The full walkthrough is in the MeshCore documentation.
Regions support landed across #3667 and PRs #3704, #3762, #3765, and #3783.