Download, install, and launch ED5 MMO Studio.
Installation & Setup
Getting started takes just a few minutes.
Download#
Download the ED5 MMO Studio installer from the Download page (sign in, or enter your license key, to unlock it). The desktop app is Windows only for now — a .exe installer. macOS and Linux builds are not available yet; on those systems use the browser editor (Studio and Enterprise licenses, or the free trial).
System requirements#
| Operating system | Windows 10 or 11, 64-bit |
| Disk space | Room for the installer (over 1 GB) plus the engine it unpacks on first launch |
| Internet | Needed for the first launch and for updates |
Install#
- Run the installer and choose where to install. It adds Start menu and desktop shortcuts.
- If Windows SmartScreen says "Windows protected your PC", choose More info → Run anyway. The installer isn't code-signed yet, so Windows doesn't recognise the publisher.
- On first launch the Studio unpacks the engine. Later updates replace only what changed.
You don't need to install anything else to build and play your game — the Studio brings its own runtime.
Gotcha: You don't need Node.js or pnpm to export either. From this version the Studio builds desktop and web exports on its own runtime, and the launcher shows Export tools: ready with "bundled" next to each. Two exceptions still need tools of their own: mobile exports need Android Studio (Android) or Xcode on a Mac (iOS), and a macOS game can only be built from the Studio running on a Mac. If the launcher ever shows Export tools: missing, your engine is from an older Studio — update the Studio, or click Install to add Node.js and pnpm the old way.
First Launch#
When you open the Studio for the first time:
- Studio opens directly into the Maps workspace — the world editor fills the main window right away
- The left app sidebar switches between major sections like Maps, World, Items, Settings, and Import / Export
- Inside Maps, the editor is split into a left map browser, a center canvas, and a right panel for tilesets, objects, or events
- A default database is created automatically — this stores all your game data locally

Settings#
Open Settings from the left app sidebar to configure:

