From aradotso-trending-skills-37
Provides guidance for building, running, and modding MinecraftConsoles (C++ reimplementation of Minecraft Legacy Console Edition) with dedicated server and LAN multiplayer support.
How this skill is triggered — by the user, by Claude, or both
Slash command
/aradotso-trending-skills-37:minecraftconsoles-lceThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
> Skill by [ara.so](https://ara.so) — Daily 2026 Skills collection.
Skill by ara.so — Daily 2026 Skills collection.
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:
Repository: smartcmd/MinecraftConsoles
Primary language: C++
Build system: Visual Studio 2022 solution (.sln) + CMake support
git clone https://github.com/smartcmd/MinecraftConsoles.git
cd MinecraftConsoles
MinecraftConsoles.sln in Visual Studio 2022Minecraft.Client# 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 MinecraftServer
See COMPILE.md in the repo for additional platform-specific notes.
Download the .zip from the Nightly Release, extract, and run Minecraft.Client.exe.
Create username.txt in the same directory as the executable:
Steve
Or use a launch argument:
Minecraft.Client.exe -name Steve
Minecraft.Client.exe -name Steve -fullscreen
| Argument | Description |
|---|---|
-name <username> | Override in-game username |
-fullscreen | Launch in fullscreen mode |
| Action | Key/Button |
|---|---|
| Move | 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 (tabs: Q / E) |
| Attack / Destroy | Left Click |
| Use / Place | Right Click |
| Select hotbar slot | 1–9 or Mouse Wheel |
| Pause | Esc |
| Fullscreen | F11 |
| Toggle HUD | F1 |
| Toggle Debug Info | F3 |
| Debug Overlay | F4 |
| Toggle Debug Console | F6 |
| Toggle FPS/TPS view | F5 |
| Player list / Host Options | Tab |
| Accept tutorial hint | Enter |
| Decline tutorial hint | B |
LAN multiplayer works automatically on the Windows build:
uid.dat to preserve your data across renamesMinecraft.Server.exe -name MyServer -port 25565 -ip 0.0.0.0 -maxplayers 8 -loglevel info
Minecraft.Server.exe -seed 123456789
| Argument | Description |
|---|---|
-port <1-65535> | Override server-port |
-ip <addr> | Override server-ip (bind address) |
-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> | debug, info, warn, error |
-help / --help / -h | Print usage and exit |
server.properties ConfigurationLocated in the same directory as Minecraft.Server.exe. Auto-generated with defaults if missing.
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=60
Key property notes:
| Key | Values | Default | Notes |
|---|---|---|---|
server-port | 1–65535 | 25565 | TCP listen port |
server-ip | string | 0.0.0.0 | Bind address |
server-name | string | DedicatedServer | Max 16 chars |
max-players | 1–8 | 8 | Player slots |
level-seed | int64 or empty | empty | Empty = random |
world-size | classic|small|medium|large | classic | New world size |
log-level | debug|info|warn|error | info | Verbosity |
autosave-interval | 5–3600 | 60 | Seconds between autosaves |
white-list | true/false | false | Enable whitelist |
lan-advertise | true/false | false | LAN advertisement |
# 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 -d
Requires a locally compiled Minecraft.Server.exe:
docker compose -f docker-compose.dedicated-server.yml up -d --build
| Host Path | Container Path | Purpose |
|---|---|---|
./server-data/server.properties | /srv/mc/server.properties | Server config |
./server-data/GameHDD | /srv/mc/Windows64/GameHDD | World save data |
| Variable | Default | Description |
|---|---|---|
XVFB_DISPLAY | :99 | Virtual display number |
XVFB_SCREEN | 64x64x16 | Virtual screen size (tiny, Wine needs it) |
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.png
The project added keyboard/mouse support on top of the original controller-only code. When extending input:
// 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;
}
Follow the existing -name / -fullscreen pattern:
// 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];
}
}
server.properties#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";
server.properties (Normalize / Auto-generate)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;
}
# 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 2022
lan-advertise=true is NOT required for dedicated servers (it's for LAN broadcast; clients discover via Join Game)XVFB_DISPLAY env var must match what Wine uses64x64x16 virtual framebuffer — don't change this unless you have a reasonuid.dat — it stores your unique player ID-name or username.txt, your existing uid.dat keeps world data linked to your account.zipwine Minecraft.Client.exe or CrossOverRead CONTRIBUTING.md before submitting PRs. Key points:
| 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 |
npx claudepluginhub aradotso/trending-skillsProvides expert guidance on Minecraft server plugin development using Bukkit, Spigot, and Paper APIs, covering event-driven architecture, command systems, world manipulation, player management, and performance optimization.
Guides Minecraft server plugin development using Bukkit, Spigot, and Paper APIs. Covers API mastery, internal mechanics, performance engineering, and ecosystem integration.
MCPize Publisher — takes a built MCP server and publishes it to the MCPize marketplace with full autopilot. Runs quality checks, deploys to MCPize Cloud, generates SEO metadata and logo via AI, sets up pricing, publishes to marketplace, generates go-to-market content (social posts, README badges, launch checklist), and verifies the live listing. Part of the MCPize suite (mcpize.com). Use this skill whenever someone wants to publish, launch, or list an MCP server on the marketplace, wants to deploy and publish, says 'publish this MCP', 'launch my server', 'put it on the marketplace', or references mcpize-publish. Also trigger on: publish mcp, deploy mcp, launch mcp server, list on marketplace, mcpize publish, go live, ship it, publish to mcpize, marketplace listing, go-to-market mcp.