Files
the-cycle/src/Prospect.Client.Config
neckfireandClaude Opus 4.8 2809033b76
Build & Deploy / build (push) Successful in 26s
docs(tool): README for ProspectServerSwitcher
Documents the cross-platform server switcher: backend.txt mechanism,
domain presets, interactive/CLI usage, cert import (Windows / Proton),
launch, settings location and self-contained publish commands.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-14 16:03:24 +02:00
..

ProspectServerSwitcher

Petit utilitaire multi-OS (Linux/Proton + Windows) pour pointer un client The Cycle: Frontier vers un serveur, importer le certificat, et lancer le jeu.

Pourquoi

L'agent Prospect (Prospect.Agent.dll, injecté par Prospect.Client.Loader.exe) hooke l'URL de l'API PlayFab et la remplace par le contenu de backend.txt, placé à côté de l'exécutable du jeu (Prospect/Binaries/Win64). S'il est absent, l'agent retombe sur https://127.0.0.1:8443.

Tout l'aiguillage du client tient donc dans cette seule valeur. Cet outil ne fait essentiellement qu'écrire le bon backend.txt — plus quelques commodités (cert, launch).

Serveurs (presets)

Les presets utilisent les domaines publics pour que la même cible marche pour tout le monde (le DNS résout vers l'IP publique pour les amis, et le certificat TLS unifié couvre les deux hostnames) :

Preset URL
prod https://tc.nfteam.ovh:8443
preprod https://rd-tc.nfteam.ovh:8444

Sur le même LAN que le serveur, ajoute une entrée hosts pour éviter le hairpin NAT :

192.168.1.136   tc.nfteam.ovh
192.168.1.136   rd-tc.nfteam.ovh

Utilisation

Menu interactif

Lance le binaire sans argument :

  • 1 : définir le dossier du jeu (…/Prospect/Binaries/Win64) — mémorisé
  • 2/3 : basculer sur PROD / PREPROD
  • 4 : URL personnalisée
  • 5 : importer un certificat (.crt)
  • 6 : lancer le jeu
  • 0 : quitter

En ligne de commande (scriptable)

ProspectServerSwitcher --folder "<...>/Prospect/Binaries/Win64" --set preprod
ProspectServerSwitcher --set prod
ProspectServerSwitcher --set https://mon-serveur:8443   # URL libre

⚠️ backend.txt n'est lu qu'au démarrage du loader → relance le jeu après un switch. Le serveur ciblé doit tourner (conteneurs on-demand the-cycle-api / the-cycle-api-rd).

Certificat

  • Windows : import automatique dans Autorités de certification racines de confiance (utilisateur courant).
  • Linux/Proton : le certificat doit être approuvé dans le préfixe Wine du jeu. L'outil détecte le préfixe Proton de l'app 868270 et affiche la commande prête :
    WINEPREFIX="…/compatdata/868270/pfx" wine certutil -addstore -f Root "certificate.crt"
    

Lancement

  • Windows : démarre Prospect.Client.Loader.exe depuis le dossier du jeu.
  • Linux/Proton : passe par Steam (steam steam://rungameid/868270) — le loader doit tourner dans le préfixe Proton.

Réglages

Le dossier du jeu est mémorisé dans …/ApplicationData/ProspectSwitcher/settings.json (%AppData% sous Windows, ~/.config sous Linux).

Build / publication

Projet console net8.0 (cross-platform, InvariantGlobalization), jamais buildé par la CI serveur (Linux).

# build simple
dotnet build src/Prospect.Client.Config -c Release

# binaires autonomes single-file (aucun .NET requis chez l'utilisateur)
dotnet publish src/Prospect.Client.Config -c Release -r win-x64   --self-contained \
  -p:PublishSingleFile=true -p:IncludeNativeLibrariesForSelfExtract=true -p:EnableCompressionInSingleFile=true
dotnet publish src/Prospect.Client.Config -c Release -r linux-x64 --self-contained \
  -p:PublishSingleFile=true -p:EnableCompressionInSingleFile=true

Les binaires publiés sont distribués via la release Gitea friends-client (ProspectServerSwitcher.exe pour Windows, ProspectServerSwitcher-linux-x64 pour Linux).