-
Notifications
You must be signed in to change notification settings - Fork 0
Bot TCP
Le bot TCP est un client qui se connecte directement au serveur ACE EVO via le protocole TCP interne. Il alimente le timing en direct, envoie des messages de bienvenue et détecte les meilleurs tours.
Le bot nécessite un compte Steam dédié (distinct du compte hôte). Ce compte doit :
- Posséder Assetto Corsa EVO
- Ne pas être connecté à ACE EVO en tant que joueur au même moment
Dans Paramètres → onglet Bot TCP (ou directement dans .env) :
| Variable | Description | Exemple |
|---|---|---|
ACE_BOT_STEAM_ID |
Steam ID 64-bit du compte bot | 76561198012345678 |
ACE_BOT_CAR_MODEL |
Voiture utilisée pour la connexion | preset_190_evo_ii |
ACE_BOT_IS_ADMIN |
Envoyer \admin <password> à la connexion |
true |
ACE_BOT_MSG_WELCOME |
Message de bienvenue | Bienvenue {name} ! |
ACE_BOT_MSG_DISCORD |
Message Discord | Rejoins notre Discord : {discord_url} |
ACE_BOT_MSG_SITE |
Message site | Suis le classement : {site_url} |
| Variable | Valeur |
|---|---|
{name} |
Nom in-game du pilote qui vient de rejoindre |
{discord_url} |
Valeur de DISCORD_INVITE_URL
|
{site_url} |
Valeur de PANEL_URL
|
Le bot démarre automatiquement :
- Au démarrage du panel — pour chaque serveur activé en base de données
- À la création d'un nouveau serveur — le bot est démarré immédiatement
En mode multi-serveur, chaque serveur a son propre bot indépendant.
À chaque connexion d'un pilote, le bot envoie les messages configurés dans l'ordre :
- Message de bienvenue (si
ACE_BOT_MSG_WELCOMEdéfini) - Message Discord (si
ACE_BOT_MSG_DISCORDetDISCORD_INVITE_URLdéfinis) - Message site (si
ACE_BOT_MSG_SITEetPANEL_URLdéfinis)
Le bot reçoit en continu du serveur ACE EVO :
- BroadcastStateMessage — classement complet (positions, temps, secteurs)
- SplitFromRemoteMessage — temps de secteurs individuels
Ces données alimentent l'API /api/timing consultée par la page de timing public.
Le bot analyse les logs ACE EVO en temps réel. Quand le pattern suivant apparaît :
[gameplay] [error] Couldn't create lap from opensplits (carId <id>)
Le pilote concerné est marqué comme ayant un tour invalide dans le classement. Sa ligne s'affiche en rouge avec une icône ⚠ sur la page de timing.
Le marquage se réinitialise automatiquement au passage du premier secteur du tour suivant.
Le bot détecte les meilleurs tours en session et envoie une notification Discord si DISCORD_RACE_WEBHOOK_URL est configuré.
Depuis le timing admin, l'admin peut :
-
Élever le bot en admin — envoie
\admin <password>au serveur - Envoyer un message dans le chat in-game
- Kick un pilote par nom
En mode docker_split, les containers ace-panel et ace-server sont séparés. Le bot se connecte via :
-
Hôte : nom du container Docker (ex:
ace-serverpour le serveur principal,ace-server-<nom>pour les serveurs additionnels) -
Port :
9700(port interne du container — pas le port host-mappé)
Cette logique est gérée automatiquement par start_for_server() — aucune configuration manuelle nécessaire.
Le statut de connexion du bot est visible sur la page de timing :
- Connecté — le bot reçoit les données en temps réel
- Déconnecté — le timing affiche les dernières données connues
En cas de déconnexion, le bot tente de se reconnecter automatiquement.