Initial commit - mod-personal-isle (v0 hello-world scaffold) Updated 1 week ago

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.