{"id":16132600,"url":"https://github.com/smalljoker/openedits","last_synced_at":"2025-06-23T02:09:25.448Z","repository":{"id":65847628,"uuid":"595362782","full_name":"SmallJoker/OpenEdits","owner":"SmallJoker","description":"Self-hostable 2D block building/physics game heavily inspired by the flash game Everybody Edits","archived":false,"fork":false,"pushed_at":"2025-04-13T19:00:21.000Z","size":2193,"stargazers_count":13,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T20:18:35.129Z","etag":null,"topics":["2d-game","everybody-edits","irrlicht","multiplayer","platformer"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SmallJoker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-30T23:22:22.000Z","updated_at":"2025-04-13T19:00:24.000Z","dependencies_parsed_at":null,"dependency_job_id":"452a8b78-28f8-4f07-a5b0-a90a76b96be1","html_url":"https://github.com/SmallJoker/OpenEdits","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/SmallJoker/OpenEdits","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmallJoker%2FOpenEdits","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmallJoker%2FOpenEdits/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmallJoker%2FOpenEdits/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmallJoker%2FOpenEdits/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SmallJoker","download_url":"https://codeload.github.com/SmallJoker/OpenEdits/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SmallJoker%2FOpenEdits/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261397491,"owners_count":23152492,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["2d-game","everybody-edits","irrlicht","multiplayer","platformer"],"created_at":"2024-10-09T22:31:36.941Z","updated_at":"2025-06-23T02:09:20.434Z","avatar_url":"https://github.com/SmallJoker.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# OpenEdits\n\n![preview image v1.4.0](screenshot.jpeg)\n\nA 2D game block building inspired by Everybody Edits.\nCode structure inspired by Minetest practices.\n\nThe project direction can be found in [doc/DIRECTION.md](doc/DIRECTION.md).\n\n## Gameplay\n\n**Account management**\n\n * Any specified username is automatically converted to uppercase.\n * `GUESTxxx` usernames are treated as temporary.\n     * Registration is nethier needed nor possible.\n * The account registration is rate limited by IP.\n\n\n**Hotkeys**\n\n * W/A/S/D or arrow keys: move player\n * Space: Jump\n * LMB: Place the selected block\n * RMB or Shift+LMB: Block eraser\n * RMB + Ctrl: Select clicked block including params\n * Mouse scroll: Zoom in/out\n     * Warning: Rendering performs pretty badly. Do not scroll out too far.\n * 1-9: Hotbar block selector\n     * Use RMB to drag \u0026 drop a block from the selector into the hotbar\n * `/` or T or Enter: Open chat box\n     * Enter: Submit\n     * ESC: Cancel and close\n     * Tab: Nickname autocompletion\n     * Up/Down: Previous chat message / empty chat message\n * E: Toggle block selector\n * G: Toggle god mode\n * M: Toggle minimap\n * F1: Toggle debug information\n * Ctrl + F: Search worlds (lobby only)\n\n\n**Chat commands**\n\n * See `/help` and `/help COMMAND` (in-game)\n\n\nPermission/player flag examples:\n\n * `/fset FOOBAR tmp-edit-draw` temporary edit access (until rejoin)\n * `/fset FOOBAR godmode` persistent god mode access (after the world is saved)\n * `/fdel FOOBAR owner` removes all persistent access except for \"banned\"\n * `/ffilter` lists all players with any specified flags\n\n\n**Command line arguments**\n\n * `--version` outputs the current game version\n * `--unittest` runs the included tests to sanity check\n * `--decompress FILEPATH` decompresses an EELVL file (for development purposes)\n * `--server` starts a server-only instance without GUI\n * `--setrole USERNAME ROLE`\n     * `ROLE` can be one of: `normal`, `moderator`, `admin`.\n     * Can be executed while a server is already running.\n * `--go USERNAME PASSWORD(FILE) [WORLD_ID]`\n     * Starts a local server and joins the world ID (if provided)\n\n**Environment variables**\n\n * `OE_DEBUG=+foo,-bar,+all` override the default log levels\n     * `+` prefix: verbose logging\n     * `-` prefix: ignore anything below error level\n     * `all`: Changes *all* loggers\n     * Specific log level overrides take priority over `all`.\n\n**World import/export**\n\n * `*.eelvl` files in `worlds/imports/` are listed by the server as playable read-only worlds\n     * Helpful level archive: \u003chttps://archive.offlinee.com/\u003e\n * Clients may use `.export FILENAME` to export the current world to `worlds/exports/`\n * See `worlds/README.txt` for further information\n\n\n## [Downloads](https://github.com/SmallJoker/OpenEdits/releases)\n\u003c!-- ^ I'm not a smelly nerd --\u003e\n\n### Linux\n\n1. Extract the archive to any location\n2. Run `AppRun.sh`\n3. In case of issues: run with `gdb`. Debug symbols are included.\n\n### Windows\n\n1. Extract the archive to any location\n2. Run the executable\n3. In case of issues: use a debugger such as x64dbg\n\n\n## Compiling\n\n### Dependencies\n\n * CMake (cmake-gui recommended for desktops)\n * [Irrlicht-Mt](https://github.com/SmallJoker/irrlicht-mt) : GUI/rendering library\n * [enet](http://enet.bespin.org/) : networking library\n * LuaJIT or Lua 5.1 : (WIP) server-defined scripts\n * SQLite3 : auth \u0026 world saving\n * Threads (pthread?)\n * zlib: world compression (including EELVL import/export)\n * [OpenAL-soft](https://github.com/kcat/openal-soft): sound (for GUI builds only)\n\nDependency tree:\n\n\tOpenEdits\n\t├── enet\n\t├── irrlicht-mt (server)\n\t├── irrlicht-mt (client)\n\t│   ├── libjpeg\n\t│   ├── libpng\n\t│   │   └── zlib\n\t│   └── zlib\n\t├── lua(jit)\n\t├── openal-soft (client, optional)\n\t├── sqlite3\n\t└── zlib\n\nDebian/Ubuntu:\n\n\t# For all builds\n\tsudo apt install libenet-dev libluajit-5.1-dev libsqlite3-dev zlib1g-dev\n\t# Client builds only\n\tsudo apt install libjpeg-dev libpng-dev libopenal-dev\n\nWindows:\n\n* C99 standard library is required. msvcrt uses C89, thus MinGW or Clang are recommended over MSVC.\n\nProject compiling:\n\n\tcmake -S . -B build\n\tcd build\n\tmake -j\n\n**Headless server compiling**\n\n1. Install the minimal required libraries\n2. Put the IrrlichtMt headers (include directory) somewhere\n3. `cmake -S . -B build -DBUILD_CLIENT=0 -DIRRLICHTMT_BUILD_DIR=\"/path/to/irrlicht/include/\"`\n4. `cd build` -\u003e build `make -j` -\u003e start `./OpenEdits-server`\n\n**Distributing** (simplified)\n\n\tcd build\n\tmake install\n\tbash ../misc/pack.sh\n\n\n## Licenses\n\nCode: [LGPL 2.1](LICENSE.txt)+\n\n**Imported code**\n\n * [minimp3](https://github.com/lieff/minimp3) (CC 0), used in GUI builds only\n * [SHA3IUF](https://github.com/brainhub/SHA3IUF) (MIT)\n * [FindENet.cmake](https://www.orxonox.net/browser/code/trunk/cmake/tools) (GPL 2)\n * [FindLuaJIT.cmake](https://github.com/minetest/minetest/tree/master/cmake/Modules) (LGPL 2.1+)\n\n### Fonts\n\nDejaVu Sans bitmaps (Bitstream Vera license, extended MIT)\n\n * Converted with https://github.com/kahrl/irrtum\n\n### Images\n\nImages that are not listed below were created by SmallJoker (CC BY 4.0).\n\nDailyYouth (CC BY 3.0)\n\n * [`icon_chat.png`](https://www.iconfinder.com/icons/3643728/balloon_chat_conversation_speak_word_icon)\n\nIconMarket (CC BY 3.0)\n\n * [`icon_minimap.png`](https://www.iconfinder.com/icons/6442794/compass_direction_discover_location_navigation_icon) (desaturated)\n\nZUMMACO (CC BY 3.0)\n\n * [`ìcon_leave.png`](https://www.iconfinder.com/icons/7030313/sign_out_ui_basic_logout_app_user_interface_ui_icon)\n\n### Sounds\n\nSounds that are not listed below were created by SmallJoker (CC BY 4.0).\n\nPiotr Barcz (CC 0)\n\n * [`piano_c4.mp3`](https://freepats.zenvoid.org/Piano/honky-tonk-piano.html)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmalljoker%2Fopenedits","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsmalljoker%2Fopenedits","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsmalljoker%2Fopenedits/lists"}