OpenEdits
Self-hostable 2D block building/physics game heavily inspired by the flash game Everybody Edits
Install / Use
/learn @SmallJoker/OpenEditsREADME
OpenEdits

A 2D game block building inspired by Everybody Edits. Code structure inspired by Luanti/Minetest practices.
The project direction can be found in doc/DIRECTION.md.
Gameplay
Account management
- Any specified username is automatically converted to uppercase.
GUESTxxxusernames are treated as temporary.- Registration is nethier needed nor possible.
- The account registration is rate limited by IP address.
Hotkeys
- W/A/S/D or arrow keys: move player
- Space: Jump
- LMB: Place the selected block
- RMB or Shift+LMB: Block eraser
- RMB + Ctrl: Select clicked block including params
- Mouse scroll: Zoom in/out
- Warning: Rendering performs pretty badly. Do not scroll out too far.
- 1-9: Hotbar block selector
- Use RMB to drag & drop a block from the selector into the hotbar
/or T or Enter: Open chat box- Enter: Submit
- ESC: Cancel and close
- Tab: Nickname autocompletion
- Up/Down: Previous chat message / empty chat message
- E: Toggle block selector
- G: Toggle god mode
- M: Toggle minimap
- F1: Toggle debug information
- Ctrl + F: Search worlds (lobby only)
Chat commands
- See
/helpand/help COMMAND(in-game)
Permission/player flag examples:
/fset FOOBAR tmp-edit-drawtemporary edit access (until rejoin)/fset FOOBAR godmodepersistent god mode access (after the world is saved)/fdel FOOBAR ownerremoves all persistent access except for "banned"/ffilterlists all players with any specified flags
Command line arguments
--versionoutputs the current game version--unittestruns the included tests to sanity check--decompress FILEPATHdecompresses an EELVL file (for development purposes)--serverstarts a server-only instance without GUI--setpass USERNAME PASSWORD|@FILE- Changes the password of the specified player.
--setrole USERNAME ROLEROLEcan be one of:normal,moderator,admin.- Can be executed while a server is already running.
--go USERNAME PASSWORD|@FILE [WORLD_ID]- Starts a local server and joins the world ID (if provided)
World import/export
*.eelvlfiles inworlds/imports/are listed by the server as playable read-only worlds- Helpful level archive: https://archive.offlinee.com/
- Clients may use
.export FILENAMEto export the current world toworlds/exports/ - See
worlds/README.txtfor further information
Development
Environment variables
OE_DEBUG=+foo,-bar,+alloverride the default log levels+prefix: verbose logging-prefix: ignore anything below error levelall: Changes all loggers- Specific log level overrides take priority over
all. OE_DEBUG=?lists the available loggers
Lua API (This game can be modded!)
- API reference: lua_api.md
- Entry point:
assets/scripts/main.lua
Downloads
<!-- ^ I'm not a smelly nerd -->Linux
- Extract the archive to any location
- Run
OpenEdits - In case of issues: run with
gdb. Debug symbols are included.
Windows
- Extract the archive to any location
- Run the executable
- In case of issues: use a debugger such as x64dbg or
gdb(in mingw-w64)
Compiling
Dependencies
- CMake (cmake-gui recommended for desktops)
- Irrlicht-Mt : GUI/rendering library
- enet : networking library
- LuaJIT or Lua 5.1 : (WIP) server-defined scripts
- SQLite3 : auth & world saving
- Threads (pthread?)
- zlib: world compression (including EELVL import/export)
- OpenAL-soft: sound (for GUI builds only)
Dependency tree:
OpenEdits
├── enet
├── irrlicht-mt (server)
├── irrlicht-mt (client)
│ ├── libjpeg
│ ├── libpng
│ │ └── zlib
│ └── zlib
├── lua(jit)
├── openal-soft (client, optional)
├── sqlite3
└── zlib
Debian/Ubuntu:
# For all builds
sudo apt install libenet-dev libluajit-5.1-dev libsqlite3-dev zlib1g-dev
# Client builds only
sudo apt install libjpeg-dev libpng-dev libopenal-dev
Windows:
- C99 standard library is required. msvcrt uses C89, thus MinGW or Clang are recommended over MSVC.
Project compiling:
cmake -S . -B build
cd build
make -j
Headless server compiling
- Install the minimal required libraries
- Put the IrrlichtMt headers (include directory) somewhere
cmake -S . -B build -DBUILD_CLIENT=0 -DIRRLICHTMT_BUILD_DIR="/path/to/irrlicht/include/"cd build-> buildmake -j-> start./OpenEdits-server
Distributing (simplified)
cd build
make install
bash ../misc/pack.sh
Licenses
Code: LGPL 2.1+
Imported code
- minimp3 (CC 0), used in GUI builds only
- SHA3IUF (MIT)
- FindENet.cmake (GPL 2)
- FindLuaJIT.cmake (LGPL 2.1+)
Fonts
DejaVu Sans bitmaps (Bitstream Vera license, extended MIT)
- Converted with https://github.com/kahrl/irrtum
Images
Images that are not listed below were created by SmallJoker (CC BY 4.0).
DailyYouth (CC BY 3.0)
IconMarket (CC BY 3.0)
icon_minimap.png(desaturated)
ZUMMACO (CC BY 3.0)
Sounds
Sounds that are not listed below were created by SmallJoker (CC BY 4.0).
Piotr Barcz (CC 0)
Related Skills
node-connect
339.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
83.9kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
339.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
commit-push-pr
83.9kCommit, push, and open a PR
