Overview & Differences
MinecraftConsoles is a community fork of the Legacy Console Edition source code, maintained by smartcmd and contributors. It’s built on the same TU19 (v1.6.0560.0) codebase that LCEMP uses, and it credits LCEMP for its multiplayer networking implementation. While LCEMP focuses on preserving and documenting the original 4J Studios code, MinecraftConsoles pushes things forward with modern tooling, new gameplay systems, and a bigger feature set.
At a glance
Section titled “At a glance”| LCEMP | MinecraftConsoles | |
|---|---|---|
| Source files | ~2,959 | ~3,968 |
| C++ standard | C++11 | C++17 |
| Commits | — | 409+ |
| CI | — | GitHub Actions (build, debug-test, nightly) |
| Build system | Visual Studio solution | Visual Studio solution + CMake |
| Platform | Windows | Windows (Linux via Wine unofficial) |
New systems
Section titled “New systems”MinecraftConsoles adds a ton of gameplay systems that don’t exist in LCEMP. Each one has its own page with more details.
Entity attributes and combat
Section titled “Entity attributes and combat”A full attribute system with modifier operations (ADDITION, MULTIPLY_BASE, MULTIPLY_TOTAL), shared monster attributes (max health, follow range, knockback resistance, movement speed, attack damage), and a combat tracker that records damage entries and generates death messages. Seven attribute types and twelve named modifier IDs are defined.
Scoreboard and teams
Section titled “Scoreboard and teams”A complete scoreboard system with objectives, criteria (dummy, deathCount, playerKillCount, totalKillCount, health), player scores, display slots (list, sidebar, below-name), and player teams with friendly-fire and invisibility options. Includes a ServerScoreboard subclass that tracks objectives and sends packets to clients.
Horse entities
Section titled “Horse entities”Full horse entities with five types (horse, donkey, mule, zombie, skeleton), seven coat variants, five markings, four armor tiers (none, iron, gold, diamond), saddle and chest support, breeding, taming, jump strength attribute, and a dedicated inventory menu. Layered texture rendering combines variant, marking, and armor textures.
Minecart variants
Section titled “Minecart variants”Multiple minecart subtypes beyond the base rideable minecart:
- MinecartChest, chest storage on rails
- MinecartFurnace, self-propelled furnace cart
- MinecartHopper, item collection on rails with cooldown and enable/disable via activator rail
- MinecartTNT, explosive cart with fuse, priming, and blast resistance checks
- MinecartSpawner, mob spawner on rails with its own
BaseMobSpawnerinstance
Hoppers and dispensers
Section titled “Hoppers and dispensers”The hopper and dropper systems handle item transfer logic with cooldown timing, item ejection, item suction from above, and container-to-container moves. The DispenseItemBehavior system provides a registry (BehaviorRegistry) that maps items to custom dispense actions.
Fireworks
Section titled “Fireworks”A fireworks system including FireworksRocketEntity (projectile with lifetime), FireworksItem (placement and hover text), FireworksChargeItem, FireworksRecipe (crafting), FireworksMenu (UI), and FireworksParticles (client-side rendering). Explosion types include small, big, star, creeper, and burst.
Redstone
Section titled “Redstone”A full redstone system with signal constants (SIGNAL_NONE = 0, SIGNAL_MAX = 15), comparators with compare and subtract modes, repeaters with four delay settings, daylight detectors, and powered rails with chain propagation up to 8 blocks.
Wither Boss
Section titled “Wither Boss”WitherBoss entity implementing Monster, RangedAttackMob, and BossMob interfaces, with multi-head targeting (three heads), invulnerability phase, block destruction, ranged skull attacks, and boss health bar.
Behavior and dispense registry
Section titled “Behavior and dispense registry”A behavior system with a Behavior base class and BehaviorRegistry that maps Item pointers to DispenseItemBehavior instances, with a DefaultDispenseItemBehavior fallback (drops items as pickups). The DispenserBootstrap registers 15 item-specific dispense actions at startup.
New blocks and items
Section titled “New blocks and items”MinecraftConsoles adds many blocks and items beyond the LCEMP base, including stained glass (blocks and panes), hay bales, note blocks, jukeboxes, beacons, anvils, command blocks, flower pots, skulls, hoppers, droppers, comparators, daylight detectors, weighted pressure plates, wood and stone buttons, nether wart, soul sand, netherrack, and glowstone, along with items like leads, name tags, empty maps, spawn eggs, firework rockets, firework charges, and the Nether Star.
New entities
Section titled “New entities”Several new entity types are implemented, including horses, ocelots (both new AI and legacy versions), witches, the Wither boss, Wither skulls, bats, leash fence knots, and firework rockets.
Commands
Section titled “Commands”An expanded command system with binary packet-based dispatch, ten implemented commands, and several more in Java-reference form waiting to be ported.
Build system
Section titled “Build system”A dual build system with the original Visual Studio solution and a newer CMake build, three GitHub Actions CI workflows, and clang-format code style enforcement.
What LCEMP has that MinecraftConsoles does not
Section titled “What LCEMP has that MinecraftConsoles does not”LCEMP includes a ConsoleSaveFileSplit system that doesn’t exist in MinecraftConsoles. This handles splitting save data across multiple files for console memory constraints.
Shared foundation
Section titled “Shared foundation”Both projects share the same TU19 base. The core entity system, world generation, tile system, chunk management, biome layers, networking packets, and rendering pipeline all come from the same 4J Studios C++ port of Minecraft Java Edition 1.6.4. The differences are in what each project has added on top of that shared base.