Open-source project
Nodragem/top-down-action-adventure-starter-kit avatar
Nodragem/top-down-action-adventure-starter-kit

A Godot starter kit that teaches the mechanics instead of hiding them

A small prototype to learn implementing basic gameplay mechanics in Godot Engine

545 stars57 forksRoffCC0-1.0

At a glance

What is it?
This top-down action adventure starter kit for Godot 4 is written as a teaching project, and the structure shows it: a switch hub that wires doors and enemy spawners to short, long and area triggers, an enemy driven by a behaviour tree, a character controller with four input schemes, and a debug layer that shows you internal state on a keypress.
Who is it for?
Adopt this starter kit if you are learning to build gameplay in Godot 4 and want working systems to read rather than a template to copy. Skip it if you need a production-ready foundation, since the project describes itself as work in progress, and if you cannot install editor add-ons, since the dialogue and behaviour systems require them.
Can I use it commercially?
Yes. CC0-1.0 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 57 days ago.
What is it written in?
Mainly Roff, 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 teaching project, and its version story

The repository is described as a small prototype to learn implementing basic gameplay mechanics in Godot Engine, and the README calls it a work-in-progress of an action adventure starter kit for Godot 4.

That framing matters, because it sets expectations about what you are looking at. This is not a game framework with a large asset library and a clean abstraction layer. It is a working project where each system is implemented in a way you can read, which is a different and often more useful thing for a learner.

The version information is stated in a note with a caveat: developed in and compatible with Godot 4.3, and it looks like MeshLibrary is breaking compatibility with 4.2. That is an unusually honest note, because it identifies a specific engine feature as the source of the incompatibility rather than saying only that older versions are not supported.

MeshLibrary is the Godot feature that bakes several meshes into one to reduce draw calls, and it is the kind of thing that changes between engine versions. If your Godot is older than the one the project was built with, that is likely the first thing to look at when the project does not open cleanly.

The release tags tell a slightly more complicated story. The most recent is v.0.9.1, titled Update to Dialogic 20 and Godot 4.7, from 2026-08-27. So the project was updated to Godot 4.7 and Dialogic 20 while the README still says 4.3. The project is active, but the documentation trails the code, which is a normal state for a project whose author is the only one working on it.

The licence is CC0-1.0, which is a public domain dedication and the most permissive choice available. The project is not archived, the default branch is main and the last push was on 2026-08-27.

One oddity in the repository metadata is that the primary language is listed as Roff, which is the markup of Unix manual pages. That is almost certainly a misclassification, since the project is a Godot project made of GDScript files, and it is the sort of thing that happens when a repository contains a man page alongside the code.

Getting it running, which takes eight steps

The loading instructions are numbered, and they are worth following in order because two of them involve downloading things that are not in the repository.

You clone or download the repository in a folder, then open the project in Godot. The documentation warns that there will be a lot of errors, because of missing add-ons. Then you click on AssetLib, search for Beehave and install it. Then you download Dialogic2 from the project repository, as a specific tagged archive.

The Dialogic step is specific in a useful way. You unzip the download, find the dialogic folder inside the addons folder of the archive, and paste it into the res://addons folder of the Godot project. The dialogic folder itself is not enough, because it has to sit inside the addons directory where Godot looks for editor plugins.

Then you go in Project and Project Settings, in the Plugins tab, and activate both Beehave and Dialogic. Optionally, for your peace of mind, you might want to reload the project. And then you run the game.

So two plugins are needed and neither is in the repository. Beehave comes from the AssetLib, which is the editor's own package manager and the normal route. Dialogic2 comes from a GitHub archive at a pinned tag, 2.0-alpha-14, which is an alpha release and is why the step is manual rather than an AssetLib install.

The fact that the project ships without its add-ons is worth understanding rather than resenting. Add-ons are separately versioned plugins with their own release cycles, and bundling a copy of Dialogic inside the repository would mean two sources of truth for it. Making the user install it explicitly keeps the versions visible, and the release tag titled Update to Dialogic 20 shows the project tracking the plugin's own versioning.

The consequence is that the project does not open cleanly on first run, and the documentation says so up front rather than letting you discover it.

The credits tell you what the project is built on

The credits section is unusually complete and it is the fastest way to see the design of the project.

