A certain block game
Find a file
Langtanium 760484e546 Squashed commit of the following:
commit b40530fa5e12bdd0e2d03686b111964f9c5b3359
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Wed Apr 15 19:59:46 2026 -0700

    Implemented skin offsets in UI

    Added code to render skin offsets in the skin select UI.

commit a8384d984089b989a162550705dee7a505412e22
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Wed Apr 15 19:38:08 2026 -0700

    Partially implemented offsets

    Added code that visually shifts the player's model parts, but only in game not in the skin select UI.

commit 875100cf9afe7df258dc653a4b33857d3cd285c1
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Wed Apr 15 16:48:03 2026 -0700

    Minor change

    Simplified redundant conditions in HumanoidModel.cpp

commit 96f683d1fb93d09a49987460ef698e0d125c2c93
Merge: db685a74 24c74aa2
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Tue Apr 14 16:37:30 2026 -0700

    Merge branch 'feat/64x64-skins' into feat/skin-offsets

commit db685a74f34d02cc83e33ab97c5a7ad9a62ef023
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Tue Apr 14 15:35:38 2026 -0700

    Fixed skin offset data

    Fixed skin offsets so they now return the actual data instead of the defaults, added a few minor tweaks, and added code in PlayerRenderer.cpp to access offsets (Can read the offsets but can not apply them).

commit aa769d54adb8f5bf96c75d10766422d23cc9129a
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Sat Apr 11 19:36:52 2026 -0700

    Fixed crashes

    Fixed code for offsets preventing crashes. The amount of offsets is correctly obtain, but lacks the actual data.

commit f18ac12cc072db74ed9b8da937e00c2e15f889a0
Merge: 8e76763a fd2fd659
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Fri Apr 10 16:06:57 2026 -0700

    Merge branch 'feat/64x64-skins' into feat/skin-offsets

commit 8e76763a3ddeaff943243fd0469d6c4a7b12b6c1
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Tue Apr 7 16:50:43 2026 -0700

    Made more changes

    Made more changes in files to support skin offsets. The game still crashes when trying to load skins.

commit 1a8f3532979033717044e74e6ceb766e23e35032
Merge: a1d9ae59 bb5fa506
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Tue Apr 7 13:12:39 2026 -0700

    Merge branch 'feat/64x64-skins' into feat/skin-offsets

commit a1d9ae591ac27117626aac708a4204a9e2451684
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Fri Apr 3 21:50:42 2026 -0700

    Added small additions

    Added more code referencing skin offsets. Still doesn't work correctly.

commit d28a751d9ca0527854e40be82e7841a650c2f189
Merge: 3888de7a 8bf03435
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Thu Apr 2 17:09:08 2026 -0700

    Merge branch 'smartcmd:main' into feat/skin-offsets

commit 3888de7ab401d9562b7b922eca8b898aa73ba024
Author: Langtanium <94726057+Langtanium@users.noreply.github.com>
Date:   Thu Apr 2 17:07:48 2026 -0700

    Added code for skin offsets

    Added code to the file which have the functionality to get skin boxes and duplicated the functionality for skin offsets. The code causes the game to crash when switching to third person. The error occurs with the skin offsets returning as an empty class object.
