minecraftconsoles-lce
Original:🇺🇸 English
Translated
Expert skill for building, running, and extending MinecraftConsoles (Minecraft Legacy Console Edition) — a C++ multi-platform reimplementation with dedicated server, LAN multiplayer, and modding support.
3installs
Sourcearadotso/trending-skills
Added on
NPX Install
npx skill4agent add aradotso/trending-skills minecraftconsoles-lceTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →MinecraftConsoles (Legacy Console Edition) Skill
Skill by ara.so — Daily 2026 Skills collection.
What This Project Is
MinecraftConsoles is a C++ reimplementation/continuation of Minecraft Legacy Console Edition v1.6.0560.0 (TU19), targeting modern Windows (and unofficially macOS/Linux via Wine). Goals include:
- Multi-platform base for modding, backports, and LCE development
- Quality desktop experience with keyboard/mouse and controller support
- LAN multiplayer and dedicated server software
- Splitscreen multiplayer support
Repository:
Primary language: C++
Build system: Visual Studio 2022 solution () + CMake support
smartcmd/MinecraftConsolesPrimary language: C++
Build system: Visual Studio 2022 solution (
.slnQuick Start
Prerequisites
- Windows (primary supported platform)
- Visual Studio 2022 with C++ desktop workload
- Git
Clone
bash
git clone https://github.com/smartcmd/MinecraftConsoles.git
cd MinecraftConsolesBuild with Visual Studio
- Open in Visual Studio 2022
MinecraftConsoles.sln - Set Startup Project to
Minecraft.Client - Set configuration to Debug (or Release), platform to Windows64
- Press F5 or Ctrl+F5 to build and run
Build with CMake (Windows x64)
powershell
# Configure
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# Build the client
cmake --build build --config Debug --target MinecraftClient
# Build the dedicated server
cmake --build build --config Debug --target MinecraftServerSee in the repo for additional platform-specific notes.
COMPILE.mdRunning the Client
Nightly Build (No Compile Needed)
Setting Your Username
Create in the same directory as the executable:
username.txtSteveOr use a launch argument:
powershell
Minecraft.Client.exe -name Steve
Minecraft.Client.exe -name Steve -fullscreenClient Launch Arguments
| Argument | Description |
|---|---|
| Override in-game username |
| Launch in fullscreen mode |
Keyboard & Mouse Controls
| Action | Key/Button |
|---|---|
| Move | |
| Jump / Fly Up | |
| Sneak / Fly Down | |
| Sprint | |
| Inventory | |
| Chat | |
| Drop Item | |
| Crafting | |
| Attack / Destroy | Left Click |
| Use / Place | Right Click |
| Select hotbar slot | |
| Pause | |
| Fullscreen | |
| Toggle HUD | |
| Toggle Debug Info | |
| Debug Overlay | |
| Toggle Debug Console | |
| Toggle FPS/TPS view | |
| Player list / Host Options | |
| Accept tutorial hint | |
| Decline tutorial hint | |
LAN Multiplayer
LAN multiplayer works automatically on the Windows build:
- Hosting a world auto-advertises it on the local network
- Other players discover sessions via Join Game menu
- TCP port: 25565 (game connections)
- UDP port: 25566 (LAN discovery)
- Use the Add Server button to connect to known IPs
- Username changes are safe — keep to preserve your data across renames
uid.dat - Splitscreen players can join LAN/multiplayer sessions
Dedicated Server
Download Nightly Server Build
Run Directly (Windows)
powershell
Minecraft.Server.exe -name MyServer -port 25565 -ip 0.0.0.0 -maxplayers 8 -loglevel info
Minecraft.Server.exe -seed 123456789Server CLI Arguments
| Argument | Description |
|---|---|
| Override |
| Override |
| Alias of |
| Override |
| Override |
| Override |
| |
| Print usage and exit |
server.properties
Configuration
server.propertiesLocated in the same directory as . Auto-generated with defaults if missing.
Minecraft.Server.exeproperties
server-name=DedicatedServer
server-port=25565
server-ip=0.0.0.0
max-players=8
level-name=world
level-id=world
level-seed=
world-size=classic
log-level=info
white-list=false
lan-advertise=false
autosave-interval=60Key property notes:
| Key | Values | Default | Notes |
|---|---|---|---|
| | | TCP listen port |
| string | | Bind address |
| string | | Max 16 chars |
| | | Player slots |
| int64 or empty | empty | Empty = random |
| | | New world size |
| | | Verbosity |
| | | Seconds between autosaves |
| | | Enable whitelist |
| | | LAN advertisement |
Dedicated Server in Docker (Linux/Wine)
Recommended: Pull from GHCR (No Local Build)
bash
# Start (pulls latest image automatically)
./start-dedicated-server.sh
# Start without pulling
./start-dedicated-server.sh --no-pull
# Equivalent manual command
docker compose -f docker-compose.dedicated-server.ghcr.yml up -dLocal Build Mode (Optional)
Requires a locally compiled :
Minecraft.Server.exebash
docker compose -f docker-compose.dedicated-server.yml up -d --buildDocker Persistent Volumes
| Host Path | Container Path | Purpose |
|---|---|---|
| | Server config |
| | World save data |
Docker Environment Variables
| Variable | Default | Description |
|---|---|---|
| | Virtual display number |
| | Virtual screen size (tiny, Wine needs it) |
Project Structure (Key Areas)
MinecraftConsoles/
├── MinecraftConsoles.sln # Visual Studio solution
├── CMakeLists.txt # CMake build definition
├── COMPILE.md # Detailed compile instructions
├── CONTRIBUTING.md # Contributor guide and project goals
├── docker-compose.dedicated-server.ghcr.yml # Docker (GHCR image)
├── docker-compose.dedicated-server.yml # Docker (local build)
├── start-dedicated-server.sh # Quick-start script
├── server-data/
│ ├── server.properties # Server config (auto-generated)
│ └── GameHDD/ # World save data
└── .github/
└── banner.pngCommon C++ Patterns in This Codebase
Adding a New Key Binding (Keyboard Input)
The project added keyboard/mouse support on top of the original controller-only code. When extending input:
cpp
// Typical pattern for checking key state in the input handler
// Find the keyboard input processing file and add your key check:
bool isKeyPressed(int virtualKey) {
return (GetAsyncKeyState(virtualKey) & 0x8000) != 0;
}
// Example: adding a new toggle key
if (isKeyPressed(VK_F7)) {
// toggle your feature
myFeatureEnabled = !myFeatureEnabled;
}Registering a Launch Argument
Follow the existing / pattern:
-name-fullscreencpp
// In the argument parsing section (typically in main or init):
for (int i = 1; i < argc; i++) {
std::string arg = argv[i];
if (arg == "-name" && i + 1 < argc) {
username = argv[++i];
}
else if (arg == "-fullscreen") {
launchFullscreen = true;
}
// Add your argument:
else if (arg == "-myoption" && i + 1 < argc) {
myOption = argv[++i];
}
}Reading server.properties
server.propertiescpp
#include <fstream>
#include <sstream>
#include <map>
#include <string>
std::map<std::string, std::string> loadServerProperties(const std::string& path) {
std::map<std::string, std::string> props;
std::ifstream file(path);
std::string line;
while (std::getline(file, line)) {
if (line.empty() || line[0] == '#') continue;
auto eq = line.find('=');
if (eq == std::string::npos) continue;
std::string key = line.substr(0, eq);
std::string val = line.substr(eq + 1);
props[key] = val;
}
return props;
}
// Usage:
auto props = loadServerProperties("server.properties");
int port = std::stoi(props.count("server-port") ? props["server-port"] : "25565");
std::string serverName = props.count("server-name") ? props["server-name"] : "DedicatedServer";Writing server.properties
(Normalize / Auto-generate)
server.propertiescpp
void writeServerProperties(const std::string& path,
const std::map<std::string, std::string>& props) {
std::ofstream file(path);
for (auto& [key, val] : props) {
file << key << "=" << val << "\n";
}
}
// Normalize level-id from level-name
std::string normalizeLevelId(const std::string& levelName) {
std::string id = levelName;
// Remove unsafe characters, lowercase, replace spaces with underscores
for (char& c : id) {
if (!std::isalnum(c) && c != '_' && c != '-') c = '_';
}
return id;
}Troubleshooting
Build Fails: Missing Windows SDK
- Open Visual Studio Installer → Modify → add Windows 10/11 SDK
- Make sure the platform is set to Windows64 (not x86)
CMake Can't Find Visual Studio Generator
powershell
# Confirm VS 2022 is installed, then:
cmake -S . -B build -G "Visual Studio 17 2022" -A x64
# "17 2022" is the generator name for VS 2022Game Launches But No Display / Crashes Immediately
- Ensure you're running from the directory containing all game assets
- Check that your GPU drivers support the required DirectX version
- Try Debug build for more verbose error output
Server Not Visible on LAN
- Check firewall rules allow TCP 25565 and UDP 25566
- Verify is NOT required for dedicated servers (it's for LAN broadcast; clients discover via Join Game)
lan-advertise=true - Ensure both client and server are on the same subnet
Docker Server: Wine Can't Display
- The env var must match what Wine uses
XVFB_DISPLAY - The container uses a minimal virtual framebuffer — don't change this unless you have a reason
64x64x16
Username Reset / UID Issues
- Do not delete — it stores your unique player ID
uid.dat - If you rename yourself via or
-name, your existingusername.txtkeeps world data linked to your accountuid.dat
macOS / Linux (Wine)
- Download the Windows nightly
.zip - Run via or CrossOver
wine Minecraft.Client.exe - Stability issues (frametime pacing) are known and community-reported; not officially supported
Contributing
Read before submitting PRs. Key points:
CONTRIBUTING.md- Follow existing code style and naming conventions
- Console build compatibility should not be broken without discussion
- Security fixes are always welcome
- Check open issues (535+) for good first tasks
- Join the Discord for contributor discussion
Platform Support Summary
| Platform | Status |
|---|---|
| Windows (VS 2022) | ✅ Fully supported |
| macOS / Linux (Wine) | ⚠️ Community-reported working, unofficial |
| Android (Wine) | ⚠️ Runs with frametime issues |
| iOS | ❌ No support |
| Consoles | ⚠️ Code present, not actively maintained |