The 3D assets come from Kaykit Prototype Bits by kaylousberg, used as a base, and they are free. Prototype assets are a deliberate choice for a starter kit: they are placeholder-quality but consistent, and consistency is what you need when you are building systems rather than looking at a finished game.

The dialogue manager is Dialogic2, used for all the dialogues and cutscenes. The decision tree add-on is Beehave, used for the enemies. The input prompt and interface sound assets are by Kenney. And the building block of the DebugLayer comes from the kidscancode tutorials, specifically the debug overlay recipe.

That last credit is the most informative one, because the debug layer is the feature that makes this a teaching project rather than just a demo. Displaying properties when pressing L is listed as work in progress, and the kidscancode recipe it is built from is a well known approach to showing a debug panel with live values in a Godot project.

So the dependency picture is: Godot for the engine, Dialogic for anything narrative, Beehave for anything that decides, an asset pack for the visuals, and a community tutorial for the developer overlay. Every one of those is a well known project in the Godot ecosystem, and picking known ones is exactly right for a project whose purpose is to be read.

The author also asks readers to follow on Twitter for regular updates about the development and coming features, which tells you this is a solo project with an active development log rather than a finished thing that stopped.

The systems, one by one

The feature list is the substance of the repository, and each entry is a mechanic with a video demonstrating it.

The levels are gridmap powered. The documentation shows how GridMap and NavMeshRegion are used together, and how the levels are organised, with a diagram of the gridmap layers. That combination is the standard way to build a level in Godot from a tilemap-like set of cells while still getting proper navigation, and pairing the two is the thing the section is teaching.

The enemies use behaviour tree based AI, with Beehave implementing a simple chase and hit behaviour. Behaviour trees are the right structure for that particular job, because an enemy's decisions are a readable tree of states rather than a tangle of conditions in a script.

The character controller supports gamepad or keyboard, with a choice between four controller schemes. The camera follows the main character and can be rotated with the right trigger and left trigger.

The animation system is based on a Blend Tree with a fully modelled and rigged character, and the game logic is based on a state machine, inspired by the GDQuest tutorials. So the two halves of a character are split in the conventional way: the visual side blends animations, the logic side is a state machine.

The switch system is the most reusable piece. Short switches, long switches and area switches can control enemy spawners and doors through a switch hub, and there is an example of closing the doors and starting the enemies when the player walks into a room. A switch hub with different trigger types feeding a single set of consumers is a small pattern that scales to a whole level.

The cutscenes and game events use Dialogic, with a section on creating dialogues that react to player interactions and another on making cutscenes with the Animation Player and Dialogic. The advanced import methods section covers how the GLTF files become destructible objects on drag-and-drop.

The game feel section lists destructible elements, hit feedback, particles and recoil animation, with more to come, and a separate section deals with the detail that the collision layers are set up to reproduce the infinite_inertia property, which was dropped in Godot 4. That is a nice touch of continuity with the previous engine, and it is the kind of specific compatibility work that is tedious to rediscover.

And there is a debug layer and stats section, which displays properties when pressing L, marked as work in progress.

Controls and the four controller schemes

The controls section is specific enough to be useful, and the four schemes are the part that shows the thought behind the character controller.

Pressing the start button of your gamepad opens a menu where you select between three controller schemes, and the documentation names them.

The one stick controller moves with the left stick, aims with the left trigger and shoots with B. The two stick controller moves with the left stick, aims with the right stick and shoots with the left trigger. The two stick auto-shoot controller moves with the left stick, aims and shoots with the right stick, and moves the camera with the right trigger and left trigger.

The three are variations on where the aiming and firing go, which is the classic problem of console shooters. Trigger aiming is comfortable but means you cannot walk and shoot independently without a modifier. Right stick aiming and right stick firing are the standard modern solution but are tiring. The auto-shoot variant trades accuracy for convenience by firing whenever you aim.

And the documentation is honest about the current state: if you have no gamepad, only the one stick controller works at the moment. The keyboard mapping is move with the arrow keys, jump with the space key, aim with the Q key and shoot with the W key, and you can only shoot if you are aiming.

