Skip to content
All guides

Open World RPG Builder

Make an open world action RPG in Godot — seamless regions, quests, day and night, fast travel — without writing code. Free.

An open world action RPG: regions you walk between with no loading screens, quests that track themselves, a day and night clock, and waypoints. It has everything the Action RPG Builder has — real-time combat, enemy behaviours, skills, levels, events — plus the world grid on top. The sample game, **Wayfarer**, uses all of it.

The six screens

  • **Game** — title, hero class, start point, starting level and gold, the starting hour, and how fast time passes.
  • **Database** — hero classes, enemies, skills, items, quests, waypoints, regions and zones.
  • **Events** — dialogue, quests, rewards, waypoints, doors.
  • **World** — lay your regions out side by side.
  • **Maps** — paint regions, place people, enemies and waypoint stones, play-test.
  • **Art** — sprites and backdrops.

Controls in the game

  • **Move** — WASD / arrows, left stick or D-pad.
  • **Attack / dodge / skill** — J / K / L (gamepad X / B / Y). Q switches skill.
  • **Talk** — E (gamepad A).
  • **Menu** — Esc: quests, world map, fast travel, items.

Getting it running

  • Install **Godot 4.4 or newer** (the standard build, not .NET) from godotengine.org. Godot doesn't install — unzip it and run it.
  • Unzip the Open World RPG Builder somewhere you keep projects, for example `Documents\Godot`.
  • In Godot's Project Manager press **Import**, browse into that folder, pick `project.godot`, and press **Import & Edit**.
  • First open takes a few seconds while Godot imports every image and sound.
  • At the top of the editor, next to 2D, 3D, Script and AssetLib, click **Open World RPG Builder**. That's the Builder.
  • Press **Play from start** at the top right. Take jobs in Hollowbrook, hunt wolves on the Kingsroad, gather herbs in Mirewood (it gets dangerous after dark), and find what's guarding the Stonewatch Ruins.

The World screen

Your world is a grid of regions, each one a map. Walk off the edge of one and you arrive in the next.

  • Make the region's map first on the **Maps** screen, the same size as its neighbours.
  • Open **World** and click an empty square next to an existing region.
  • Type an id (`desert`) and press **Add region here**. Give it a name, pick its **Map**, and choose its colour on the in-game world map.
  • Press **Save world**. **Open map** jumps to painting it; **Play here** starts the game in it.

The Game screen

Title, hero class, where a new game begins (map and tile x, y), starting level, gold and skills, the **Starting hour**, and **Real minutes per day** — how long a full day and night lasts. Save after changes.

Working in the Database

Tables on the left, entries in the middle, the selected entry's fields on the right. Pick a table, pick an entry, change the fields, and press **Save** at the top right. **Reload** throws away anything unsaved.

To add something: type a short id in the box under the entry list (lowercase, no spaces — `goblin`, `fire_sword`), then press **+** for a blank entry or the duplicate button for a copy of whatever is selected. Duplicating is the fastest way to make anything: copy the closest thing you already have and change what's different.

Need a field that isn't there? Type its name in **add a custom field** at the bottom of the form and press **+**. It's saved with the entry and your own scripts can read it.

What each table is for

  • **Hero classes** — level-1 stats and how they grow.
  • **Enemies** — behaviour (*chase*, *charger*, *shooter*, *wander*), stats, sight range, colour, rewards and drops.
  • **Skills** — projectiles, novas and heals, learned at a level or from an event.
  • **Items** — potions, ethers, quest items.
  • **Quests** — a name, who gives it, a description, objectives, rewards, and whether it finishes by itself.
  • **Waypoints** — fast-travel spots: a name, map and tile.
  • **Regions** — which map sits where on the grid. Easier on the World screen.
  • **Zones** — groups of maps, handy for music and backdrops.

Quests

Each quest has a list of **Objectives**. Press **Add** under Objectives for each one and pick its type:

  • **kill** — defeat *count* of an enemy. Target is the enemy id.
  • **collect** — carry *count* of an item. Target is the item id.
  • **flag** — a switch is on. Target is the switch name.
  • **reach** — walk into a region. Target is the map's id.

**Shown as** is the text in the tracker, like "Grey Wolves defeated". Tick **Finishes by itself** for quests that complete the moment the objectives are done; otherwise the player hands it in to someone with a **Complete quest** command. **Take items** removes collected items when it's handed in.

Events — everything that happens

People who talk, signs, chests, doors, cutscenes, bosses. An event is a list of commands that run top to bottom.

  • Open **Events**, type an id at the bottom of the list (`old_man`) and press **+**.
  • Give it a **Name** so you can find it later.
  • Optionally fill in **Run once (switch)** with a switch name like `chest_open` — the event runs once, turns that switch on, and never runs again. Exactly what a chest needs.
  • Press **Add command**, pick what should happen, fill in its fields, keep adding.
  • **Save**, then place it on a map — that's where you choose whether it starts on talk, on touch, or as soon as the map loads.

