Leaked version of Minecraft Legacy Console Edition. Not for commercial purposes
Find a file
Tropical 09ac8336a3
Some checks are pending
Build (Linux, x86_64) / build-linux (push) Waiting to run
Build (Linux, x86_64) / build-linux-debug (push) Waiting to run
Clang Format / clang-format (push) Waiting to run
fix: only link libshiggy if enable_shiggy is true
2026-03-15 01:02:42 -05:00
.devcontainer fix: dont invoke apt-get with sudo in dockerfile 2026-03-10 18:10:45 -05:00
.github Fix missing library errors and make it run only on pushes to source 2026-03-15 00:57:21 -04:00
.github-assets Update README to match origin/dev 2026-03-15 00:56:10 -04:00
4J.Input Merge branch 'dev' into feat/iggy-dev 2026-03-14 03:25:09 -05:00
4J.Profile chore: format 4JLibs 2026-03-13 17:11:59 -05:00
4J.Render Merge branch 'dev' into feat/iggy-dev 2026-03-14 03:25:09 -05:00
4J.Storage chore: format 4JLibs 2026-03-13 17:11:59 -05:00
docs Add GENERATE_TREEVIEW for the side panel 2026-03-15 00:57:49 -04:00
Minecraft.Assets Added Doxygen + GitHub Pages 2026-03-13 23:00:35 -04:00
Minecraft.Client fix: only link libshiggy if enable_shiggy is true 2026-03-15 01:02:42 -05:00
Minecraft.World Merge branch 'dev' into feat/iggy-dev 2026-03-15 00:49:59 -05:00
scripts Fix error where rmtree is called in an awkward setup 2026-03-09 17:56:18 +00:00
subprojects chore: fmt, remove subprojects 2026-03-14 22:46:47 -05:00
.clang-format don't indent access modifiers 2026-03-13 16:37:00 -05:00
.git-blame-ignore-revs add a blamignore for the last 3 commits 2026-03-13 17:12:26 -05:00
.gitattributes chore: add .gitattributes for LF normalization 2026-03-09 22:01:02 +11:00
.gitignore Merge branch 'dev' into feat/iggy-dev 2026-03-15 00:49:59 -05:00
.gitmodules Added Doxygen + GitHub Pages 2026-03-13 23:00:35 -04:00
CONTRIBUTING.md feat: add clang-format config and formatting workflows 2026-03-13 15:09:54 -05:00
flake.lock added flake for reproducible builds on NixOS 2026-03-03 05:55:42 +01:00
flake.nix flake.nix: Fix Input and make it a real package 2026-03-11 09:20:14 +01:00
meson.build fix: only link libshiggy if enable_shiggy is true 2026-03-15 01:02:42 -05:00
meson.options feat: allow disabling iggy from meson.options 2026-03-15 00:59:21 -05:00
README.md Update README to match origin/dev 2026-03-15 00:56:10 -04:00

Logo 4JCraft

4JCraft is a modified version of the Minecraft Console Legacy Edition aimed on porting old Minecraft to different platforms (such as Linux, Android, Emscripten, etc.) and refactoring the codebase to improve organization and use modern C++ features.

Join our community:

Scope & Platform Support

At the moment, we're aiming to support the following platforms:

Please note that these percentages are estimates and do not necessarily reflect the final playability of the game on each platform.

  • Linux (~85%)
  • Emscripten (~10%) [Check the Emscripten Branch]
  • macOS (not started) [No official support but people have been able to run the game on MacOS]
  • iOS (not started)
  • Android (~5%)

Warning

There is NO Windows support, for that, go to smartcmd/MinecraftConsoles.

All efforts are focused towards a native Linux port, OpenGL rendering pipeline, and modernizing the existing LCE codebase/tooling to make future platform ports easier.

Windows64 and other platforms originally supported by LCE are currently unsupported, since the original Visual Studio tooling has been stripped from this repository and replaced with our own.


Building (Linux)

Dependencies

Install the following packages before building (Debian/Ubuntu names shown):

sudo apt-get install -y build-essential libsdl2-dev libgl-dev libglu1-mesa-dev libpthread-stubs0-dev

Arch/Manjaro

sudo pacman -S base-devel gcc pkgconf cmake sdl2-compat mesa glu

Fedora/Red Hat/Nobara

sudo dnf in gcc gcc-c++ make cmake SDL2-devel mesa-libGL-devel mesa-libGLU-devel openssl-devel

Docker

If you don't want to deal with installing dependencies, you can use the included devcontainer. Open the project in VS Code with the Dev Containers extension and it will set everything up for you - GCC 15, Meson, Ninja, lld, and all the libraries.

Alternatively, you can build and use the container manually:

docker build -t 4jcraft-dev .devcontainer/
docker run -it -v $(pwd):/workspaces/4jcraft -w /workspaces/4jcraft 4jcraft-dev bash

Configure & Build

This project uses the Meson build system (with Ninja).

Important

If you are using GCC, then GCC 15 or newer is currently required to build this project. Ubuntu installations in particular may have older versions preinstalled, so verify your compiler version with gcc --version.

Install Tooling

Follow this Quickstart guide for installing or building Meson and Ninja on your respective distro.

Configure & Build

# 1. Configure a build directory (we'll name it `build`)
meson setup build

# 2. Compile the project
meson compile -C build

Tip

For the fastest compilation speeds, you may want to use the compilers and linkers provided by an LLVM toolchain (clang/lld) over your system compiler and linker. To do this, install clang and lld, and configure your build using the llvm_native.txt nativescript in /scripts:

meson setup --native-file ./scripts/llvm_native.txt build

...or if you've already configured a build directory:

meson setup --native-file ./scripts/llvm_native.txt build --reconfigure

The binary is output to:

./build/Minecraft.Client/Minecraft.Client

Clean

To perform a clean compilation:

meson compile --clean -C build

...or to reconfigure an existing build directory:

meson setup build --reconfigure 

...or to hard reset the build directory:

rm -r ./build
meson setup build

Running

In order to run the compiled binary, you have a compiled copy of the game's assets in your current working directory. These assets are automatically copied to the Minecraft.Client folder in your build directory. To run the game, your current working directory must be in this folder.

cd build/Minecraft.Client
./Minecraft.Client

Generative AI Policy

Submitting code to this repository authored by generative AI tools (LLMs, agentic coding tools, etc...) is strictly forbidden (see CONTRIBUTING.md). Pull requests that are clearly vibe-coded or written by an LLM will be closed. Contributors are expected to both fully understand the code that they write and have the necessary skills to maintain it.