| Setting | Description |
|---|---|
| Database Mode | Local (default, no setup needed), Docker, or Remote PostgreSQL |
| Game Server Port | Which port the game server listens on (default: 3001) |
| Client Port | Which port players connect to (default: 3000) |
| Admin Port | Which port the Studio editor runs on (default: 3002) |
| Database URL / PGlite Data Dir | Connection string for Docker/Remote modes, or the local embedded-DB folder |
| Auto-check for updates | Check for Studio updates on startup |
| Send crash reports | Desktop app only, under File → Studio Settings → Misc. Off until you say yes. Tick it to agree, untick it to refuse; either takes effect when you click Save, no restart. Reset to Defaults keeps a refusal and never turns reporting on. See Crash reports |
| Stop local services when admin closes | Shut the embedded server/client down when you close the editor |
| Show what I'm doing on Discord | Your Discord profile shows what you're doing in Studio (on by default). See Discord: Roles and Studio Status |
| …including the project's name | Adds the open project's name to that Discord status (off by default) |
| Project Template URL | Starter template used when creating new projects |
The map editor's auto-save interval is set separately from the editor's File → Autosave menu (Off / 5 / 10 / 15 min), not in Settings.
For most users, the default settings work perfectly.
Where to keep your projects#
Keep each project in a folder that no cloud-sync app syncs. New projects go in Documents → MMO Studio by default. If OneDrive backs up your Documents folder, the default moves to an MMO Studio folder directly inside your user folder instead.
A project's database is rewritten constantly while the editor and game server run. Google Drive, OneDrive, Dropbox and iCloud upload, lock or replace those files mid-write, and that can damage the database so the project will no longer open.
- Creating a project: if the location you pick is synced, the New Project dialog shows a warning under Location. Pick another folder with Browse….
- Opening a project: if the project is in a synced folder, Studio asks first. Choose Open Anyway or Cancel. Tick Don't warn me again for this project if you have made sure that folder is not synced.
- Moving a project out: close ED5 MMO Studio, move the whole project folder somewhere that is not synced, then open it from Open Project in the launcher.
To keep copies of your work elsewhere, use Project Backups and Publish instead of a sync folder.
Changing Database Mode#
Docker Postgres and Remote Postgres both need a Database URL — a Postgres connection string like postgres://user:password@host:5432/database. Studio will not let you save either mode without one, because the game server cannot start without a database to connect to.
| If you see | What it means |
|---|---|
| "Remote Postgres needs a Database URL" | You changed the mode but left the URL blank. Paste the connection string, or set the mode back to PGlite (Embedded). |
| "Database URL must start with postgres://" | You pasted your game server address (wss://…) into the database field. Those are two different settings — the server address lives in Server Control → Connection. |
| "missing a database name" | The string stops at the port. Add the database on the end, e.g. …:5432/postgres. |
| The server says "Database configuration is invalid" | The URL is reachable but the credentials or database name are wrong. Studio deliberately does not retry this — fix the URL and start the server again. |
PGlite (Embedded) is always a safe place to go back to. It needs no URL and no setup. If a database change leaves your project unable to start, reopen Settings → Database, set the mode back to PGlite, save, and start the server — you do not need to restore a backup.
If the editor itself will not open — it freezes or sits on the loading screen because the database it points at never answers — you cannot reach Settings, so do it from the launcher instead. Close the editor window, hover the project under Recent Projects, and click Use embedded DB. That switches the project back to PGlite without opening it, keeps your connection string so you can try again later, and changes nothing else. You do not need to back up or restore the project folder first.
Using Supabase#
Supabase gives you more than one connection string, and they are not interchangeable:
| String | Host | Use it? |
|---|---|---|
| Transaction pooler | aws-N-<region>.pooler.supabase.com:6543 | Yes — use this one. Reachable over IPv4 and IPv6, and it shares its connections, so the editor, the local game server and your live server all fit. It is what the engine uses internally anyway. |
| Session pooler | aws-N-<region>.pooler.supabase.com:5432 | Not recommended. Every open connection holds one of a small number of slots (about 15); the editor, the game server and your live server together can fill them, and the editor then freezes while it retries. |
| Direct connection | db.<ref>.supabase.co:5432 | Only from a server. It resolves over IPv6 only — the same string that works on your VPS will usually time out on a laptop. |
Copy one from Supabase → Project Settings → Database → Connection string → Transaction pooler, and remember to replace [YOUR-PASSWORD] with your real database password. Studio warns you if you paste the Session pooler or the direct connection string.
If the editor cannot reach a database your VPS connects to happily, or freezes after several connection retries, check which string you pasted — switch to the Transaction pooler string. Your VPS can keep the string it already has.
Saving a database change#
Studio only acts on settings you actually changed. Saving a new Docker or Remote database shows Preparing the database next to the Save button until the schema is ready — leave Studio open until it finishes. Saving other settings (ports, updates) does not touch your database.
The first switch takes a few minutes#
When you save a Docker or Remote database for the first time, Studio has to create the engine's schema on it — 200+ migrations, one round trip each. On a remote server that is minutes, not seconds. Studio tells you it has started and logs Database schema is up to date ✓ when it finishes. Leave it open.
If the schema cannot be created — the database is unreachable, the credentials are wrong, or it takes so long that Studio gives up — the switch is undone and your previous database setting is kept, so the editor still opens. You will see the reason in Settings. Nothing is left half-applied, and you never need to restore a backup to recover.
Quick Test#
- Stay in Maps when Studio opens, then click Create first map in the map browser or use the + button at the bottom-left
- Paint some terrain with the brush tools
- Launch Game → Playtest (Ctrl+P) from the editor menu bar to open the game client
- You should see your character standing in the map you just created!
When Something Goes Wrong#
If a Studio window stops working — it turns blank, or part of the app crashes — Studio tells you instead of leaving an empty window, and offers three choices:
| Choice | What happens |
|---|---|
| Reload window | Reopens the window where it was. Saved work is safe; anything unsaved in that window is lost. |
| Export diagnostics… | Saves a diagnostics folder (see below), then reloads the window. |
| Close window | Closes it. |
Exporting diagnostics for a bug report#
- In the Studio launcher (the project picker), click Export diagnostics in the links under the sign-in panel, next to Open data folder.
- Choose a folder to save into.
- Studio creates a folder named
ed5-studio-diagnostics-<date>there and opens it for you. - Zip that folder and attach it to your bug report.
| What's inside | What it is |
|---|---|
logs/studio.log | This session's log, plus the previous two sessions (studio.1.log, studio.2.log) |
logs/studio-create.log, logs/studio-upgrade.log | Project-creation and project-upgrade logs, when they exist |
system-info.json | Studio version, Windows version, memory, and any crashes recorded this session |
Gotchas
- Read the logs before you share them. They can include project names, file paths and server addresses, so look through them before you post them anywhere public.
- Export before you restart Studio. Only the last three sessions' logs are kept, so a few restarts push the crash out of the log.
Crash reports#
When part of the desktop app crashes, Studio can send a short report to ED5 so the problem can be fixed without you having to export anything. Nothing is sent unless you have agreed, and only a Studio build that was set up for reporting can send at all — any other build sends nothing and never asks, whatever the setting says.
You are asked first. The first time something crashes, a dialog titled Send crash reports? asks you once.
| Button | What happens |
|---|---|
| Don't send | Nothing is sent, now or later, and you are not asked again. Closing the dialog counts as this. |
| Send crash reports | That crash is reported, and so are later ones. |
Until you have answered, nothing leaves your computer. You can also answer before anything ever crashes, or change your answer later, with the Send crash reports tick box (see the table below).
What is sent: the kind of error and where in the engine it happened (file names and line numbers of engine code), which part crashed (Studio itself, a window, the editor server or the local game server) and how it exited, the Studio version, and your operating system version. For an error inside Studio itself, the error's own message is sent too, after the clean-up below.
What is removed before anything leaves your computer: sign-in tokens and passwords, licence keys, e-mail addresses, your user folder (it becomes ~) and the folders of your projects (they become [project]). When the editor server or the local game server crashes, only the names of the errors and their engine code locations are sent, never the lines they printed, because those can quote your game's data.
What is not sent: your project's database and files, memory dumps, or anything at start-up. Your own server plugins (the files in your project's plugins folder) count as your content: when a crash runs through one, its file names, function names and error names are left out, and the report only notes that plugin code was involved. A report is sent only when something crashed, and never delays the app when you are offline.
| To | How |
|---|---|
| Agree | Click Send crash reports in the dialog, or tick File → Studio Settings → Misc → Send crash reports, then Save. |
| Refuse or stop | Click Don't send in the dialog, or untick Send crash reports, then Save. |
| Refuse for every app on the computer | Set the environment variable DO_NOT_TRACK=1 before starting Studio. You are not asked then, and nothing is sent even if the box is ticked. |
- An error message can still name a file. When Studio itself fails on a file in your project, the message keeps the file's name; the project folder in front of it is replaced by
[project]. - The dialog is in English. It is the one part of this that is not translated.
- Studio Web and the browser editor have no such setting: they send no desktop crash reports.
Next: Quick Start Tutorial — build your first map and add content.