**Choice** gives the player options, each with its own list of commands. **If / else** checks a switch, an item, gold, a level or how many of an enemy were defeated, and runs Yes or No. Select an option inside one of those before pressing Add command and the new command goes inside it.

The commands

  • **Show text**, **Choice**, **If / else**, **Set switch**, **Give item / Give gold**, **Learn skill**, **Heal hero**, **Spawn enemy**, **Transfer player** — as in the Action RPG Builder.
  • **Start quest** — adds a quest to the log and starts tracking it.
  • **Complete quest** — hands it in and gives the rewards, but only if its objectives are done.
  • **Discover waypoint** — unlocks a fast-travel spot.
  • **Set time of day** — jump the clock, for example to morning after resting at a campfire.
  • **Wait, Label, Jump to label, End event** — timing and flow control.

Maps

  • **Maps > New map**: name it, pick a zone, set the size in tiles, press **Create map**.
  • Select it and press **Open**. Godot switches to the 2D view.
  • In the **Scene** panel click the **Ground** layer — the TileMap panel opens at the bottom. Click a tile, then click or drag to paint. Right-click erases; the rectangle and bucket tools fill big areas fast. **Ctrl+S** to save the map.
  • Back in the Builder, use **Place on the open map** to put an event or a spawn down, then switch to 2D and drag it where you want. It snaps to the grid. **Ctrl+S**.
  • **Play here** on the Maps screen starts the game on that map — the fastest way to test one area.

Enemy spawns can be set to appear any time, only by day, or only at night.

Day, night and waypoints

A clock runs while the player explores and shows on the HUD. The sky darkens in the evening and lightens at dawn; set how fast it runs on the Game screen.

  • **Night-only enemies** — when placing an Enemy spawn, set **Appears** to Night only or Day only. Already placed? Select it in the Scene panel and change it in the Inspector.
  • **Resting** — a campfire event with a **Choice** ("Rest until morning?"), and in the Yes option **Set time of day** to 7:00 plus **Heal hero**.
  • **Waypoints** — add one in Database > Waypoints with a name, map and tile; make an event with **Discover waypoint**; place it looking like a **Waypoint stone**, starting on Interact. Once found it appears under **Fast travel** in the menu.

Your first region and quest

  • **Maps**: New map Dunes, the same size as Kingsroad. Paint paths and rocks, keep the west edge open. Ctrl+S.
  • **World**: click the empty square east of Kingsroad, add region `dunes`, pick the Dunes map, **Save world**.
  • **Database > Enemies**: duplicate Grey Wolf as `dune_stalker`, name it Dune Stalker, behaviour **charger**. Save. Place four spawns on the dunes map. Ctrl+S.
  • **Database > Quests**: add `stalkers`, name "Sand in the Teeth", giver "Scout Ila". Objective: kill, `dune_stalker`, 4, "Dune Stalkers defeated". Rewards 60 gold, 40 EXP. Save.
  • **Events**: `scout`. If / else on switch `got_stalkers`. No: Show text, **Start quest** `stalkers`, Set switch `got_stalkers`. Yes: **Complete quest** `stalkers`. Place her in Hollowbrook, Ctrl+S, **Play from start**, and walk east twice.

Your own art

The sample uses plain placeholder art so you can see how the pieces fit. Open **Art** in the sidebar, press **Import from a folder…** for the kind you're adding, and pick the folder your images are in — they're copied into the project. Then pick the new image in the entry's image field in the Database and press Save.

  • **Sprites** — PNGs for enemies and the hero, picked in Enemies > Sprite.
  • **Backdrops** — big images for zones and the title screen.
  • **Tiles** — replace `assets/tiles/placeholder_tiles.png` with your own sheet in the same order, or add tiles to `assets/tiles/tileset.tres`.

When something doesn't work

  • **My change didn't show up** — Save on the screen you changed, **Save world** on the World screen, and Ctrl+S on any map you edited.
  • **I can't walk into the next region** — check both regions are on the grid and next to each other, and that the edge tiles aren't walls or water.
  • **A quest won't complete** — check the objective's target id matches the enemy, item, switch or map id exactly.
  • **I broke a table** — press **Reload** before saving to undo. Keep a copy of `data/` as a backup.

Credit, and publishing what you make

The Open World RPG Builder is free to use, including in games you sell. The one thing it asks is a line somewhere players can see — credits screen, store page, About box:

The full terms are in `LICENSE.md` in the project folder.

If you make something you're proud of, I publish selected games made with the Builders — help with the store page, promotion here, and a revenue split agreed per game. It's optional and you keep your game either way. Send a message to ask.

Where things live in the project

  • `data/` — every table as a JSON file. The Builder reads and writes these; back them up or edit them by hand.
  • `assets/` — images, tiles and sounds.
  • `game/` — the game itself. You never have to touch it, but it's plain commented GDScript if you want to.
  • `addons/` — the Builder.

Made something with it? Publish it here — rough and unfinished is welcome.