Aller au contenu
TLRFRAMEWORK REDM Ma console

La console web

La console web est le panel /tlr utilisable depuis un navigateur, à la manière de txAdmin mais centrée sur TLR. Elle est servie par tlr_core lui même :

http://IP_DU_SERVEUR:30120/tlr_core/console/

Le port est celui des joueurs (30120 par défaut). Le premier accès est expliqué dans Installer et démarrer tlr_core. Retour au sommaire.

Rien de la console n'a encore été testé sur un vrai serveur RedM : signalez tout écart.

Principes

  • Un compte web est lié à une licence Rockstar. Ses droits sont ceux du groupe TLR de cette licence, relus à chaque requête : retirer le groupe en jeu retire l'accès web tout de suite.
  • Pour se connecter, le groupe doit avoir tlr.panel.open ou tlr.console.access.
  • Chaque action passe par les mêmes actions serveur (RPC) que le panel en jeu, avec les mêmes contrôles et le même journal, au nom web:identifiant.
  • Les actions qui agissent sur votre propre personnage (noclip, observation, placement) sont refusées depuis le web.
  • En haut à droite : l'état du serveur (en ligne depuis, joueurs connectés sur le nombre de places) et le choix du thème, mémorisé dans votre navigateur. En bas de la colonne de gauche : votre identifiant, votre groupe et le bouton « Se déconnecter ».

Tableau de bord

Quatre tuiles : joueurs connectés et personnages chargés, durée depuis le démarrage, services TLR en ordre, version et nombre de modules et de placements. Dessous :

  • Joueurs connectés (rafraîchis toutes les 3 secondes) avec leur numéro, personnage, métier, ping et un bouton « Fiche ».
  • Services TLR avec leur état et le détail d'une erreur.
  • Ressources du serveur, filtrables, avec leur état (démarrée, arrêtée).

Carte en direct

Carte du jeu si les tuiles RDR2 sont installées (install/telecharger_tuiles_carte.mjs), sinon carte papier de l'État, avec les joueurs (positions lues par le serveur, mises à jour toutes les 2,5 secondes), les blips, les lieux des métiers et les écuries. Le panneau « Filtres » permet de chercher un joueur, de choisir les couches affichées et de filtrer par métier. On peut téléporter un joueur sur un point en cliquant sur la carte. Droit demandé : tlr.players.read.

Joueurs et Fiche joueur

La liste des joueurs connectés ouvre la fiche d'un joueur. La fiche reprend les actions du panel en jeu, chacune soumise à son propre droit :

  • réanimer, soigner, geler ;
  • téléporter vers un point ou vers un autre joueur ;
  • envoyer un message ;
  • avertir (gravité mineure, moyenne ou grave, avec un motif) ;
  • expulser, bannir (durée en minutes, 0 pour définitif) ;
  • inventaire : voir, donner, retirer ;
  • argent : liquide, banque, pièces ou argent sale, montant en dollars (négatif pour retirer) et motif ;
  • métier, VIP, journal des sanctions.

Console

Le flux du journal TLR et de la console du serveur, rafraîchi toutes les 2 secondes, avec une case « Défilement auto ». Droit demandé : tlr.logs.read.

Commandes

L'écran Commandes (groupe Aide du menu) liste toutes les commandes de tlr_core, tirées du registre shared/commands_data.lua : nom, à quoi elle sert, syntaxe, arguments, exemple, droit et lieu d'usage. Recherche et filtre par public (joueurs, équipe, administration, console serveur). Le bouton « Exécuter » lance une commande console serveur ; il est réservé au fondateur. La même liste est dans Commandes.

Sous le flux de la Console, le fondateur peut aussi taper une commande libre dans le champ « Commande serveur ». Chaque commande est inscrite au journal avec une gravité haute.

Serveur

L'écran Serveur (groupe Direct du menu) remplace txAdmin. Il réunit les blocs Redémarrage du serveur, Annonce, Bannissements, Sauvegarde de la base et la liste des Ressources.

Ressources