2026-04-15 20:00:28 -07:00
.github Revert "Update actions workflows and add clang format check for PRs (#1418)" 2026-04-02 00:01:27 -05:00
.vscode Remove .vscode settings by default 2026-03-15 02:44:59 -05:00
cmake Fix: CMP0057 policy was not set (#1367) 2026-03-22 23:27:42 -05:00
docker/dedicated-server Minor docker/container fixes and edits (#1454) 2026-04-01 19:10:47 -05:00
include Move project to CMake (#781) 2026-03-17 16:39:22 -05:00
Minecraft.Client Squashed commit of the following: 2026-04-15 20:00:28 -07:00
Minecraft.Server Move project to CMake (#781) 2026-03-17 16:39:22 -05:00
Minecraft.World Squashed commit of the following: 2026-04-15 20:00:28 -07:00
.clang-format Fix overlapping debug menus and screens (#294) 2026-03-04 12:31:47 +08:00
.clang-tidy Remove AUTO_VAR macro and _toString function (#592) 2026-03-06 02:11:18 +07:00
.gitattributes Disable git LFS 2026-03-09 20:49:50 -05:00
.gitignore Move project to CMake (#781) 2026-03-17 16:39:22 -05:00
build-start-dedicated-server.sh Dedicated Server Software - Minecraft.Server.exe (#498) 2026-03-15 02:32:50 -05:00
CMakeLists.txt Move project to CMake (#781) 2026-03-17 16:39:22 -05:00
CMakePresets.json Move project to CMake (#781) 2026-03-17 16:39:22 -05:00
COMPILE.md Move project to CMake (#781) 2026-03-17 16:39:22 -05:00
CONTRIBUTING.md Only single topic PRs, please - CONTRIBUTING.md 2026-03-10 09:37:52 -05:00
docker-build-dedicated-server.sh Dedicated Server Software - Minecraft.Server.exe (#498) 2026-03-15 02:32:50 -05:00
docker-compose.dedicated-server.ghcr.yml Replace instances of hard-coded port in ports variable with SERVER_PORT variable in yml files (#1457) 2026-04-02 02:43:33 -05:00
docker-compose.dedicated-server.yml Replace instances of hard-coded port in ports variable with SERVER_PORT variable in yml files (#1457) 2026-04-02 02:43:33 -05:00
README.md Clarify Android support in README 2026-03-27 00:29:08 -05:00
start-dedicated-server.sh Dedicated Server Software - Minecraft.Server.exe (#498) 2026-03-15 02:32:50 -05:00

Legacy Edition Banner

MinecraftConsoles (Legacy Console Edition)

Discord

This project is based on source code of Minecraft Legacy Console Edition v1.6.0560.0 (TU19) with some fixes and improvements applied.

The current goal of MinecraftConsoles is to be a multi-platform base for further development, such as modding, backports, and anything else LCE. On top of that, we're working to make this a quality experience on Desktop with or without a controller while (long-term) retaining console support.

See our our Contributor's Guide for more information on the goals of this project.

Download

Client

Windows users can download our Nightly Build! Simply download the .zip file and extract it to a folder where you'd like to keep the game. You can set your username in username.txt (you'll have to make this file)

Server

If you're looking for Dedicated Server software, download its Nightly Build here. Similar instructions to the client more or less, though see further down in this README for more info on that.

Platform Support

  • Windows: Supported for building and running the project
  • macOS / Linux: The Windows nightly build will run through Wine or CrossOver based on community reports, but this is unofficial and not currently tested by the maintainers when pushing updates
  • Android: VIA x86 EMULATORS (like GameNative) ONLY! The Windows nightly build does run but has stability / frametime pacing issues frequently reported
  • iOS: No current support
  • All Consoles: Console support remains in the code, but maintainers are not currently verifying console functionality / porting UI Changes to the console builds at this time.

Features

  • Dedicated Server Software (Minecraft.Server.exe)
  • Fixed compilation and execution in both Debug and Release mode on Windows using Visual Studio 2022
  • Added support for keyboard and mouse input
  • Added fullscreen mode support (toggle using F11)
  • (WIP) Disabled V-Sync for better performance
  • Added a high-resolution timer path on Windows for smoother high-FPS gameplay timing
  • Device's screen resolution will be used as the game resolution instead of using a fixed resolution (1920x1080)
  • LAN Multiplayer & Discovery
  • Added persistent username system via username.txt
  • Decoupled usernames and UIDs to allow username changes
  • Fixed various security issues present in the original codebase
  • Splitscreen Multiplayer support (connect to dedicated servers, etc)
  • In-game server management (Add Server button, etc)

Controls (Keyboard & Mouse)

  • Movement: W A S D
  • Jump / Fly (Up): Space
  • Sneak / Fly (Down): Shift (Hold)
  • Sprint: Ctrl (Hold) or Double-tap W
  • Inventory: E
  • Chat: T
  • Drop Item: Q
  • Crafting: C Use Q and E to move through tabs (cycles Left/Right)
  • Toggle View (FPS/TPS): F5
  • Fullscreen: F11
  • Pause Menu: Esc
  • Attack / Destroy: Left Click
  • Use / Place: Right Click
  • Select Item: Mouse Wheel or keys 1 to 9
  • Accept or Decline Tutorial hints: Enter to accept and B to decline
  • Game Info (Player list and Host Options): TAB
  • Toggle HUD: F1
  • Toggle Debug Info: F3
  • Open Debug Overlay: F4
  • Toggle Debug Console: F6

Contributors

Would you like to contribute to this project? Please read our Contributor's Guide before doing so! This document includes our current goals, standards for inclusions, rules, and more.

Client Launch Arguments

Argument Description
-name <username> Overrides your in-game username.
-fullscreen Launches the game in Fullscreen mode

Example:

Minecraft.Client.exe -name Steve -fullscreen

LAN Multiplayer

LAN multiplayer is available on the Windows build

  • Hosting a multiplayer world automatically advertises it on the local network
  • Other players on the same LAN can discover the session from the in-game Join Game menu
  • Game connections use TCP port 25565 by default
  • LAN discovery uses UDP port 25566
  • Add servers to your server list with the in-game Add Server button (temp)
  • Rename yourself without losing data by keeping your uid.dat
  • Split-screen players can join in, even in Multiplayer

Dedicated Server Software

About server.properties

Minecraft.Server reads server.properties from the executable working directory (Docker image: /srv/mc/server.properties). If the file is missing or contains invalid values, defaults are auto-generated/normalized on startup.

Important keys:

Key Values / Range Default Notes
server-port 1-65535 25565 Listen TCP port
server-ip string 0.0.0.0 Bind address
server-name string (max 16 chars) DedicatedServer Host display name
max-players 1-8 8 Public player slots
level-name string world Display world name
level-id safe ID string derived from level-name Save folder ID; normalized automatically
level-seed int64 or empty empty Empty = random seed
world-size classic|small|medium|large classic World size preset for new worlds and expansion target for existing worlds
log-level debug|info|warn|error info Server log verbosity
autosave-interval 5-3600 60 Seconds between autosaves
white-list true/false false Enable access list checks
lan-advertise true/false false LAN session advertisement

Minimal example:

server-name=DedicatedServer
server-port=25565
max-players=8
level-name=world
level-seed=
world-size=classic
log-level=info
white-list=false
lan-advertise=false
autosave-interval=60

Dedicated Server launch arguments

The server loads base settings from server.properties, then CLI arguments override those values.

Argument Description
-port <1-65535> Override server-port
-ip <addr> Override server-ip
-bind <addr> Alias of -ip
-name <name> Override server-name (max 16 chars)
-maxplayers <1-8> Override max-players
-seed <int64> Override level-seed
-loglevel <level> Override log-level (debug, info, warn, error)
-help / --help / -h Print usage and exit

Examples:

Minecraft.Server.exe -name MyServer -port 25565 -ip 0.0.0.0 -maxplayers 8 -loglevel info
Minecraft.Server.exe -seed 123456789

Dedicated Server in Docker (Wine)

This repository includes a lightweight Docker setup for running the Windows dedicated server under Wine.

No local build is required. The container image is pulled from GHCR.

./start-dedicated-server.sh

start-dedicated-server.sh does the following:

  • uses docker-compose.dedicated-server.ghcr.yml
  • pulls latest image, then starts the container

If you want to skip pulling and just start:

./start-dedicated-server.sh --no-pull

Equivalent manual command:

docker compose -f docker-compose.dedicated-server.ghcr.yml up -d

Local Build Mode (Optional)

Use this only when you want to run your own locally built Minecraft.Server binary in Docker. A local build of Minecraft.Server is required for this mode.

docker compose -f docker-compose.dedicated-server.yml up -d --build

Useful environment variables:

  • XVFB_DISPLAY (default: :99)
  • XVFB_SCREEN (default: 64x64x16, tiny virtual display used by Wine)

Fixed server runtime behavior in container:

  • executable path: /srv/mc/Minecraft.Server.exe
  • bind IP: 0.0.0.0
  • server port: 25565

Persistent files are bind-mounted to host:

  • ./server-data/server.properties -> /srv/mc/server.properties
  • ./server-data/GameHDD -> /srv/mc/Windows64/GameHDD

Build & Run

  1. Install Visual Studio 2022 or newer.
  2. Clone the repository.
  3. Open the project folder from Visual Studio.
  4. Set the build configuration to Windows64 - Debug (Release is also ok but missing some debug features), then build and run.

CMake (Windows x64)

cmake --preset windows64
cmake --build --preset windows64-debug --target Minecraft.Client

For more information, see COMPILE.md.

Star History

Star History Chart