Migrer ta communauté de Garry's Mod vers S&Box

Migrer ta communauté de Garry's Mod vers S&Box

Guide stratégique et technique : ce qui se traduit de GMod vers S&Box, ce qui change radicalement (Lua → C#, Workshop → sbox.game, server.cfg → CLI), et comment migrer ta communauté sans la perdre.

Introduction

S&Box est officiellement le successeur spirituel de Garry's Mod. Sur le papier c'est rassurant, mais en pratique presque rien n'est compatible : nouveau moteur (Source 2), nouveau langage (C# .NET 9), nouvelle plateforme de distribution (sbox.game), nouvelle architecture (Scene-based, plus de Entity-based). Ce guide t'aide à planifier la transition côté serveur et côté communauté.

Prérequis

  • Une communauté GMod active ou un projet de migration
  • Un serveur S&Box (chez VeryCloud, idéalement en parallèle de ton GMod pendant la transition)
  • Du temps : selon la complexité du gamemode original, comptez plusieurs semaines à plusieurs mois de portage

Étape 1 : Inventaire de l'existant GMod

Avant de migrer, fais l'inventaire de ton serveur GMod actuel :

Élément GMod Action de migration
Gamemode Lua custom À réécrire en C# (pas de portage automatique)
Addons Workshop Chercher équivalents sur sbox.game ou créer
Maps .bsp À convertir / refaire dans Hammer S&Box
server.cfg ConVars La majorité n'existent plus
Base de données MySQL (MySQLOO, etc.) Réutilisable telle quelle (driver .NET)
ULX/ULib Reconstruction via le système de claims S&Box
FastDL HTTP Plus nécessaire (packages cloud sbox.game)

Étape 2 : Ce qui ne se traduit PAS

Lua → C# : aucun outil de conversion automatique fiable. Le code de gameplay est à réécrire intégralement. La logique reste la même (events, hooks, entités) mais l'API change.

Workshop → sbox.game : système différent. Tu ne récupères pas tes addons workshop, tu les remplaces.

net.Send / net.Receive[Rpc.Broadcast], [Rpc.Owner], [Rpc.Host] en C#.

hook.Add("PlayerSay", ...) → patterns d'events / overrides dans Components C#.

Entités SENT/SWEP → Components attachés à des GameObjects (architecture Scene).

Étape 3 : Ce qui se traduit bien

Concepts : joueurs, équipes, scores, inventaires, économie — tout ça existe sous une forme ou une autre.

Bases de données : ton schéma MySQL/MariaDB reste valide. Tu remplaces juste le driver Lua (MySQLOO/tmysql) par un driver .NET (MySqlConnector, par exemple).

Connaissances admin : bind, scoring, modération, ban/kick, regles de communauté — tout reste pertinent.

Webhook Discord, intégrations externes : code .NET équivalent, juste un autre langage.

Étape 4 : Plan de migration côté serveur

Phase 1 — Setup parallèle (semaine 1)

  1. Commande un serveur S&Box chez VeryCloud (SboxDev ou Plus selon ta cible)
  2. Configure le panel Wisp comme décrit dans le tuto "Premiers pas"
  3. Charge facepunch.sandbox pour tester
  4. Annonce officiellement à ta communauté le projet de migration

Phase 2 — Portage du gamemode (semaines 2-N)

  1. Installe les outils dev S&Box (éditeur intégré + Rider/VS)
  2. Crée un nouveau projet .sbproj
  3. Réécris les systèmes critiques en priorité : connexion, sauvegarde, économie
  4. Teste en local avant de déployer

Phase 3 — Beta fermée (1-2 semaines)

  1. Upload du .sbproj sur ton serveur S&Box (ou publication privée sur sbox.game)
  2. Invite tes admins et joueurs de confiance
  3. Identifie les bugs et les manques par rapport à GMod

Phase 4 — Migration officielle

  1. Annonce la date avec 2-3 semaines d'avance
  2. Garde le GMod en parallèle 1 mois après l'ouverture S&Box (rétention)
  3. Transfère les données joueurs si pertinent (exports MySQL → import dans nouveau schéma)

Étape 5 : Transférer les données joueurs

Si tu as une BDD MySQL côté GMod avec progression/stats joueurs, tu peux migrer vers ton nouveau schéma S&Box.

Exemple de pipeline simple :

# Export GMod
mysqldump -u user -p gmod_db players > gmod_players.sql

# Adapter le schema (script SQL manuel a ecrire)
# - Identifiants : Steam ID 32 -> Steam ID 64
# - Nouveaux champs gamemode S&Box

# Import S&Box
mysql -u user -p sbox_db < adapted_players.sql

Côté gamemode S&Box, lis cette table comme tu lirais n'importe quelle BDD depuis du C#.

Étape 6 : Communiquer à la communauté

C'est le plus important. Sans communication, tu perds tes joueurs.

À annoncer clairement :

  • Pourquoi tu migres (perfs Source 2, fin de vie GMod, nouvelles fonctionnalités)
  • Quand exactement le switch aura lieu
  • Ce qui sera conservé (rangs, monnaie virtuelle, etc.)
  • Ce qui sera perdu / reset
  • Comment installer S&Box pour tes joueurs (Steam, ~20€ à l'époque du lancement)

Discord, post pinned, vidéo récap. Ne sous-estime pas le besoin de pédagogie.

Étape 7 : Garder GMod en parallèle

Tant que ta communauté n'est pas migrée à 80%+, garde le serveur GMod actif. Cohabitation des deux pendant 1-2 mois te donne :

  • Un fallback si S&Box pose problème
  • Le temps que les joueurs retardataires achètent S&Box
  • L'opportunité de comparer en live

Chez VeryCloud, tu peux faire tourner les deux services côte à côte sur le même compte.

Dépannage

"Les joueurs ne veulent pas acheter S&Box"

  • Inévitable pour une partie. Communique sur la valeur ajoutée du nouveau serveur
  • Garde GMod plus longtemps que prévu si la base ne migre pas

"Mon code Lua est tellement custom que c'est ingérable à porter"

  • Réécris les systèmes critiques en C# et accepte de perdre les fonctionnalités secondaires
  • Considère que c'est l'occasion de nettoyer la dette technique

"Les performances S&Box sont moins bonnes que GMod"

  • Source 2 demande plus de hardware. Monte de plan VeryCloud
  • Profile ton code C# (voir le tuto perf S&Box)

Commandes utiles

# Export GMod MySQL
mysqldump -u user -p --single-transaction db_gmod > backup.sql

# Comparer deux schemas (mysqldiff)
mysqldiff --server1=user@gmod_host:port --server2=user@sbox_host:port

# Tester la connexion BDD depuis ton .sbproj en C# (extrait)
# using MySqlConnector;
# var conn = new MySqlConnection(connStr);

Conclusion

Migrer de GMod vers S&Box n'est pas un upgrade, c'est une reconstruction. Le code est à réécrire, les addons à remplacer, les maps à refaire. Mais Source 2 + .NET 9 + asset.party te donnent une base technique 10 ans plus moderne, et c'est l'occasion de repenser ton serveur sans la dette accumulée. Planifie sérieusement, communique avec ta communauté, et garde GMod en parallèle le temps de la transition.

Pour aller plus loin : portage avancé de hooks GMod en patterns C#, monétisation et compliance Steam, observability côté gamemode.

Ressources

Join our Discord community server

For any questions, suggestions, or just to chat with the community, join us on Discord!

900+Members