Welcome to Evolution Server, a scalable and modern backend server for Yu-Gi-Oh! matches, compatible with EDOPro, Koishi, and YGO Mobile clients. Unlike traditional implementations, Evolution focuses on code extensibility and data collection, enabling new gameplay features and statistics.
- 🏰 Room creation through the EDOPro lobby.
- 📱 Duel creation supported via Koishi and YGO Mobile.
- 🧪 Cross-client duels between different platforms (experimental).
- 🔌 Automatic reconnection after disconnection or crash.
- 📊 Match data collection for future analytics.
- 🚀 Isolated core logic for each match.
- Node.js (>= 24.11.0)
- Node.js (>= 24.11.0)
- CMake (>= 3.18)
- Vcpkg (handled automatically by build script)
- System dependencies (Ubuntu/Debian):
wget,git,tar,curl,zip,unzip,pkg-config,g++,make,cmake,ninja-build
Before running the server, you must configure the environment variables.
-
Copy the example configuration file:
cp .env.example .env
-
Edit
.envwith your settings (ports, database credentials, etc.).
Vcpkg is used to manage C++ dependencies. The build_core_integrator.sh script handles the bootstrapping and installation of Vcpkg automatically.
If you want to manually set it up:
git clone https://github.com/microsoft/vcpkg.git
./vcpkg/bootstrap-vcpkg.shgit clone --recursive https://github.com/diangogav/EDOpro-server-ts
cd EDOpro-server-tsYou can use the provided script to install system dependencies on Ubuntu/Debian:
sudo bash install_dependencies.shbash clone_repositories.shThis will create a repositories/ folder with all required assets (scripts, databases, banlists, etc).
bash setup_resources.shThis mimics the layout used in the Dockerfile (e.g. copying resources to ./mercury, ./scripts/evolution, etc.).
bash build_core_integrator.shThis compiles the duel core used by the backend using Vcpkg and CMake.
npm installnpm run devServer should now be running and listening on the configured ports (default: 7911, 7922, 4000).
If you'd rather use Docker:
docker build -t evolution-server .docker run -p 4000:4000 -p 7911:7911 -p 7922:7922 evolution-server- Based on Multirole by @Dyxel
- Inspired by the amazing work of the Project Ignis, MyCard and Evolution communities