WORLD EXPLORER
Procedurally generated world exploration system. At this point, it can confidently be considered a proper script with more updates still on the way.
Releases
Install NovelAI scripts: scope and permissionsPermissions and compatibility are declared by the uploader. Uploaded script code is not automatically security-audited or tested by this platform. Script owners can delete releases.
v2.10.12
0170dab5e61de5f1...Changelog
This is a condensed summary. The full update notes with all details are on the Discord channel: https://discord.com/channels/836774308772446268/1469625762972700925
This release covers versions 2.10.9 through 2.10.12.
IMPORTANT: BACK UP YOUR WORLD BEFORE UPDATING
Open the script, go to Settings > World Management, and press Export Everything. Keep that file safe. 2.10.12 changes how your world is saved, and worlds saved by this version cannot be read by older versions. If anything goes wrong, reinstall the previous version, clear the world, and import your backup.
2.10.12 - Storage rebuild, Heroes and Bosses
Save corruption fix
NovelAI gives each story 4 MB of script storage. Old saves duplicated lorebook text and used a bulky map format, so large worlds hit the cap and got cut off. This is what caused the reported corruptions. The save format has been rebuilt:
- The map grid is stored compactly (about a tenth of its previous size).
- Place descriptions and lore copies are no longer duplicated in the save. The lorebook entry is the only copy.
- Script data (templates, design chats, Impact Tracker records) now lives in a hidden, disabled lorebook category called "World Explorer - Script Data". Do not edit it.
- A safety net warns you at 3 MB, stops world generation at 3.9 MB, and refuses any save that would exceed the limit. A new Script Storage section in Settings shows what is using space and lets you copy a report.
- A one-time conversion runs when you first open an existing world. Let it finish.
Typical result: saves around 2 MB drop to roughly 700 KB.
Lorebook reorganized
Map lore is now split into "World Explorer - Biomes", "- Kingdoms", "- Settlements & Places", and "- Heroes & Bosses". Existing entries are sorted automatically. Old export files still import correctly.
Heroes and Bosses
Hero parties have moved out of the Protagonist tab into a new Settings section, and confrontations are resolved in the Navigation tab like any other encounter.
- Editable roster of six party slots (three per wave) with behavior, speed, home kingdom, and optional custom identity. New Raider behavior always attacks your territory.
- Hero Designer AI: a dedicated chat that interviews you about your world, designs the parties with you, and commits them to the roster.
- Optional final boss: a greater adversary that rises after the heroes fail. You control the trigger, approach, spawn location, host, and whether its passage destabilizes your territory. The Designer helps you create it.
- Compromised settlements: losing a capital no longer costs you every settlement in that kingdom. They stay yours but are attacked more often until you retake the capital or stabilize them by staying a few days.
- Releasing a kingdom now asks for confirmation and lets you choose whether its settlements go free or remain yours.
- Clean slate buttons to erase all hero parties, all map bosses, or both, including their lorebook entries.
- Transport-bound lore: entries can now be tied to a mount or vehicle and are active only while you ride it.
2.10.10 - AI travel narration, Designer improvements
- New "AI Area Descriptions" toggle (Settings > Show Travel Options, off by default). When on, arriving in a new biome, kingdom, or unvisited place makes the AI narrate your arrival using your world's lore. Encounters take priority and the arrival is woven in as a lead-in.
- The Designer AI now sees lorebook entries active at your location and any mentioned in your chat or recent story, so it knows existing characters when you ask for their relatives or homes.
- Update Entry from Chat no longer saves immediately. Proposed text opens as a draft in the edit screen. Save, cancel, or edit it first.
- {ProtagonistName} now works for named characters without a claimed title.
2.10.9 - Small fix
World generation now drains token pools in order (main pool first, then each helper until exhausted) instead of retrying the main pool on every generation. This removes the constant "insufficient budget" toasts.
Author-declared permissions
No permissions declared by the uploader.
v2.10.8
af18893063d797fb...Changelog
Apologies, I've been sharing updates more frequently on the discord room than here https://discord.com/channels/836774308772446268/1469625762972700925
UPDATE 2.10.3
Small fix: location naming. The AI will no longer give run-down or sinister places comically on-the-nose names like "The Foetid Lamb" or "Dreadhold". Naming prompts now enforce in-world plausibility (people don't advertise their own squalor), while descriptions still carry all the grime and menace. Applies to settlements, POIs, kingdoms, and inner locations.
UPDATE 2.10.4
Bugfix: Fixed a bug where the ambient event AI Director could approve events it should have rejected (like a common-room quarrel while you're asleep). The verdict call was leaking the model's internal reasoning into the parser, so stray words in its "thoughts" were being read as approval codes. Also added a hard rule that sleeping until morning via the +1 Day button never rolls an ambient event, and the Director now sees the in-game clock when judging timing.
UPDATE 2.10.5
Bugfix: The custom wardrobe text saved the entire world after every single letter typed. This caused heavy lag while typing, and the rapid overlapping saves could in rare cases corrupt the saved world, which then showed up as "no world loaded" and could not be recovered. The wardrobe box now only saves when you press Enter or the new Save button, and the save system was hardened so overlapping saves can never corrupt a world, regardless of where they come from.
UPDATE 2.10.6
Bugfix: Teleport gates were not working. they are finally fixed.
Additionally, teleport gates as well as free teleport now give you a description of the destination first where you can confirm if you want to go or cancel.
UPDATE 2.10.8
Designer AI: manual post-it placement
Every located post-it in the Review panel now has a "Pick on map" button. If the AI keeps refusing to put a note where you want it, you can now just click the cell yourself.
Spot post-its move their pin, region post-its retarget the whole region containing the clicked cell, kingdom post-its retarget that cell's kingdom. Claims are handled automatically.
Imported post-its that found no match on your map ("on hold") also get a "Place on map" button, so you are no longer limited to convert-or-delete.
Settings export and import: now covers the whole Settings tab
The settings export now additionally includes fast-travel and teleport options, encounter toggles and rate modifiers, fog of war, time format, wake hour, ambient events, instruction narration, impact tracker, Design toggles and caps, and the Designer AI configuration. Transports, factions, conquest, heroes and the rest were already in.
Strictly Settings-tab items only. Content from other tabs (custom events, lore, protagonist, terrain generation) is never touched.
New "Import File" button in Settings > World Management, usable while a world is active. Previously you could only import before a world existed. It auto-detects settings files and design session files and applies them to your current world, any time.
Old settings files still import fine.
Map popups: bigger, and zoom that actually zooms
This was is a quality of life changer. As I mentioned multiple times, I am not a dev and most novelAI pop-ups modal Claude create for me has been within certain sizes. I didn't think it could be made bigger but I was getting annoyed by the map as it's really difficult to see anything and it only occurred to me now to ask Claude if the map can be made bigger. I also asked it to fix the zoom in and out buttons as they didn't behave correctly. Anyway, proper update logs from Claude below:
All full-map popups (world map, world preview, starting location, location pickers) now use the full screen instead of a small box.
Zooming out now genuinely shows more of the world (up to a 41x41 view, more than half the map at once) instead of just shrinking the same window. Pan speed scales with zoom level.
Author-declared permissions
No permissions declared by the uploader.
v2.10.2
8d6853e7d54a8fca...Changelog
UPDATE 2.10.1
Small improvement: dark kingdoms are now optional. There's a visible toggle on the world creation screen (and in Advanced Terrain Parameters) to turn them off entirely, and it works during the terrain preview phase too, since Re-scatter now properly picks up the change. Note it's a generation-time setting, so it has to be decided before AI naming starts.
by the way, prior to this update, if you create your map via the map editor, you can set the dark kingdom count to zero already. So, no update needed for the map editor.
UPDATE 2.10.2
Fixed: Opening the Legend in the map preview was breaking the UI. All buttons would stop working. This has been fixed
Author-declared permissions
No permissions declared by the uploader.
v2.10.0
6b2a3efb24638a57...Changelog
UPDATE 2.9.9
Bugfix: The script panel no longer spills out of the sidebar on narrow windows or mobile. The tab bar now packs its buttons together and wraps to a second line instead of pushing tabs out of reach, button rows across every tab wrap instead of getting cut off at the panel edge, and checkboxes in Settings now always stay to the left of the text they control instead of ending up orphaned above it. A new optional Compact UI toggle (found in Settings, with a second copy at the top of the Gen tab so it stays reachable on cramped screens) shrinks the whole panel by 15 percent for small displays, and it stacks with the existing Text Size option.
Larger monitors shouldn't feel any difference. I tested with my browser shrunken and it's looking good and no issue with my normal full screen browser
UPDATE 2.10.0
Designer AI improvements
- Your design session can now travel between worlds. A new export option saves your entire session (the design chat, the Charter, tone palettes, and all post-its and scatter notes) to a file. You can find it on the Design tab, at the review and summary steps, and in Settings next to the other export buttons in case you remember late.
- Importing a design file works through any import button, the file type is detected automatically. The post-its are matched to fitting kingdoms and regions on the new map on their own, and you land back at the review step to adjust and apply. Post-its that have no matching place on the new map (for example a swamp note on a map with no swamps) are set aside as "on hold" where you can re-place, rework, or remove them.
- Re-scatter POIs and Regenerate Terrain no longer destroy your design work. If you have a session going, both buttons now ask for confirmation and clearly list what stays and what is lost. Re-scattering keeps your session and re-pins spot notes to the new layout. Regenerating terrain carries your whole session over to the new map as if you had imported it, so you review it again and re-apply.
- The "Auto-flip to companion" toggle is gone. It is now always on: if your budget runs out mid session, a registered companion helper takes over automatically. No setting to remember.
Protagonist setup improvements
- You can now change your protagonist after finishing setup, right up until you click Generate Biome Names for the first time. A "Change Protagonist" button appears on the Generation tab with your current choice summarized. Your character's name and age are kept when you reopen the wizard.
- The Random buttons now pick locations that fit your role. Nobles get an estate near a settlement suited to their rank, merchants land in trade cities, priests at shrines, officers in fortresses, scholars in towers, outlaws in caves and ruins, and demons in dark and wild places.
- When picking a location on the map yourself, fitting spots for your role are now highlighted in gold while less fitting ones are dimmed. Everything stays clickable, this is guidance only, and you are always free to be the duke who lives in a swamp.
Author-declared permissions
No permissions declared by the uploader.
v2.9.7
43e8687f70f8ed33...Changelog
Minor improvement. Map generated settlements are now part of the lorebook system (They already were to some extent but did not have the same features as the other lore entries).
You can now add templates and use the designer AI to do updates on them.
I've also added one more thing thing. Every lore entry now displays a "Last visited:..." line at the end. You can turn it off from the "Edit Entry" UI (There is a toggle)
!!!FULLY BACKWARD COMPATIBLE!!! Existing worlds will get the update too.
Author-declared permissions
No permissions declared by the uploader.
v2.9.6
8206b6bcb4c2049e...Changelog
BUGFIX
Fixed: Event Director verdicts misread as approvals. The Director (the AI that judges whether a rolled ambient event fits the current moment) was always running before injection, but its answer was parsed with a forgiving substring matcher that stripped spaces — so replies like "do not use", "pause", or "refuse" all contained the letters U-S-E and were read as a USE verdict. Negative judgments frequently became injections, making the Director look like it wasn't running at all. Verdicts are now parsed strictly (exact code first, then whole-word matching with safe verdicts checked before USE, plus a negation guard), and anything unparseable still safely degrades to SKIP — never an injection.
Author-declared permissions
No permissions declared by the uploader.
v2.9.5
3b449097103b29b4...Changelog
!!!Fully Backward Compatible!!!
World Explorer — v2.9.5
:sparkles: New Features
:pencil: Impact Tracker — your deeds now reshape the world
A dedicated per-location AI (the fifth role, alongside Collaborator / Generator / Narrator / Event Director) that watches what your protagonist does in each place and evolves its lore accordingly.
- When you leave a settlement (or a non-settlement POI / a cell with named places, after a 6h+ stay in that cell — adjustable), it quietly captures what you did there — a quick :pencil: toast and you're on your way. Nothing notable = nothing recorded. Never blocks movement; plain cells and fast-travel pass-throughs never trigger it.
- When you return after 3+ days away (adjustable), it reviews how the place should have changed: rewrites the affected lore entries, and can mark your return with an event (on arrival or later while you linger) or a standing note in the Author's Note — optionally tied to one inner location (e.g. only inside the bank), cleared when you leave.
- It remembers. Each location keeps its own persistent tracker memory, so changes compound coherently across visits — even months apart.
- You stay in control. Nothing touches your lorebook unreviewed. Proposals show up in the Navigation tab + a temporary :pencil: Impact sub-tab in the Lore tab: edit, Apply/Reject each, :white_check_mark: Approve All, or :wastebasket: Discard All. Optional auto-approve if you trust it.
- Conquest integration: takeovers are recorded as impacts automatically — conquered places evolve through the same review pipeline, immediately.
- Settings (:gear: → :pencil: Impact Tracker): master toggle, min days away (1–30), dwell hours (1–24), max entries per review (1–10), auto-run on arrival, auto-approve.
:sparkles: Improvements
:house: Inner locations now have real lore
This is more of a bug fix or minor improvement. The inner locations were not being recorded as lore entries and what was recorded was very small.
Every inner location (tavern, shop, residence…) now gets a proper detailed lorebook entry — atmosphere, owner, patrons — in a new "Inner Locations" category, browsable and editable like any other. While you're inside, its lore is always in context, no keyword needed; outside, the Local Situation entry lists the establishments on your cell so NPCs can name the tavern before you've set foot in it. Generation is story-aware too: the AI sees your memory, Author's Note, active lore, and recent scenes — so "the residence of Ynna and Zeth" knows who those characters are.
Existing locations convert automatically the first time you move — nothing to do.
:robot: Designer upgrades
New :robot: Edit lore with Designer button on each inner location (⚙ menu).
Designer chats are now saved with the entry/event they design — re-opening later restores the conversation exactly where it left off, even months into a story. Zero script storage cost.
After :sparkles: Create / :arrows_counterclockwise: Update, the Designer opens the entry's edit screen directly — and a new :robot: Designer button next to Save/Cancel jumps back into the saved chat anytime.
:wastebasket: End Chat also deletes the saved conversation, so the next edit starts genuinely fresh.
:alarm_clock: Time controls, clarified
Next Phase now shows exactly where it's going in the label — e.g. Next Phase (8:00AM). Follows your 12h/24h setting.
+1 Day now means "sleep until morning" — advances to the next day at your waking-up time, shown in the label, e.g. +1 Day (6:00AM).
New setting: :bed: Waking Up Time (Settings > Display & Time). Any hour 0–23; the +1 Day button picks it up instantly.
This can't be sent because it contains content blocked by this server. Please revise and try again.
Bugfixes
- Fixed inner location lore never reaching the AI at all (previously just a one-line description outside the lorebook).
- Fixed a leftover Designer chat from a previous session blocking the Designer entirely — it now saves and switches; unfinished drafts are parked and resume automatically.
- Fixed inner location edit fields not showing their current name/description.
- Fixed deleted lore entries leaving their saved Designer chat behind (auto-cleanup + background sweep).
- Inner location descriptions now stay about the place itself — no stray "the protagonist did X" recaps — unless you ask for story ties, or the place exists because of the story (founded/conquered by you).
Existing saves are unaffected — no migration, nothing to do.
Author-declared permissions
No permissions declared by the uploader.
v2.9.0
1edafc86ab836405...Changelog
CHECK THE RESOURCES FOR NEEDED ADDITIONAL SCRIPTS OR FILES!!!
Also, i am limited to how much text I can type. So, I will share a full changelog file in the resources.
🌍 World Explorer v2.9.0
⚠️ This update is NOT backward compatible. It adds a very large number of new features and systems, and worlds generated with older versions cannot be carried over.
I'm still polishing the script and there's more testing to do, but if I keep putting the release off it will never actually get published. World generation is fully tested, I've tested live gameplay as best I can, and I think it's solid as it stands. If anything slips through, I can push bug fixes, and those should stay backward compatible from 2.9.0 onward.
I genuinely think this is a big one, but I'll let you judge how much the new stuff actually improves things. Please don't hesitate to share your honest opinion, report bugs, or ask for improvements. Bigger requests go into my backlog; smaller ones (UI organization, minor convenience features, that kind of thing) I should be able to ship faster in patches.
One tip: go over the settings before you start world generation and set them to your taste, then check them again afterwards, since some options only become relevant once the world exists.
Alright, let's begin.
✨ Highlights
🧠 Choose your AI model
In the script configuration (under "User Scripts" management in NovelAI) you can now pick the model the script uses. Only GLM and Xialong are in the dropdown for now, with GLM as the default. I tested Xialong and honestly wasn't happy with the results. Either I'm doing something wrong, or the model just isn't suited to this kind of use. I do like Xialong sometimes, but man does it love ignoring what I tell it to do.
🎬 Instruction Narration
Related to the above: there's a new "Instruction Narration" toggle in the settings. When it's on and an event triggers, the script forces GLM to start narrating the event, cuts off once it has narrated enough, then hands back to the model on your account (Xialong, for example). Off by default. I'd only recommend it if you run Xialong.
👤 Protagonist tab
I genuinely can't remember if this shipped in the last update. Either way: there's a Protagonist tab where you customize who you are. Social ranks, 23 classes, and a demon path with a full conquest system and heroes hunting you. The world reacts to who you are.
⚔️ Conquest
For now conquest is demon-only. I want to expand it beyond demons later and make the mechanic more general. Demons take the world one settlement at a time, and you define what that means: rename the action (Corrupt? Convert? Infest? Plague?), rewrite every line the story sees, and choose between an instant military strike or a slow corruption on an in-game-day timer, with failure risk, counterattacks you resolve in person, and hero raids on your territory. A dedicated Designer chat writes all the text with you.
🤖 Designer AI
There's now a Designer AI baked into a LOT of the script. You can use it to design your world, factions, lore entries, custom events, custom transport modes, and your conquest definition. Each Designer has its own system prompt and level of technical depth depending on what it's building. It also actually knows how the script works: it suggests the right template tags, keeps what it made and updates it on request, and never caps how long your lore can be.
🗡️ Hero Parties
Push your conquest too far and unique hero parties rise against you across the map, in real time. Some of them march on your territory instead of coming after you directly.
Confrontations end four ways: Neutralize, Subdue, Ally, or 🌀 Repelled. That last one is non-lethal, letting you drive the party off without ending their story. Pick from three effects:
- Pin them on their current cell for 1 to 14 days (flagged steel-blue on the map, no encounter re-trigger while pinned)
- Push them 3 to 30 cells in a random direction
- Banish them to any spot you pick on the map
Either way they recover, resume the hunt, and a fresh confrontation fires when they catch you again. How the repulsion actually plays out in the story is entirely up to you.
Author-declared permissions
No permissions declared by the uploader.
v0.0.3
cf7b1e02613a935a...Changelog
Generation helper #3
Sorry for the weird version number, just a workaround to attach the three files
No permissions needed
Author-declared permissions
No permissions declared by the uploader.
v0.0.2
79ccfa810a9a55f1...Changelog
Generation helper #2
Sorry for the weird version number, just a workaround to attach the three files
No permissions needed
Author-declared permissions
No permissions declared by the uploader.
v0.0.1
929095122f1000ab...Changelog
Generation helper #1
Sorry for the weird version number, just a workaround to attach the three files
Author-declared permissions
No permissions declared by the uploader.
v1.6.7
d355ecf64e444f17...Changelog
World Explorer v1.6.7
Two major updates. Generation helper companion plus updating the main script to support them and finally, I've introduced Social Hierarchy.
Generation Helper System & Flow Control
When generating a new world, World Explorer uses NovelAI's AI to name every biome, kingdom, and settlement. On larger worlds, this means dozens of AI calls — and NovelAI's output token budget runs out before the job is done. You then have to wait ~4 minutes for tokens to replenish, click "Resume", wait again and so on and so forth.
You can now install companion helper scripts alongside World Explorer. Each helper has its own separate token budget. When World Explorer runs out, a helper picks up where it left off so you do not need to wait anymore.
How it works in plain English:
Think of it like a relay race. World Explorer runs as far as it can, then hands the baton to Helper #1. When Helper #1 gets tired, it hands to Helper #2, and so on. By the time they're all done, World Explorer's energy has come back and it's ready for the next lap.
Setup (takes 10 seconds):
- Drag and drop the WE Generation Helper ##.naiscript file into the User Scripts modal (Alt+X)
- You should see a small "WE Gen Helper #1" panel appear with a :green_circle: status
- That's it! You'll now see :robot: buttons in the Generation tab
The helper requires no permissions. It only generates text and sends messages back to World Explorer.
Want more helpers?
- Copy past WE Generation Helper 03_v1.0.0.naiscript and rename it to WE Generation Helper 04_v1.0.0.naiscript
- Open the file in notepad++ (or regular notepad)
- Increase the number by 1 in two locations:
- On line 4 ** name: WE Generation Helper 03**
Change that to name: WE Generation Helper 04 - On line 38 const WE_HELPER_NUMBER = 3;
Change that to const WE_HELPER_NUMBER = 4;
- Save. Then drag and drop the new .naiscript file to novelAI's scripts menu
- Repeat the same steps if you want more generation helper. However, I think three should be more than enough.
Using helpers during generation:
- Manual mode: When generation stops (tokens ran out), click the :robot: "Resume via Companion" button that appears below the normal Resume button. This sends the work to a helper.
- Automatic mode: Enable the ":robot: Auto-flip to companion" toggle in the Generation tab. World Explorer will automatically switch to a helper when it runs out. no clicking needed.
If you want to automate this as much as possible. Keep the following toggles disabled:
- Pause after protagonist locations
- Batch mode
and enable: - "Auto-flip to companion"
The script will still stop between biome to kingdom and kingdom to settlements.
The "Pause after protagonist locations" will become relevant after I explain the social Hierarchy update.
Protagonist Identity & Social Hierarchy
I will be honest, I feel a bit conflicted about this update. I feel it is not working as well as it could (There is currently no way to change your social hierarchy EXCEPT tweaking it manually in the lore entry of a location). So, I may eventually do improvements to the social hierarchy functionality. I am also planning to do a dark lord/ demon lord sort of variant and tweak encounters to fit such a persona.
You can now define who your character is in the world. During world creation (after terrain preview), a setup wizard lets you choose a social track and configure your identity.
Four tracks:
- None (Outsider) — anonymous traveler. This is exactly how the script was prior to this udpate. This fits if you want a sort of Isekai story.
- Noble / Ruler — Knight all the way to Emperor, with a governed territory that changes depending on your noble rank.
- Non-Noble Role — Merchant, Priest, Military Officer, Scholar, Commoner, or Outlaw
- Custom / Freeform — write your own instructions injected into the lorebook
Noble features:
- King/Emperor: pick your kingdom from a list, set its Safety & Prosperity, configure diplomacy with neighbors
- Duke through Knight: pick your domain center on the map, kingdom auto-detected, guaranteed towns/villages placed in your domain
- Sub-titles for each rank (Queen, Crown Prince, Duchess, Dame, Squire, etc.) plus a "Custom..." option for freeform titles like "The Eternal One, The demon king etc..."
- :game_die: Random buttons for every selection
Non-noble features:
- Pick home location on map or :game_die: Random (commoners land in a random settlement)
- Sub-titles per role (Priestess, Acolyte, Captain, Cadet, Student, etc.)
- Nearby settlement gets a flavor note about your presence
I hit character limits of the changelog... interesting. Well, please get the full change log at the discord room: https://discord.com/channels/836774308772446268/1469625762972700925/1482078786970452088
Author-declared permissions
No permissions declared by the uploader.
v1.5.2
a2ffd2e6539faade...Changelog
This update is relatively small, but it includes a few useful improvements and a community highlight.
Community Contribution
A user, PeterPiemelveeg, has shared an HTML map editor on the Discord channel. It’s worth checking out if you want more control over map customization.
Changes in This Update
- Author Note HTML markers now use two hashtags.
This is a hotfix. I thought the way they were previously written makes them be ignored by novelAI but it turns out two hashtags are needed for novelAI to ignore them. - Full map now supports three layers:
- Biome — identical to the previous map view.
- Kingdom — displays kingdom territories with distinct colors for each.
- Discovered — highlights only the cells the player has uncovered so far.
- Mini‑map now highlights kingdom borders for better spatial awareness during navigation.
Author-declared permissions
No permissions declared by the uploader.
v1.5.0
9553bce5dfcbd26d...Changelog
New features to world generation
Shape your world your way.
🗺️ Terrain Customization
Full control over world‑generation parameters.
Adjust noise scale, moisture, elevation detail, and more before committing to a world.
Preview terrain and regenerate until you find the perfect landscape.
🌿 Biome Toggles
Enable or disable individual biomes before generating a world.
Disabled biomes are replaced with similar terrain so the world remains natural and coherent.
Want no oceans? No deserts? No problem.
👑 World Density Controls
Choose how many kingdoms populate your world.
📍 Starting Location Picker
After generating a world, select your exact starting point.
Click any land tile on the map to set your beginning location.
Quality of life improvements
✨ Travel Style System
Free Teleport has evolved into a full travel style framework.
Choose from themed presets like Quick Ride, Portal Jump, Carriage, Pass Through, and others.
Each preset includes its own narrative flavor text.
Customize the button label and edit the narrative sentences to match your story tone.
🖥️ Layout Improvements
Button groups now wrap correctly on smaller screens.
Tabs, mode selectors, and option rows adapt to your sidebar width for a smoother UI experience.
Companion Plugin System
For Players
World Explorer now supports companion scripts. Add‑ons that are separate scripts but directly communicate with the world Explorer to add new gameplay systems.
Think of World Explorer as the world and the map. Companion scripts are the mechanics layered on top: combat, economy, quests, survival, crafting, and more. I will be creating the bolded examples my self. However, this also means the world explorer supports community made add-ons. I will share a WORLD_EXPLORER_COMPANION_SCRIPTING_GUIDE document to assist modders.
Companion scripts CANNOT edit the world explorer UI by themselves. So, instead, I re-worked the world explorer to add UI elements hidden until companion scripts enable them to use them.
- scriptPanel: Or what I sometimes call it "that thingy above the adventure mode text prompt". Anyway, companion scripts can display currencies, health/mana bars, XP progress, and active quest summaries there.
- World Explorer sidebar UI: Companion scripts can display active items (quests or whatever else) in the navigation tab. They can also add status bars, various notifications and certain action buttons.
- Map Markers: Companion scripts can place custom markers on the mini‑map and full map. Icons, colors, and tooltips are fully customizable.
- Quest Tab: When a companion provides quest data, a new 📜 Quests tab appears in the Explorer’s tab bar.
- Encounter Overlay: Companion scripts can add buttons and text to encounter popups. I will most likely not use that for my combat script.
How to Use Companion Scripts (When they are available)
- Install a companion script like any other NovelAI script (account or story level).
- Generate or load a world in World Explorer.
- The companion script detects the world and activates automatically.
- Manage visibility in Settings → Companion Scripts.
No configuration required. If the script is installed and a world exists, it works.
Test Plugin
To preview the integration system, open Settings → Debug Info and click 🧪 Load Test Plugin.
This loads mock data demonstrating every integration point. This is just for demonstratiton and I will not be implementing things exactly how the test plugin does.
Click Remove Test Plugin to clear it
For modders/ people that know how to write javascript (or how to code with AI)
World Explorer v1.5.0 introduces a complete plugin rendering system.
Your companion script writes a PluginData blob to its own storage key; World Explorer reads it and renders the UI.
You never modify Explorer’s code directly.
A full Companion Scripting Guide is provided separately, including interfaces, examples, and a ready‑to‑use template.
Architecture Overview
Register via the WE_REGISTER_PLUGIN broadcast message.
Read world state from world_explorer_data in storyStorage (read‑only).
Write your PluginData JSON blob to your own storage key.
Broadcast WE_PLUGIN_REFRESH to update your UI.
Receive Explorer events such as:
WE_PLAYER_MOVED
WE_ENCOUNTER_TRIGGERED
WE_TIME_CHANGED
…14 event types in total.
Panel Content Types (16 Supported)
Panels can include:
header, text, divider, stat, itemRow, progressBar, alert, button, buttonRow, costLabel, badgeRow, tabs, grid, select, numberInput, spacer.
User Interaction Flow
When a player clicks your buttons or dismisses notifications, Explorer broadcasts:
WE_PLUGIN_ACTION
WE_PLUGIN_NOTIF_DISMISSED
Your script handles the logic, updates its data, writes new PluginData, and triggers a refresh.
I have shared on discord a world_explorer_companion_scripting_guide for modders
Author-declared permissions
No permissions declared by the uploader.
v1.3.1
d9014248418c1357...Changelog
Bosses
You can now place up to six bosses on the map via the "Scatter Bosses" button in Settings. These bosses are entirely optional.
How bosses work
- Bosses spawn at fixed locations and remain there. They can appear in any biome except ocean, and won't spawn on existing POIs or within 5 cells of major settlements.
- Each boss increases the difficulty of hostile encounters within a configurable radius (adjustable 2–10 in Settings).
Recommended radius: 7. This covers roughly 149 cells per boss (Euclidean circle). With six bosses and minimum 15-cell spacing, that affects up to ~888 cells out of 5,041 (~18%), which feels like the most balanced coverage but you can increase or decrease to your preference. - Boss encounters are single-trigger. Once you encounter a boss at their cell, it won't fire again. The cell's ☠ symbol turns grey on the map.
- Handle the boss encounter resolution however you want. Then just update it's lorebook description to reflect if you killed, subdued it or befriended it.
- The levelCap value in the hidden HTML marker tells the future combat system how high enemy scaling can go in that zone (default 50 outside boss zones, up to 95 inside). This has no impact on current gameplay.
- Additional metadata (levelCap, isBoss, bossLevel, bossName) has been added to the hostile encounter marker for future combat integration.
Unbound Lore Entries
There is now a third sub‑tab under Lore that lists every lorebook entry not currently bound to the world explorer.
From this new view, you can:
Browse all unbound lore entries in one place
Bind any entry you choose
Assign a spatial binding directly from the interface
Other changes
- Time-based encounter factor: Encounter probability now tracks both movement steps and elapsed game time (in half-days), taking whichever pushes encounters more. Resting in a town for days no longer freezes the encounter timer.
- Log button: A small button next to the World Explorer title generates an AI summary of events at your current location and saves it as a lorebook entry. Return visits update the existing summary.
Author-declared permissions
No permissions declared by the uploader.
v1.2.0
0c397c9c9137e73b...Changelog
First, Please note I have reorganized the script parameters: they now live at the top of the file under
// SECTION: PARAMETERS
and end at
// DO NOT EDIT ANYTHING BELOW THIS LINE
Each parameter now includes a short explanation to make customization easier. For a fantasy‑focused world, I think the defaults should be solid. I thought users may be able to tweak them to get out from a fantasy plot but after going through them, I think that will be difficult. Anyway, I will let others give fiddling with the parameters a try but at your own risk.
Fix: Lore and Event bindings no longer drift
Editing a lore entry or event while standing in a different location used to silently move its binding to your current cell. This is now resolved. Bindings stay exactly where you originally placed them, no matter where you are when you edit.
New: Pick on Map
When creating or editing lore entries or events, you can now use the Pick on Map button to choose a binding location directly from a full scrollable map. This makes it easy to correct misplaced entries or assign bindings to far‑off regions without walking there manually.
New: Lore search
The Lore tab now includes a full search function. You can search by entry title, biome name or kingdom name. If an entry is bound to biome Darkwood Forest, typing “Darkwood” will find not just the biome but the locations bind to it.
New: Custom Events System
This is kind off a major update.
You can now create your own narrative events that trigger during travel. Unlike encounters (which the system generates for you), custom events are entirely yours to write. You decide what happens, where it can happen, and how often.
How it works: Write an instruction describing a narrative moment (e.g., "The protagonist is doing whatever he's doing when he stumble upon his old friend Tony"), set a probability, and the event will have a chance to fire each time you move. When it triggers, the AI weaves your event into the story naturally.
Please, ensure you are writting instructions to novelAI AND NOT the event it self. This is what the script give novelAI
{ A scripted event occurs: "${event.name}". ${event.instruction} Write this event naturally into the story, interrupting the current scene in a way that feels organic and fits the narrative. }
So for the example I provide it, this is what novelAI will receive as insturctions:
{ A scripted event occurs: "Stumbling upon Tony". The protagonist is doing whatever he's doing when he stumble upon his old friend Tony. Write this event naturally into the story, interrupting the current scene in a way that feels organic and fits the narrative. }
Key Features
- Create events from the new 📜 Events sub-tab inside the Lore tab
- Control where events fire. Anywhere, a specific cell, within a radius, a biome, or an entire kingdom
- Fixed or dynamic probability. Set a flat chance per step, or use a cooldown that drops to 0% after triggering and gradually replenishes over in-game days
- Lorebook integration. Choose which spatial lore entries activate when your event fires, giving the AI richer context for the scene (Lore entries depending in what location coordinates the event is saved at!!!)
- AI-assisted writing. Use the ✨ Improve Instruction button to let the AI refine your event instruction. I actually adive you to avoid using that button. I am not impressed with the re-writting. I have been observing novelAI kind off implementing the event instead of re-writing the instructions. I will try to see if I can improve this but for now, please avoid using it or if you do, please back up your instructions first as they immediately get replaced.
- Skip settlements. Optionally prevent events from interrupting you in cities and towns
- Resolve when ready. Events stay active (with their lore enabled) until you hit the ✅ Resolve Event button in the navigation panel. This is just to decide when you want the lore entries of the event location (again NOT CURRENT YOUR LOCATION) to get re-disabled/ or go back to their original settings.
Other Details
-
The current priority order (which takes precedence) are hostile encounter > non-hostile encounter > custom event. Meaning, if a hostile encoutner trigger, the script stops there and doesn't try to trigger the rest from the chain.
-
A global cooldown (configurable) prevents events from stacking too closely together
-
Events work during fast travel (carriage, train, local quick travel) too.
Author-declared permissions
No permissions declared by the uploader.
v1.0.2
95d49dfe6e5db02b...Changelog
Apologies (or not?) for the consecutive updates. I’m literally playing with the game and every time I do, I come up with new ideas.
I’ve added a new tag: {Age:N}, for example {Age:26}.
When you use this tag, the script starts tracking the character’s age from the moment the lorebook entry was created. That creation date becomes the character’s symbolic birthday. The age increases automatically every year. Months are ignored for simplicity.
Since the script's Lorebook has honestly reached a point where it’s better than NovelAI’s native lorebook, I’ve also added a new spatial binding "Unbound". This lets you create lorebook entries with full tag support that aren’t tied to any location. These entries are always enabled and you can still add activation keys similar
Author-declared permissions
No permissions declared by the uploader.
v1.0.1
02ea4dc74539e662...Changelog
Added a 12h/24h time format toggle in the Settings tab under Map Display.
Author-declared permissions
No permissions declared by the uploader.
v1.0.0
757fa3a5d29f97b6...Changelog
Update 1.0.0 — Fast Travel, Teleportation, Dynamic tags for Lore Entries and World Import/Export
FULLY BACKWARD COMPATIBLE
I am still in the processing of testing but it has looked very good so far. Please, do report any bugs or issues you face or if you have any suggestions.
Finally, I've implemented everything I wanted to implement. I still have several ideas in mind but this can now be considered a full 1.0.0 release.
This update brings major quality of life improvements to exploration, world sharing, and lore management. Travel is faster, worlds are portable, and your lorebook created via the script UI can have dynamic tags.
Fast Travel & Teleportation
Five new ways to move around your world are now available. All options can be configured in Settings → Travel Options.
Carriage Service
Travel between discovered settlements using hired carriages.
Choose between:
- Commoner Wagons cheaper but slower
- Noble Carriages faster and more comfortable
Time passes during travel and encounters are possible, though less frequent than on foot. Available in cities and towns.
Train Service
Perfect for semi-modern settings.
Enable this option to add train stations to settlements.
Trains are faster than carriages and have even fewer encounters. Disabled by default.
Teleportation Gates
Magical gates that allow instant travel with no time passage and no encounters.
Three modes:
- Off
- Capitals Only
- All Major Settlements
You can teleport to any gate even if you haven’t visited it yet.
Free Teleportation
Click anywhere on the map to teleport instantly.
Ideal for powerful mages or for testing.
Optional narrative text can be toggled on or off.
Local Quick Travel
Fast travel to nearby cells within a configurable radius (1 to 12 hours).
Uses your current transport mode, so terrain and roads still matter.
Reachable cells are highlighted on the map; click one to travel.
Time passes and encounters may occur.
World Export & Import
You can now save your world to a file and share it with others or preserve it for safe keeping.
Find these options under Settings → World Management.
Export Options
- Map Only
Terrain, biomes, kingdoms, settlements, and roads. A clean slate for new explorers. - Map + Custom Lore
Everything above plus your custom lorebook entries. - Full Export
A complete snapshot of your world including encounters, progress, discovery state, and game time.
Importing Worlds
On the world generation screen (when no world is loaded), use Import an Existing World.
The script automatically detects which export type you’re loading.
If you want to delete your map
Please, do so manually via the native NovelAI script management menu. Go to the storage tab and clear the storage and story storage.
Then, delete the categories related to the world explorer.
THIS DELETES EVERYTHING.
Dynamic Lorebook Entries
Lorebook entries can now support tags/ variables that update themselves automatically as you explore.
When editing or creating an entry, you can insert template tags like {LastVisited} or {Biome} into the description.
These tags are replaced with real, current values inside the actual NovelAI lorebook, ensuring the AI always sees up to date information.
Available Tags
Visit Tracking
{LastVisited}, {LastVisitedCenter}, {SinceCreated}, {Visits}, {VisitsCenter}
Time
{Now}, {Date}, {TimeOfDay}, {Season}
Location
{Biome}, {Kingdom}, {Here}
Stats
{Explored}, {Distance}
A full reference list is available at the bottom of the create/edit form. If you click the name of any variable, it will show you a more detailed explanation on how to use it.
Entries show resolved values in the lorebook list, but display your original template text when editing.
Author-declared permissions
v0.9.9
c85c5bb10d9cfcae...Changelog
Map Quality & Settlement Placement
This is a major update that drastically improve wolrd generation. While backward compatible, you will not benefit from the world generation improvement unless you create a new map. This should be the last update to world generation.
Smarter Settlement Placement
Settlements no longer spawn directly next to each other, there's always at least a 1-cell gap.
Major settlements (capitals, cities, ports) maintain a slightly larger minimum distance from each other.
Minor settlements (towns, villages) no longer appear on kingdom borders, creating natural buffer zones.
Settlements biome placement is based on percentage that should feel more natural. Majority of settlement will be in preferred biomes.
However, a portion of minor settlements are guaranteed to spawn in harsh biomes (swamp, desert, tundra) for variety, and their descriptions reflect why people settled there.
Map Preview & Re-scatter
After generating terrain, you can now preview the full world map before committing to AI name and description generation.
Don't like the layout? Re-scatter POIs to randomize settlement and road placement while keeping the same terrain.
Or Regenerate Terrain entirely for a fresh start, all without spending any novelAI generation calls.
Adjacent Location Awareness
When a settlement and a point of interest (ruins, cave, shrine, etc.) are next to each other, their AI-generated descriptions now reference one another.
Major settlements will suggest names for adjacent POIs during world generation.
On-visit generation detects nearby locations and generates them in the right order so descriptions stay consistent.
Movement Blocking on Failed Generation
If on-visit location generation fails (e.g. token limit reached), movement is now blocked until resolved. This is for safety purposes. Please, give novelAI 4 minutes to replenish token limit.
A prominent retry button appears at the top of the Navigation tab so you can try again when ready.
Smaller Hotfix/ Improvement
In the navigation tab, the mode of transport are now chunked into rows of 3. If there are more than 6 modes of transport (i.e. more than 2 rows), it turns into a collapsible section.
Regarding the token limit, this is a limitation imposed by novelAI. I cannot do much about it except provide the below advise. I have also added it to the script vault description.
Output Token Limit
NovelAI scripts have a capped rate for how many output tokens they can generate within a given time window. Each script has an allowance of 2048 output tokens every 4 minutes.
When your script generates text, the tokens used are deducted from your available pool and placed into a temporary “bucket”. Those tokens are restored back to your available pool only after both of the following conditions are met:
Four minutes have passed since the generation that consumed those tokens.
The user has interacted with either the script’s UI or the editor manually.
This means that long outputs or rapid consecutive generations can temporarily exhaust the token pool, and the script must wait for both the time window and user interaction before the allowance refills.
Author-declared permissions
No permissions declared by the uploader.
v0.9.8
b8e6d89f935fc2f7...Changelog
There was a small bug. where selecting a template correctly loaded the data, but the text boxes did not display it. This is fixed now and fields update as expected.
Author-declared permissions
No permissions declared by the uploader.
v0.9.7
17f576fe1210324e...Changelog
quick update. I am still in the process of testing it but thought to share it immediately as it majorly improves world generation.
Added:
- You can now create a custom mode of transportation using any built‑in mode as a template. All associated data, including movement sentences, will be copied over, giving you a richer starting point that you can freely edit.
- You can now change the world theme at any point during generation, for any reason. A new button lets you abort not the current generation, but the next one, making theme switching easier. World themes can also be changed during playthrough.
Author-declared permissions
No permissions declared by the uploader.
v0.9.5
5aaee27c174a932c...Changelog
This brings mostly major improvements and fixes instead of truly new features.
Generation Quality Improvement:
- Kingdom and settlement descriptions during world generation have been significantly improved. Kingdoms now generate with full detailed paragraphs, while major settlements produce 2 to 3 sentence descriptions that match the quality of Places of Interest generated during playthrough.
- Added detailed biome descriptions that can be toggle on or off at the world generation step. When enabled, biomes generate with 1 to 2 sentences instead of a simple type label. I recommend keeping this enabled. World generation took roughly the same amount of time with or without it enabled.
- Names and descriptions are produced in a single AI call so they stay coherent (I tested this and the script has been able to parse them from the single generation without any issue)
- Added retry logic on the off chance parsing fails.
On my side, I only encountered two failures during world generation, and both were caused by NovelAI hitting the token limit. Otherwise, world generation took roughly the same amount of time as before this update, usually 10 to 15 minutes. The script lets you resume from the point of failure if anything goes wrong.
Parsing failures are unlikely, but they can happen if NovelAI outputs text in an unexpected format. I did not encounter this issue at all, but the retry system should handle it if it ever occurs.
Backend improvements:
- Script data has been moved from account storage level to story storage level. This means you can now create individual maps for each story. Copying a story still carries over the data.
If you want to export your map before the import and export feature is fully implemented, please use the NovelAI native export option in the script storage tab. - This last point does not affect players directly, but it is worth mentioning. Hidden HTML markers are created when encounters are triggered. I have enriched the hidden HTML marker for hostile encounters. The new format embeds several metrics. These metrics will eventually be used by a future separate script for battling, difficulty management, xp assignment, and leveling. I have not started working on that script yet, not even the brainstorming phase. This is planned for much later. However, I wanted to prepare the hidden markers in advance. The separate script will act as a companion to this one.
Backward Compatibility
The script is still technically backward compatible, but older versions simply won’t benefit from the new world‑generation improvements. Apologies for the inconvenience. Until we reach release v1.0.0, some compatibility limitations are expected along the way.
This update is probably the least backward‑compatible one so far. The remaining updates should maintain backward compatibility without any issues.
Author-declared permissions
v0.8.1
fdc0017fdf20809e...Changelog
Initial release: Procedurally-generated world exploration system - Still a work in progress
Author-declared permissions
No permissions declared by the uploader.