Les performances de votre serveur FiveM sont cruciales pour offrir une expérience de jeu fluide à vos joueurs. Un serveur qui lag ou qui a des problèmes de performance peut rapidement faire fuir votre communauté. Dans ce guide complet, nous allons voir comment optimiser votre serveur FiveM pour des performances maximales.
Pourquoi optimiser votre serveur FiveM ?
Un serveur FiveM mal optimisé peut causer plusieurs problèmes :
- Lag et latence élevée pour les joueurs
- Crashs fréquents du serveur
- Chargement lent des ressources
- Expérience de jeu dégradée
L'optimisation permet d'améliorer tous ces aspects et de garantir une expérience fluide pour vos joueurs.
Optimisation des ressources
1. Audit de vos ressources
La première étape consiste à identifier les ressources qui consomment le plus de ressources :
-- Utilisez cette commande dans la console serveur
resmon
Cette commande vous montrera quelles ressources consomment le plus de CPU et de mémoire.
2. Supprimer les ressources inutiles
Ne gardez que les ressources essentielles. Chaque ressource active consomme des ressources serveur, même si elle n'est pas utilisée activement.
3. Optimiser les scripts existants
Quelques techniques d'optimisation courantes :
- Utiliser des threads optimisés (éviter les boucles infinies avec
Citizen.Wait(0)) - Remplacer
while true dopar des événements quand c'est possible - Utiliser des native functions plutôt que des wrappers
- Mettre en cache les résultats fréquemment utilisés
-- ❌ Mauvais : boucle trop rapide
Citizen.CreateThread(function()
while true do
Citizen.Wait(0) -- Tourne 60 fois par seconde !
-- Votre code
end
end)
-- ✅ Bon : boucle optimisée
Citizen.CreateThread(function()
while true do
Citizen.Wait(1000) -- Tourne 1 fois par seconde
-- Votre code
end
end)
Configuration serveur
Optimiser server.cfg
Voici quelques paramètres importants à configurer dans votre server.cfg :
# Limiter les joueurs selon votre hardware
sv_maxclients 48
# Optimiser la bande passante
sv_sendqueue 16384
# Désactiver le OneSync si non nécessaire (sinon activer)
onesync on
Utiliser OneSync
OneSync permet de gérer plus de joueurs et améliore les performances globales. Si vous avez plus de 32 joueurs, activez-le absolument.
Optimisation réseau
1. Réduire la fréquence d'envoi des données
Pour les scripts qui envoient beaucoup de données réseau, réduisez la fréquence :
-- Au lieu d'envoyer chaque frame
local lastUpdate = 0
Citizen.CreateThread(function()
while true do
Citizen.Wait(100)
local currentTime = GetGameTimer()
if currentTime - lastUpdate > 500 then
TriggerServerEvent('updateData', data)
lastUpdate = currentTime
end
end
end)
2. Compresser les données
Pour les gros objets JSON, utilisez la compression :
-- Exemple de compression basique
local json = json.encode(bigData)
-- Envoyez seulement ce qui est nécessaire
Optimisation base de données
Si vous utilisez une base de données (MySQL, MariaDB) :
1. Indexer les colonnes fréquemment utilisées
-- Créer un index sur la colonne identifier
CREATE INDEX idx_identifier ON users(identifier);
2. Utiliser des prepared statements
Les prepared statements sont plus rapides et plus sécurisés :
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @identifier', {
['@identifier'] = identifier
}, function(result)
-- Traiter le résultat
end)
3. Mettre en cache les données fréquemment accédées
Ne requêtez pas la BDD à chaque fois. Utilisez un cache en mémoire :
local userCache = {}
function GetUserData(identifier)
if userCache[identifier] then
return userCache[identifier]
end
-- Requête BDD seulement si pas en cache
MySQL.Async.fetchAll('SELECT * FROM users WHERE identifier = @identifier', {
['@identifier'] = identifier
}, function(result)
userCache[identifier] = result[1]
end)
end
Monitoring et maintenance
1. Surveiller les performances
Utilisez des outils comme :
- txAdmin : interface de gestion serveur avec monitoring
- Grafana + Prometheus : monitoring avancé
- resmon : monitoring en jeu des ressources
2. Redémarrages planifiés
Planifiez des redémarrages réguliers (quotidiens ou hebdomadaires) pour nettoyer la mémoire :
# Redémarrage automatique tous les jours à 6h
0 6 * * * systemctl restart fivem
3. Logs et debugging
Activez les logs pour identifier les problèmes :
# Dans server.cfg
set sv_logFile "server.log"
Checklist d'optimisation
Voici une checklist rapide pour optimiser votre serveur FiveM :
- Audit des ressources avec
resmon - Suppression des ressources inutiles
- Optimisation des threads et boucles
- Configuration
server.cfgoptimale - OneSync activé (si +32 joueurs)
- Base de données indexée
- Cache des données fréquentes
- Monitoring actif (txAdmin ou autre)
- Redémarrages planifiés
- Logs activés
Conclusion
L'optimisation d'un serveur FiveM est un processus continu. En appliquant ces techniques, vous devriez voir une amélioration significative des performances. N'oubliez pas de tester régulièrement et d'ajuster selon les besoins de votre serveur.
Besoin d'aide pour optimiser votre serveur ? Notre équipe d'experts peut auditer et optimiser votre serveur FiveM. Rejoignez notre Discord pour en savoir plus !
Articles similaires

Créer votre premier script FiveM : Guide complet pour débutants
Apprenez à créer votre premier script FiveM de A à Z. Tutoriel complet avec exemples de code, bonnes pratiques et explications détaillées pour les débutants en développement FiveM.

Débugger les erreurs Lua dans FiveM : Méthodes et outils essentiels
Guide complet pour identifier et corriger les erreurs Lua dans vos scripts FiveM. Techniques de debugging, outils recommandés, et solutions aux erreurs les plus courantes.