That last constraint is a deliberate carry-over of the gamepad scheme into the keyboard one, since the keyboard scheme is a translation of the one stick layout rather than an independent design. It means the keyboard and the gamepad behave the same way, which is the right choice if you are switching between them.

The debug layer can be toggled with the L key.

The fact that the controller scheme is chosen at runtime from a menu rather than fixed in a settings file is the interesting design decision. It means the game can be handed to a different player, or you can test a different scheme without reconfiguring, and the cost is that the player has to make that choice once at the start.

The repository, and what it is for

The repository layout shows a project with a tidy separation between the game and the tooling.

There is scenes/ for the scenes, characters/ for the character resources, assets/ for the imported art, ui/ for the interface, and tools/ for the editor tooling. There is script_templates/ which is a Godot mechanism for generating script files with a standard header, so every new script in the project starts the same way.

Then there are the top-level files that reveal the structure of the code. health_manager.gd sits at the root alongside its .uid file, which is the Godot 4 file identifier that the engine uses to track resources, and a standalone health manager at that level suggests it is a singleton or a globally accessible system rather than something attached to a particular scene.

There is project.godot, which is the project settings file, project_icon.png and its import file, a .vscode/ directory for editor configuration, a TODO.md and a .gitignore.

The interesting thing about a project of this kind is what it is not. There is no build system, no packaging step and no plugin architecture. It is a Godot project you open in the editor, and the value is entirely in the scenes and scripts inside it.

That makes the comparison straightforward. Against a commercial starter kit, this one is smaller, less polished and entirely readable. Against a tutorial series, it is a working example of everything the tutorials teach in one coherent project, with the video links in the README showing the author walking through each system.

The learning path the project implies is also worth naming. The feature sections run from the level construction through the enemies, the controller, the animation, the switches, the cutscenes, the import pipeline and the game feel, and each one is a system you would otherwise have to work out on your own.

So the sensible way to use it is to open it in Godot, run it, and then read the system that matches whatever you are trying to build next. The two add-ons have to be installed first, and the README's eight steps are the shortest route to a running project.

Editorial conclusion

Adopt this starter kit if you are learning to build gameplay in Godot 4 and want working systems to read rather than a template to copy. Skip it if you need a production-ready foundation, since the project describes itself as work in progress, and if you cannot install editor add-ons, since the dialogue and behaviour systems require them. Verify first which Godot version you are on, because the project targets 4.3 and the compatibility notes mention both a MeshLibrary problem on 4.2 and a release that updated to 4.7.

Frequently asked questions

What is the Godot top-down action adventure starter kit and what does it teach?

It is a work-in-progress starter kit for a top-down action adventure game in Godot 4, described as a small prototype for learning basic gameplay mechanics. Its systems include gridmap levels paired with NavMeshRegion, enemies with behaviour tree AI built on Beehave, a character controller with four input schemes and a Blend Tree animation setup, a state machine for game logic, a switch system with short, long and area triggers feeding a switch hub, Dialogic cutscenes, destructible elements with hit feedback and particles, and a debug layer that shows internal state on a keypress.

How do I get the Godot starter kit running for the first time?

Clone or download the repository and open it in Godot, where you will see errors because two add-ons are missing. Install Beehave from AssetLib, download Dialogic2 from its repository as the 2.0-alpha-14 archive, unzip it and paste the dialogic folder into the res://addons folder of the Godot project, then activate both Beehave and Dialogic under Project and Project Settings in the Plugins tab, optionally reload the project and run the game.

Which Godot version does the starter kit support and how do the controls work?

It is developed in and compatible with Godot 4.3, with a note that MeshLibrary appears to break compatibility with 4.2, while the most recent release updates the project to Dialogic 20 and Godot 4.7. For a gamepad, pressing start opens a menu to choose between three controller schemes covering one stick, two stick and two stick with auto-shoot. Without a gamepad only the one stick scheme works at the moment: move with the arrow keys, jump with space, aim with Q and shoot with W, and you can only shoot while aiming.

Official sources

  1. Issues
  2. License: CC0-1.0
  3. Nodragem/top-down-action-adventure-starter-kit on GitHub
  4. README
  5. Releases
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.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/nodragem-top-down-action-adventure-starter-kit.svg)](https://hysenlabs.com/projects/nodragem-top-down-action-adventure-starter-kit)

Was this useful?