Skip to content

These docs were made completely by AI, so they might be right, or wrong, you'll need to test them yourself. This was made for a easier understanding of everything. So use at your own risk. If anything is wrong, please don't hurt to make a PR on the page you have a problem with. ON GITHUB

Introduction

LCE (Legacy Console Edition) is the version of Minecraft that 4J Studios built for Microsoft and Mojang. They ported Minecraft’s Java Edition codebase to C++11 and shipped it on Xbox 360, Xbox One (Durango), PS3, PS4 (Orbis), PS Vita, Wii U, and Nintendo Switch. It ran from 2012 until it was discontinued in favor of Bedrock Edition, but a lot of people still think it was the best version of Minecraft.

The C++ codebase that powers LCE is what this entire documentation site is about. Two community forks make that codebase available to work with:

  • LCEMP (by notpies) - A source fork based on roughly TU9 / 1.2.2 that adds working LAN multiplayer and a Windows 64-bit build target
  • MinecraftConsoles (by smartcmd) - A more advanced fork based on roughly TU19 / 1.6.4 with horses, the Wither boss, beacons, hoppers, scoreboards, and an entity attribute system

The LCEMP fork is based on roughly the TU9 / 1.2.2 era of Legacy Console Edition. That means it has content up through:

  • The End dimension and Ender Dragon boss fight
  • Enchanting and brewing systems
  • Villager trading
  • Jungle biomes
  • Anvils, ender chests, tripwires
  • Ocelots, iron golems, snow golems
  • All enchantments through TU9 (no Wither, no horses, no beacons)

MinecraftConsoles goes further to roughly TU19 / 1.6.4, adding the Wither boss, horses, beacons, hoppers, scoreboards, and more. The docs reference MinecraftConsoles differences where relevant.

These are the things notpies added on top of the original console codebase:

  • LAN multiplayer via TCP sockets (Winsock). The host broadcasts over UDP on port 25566, and clients discover and join over TCP on port 25565
  • Block sync for breaking and placing across all connected players
  • Kick system so the host can remove players
  • Up to 8 players (configurable in source via WIN64_NET_MAX_CLIENTS and WIN64_LAN_BROADCAST_PLAYERS)
  • Keyboard and mouse support through a full KeyboardMouseInput class with WASD movement, mouse look, and configurable key bindings
  • Gamma fix for proper brightness on PC
  • Fullscreen support for the Windows 64-bit build

The project is split into two main modules:

ModuleRoleApproximate Files
Minecraft.WorldGame logic: blocks, items, entities, world gen, networking packets, AI, crafting, enchantments, effects, storage~1,560 (845 headers, 715 implementations)
Minecraft.ClientRendering, UI (Iggy/SWF), models, particles, screens, input, textures, audio, platform layers~530 source files

There’s also a Common/ directory inside Minecraft.Client that holds shared code for audio (Miles Sound System), UI (Iggy SWF framework), DLC, game rules, tutorials, networking, and more.

The project uses CMake (minimum 3.10) with:

  • MinecraftWorld compiled as a static library (.lib)
  • MinecraftClient compiled as a Win32 executable that links against MinecraftWorld
  • External dependencies: Direct3D 11, XInput, 4J Studios libraries, Iggy (SWF UI), Miles Sound System

The codebase is a direct C++ port of Minecraft’s Java Edition. You’ll see Java naming conventions everywhere: Tile instead of Block, Mob instead of LivingEntity, GoalSelector with prioritized Goal instances for AI, shared_ptr replacing Java’s garbage collection, wstring for all text. Comments marked // 4J throughout the code indicate changes 4J Studios made for the console port, things like thread-local storage for the lighting cache, critical sections around entity lists, console-specific entity limits (max 40 boats, 200 fireballs, 300 projectiles), and platform guards for each console target.

This documentation was generated by an AI that ran 40 systematic passes through the entire LCE codebase (~2,960 C++ source files). Each pass looked at different parts of the code, and later passes double-checked and corrected findings from earlier ones.

If you find errors, please open a PR on the GitHub repository. AI-generated docs will inevitably have mistakes, so community corrections are welcome and encouraged.

Here’s where to go depending on what you’re looking for:

I want to…Go to…
Understand the overall code structureArchitecture
Build the project from sourceBuilding & Compiling
Learn about game logic systemsMinecraft.World Overview
Learn about rendering and UIMinecraft.Client Overview
See platform-specific codePlatform Code
Start modding (add blocks, items, etc.)Modding Guide
Look up IDs and class indexesReference

If you’re new to the codebase, the recommended reading order is:

  1. This page (you’re here)
  2. Architecture to understand how the two modules connect
  3. Minecraft.World for the game logic layer
  4. Minecraft.Client for rendering and UI
  5. Modding Guide when you’re ready to make changes