Description
HowToGo | 问道
Road marking and real-time navigation for Minecraft
Draw roads on Xaero's World Map, then navigate the way a maps app works: pick a destination, pick a travel mode, pick a route preference, look at the route before you set off — with optional voice announcements.
- Mod ID:
howtogo - Supported Versions: Minecraft 1.21.1 / NeoForge 21.1.x
- Side: Client-side only (does not need to be installed on a server)
- Latest Version: 0.1.0
Required Mods
| Mod | Necessity | Description |
|---|---|---|
| Xaero's World Map | Required | All roads and routes are rendered on it. If missing, the mod will log an error and disable the rendering layer. |
| XaeroLib | Required | Provided with World Map, no extra installation needed. |
| Xaero's Minimap | Optional | Reads waypoint markers on the minimap as destinations. |
| Create | Optional | Automatically reads track information and maps tracks to Rails. |
Incompatible Mods
None found yet.
Features
Drawing and Maintaining Roads
- Draw polyline roads directly on the world map, with six levels: Highway / Road / Path / Rail / Waterway / Ice Road (different colors and line widths).
- Snapping: Automatically snaps to existing nodes or road segments when close; hold
Altfor free placement. - Naming: Once named, the entire road (including all segments) shares the same name; each road displays its label only once on the map.
- Points of Interest (POI): Mark any location as a point of interest, serving as a navigation destination.
- Undo / Redo: Up to 64 steps.
- Road network topology self-consistency: Dropping a point in the middle of a road segment will truly split that segment and create a node at the intersection.
Create Mechanical Railways (Automatic Recognition)
When Create is installed, railways will be automatically recognized and drawn on the world map without manual drawing:
- Data is sourced from Create's own track diagrams. It prioritizes reading Create's client-side track network (
CreateClient.RAILWAYS), which provides Create's own node coordinates and Bezier curves, resulting in smooth curves rather than stepped ones. If this is not found (Create not installed, class renamed, or diagram not yet synchronized), it falls back to scanningcreate:trackblocks and connecting them based on theirshapeaxis. Only one of these sources will be used for the current layer; they are not counted twice. - Recognition is based on block registry names, not any Create classes. Therefore, there is no Create dependency in
build.gradle, and Create renaming or version changes won't cause compilation failures; the log prefix[HowToGo] Create track layer:will indicate which source is currently being used. - Railways are read-only, but can be named. Create owns the geometry of the track: moving nodes, splitting, deleting, or changing levels are not supported because they will be overwritten on the next read (within 1 second). Naming is the only modifiable aspect, and it is stored in a separate file (see data files below), not within the road network.
- Naming and selection apply to the entire railway line:
Shift-clicking selects and highlights the entire line, and pressingNto name it assigns the same name to the entire line (consistent with manually drawn roads). Names appear as light blue labels on the map, scaling with zoom. - Names are not tied to segment IDs (which are reordered upon reconstruction); instead, they are tied to the coordinates of the two endpoints of the segment. Therefore, they are not lost upon reconstruction, reloading, or switching recognition sources.
- Naming and selection apply to the entire railway line:
- Road drawing can snap to railways: In edit mode, when there are no manually drawn roads near the cursor, snapping will attach to a railway, allowing you to connect the endpoint of a road precisely to a track. Snapping to railways only uses the position (yellow snap ring) and does not split or connect the railway itself, as it is not geometry owned by the editor.
- Stations are treated as POIs: Create stations are marked on the world map as place names (same color as POIs) and appear in the destination list under the "Create Stations" data source, allowing them to be directly used as navigation destinations. Station names are taken from Create (player-given names for stations); if names cannot be retrieved when falling back to block scanning, they will be displayed as "Station x, z" using coordinates.
- Can be disabled: Setting
create_train_tracks = falsewill disable the entire layer; scan radius and speed can also be adjusted (see configuration table).
Navigator (Item)
Right-click to open the "Select Destination" interface; hovering with the mouse displays the current trip (shows "Idle" when not navigating).
Crafting (ordered, all nine slots filled): Iron Ingots in the corners, Paper on the sides, Compass in the center.
Iron Ingot Paper Iron Ingot Paper Compass Paper Iron Ingot Paper Iron IngotThe recipe will automatically unlock and appear in the recipe book once the compass is obtained (handled by
data/howtogo/advancement/recipes/navigator.json).
Navigation
- Travel Modes: Walking / Driving / Public Transport. Each mode has different road levels it can traverse, so the same start and end points will yield different routes:
- Walking: Highway, Road, Path, Ice Road
- Driving: Highway, Road
- Public Transport: Rail, Waterway, Ice Road (boating on ice is the fastest route on the map)
- Route Preferences: Fastest Time ↔ Shortest Distance; can avoid specified road levels (e.g., not wanting to use waterways); can prioritize main roads (paths have a ×1.6 cost and are only used when necessary).
- Estimated Arrival Time is calculated based on "Travel Mode + Road Level," not a single speed: Road 9, Rail/Waterway 8, Ice Road 40, Walking 4.0~5.6 blocks/sec.
- Preview Before Departing: After selecting the destination, mode, and preferences, the route will first be drawn on the map in the selection interface. Confirm it before pressing "Navigate Here."
- Routes Do Not Take Unnecessary Detours: If the selected mode is slower than direct travel, or if there is no solution in the current road network for that mode, the reason will be explained, and it will default to walking navigation instead of providing an absurd detour or a straight line.
- No Straight Lines Drawn: The initial and final connection segments have a distance limit (64 blocks for walking/public transport, 32 blocks for driving). Exceeding this will result in "No Route Found" without drawing a straight line across the map.
- Turn Prompts: The panel and map display distance and turns; broadcast distances are scaled by road type (50m for walking, 100m for road driving, 300m for highway driving, 300m for rail, 500m for ice road).
- Turn Judgment Requires Facing Direction: When aligned with an intersection, a turn is only counted if you are roughly facing that direction (≤45°). Straight passage through an intersection will not be misidentified as a turn.