Démarrer, arrêter, redémarrer ou assurer (ensure) une ressource. Droit : tlr.console.resources. Arrêter tlr_core ou une ressource protégée est refusé ; redémarrer tlr_core est permis (la réponse part d'abord, puis la ressource redémarre).

Redémarrage programmé

Programmer un redémarrage dans 1 à 180 minutes, avec un motif facultatif. Droit : tlr.console.restart. Les joueurs reçoivent des annonces dans le ton du monde aux paliers 60, 30, 15, 10, 5, 3 et 1 minute, du type « Avis à la population : le télégraphe annonce une tempête, toute activité cessera dans 10 minutes. ». À l'heure dite, les joueurs sont déconnectés avec un message, puis FXServer s'arrête : votre hébergeur ou votre script de lancement doit le relancer. Un redémarrage programmé peut être annulé ; une annonce de fin de tempête est alors envoyée.

Redémarrages quotidiens automatiques : convar tlr_restart_times "06:00,18:00", annoncés 30 minutes avant.

Annonce

Les annonces du redémarrage passent par l'annonce serveur (tlr:admin:announce), visible par tous les joueurs. Le bloc Annonce de l'écran Serveur envoie un texte libre à tous les joueurs (droit tlr.admin.announce).

Bannissements

Bannir une licence hors ligne, avec un motif (3 caractères au moins) et une durée en minutes (0 : définitif). Droit : tlr.players.ban. On ne peut pas bannir le fondateur ni une licence de rang égal ou supérieur au sien. Le bannissement est inscrit au journal des sanctions ; un joueur connecté avec cette licence est expulsé. Le bloc liste les bannissements actifs, avec le bouton « Lever » (droit tlr.players.unban) et « Bannir une licence hors ligne ».

Sauvegarde de la base

Écrit un fichier SQL complet (structure et données de toutes les tables) dans tlr_core/backups, nommé d'après la date et l'heure. Droit : tlr.console.backup, et réservé au fondateur. Une seule sauvegarde à la fois. Récupérez le fichier en SFTP.

Sections du panel

Le menu de gauche reprend, en groupes repliables, les 12 catégories du panel /tlr (Serveur, Joueurs, Économie, Monde, Métiers et loi, Chevaux, Artisanat, Nature, Santé, Illégal, Événements, Système). Chaque section ouverte est l'écran du panel lui même : créer un métier, un objet, une boutique, donner un VIP, programmer un événement, régler un système. Une modification ici vaut une modification en jeu, avec les mêmes droits. Un outil qui demande d'être en jeu (placement en 3D, caméra) ouvre la même section sur votre écran de jeu si vous y êtes connecté avec la même licence (« Faire en jeu »). Voir les pages du panel depuis le sommaire.

Accès web

Droit demandé : tlr.console.invite.

  • Inviter un membre : choisir un joueur connecté ou coller une licence, puis « Créer le code ». La case « Envoyer le code au joueur en jeu » lui envoie le code en notification. Le joueur doit déjà avoir un groupe TLR qui ouvre le panel.
  • Le membre ouvre la console, onglet Premier accès : code, identifiant, mot de passe.
  • Gérer les comptes : dernière connexion, sessions ouvertes, « Déconnecter » (ferme toutes les sessions), « Nouveau code » (mot de passe oublié), « Révoquer », « Réactiver », « Supprimer ».

On ne gère que les comptes de rang inférieur au sien ; le fondateur les gère tous. Le même bloc existe en jeu dans la section Permissions (bloc Console web), et la commande /consolecode <id joueur> crée aussi une invitation.

Journal web

Toutes les connexions, tous les codes et toutes les actions non triviales faites depuis la console. Droit : tlr.logs.read.

Guide

L'écran Guide (groupe Aide) affiche ces pages avec un sommaire et une recherche plein texte. Il est aussi lisible sans connexion depuis l'accueil de la console (« Lire le guide »).

Sécurité

  • Codes de 12 caractères, valables 15 minutes, à usage unique, gardés seulement en empreinte.
  • Mots de passe de 10 caractères au moins, hachés avec sel.
  • Sessions de 12 heures, révocables immédiatement.
  • Blocages après plusieurs échecs de connexion ou plusieurs codes faux.
  • La console n'envoie aucune ressource externe et refuse d'être affichée dans un cadre.

HTTPS obligatoire sur Internet

FXServer sert la console en HTTP : sur Internet, mots de passe et jetons circuleraient en clair. Mettez un HTTPS devant, par exemple un tunnel Cloudflare vers http://127.0.0.1:30120 ou un proxy nginx ou Caddy. Puis dans server.cfg :

set tlr_console_https 1
set tlr_console_trust_proxy 1
set tlr_console_secret "une longue chaine aleatoire de 32 caracteres ou plus"

Source : tlr_core/docs/guide/console_web.md