ed7c7fd991
Boucle de jeu complète : récolte, inventaire, consommation, stats de survie, mort et respawn. Gameplay en C++, Blueprints réservés au câblage d'assets. Assets binaires (.uasset, .umap, textures, audio) suivis via Git LFS. Binaries/, Intermediate/, Saved/ et DerivedDataCache/ sont ignorés : régénérés au build, ils pèsent 3 Go pour 1,3 Go de contenu utile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2.6 KiB
2.6 KiB
Discord Rich Presence
Plugin made by Mathew Simon.
Affiche le jeu dans le statut Discord quand on le lance. Aucune DLL ni SDK externe :
le plugin parle directement au named pipe local de Discord (\\.\pipe\discord-ipc-N).
Windows uniquement (PlatformAllowList: Win64).
1. Cote Discord
- https://discord.com/developers/applications > New Application
- Le nom de l'application = ce que Discord affichera comme nom du jeu ("joue a XXX").
- Copier l'Application ID (= Client ID) sur la page General Information.
- Optionnel, pour les images : Rich Presence > Art Assets > uploader une image et lui
donner un nom. Ce nom est la valeur a mettre dans
LargeImageKey/SmallImageKey. (Les uploads mettent quelques minutes a se propager.)
2. Cote Unreal
Edit > Project Settings > Plugins > Discord Rich Presence
| Reglage | Role |
|---|---|
Enabled |
Active/desactive tout le plugin |
Client Id |
L'Application ID copie a l'etape 1 |
Enable In Editor |
Presence active aussi en PIE (pratique pour tester) |
Default Activity |
Ce qui est affiche des le lancement |
Min Update Interval Seconds |
Throttle des envois (Discord limite a 5 / 20 s, ne pas descendre sous 4) |
Reconnect Interval Seconds |
Frequence des tentatives quand Discord n'est pas lance |
C'est tout : le sous-systeme demarre avec la GameInstance, se connecte, envoie
Default Activity, et se reconnecte tout seul si Discord est ferme puis relance.
3. Changer la presence en cours de jeu
En Blueprint, noeud Get Discord Rich Presence, puis :
Set Details And State— les deux lignes de texte sous le nom du jeuSet Activity— remplace tout (textes + images + party)Set Party— le compteur "(2 sur 4)"Reset Elapsed Time— repart de zero sur le chrono de temps de jeuClear Activity— retire le jeu du statutIs Connected To Discord— etat de la connexion
En C++ :
#include "DiscordRichPresenceSubsystem.h"
if (UDiscordRichPresenceSubsystem* Discord = UDiscordRichPresenceSubsystem::Get(this))
{
Discord->SetDetailsAndState(TEXT("Foret du Nord"), TEXT("Jour 12 - En vie"));
}
Notes
- Discord ignore les textes de moins de 2 caracteres, ils sont donc omis a l'envoi.
- Le chrono de temps de jeu demarre a l'
Initializedu sous-systeme. - Les changements sont accumules et envoyes au plus une fois par
Min Update Interval Seconds: appelerSetDetailsAndStatea chaque frame ne spamme pas Discord. - Si Discord n'est pas lance, il ne se passe rien (pas d'erreur, pas de blocage) et le plugin retente periodiquement.