Un manager todo-en-uno para servidores Minecraft Bedrock Dedicated Server (BDS) con:
- 🖥️ GUI en Tkinter
- 🔔 Notificaciones a Discord Webhook
- 📊 Estadísticas en MySQL
- 📦 Backups automáticos + rotación
- 🛡️ Watchdog (auto-restart + detección de hang)
- 📄 Página PHP para ver estadísticas por jugador
🌐 Proyecto para LatinBattle.com
🤖 Creado por ChatGPT (OpenAI) y Azzlaer para LatinBattle.com
▶️ Iniciar servidor Bedrock- 🛑 Apagar con
/stop(apagado limpio) - ⛔ Stop brusco (terminate / taskkill opcional en Windows)
- 🔁 Reiniciar
- 🧾 Consola en vivo (log streaming)
- ✍️ Editor visual de mensajes (con emojis) desde la GUI
- 🧩 Embeds configurables (modo embed o texto)
- 🔐 Webhook guardado protegido (tokenización/obfuscación en
config.ini) - 🧯 Alertas pro del watchdog (crash/hang/startup timeout)
- 👤 Registro de jugadores (XUID, first_seen, last_seen)
- 🕒 Sesiones (join/leave/segundos por sesión)
- 📅 Estadísticas diarias automáticas (jugadores únicos y tiempo total)
- ⬇️ Exportar CSV desde GUI
- 🧰 Backups ZIP automáticos cada N minutos
- ♻️ Rotación (mantener los últimos N)
- 🗂️ Carpeta configurable por perfil
- 🚫 Exclusiones por patrón (
.tmp;.lock;...) - 🧪 Backup manual desde GUI
- ♻️ Auto-restart si el proceso cae
- 🧠 Detección de “hang” si no hay actividad de consola por X minutos
- ⏳ Backoff incremental para reinicios
- 🧯 Límite de reinicios por hora (evita loops)
- ✅ Puede exigir confirmación
Server started.(startup timeout)
- 🔎 Buscar por nombre o XUID
- 👤 Perfil completo del jugador
- 🕒 Sesiones paginadas
- 📅 Stats diarias (últimos 30 días) + top 10 por día
- Windows 10/11 x64 (recomendado), o Linux (con ajustes de paths)
- Minecraft Bedrock Dedicated Server (BDS)
- Python 3.10+ (recomendado 3.12)
- MySQL/MariaDB
requestsmysql-connector-pythonpyinstaller(solo para generar EXE)
Descargá BDS desde el sitio oficial:
Extraé el servidor (donde está bedrock_server.exe) y poné el manager en la misma carpeta.
Ejecutá este SQL:
CREATE DATABASE IF NOT EXISTS latinbat_bedrock
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci;
USE latinbat_bedrock;
CREATE TABLE IF NOT EXISTS players (
xuid VARCHAR(32) PRIMARY KEY,
name VARCHAR(32) NOT NULL,
first_seen DATETIME NOT NULL,
last_seen DATETIME NOT NULL,
total_seconds BIGINT NOT NULL DEFAULT 0
);
CREATE TABLE IF NOT EXISTS sessions (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
xuid VARCHAR(32) NOT NULL,
join_time DATETIME NOT NULL,
leave_time DATETIME NULL,
session_seconds INT NOT NULL DEFAULT 0,
INDEX (xuid),
INDEX (join_time),
FOREIGN KEY (xuid) REFERENCES players(xuid) ON DELETE CASCADE
);
CREATE TABLE IF NOT EXISTS daily_stats (
stat_date DATE PRIMARY KEY,
unique_players INT NOT NULL DEFAULT 0,
total_seconds BIGINT NOT NULL DEFAULT 0,
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);
CREATE INDEX idx_sessions_xuid_join_time ON sessions (xuid, join_time);💡 Importante: la BD usa
utf8mb4para soportar emojis.
En la carpeta del proyecto:
python -m pip install --upgrade pip
python -m pip install requests mysql-connector-python pyinstallerpython bedrock_manager.pyLa primera vez se creará config.ini automáticamente (UTF-8).
El manager soporta múltiples servidores mediante perfiles:
GLOBAL.active_profiledefine el perfil activoGLOBAL.profileslista perfiles separados por coma
Cada perfil crea secciones como:
PROFILE:default:SERVERPROFILE:default:BACKUPPROFILE:default:WATCHDOGPROFILE:default:PARSER
Ejemplo de perfil:
[GLOBAL]
active_profile=default
profiles=default,us_server
[PROFILE:default:SERVER]
exe_path=bedrock_server.exe
workdir=
encoding=utf-8
hard_kill_tree_windows=falseEn la GUI:
- Pestaña Discord → pegás el webhook → Guardar
- El webhook se guarda protegido (no se ve en texto plano)
En la GUI:
- Pestaña Discord → editor de mensajes
Placeholders disponibles:
{player}{date}{file}{line}{reason}
En la GUI:
- Pestaña Backups
- Configurás:
- intervalo
- carpeta
- rotación
- exclusiones
En la GUI:
- Pestaña Ajustes → Watchdog
Recomendado:
hang_minutes = 10-15max_restarts_per_hour = 3-5startup_timeout_seconds = 120-180
python -m PyInstaller --onefile --windowed --clean bedrock_manager.pySalida:
dist/bedrock_manager.exe
💡 Si te sale
'pyinstaller' is not recognizedusá siemprepython -m PyInstaller ...
Archivo: user.php
✅ Funciones:
- Buscar por nombre o XUID
- Perfil del jugador
- Sesiones paginadas
- Stats diarias + top del día
Configurar DB en el encabezado del archivo:
$dbHost = "localhost";
$dbName = "latinbat_bedrock";
$dbUser = "bedrock_srv";
$dbPass = "";Abrir:
http://localhost/user.phpuser.php?xuid=TU_XUID
⚠️ Eventos como muertes, día/noche, clima, etc. no siempre salen en el log oficial del BDS (sin addons).
Este proyecto se basa en los eventos que el server imprime en consola.
- 🧩 Multi-instancia real (varios servidores corriendo en paralelo desde una sola GUI)
- 📈 Dashboard completo (ranking semanal/mensual + gráficos)
- 🔑 Seguridad fuerte del webhook con DPAPI/Keyring (según SO)
- 🧪 Tests automáticos del parser
- 🤖 ChatGPT (OpenAI)
- 🧙♂️ Azzlaer
- 🌐 Para LatinBattle.com
Elegí la que quieras (MIT recomendada).
Si querés, te genero también un LICENSE MIT automáticamente.