GoNorth: story, quest and dialog planning for open world games
GoNorth is a story and content planning tool for RPGs and other open world games.
At a glance
- What is it?
- GoNorth is a self-hosted web application where a game team plans chapters, quests, NPCs, dialogs, items and skills as node graphs and connected objects, then exports them as JSON and scripts through a Scriban template system. It is an ASP.NET Core app with a MongoDB backend and a heavy front end.
- Who is it for?
- Adopt GoNorth if your team writes open world RPGs and has outgrown spreadsheets for quest and dialog planning, and you want the planning data to survive into the game as exported JSON and scripts rather than staying in a wiki. Do not adopt it as a game engine or a runtime content system, since it is a planning tool that produces export artefacts, and expect an ASP.NET Core and MongoDB footprint rather than a static site.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 4 days ago.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
A planning tool for the writing team, not the engine
GoNorth is described as a web application used for planning the story and world of RPGs or other open world games, and it is cross-platform ready, provides multilanguage support and is designed as a responsive layout. The module list tells you what it is not. There is no gameplay code here, no rendering, no asset pipeline, just the design surface where a team decides what the quests are and what the NPCs do. The modules cover a timeline view for a quick overview of changes, chapters and quests, NPCs, dialogs, items and skills, exporting of those objects, bulk export and import of values, a wiki with versioning, a map component, tracking of implementation status, a task tracker and GDPR support. That last entry is unusual for a game planning tool and hints that GoNorth is used in studios with formal compliance requirements.
Chapters and quests become node graphs
The chapter and quest module, called Aika, plans the chapters of a game and the branching story through a node system that connects the different quests and their possible outcomes together. A similar node system is created for the quests themselves, so a quest is also a graph rather than a document. The payoff is described in terms of context, since each quest shows the connections to maps, wiki pages and other objects, providing a view on the big picture while planning the quest. For an open world, that is the actual problem. A quest in such a game is rarely a self-contained unit, it triggers a map marker, unlocks a wiki page and hands the player a new item, and a linear document hides those links while a graph makes them the primary thing you see and move.
NPCs, items and skills come from templates
The module set for NPCs, items and skills is called Kortisto, Styr and Evne, and it offers planning for those objects with flexible values. The workflow is template based, since you create templates and then create new NPCs, items and skills based on them, which is how a studio keeps a hundred goblins consistent. Each object displays the different maps in which the NPC or item is marked, the wiki pages in which it is mentioned and all other connections, so the editor sees what else has to change when a value moves. For balancing and moving data, bulk exporting and importing of values and objects is supported. The daily routine planner belongs to the same NPC module, letting you define movement targets and scripts that run at a certain time of day, which is the feature that turns a static cast into a living world.
Dialogs and NPC state machines are both graphs
The dialog planning module, named Tale, lets a user create branching dialogs for the different game characters as a node system, with different node types for player or NPC lines, player choices, conditions and actions. Statistics such as word count are supported, which sounds trivial until you have a thousand lines of dialogue and a writer who wants to know which branch is the longest. Separately, GoNorth supports creating state machines to aid in developing the AI of different monsters and NPCs. In addition to defining states and transitions you can associate a script with each state in order to export the state machine later on, so the behavioural definition lives with the design and leaves the tool as an artefact, rather than being retyped by a programmer.
Export turns the planning into game data
Everything is designed to leave the tool. GoNorth supports exporting NPCs, dialogs, skills and items to JSON and to scripts, and the scripts can be adjusted using a template system with different placeholders for values, learned skills, inventory and dialogs. To keep that template system flexible, GoNorth uses Scriban for the export, which is a text template engine for the .NET world. For localisation, strings can be exported as language keys and localizable language files can be exported alongside, which is how a multilanguage product stays out of the source data. The extra layer is export snippets, hooks in the templates that can be filled by the different NPCs, items or skills, so a single template can produce a special behaviour such as adding a quest log message when an item is picked up. The DefaultExportTemplates directory in the repository is where those templates live.
The wiki and the map are tied into the same graph
Two components make GoNorth more than a set of tables. Kirja is the wiki component, and apart from letting the user write pages it features versioning and a tight integration into the other systems, so a wiki page can reference the quests and NPCs it documents. It also allows attaching additional planning files, and it has a review system integrated so feedback can be collected and merged into the page. External sharing of wiki reviews can be enabled, generating a link with a strong token so people outside the studio can comment, which is a practical answer to the fact that writers and playtesters are rarely on the same VPN. Karta is the map component, where a user uploads a high resolution map image which is then transformed into an interactive map similar to Google Maps, on which quest markers, NPCs, items, wiki pages and map changes can be positioned, with each marker carrying brief information about the object behind it.
Deployment is ASP.NET Core with Mongo and named volumes
The deployment section points to wiki pages for a normal deployment, a Docker deployment and an installer deployment, plus the official Microsoft documentation on hosting an ASP.NET Core application, which tells you the shape of the thing. The Dockerfile in the repository confirms the stack, starting from the .NET 8 SDK image for the build and ending on the ASP.NET 8 runtime with the entrypoint running GoNorth.dll:
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build-env
WORKDIR /appThe compose file adds MongoDB and a set of named volumes for the uploaded assets, which are declared as external so you create them yourself:
mongo:
image: 'mongo'
volumes:
- GoNorthMongoData:/data/dbThe service publishes port 5000 mapped to 80, and the web container mounts MapImages, NpcImages, KirjaFiles, ItemImages, TaskImages and SkillImages. The licence is MIT. One curiosity in the tree is that the primary language is recorded as JavaScript, which comes from the front end assets, with .bowerrc and bundleconfig.json next to a C# codebase, so the UI is a legacy style asset pipeline layered on a modern .NET host.
Editorial conclusion
Adopt GoNorth if your team writes open world RPGs and has outgrown spreadsheets for quest and dialog planning, and you want the planning data to survive into the game as exported JSON and scripts rather than staying in a wiki. Do not adopt it as a game engine or a runtime content system, since it is a planning tool that produces export artefacts, and expect an ASP.NET Core and MongoDB footprint rather than a static site. Verify first which of the module names map to your workflow, since the modules are separate wikis, check that the export templates in DefaultExportTemplates fit the format your engine imports, and note that the newest tagged release, v1.9.1.6, is the .NET 8 upgrade from July 2025.
Frequently asked questions
What is GoNorth used for?
It is a web application for planning the story and world of RPGs or other open world games, covering chapters, quests, NPCs, dialogs, items, skills, a wiki and a map. It is a planning tool that exports data for the game rather than a runtime.
How are quests and dialogs modelled?
Chapters and quests are planned as node systems connecting quests and their possible outcomes, and dialogs use a node system with different node types for player or NPC lines, player choices, conditions and actions, with word count statistics supported. NPC behaviour is planned with state machines whose states can carry scripts.
How does GoNorth export data for the game?
NPCs, dialogs, skills and items are exported to JSON and to scripts using a template system with placeholders for values, learned skills, inventory and dialogs. The templates use Scriban, strings can be exported as language keys with localizable language files, and export snippets add per object hooks.
What does GoNorth need to run?
The application is an ASP.NET Core app backed by MongoDB. The Dockerfile builds on the .NET 8 SDK image and the compose file runs a mongo service with named volumes for MapImages, NpcImages, KirjaFiles, ItemImages, TaskImages and SkillImages, publishing port 5000 as 80.
What is the wiki and map component of GoNorth?
Kirja is the wiki, with versioning, integration with the other modules, attached planning files, a review system and external sharing through a token link. Karta turns an uploaded high resolution map image into an interactive map where quest markers, NPCs, items, wiki pages and map changes can be positioned.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/steffendx-gonorth)Was this useful?