PokéPath Signs makes selected Generation I Kanto signposts readable as physical, two-sided world signs while preserving the game that players know.
0.1.0 development preview. Automated implementation and package checks pass. Release certification waits for real-PC visual acceptance with each supported host.
| Current preview | Value |
|---|---|
| Boards | 26: 11 town identity boards and 15 gateway/navigation boards |
| Scope | PC-first; architecture is platform-neutral |
| Hosts | Install exactly one compatible host |
| Quest | No support claim yet |
| Game behavior | Interactions, collisions, battles, content, and original interaction text remain unchanged |
PokéPath Signs is a standalone Gen1Recomp companion mod today and the first milestone in the larger PokéPath program. The longer vision is one evidence-backed sign dataset shared by the mod and the future PokéPath Atlas.
Generation I signs carry place identity, route guidance, and small pieces of worldbuilding. They are part of how Kanto communicates direction and character. This project gives selected signs physical faces without replacing their original game interaction text or changing game logic.
See the conceptual face preview. It is a non-runtime SVG; runtime rendering uses the engine Font.
Install one and only one compatible voxel host:
| Compatible host | Required version |
|---|---|
| Battle Art | >=1.9.8 <2.0.0 |
| Dramaless Shape | >=2.0.3 <3.0.0 |
- Do not install both hosts together for this mod.
- With zero compatible hosts, or with two compatible hosts, PokéPath Signs warns once and renders no faces.
- The mod has no hard host dependency and does not replace a host or KFP.
- The runtime is camera-agnostic. It architecturally supports first- and third-person when the selected host keeps its voxel phase active; this is not certified third-person support.
- It is PC-first. Its design avoids platform-specific runtime assumptions, but this is not a Quest support claim.
- Obtain the user-provided 0.1.0 package when it is made available; this repository does not claim a public download yet.
- Install either compatible Battle Art or compatible Dramaless Shape, not both.
- Install
POKEPATH_SIGNSwith your normal Gen1Recomp mod workflow. - Start a supported Gen I game and visit one of the coverage locations below.
- Confirm that one compatible host is active.
- Confirm that the sign has two physical faces and remains readable from each approach.
- Use the host-camera acceptance matrix for the pending four-path QA gate. Deterministic checks do not replace real-PC visual acceptance.
- Interact with the sign: its original interaction text must remain unchanged.
- Check that no collision, battle, or content behavior changes.
| Symptom | Check |
|---|---|
| No faces | Confirm exactly one compatible host and its version range. Zero or two hosts fail open. |
| Wrong or missing faces after a host change | Restart the normal game/mod session and confirm the host choice again. |
| Duplicate faces | Do not use two hosts. If a later KFP build owns faces, remove or disable the standalone mod. |
| Visual issue | Record the host name/version, camera mode, map ID, coordinate, view angle, and a screenshot or video for a report. |
Remove only POKEPATH_SIGNS from the normal mod location. Keep the selected host unchanged. This mod does not modify game content, saves, or host files.
flowchart LR
D[data/PokePathSigns.lua\nauthoritative records] --> F[lib/PokePathSignFaces.lua\nengine Font + cached canvases/meshes]
M[main.lua\nselect one optional provider] --> F
M --> W[world and neighbor transforms]
W --> S[two physical faces\nsouth + north]
F --> S
K[Later KFP ownership handshake\nmod.exports.kfp.features.pokePathSigns == 1] --> M
data/PokePathSigns.luais the authoritative record set. Each record keeps original interaction text and rendered face lines.lib/PokePathSignFaces.luadraws those lines with the engine Font into cached canvases and cached meshes.main.luaselects one optional provider, applies world and neighbor transforms, and draws both physical faces.- Both supported hosts supply the closed two-voxel host body from local z=11 through z=13. PokéPath adds faces at z=10.92 and z=13.08, 0.08 units outside that body; no extra side shell is drawn.
- The runtime has no camera-mode gate. The host body supplies visible side thickness in first- and third-person side views without duplicate geometry, collision, or z-fighting risk.
- A south-facing board is read by a traveler approaching from the south and moving north. A north-facing board is read by a traveler approaching from the north and moving south.
- Town identity faces are identical on both sides. Current east-west records intentionally use neutral shared copy pending the later directional placement model.
- A later direct KFP integration may use
mod.exports.kfp.features.pokePathSigns == 1as its ownership handshake. If that export is present, the standalone disables itself to prevent duplicate ownership. KFP has no active integration today.
The inventory below is generated from the authoritative records in data/PokePathSigns.lua. Face copy is rendered exactly as listed, including punctuation and spacing.
Town identity faces are the same on both sides.
| Map ID | Coordinate | Rendered copy on both faces |
|---|---|---|
| PalletTown | (7,9) | PALLET TOWN Shades of your journey await! |
| ViridianCity | (17,17) | VIRIDIAN CITY The Eternally Green Paradise |
| PewterCity | (25,23) | PEWTER CITY A Stone Gray City |
| CeruleanCity | (23,19) | CERULEAN CITY A Mysterious, Blue Aura Surrounds It |
| VermilionCity | (27,3) | VERMILION CITY The Port of Exquisite Sunsets |
| LavenderTown | (11,9) | LAVENDER TOWN The Noble Purple Town |
| CeladonCity | (19,15) | CELADON CITY The City of Rainbow Dreams |
| FuchsiaCity | (15,23) | FUCHSIA CITY Behold! It's Passion Pink! |
| FuchsiaCity | (25,15) | FUCHSIA CITY Behold! It's Passion Pink! |
| SaffronCity | (17,5) | SAFFRON CITY Shining, Golden Land of Commerce |
| CinnabarIsland | (9,5) | CINNABAR ISLAND The Fiery Town of Burning Desire. |
| Map ID | Coordinate | South-facing copy | North-facing copy |
|---|---|---|---|
| Route1 | (9,27) | ROUTE 1 VIRIDIAN CITY AHEAD |
ROUTE 1 PALLET TOWN AHEAD |
| Route2 | (5,65) | ROUTE 2 PEWTER CITY AHEAD |
ROUTE 2 VIRIDIAN CITY AHEAD |
| Route5 | (17,29) | ROUTE 5 CERULEAN CITY AHEAD |
UNDERGROUND PATH AHEAD |
| Route6 | (19,15) | UNDERGROUND PATH AHEAD |
ROUTE 6 VERMILION CITY AHEAD |
| Route12 | (13,13) | ROUTE 12 LAVENDER TOWN AHEAD |
ROUTE 12 FUCHSIA CITY VIA COAST |
| Route19 | (11,9) | SEA ROUTE 19 FUCHSIA CITY AHEAD |
SEA ROUTE 19 SEAFOAM ISLANDS AHEAD |
| Route3 | (59,9) | ROUTE 3 PEWTER CITY MT.MOON |
ROUTE 3 PEWTER CITY MT.MOON |
| Route4 | (27,7) | ROUTE 4 MT.MOON CERULEAN CITY |
ROUTE 4 MT.MOON CERULEAN CITY |
| Route7 | (3,13) | UNDERGROUND PATH CELADON CITY LAVENDER TOWN |
UNDERGROUND PATH CELADON CITY LAVENDER TOWN |
| Route8 | (17,3) | UNDERGROUND PATH CELADON CITY LAVENDER TOWN |
UNDERGROUND PATH CELADON CITY LAVENDER TOWN |
| Route9 | (25,7) | ROUTE 9 CERULEAN CITY ROCK TUNNEL |
ROUTE 9 CERULEAN CITY ROCK TUNNEL |
| Route14 | (17,13) | ROUTE 14 FUCHSIA CITY LAVENDER TOWN |
ROUTE 14 FUCHSIA CITY LAVENDER TOWN |
| Route15 | (39,9) | ROUTE 15 FUCHSIA CITY LAVENDER TOWN |
ROUTE 15 FUCHSIA CITY LAVENDER TOWN |
| Route16 | (5,17) | ROUTE 16 CELADON CITY FUCHSIA CITY |
ROUTE 16 CELADON CITY FUCHSIA CITY |
| Route18 | (43,7) | ROUTE 18 CELADON CITY FUCHSIA CITY |
ROUTE 18 CELADON CITY FUCHSIA CITY |
flowchart LR
E[Sourced R/B/Y sign evidence] --> D[Canonical sign database]
D --> V[Validation and generation]
V --> M[Standalone mod]
V --> A[PokéPath Atlas]
V --> K[Later KFP integration]
The canonical future taxonomy is: town identity; route/gateway; Trainer Tips; building/service; Gym; landmark; warning/instruction; and special/story. Records will carry evidence and confidence fields, including differences among Red, Blue, and Yellow. Original game interaction text stays preserved; physical faces may be direction-aware when evidence and placement support it.
PokéPath Atlas will be a high-resolution Kanto map with zoom, search, filters, exact coordinates, version comparison, before/after views, direction faces, source and confidence details, 3D previews, and deep links. It will synchronize its data with the mod rather than maintain a separate sign list.
| Milestone | Status | Exit gate |
|---|---|---|
| Foundation and 26-board preview | Complete | Deterministic implementation/package checks pass |
| Real-PC host acceptance | Active | Four-path QA gate passes for first- and third-person with Battle Art and Dramaless Shape |
| Canonical R/B/Y sign census | Planned | Evidence-backed database covers all sign families |
| Direction-aware pipeline | Planned | Authoring and validation produce reviewed directional faces |
| PokéPath Atlas | Planned | Shared data powers map and mod views |
| KFP integration | Post-release | Released contract and duplicate-ownership prevention verified |
| Other-platform validation | Later | Platform-specific acceptance evidence exists |
See the full roadmap for deliverables and full exit gates.
luajit -b main.lua NUL
luajit -b data/PokePathSigns.lua NUL
luajit -b lib/PokePathSignFaces.lua NUL
luajit tests/pokepath_signs_test.lua
The release ZIP contains exactly these eight files:
LICENSEREADME.mddocs/branding/pokepath-signs-logo.pngdocs/pokepath-signs-concept.svgdata/PokePathSigns.lualib/PokePathSignFaces.luamain.luamanifest.json
| Path | Purpose |
|---|---|
data/ |
Authoritative sign records |
lib/ |
Rendering implementation |
docs/ |
Public documentation and branding |
integration/ |
Non-package future integration planning |
tests/ |
Deterministic checks |
dist/ |
Ignored generated packages |
Read the contribution guide before proposing records, copy, or code. Contributions must preserve sign-copy fidelity, include evidence and version handling, and pass the deterministic check.
Original project code and documentation are licensed under the MIT License. Pokémon names, locations, game text, and trademarks remain the property of their respective rights holders. PokéPath Signs is an unofficial fan project and is not affiliated with or endorsed by those rights holders.
