Gérez dynamiquement vos instances de serveurs Minecraft depuis Velocity.
Création, duplication, scaling automatique, et bien plus.
VelocityInstanceManager (VIM) est un plugin pour Velocity qui permet de gérer dynamiquement des instances de serveurs Minecraft (Paper, Spigot, etc.). Il offre :
Idéal pour les réseaux de serveurs qui ont besoin de scaler rapidement sans intervention manuelle.
VelocityInstanceManager-1.0.0.jar depuis GitHub.plugins/ de votre serveur Velocity.plugins/velocityinstancemanager/ sera créé avec un fichier config.yml.Le fichier config.yml est généré automatiquement lors du premier démarrage. Voici sa structure :
settings:
auto_start_timeout: 30 # secondes avant de considérer un serveur démarré
inactive_timeout: 300 # secondes sans joueurs avant arrêt (0 = désactivé)
duplicate_on_join: false # créer une instance si toutes sont pleines
max_total_instances: 20 # nombre max d'instances simultanées
templates:
survival:
path: "templates/survival"
min_memory: 1024
max_memory: 2048
port_range_start: 30000
port_range_end: 31000
auto_duplicate: true
max_players: 20
max_instances: 5
jvm_args: "-XX:+UseG1GC"
server_jar: "server.jar"
startup_command: "java -Xmx{max_memory}M -Xms{min_memory}M {jvm_args} -jar {server_jar} nogui"
creative:
# ...
path : dossier contenant le serveur template (relatif à la racine du proxy ou absolu).min/max_memory : mémoire allouée à l'instance (en Mo).port_range_start/end : plage de ports dynamiques.auto_duplicate : si true, crée une nouvelle instance quand le serveur atteint max_players - 1.startup_command : commande de lancement. Les variables {max_memory}, {min_memory}, {jvm_args}, {server_jar} sont automatiquement remplacées.Toutes les commandes sont accessibles via /instance (alias /inst, /vim).
/instance list
Affiche la liste des instances actives avec leur nombre de joueurs.
/instance create <template> <name>
Crée une nouvelle instance à partir d'un template.
/instance duplicate <source> <new>
Duplique une instance existante (copie complète).
/instance start <name>
Démarre une instance arrêtée (si supporté).
/instance stop <name>
Arrête une instance et la retire du registre Velocity.
/instance join <name>
Envoie le joueur vers l'instance spécifiée.
/instance info <name>
Donne des informations détaillées (port, template, joueurs, statut).
/instance templates
Liste les templates disponibles avec leurs caractéristiques.
Attribuez les permissions suivantes à vos joueurs ou groupes :
Un template est un dossier contenant un serveur Minecraft prêt à être exécuté (avec son server.jar, ses plugins, etc.).
server.properties car le plugin le régénérera avec le bon port).templates/survival/).server.jar est bien présent et que le script de démarrage est correct.
Vous pouvez étendre VIM en utilisant son API (disponible prochainement). Actuellement, le plugin expose son gestionnaire via l'objet principal :
VelocityInstanceManager vim = (VelocityInstanceManager) proxyServer.getPluginManager().getPlugin("velocityinstancemanager").orElse(null);
ServerInstanceManager manager = vim.getInstanceManager();
manager.createInstance("survival", "mon_serveur");
Un module API séparé sera publié dans une future version.
Le plugin est open-source sous licence MIT. Les contributions sont les bienvenues !