# mod-personal-isle
FFXIV-Island-Sanctuary-inspired: a persistent, private instanced island each character can visit,
reached via a teleport NPC and/or a dedicated "Isle Hearthstone" item. **Module and feature name
are working titles** -- see `PLAN.md`'s "Open questions" before treating either as final.
## Current status: v0 (hello-world scaffold)
No island, no teleport, no map/DBC work yet -- this commit just proves the module wiring works:
- `PersonalIsle.Enable` config flag is read correctly (`conf/mod_personal_isle.conf.dist`).
- `PersonalIsle_World::OnStartup` logs a confirmation line so a successful load is visible in the
server log.
- `.isle` (`SEC_PLAYER`) registers and responds with a placeholder message, proving command
registration works end-to-end.
Everything else -- the island terrain itself, DBC wiring, per-player instancing, entry/exit
points -- is planned but not built. See `PLAN.md`'s roadmap.
## Scope, agreed 2026-08-20
- **Terrain is custom-authored** (Noggit3 or similar), not a reuse of existing WoW geography. This
is manual 3D-editor work outside what this module's code can produce -- it's the long pole on the
whole project. Ships as a client-side MPQ patch every connecting player needs.
- **MVP is cosmetic, minimal-loop**: one fixed island layout, a handful of static decorative
spawns, no player building placement, no gathering/production automation. Explicitly deferred,
not out of scope forever -- see "Later ideas" in `PLAN.md`, including a possible tie-in with
`mod-hirelings` for passive gathering.
## Config
See `conf/mod_personal_isle.conf.dist`:
- `PersonalIsle.Enable` (default `1`) -- toggles the whole module.
## Custom ID ranges
Reserved, not yet consumed by any SQL:
- **Spell IDs 950000-950099**
- **Creature / npc_text / gameobject IDs 951000-951099**
- **Quest IDs 952000-952099** (reserved, likely unused until post-MVP)
- **Item IDs 953000-953099** (the Isle Hearthstone lives here)
Picked as the next clean block after `mod-eternal-bond` (940000-944099) -- check that module's
README before reassigning.
**Not covered by the above:** `Map.dbc` / `AreaTable.dbc` / `WorldMapArea.dbc` /
`LoadingScreens.dbc` IDs are a separate, client-side DBC ID space. They can't be picked until the
island terrain exists -- see `PLAN.md`.