/// PIMPMYRUST PLUGIN
VoteCommands
Guide des réglages de VoteCommands pour cette version. Vérifiez la fiche du plugin avant de l'utiliser sur votre serveur.
Préparer votre fichier
- Vérifiez la version installée
Ce guide décrit VoteCommands 0.1.3. Le configurateur doit utiliser cette même version.
- Importez votre configuration
Ouvrez le configurateur et importez le JSON actuel. Pour une nouvelle installation, vous pouvez partir de l’exemple proposé.
- Modifiez et téléchargez
Ajustez les réglages, corrigez les erreurs signalées et téléchargez le JSON. Gardez une copie de votre ancien fichier avant de le remplacer.
Votre configuration n’est pas sauvegardée sur le site. Conservez le fichier exporté ; il permet aussi de reprendre plus tard.
Réglages de cette version
Général 7
- Activer
- Activé / désactivé · obligatoire
Activer ce contrôleur de vote. Chaque fichier de configuration correspond à un contrôleur indépendant, avec ses propres choix et commandes.
Chemin JSON
Enabled - Démarrage automatique
- Activé / désactivé · obligatoire
Démarrer les votes au chargement ou au rechargement du plugin.
Chemin JSON
AutomaticStart - Répéter les sessions de vote
- Activé / désactivé · obligatoire
Répéter les sessions une fois le premier vote démarré, manuellement ou automatiquement.
Chemin JSON
AutomaticSessions - Délai avant le démarrage automatique (secondes)
- Nombre entier · obligatoire
Attente en secondes après le chargement du contrôleur avant le premier vote automatique. Utilisé seulement si le démarrage automatique est activé.
Chemin JSON
DelayBeforeAutomaticStart - Commande de démarrage du vote
- Texte · obligatoire
Commande chat sans le caractère / initial.
Chemin JSON
CommandForStartSessions - Commande d’ouverture du vote
- Texte · obligatoire
Commande chat sans le caractère / initial.
Chemin JSON
CommandForUi - Intervalle entre les débuts de session (secondes)
- Nombre · obligatoire
Temps entre les débuts de session, pas après le résultat. Pour répéter les votes, il doit dépasser leur durée.
Chemin JSON
TimeBetweenSessionsMinimum : 0
Déroulement et choix du vote 2
- Durée du vote (secondes)
- Nombre entier · obligatoire
Temps laissé aux joueurs pour voter, en secondes. À la fin, le contrôleur calcule le gagnant ; l’intervalle de répétition doit dépasser cette durée.
Chemin JSON
CommandsConfiguration → VoteDurationSecondsMinimum : 10 · Maximum : 3600
- Choix proposés au vote
- Liste d’objets · obligatoire
Chaque choix peut avoir des actions exécutées s’il gagne. Les noms et commandes saisis restent inchangés.
Chemin JSON
CommandsConfiguration → VoteCommands
Bouton de fermeture 2
- Taille
- Nombre entier · obligatoire
Largeur et hauteur du bouton de fermeture carré de l’interface historique, en pixels de référence CUI.
Chemin JSON
UIConfiguration → CloseButtonConfiguration → Size - Adresse de l’image
- Texte · obligatoire
Adresse directe de l’image à afficher, et non de sa page web. Utilisez une image accessible aux joueurs ; préférez HTTPS.
Chemin JSON
UIConfiguration → CloseButtonConfiguration → ImageUrl
Compte à rebours 4
- Ancrage minimum
- Texte · obligatoire
Coin inférieur gauche dans le conteneur parent, sous la forme x y entre 0 et 1. 0 0 correspond au bas à gauche. Il ne doit pas dépasser l’ancrage maximum ; des ancrages égaux peuvent utiliser des décalages en pixels.
Chemin JSON
UIConfiguration → CountDownConfiguration → AnchorMin - Ancrage maximum
- Texte · obligatoire
Coin supérieur droit dans le conteneur parent, sous la forme x y entre 0 et 1. 1 1 correspond au haut à droite. Il ne doit pas précéder l’ancrage minimum ; des ancrages égaux peuvent utiliser des décalages en pixels.
Chemin JSON
UIConfiguration → CountDownConfiguration → AnchorMax - Décalage minimum
- Texte · obligatoire
Décalage du coin inférieur gauche, sous la forme x y en pixels, ajouté à l’ancrage. Des valeurs négatives déplacent ce coin vers la gauche ou le bas.
Chemin JSON
UIConfiguration → CountDownConfiguration → OffsetMin - Décalage maximum
- Texte · obligatoire
Décalage du coin supérieur droit, sous la forme x y en pixels, ajouté à l’ancrage. Des valeurs positives déplacent ce coin vers la droite ou le haut.
Chemin JSON
UIConfiguration → CountDownConfiguration → OffsetMax
Titre du vote 1
- Hauteur
- Nombre · obligatoire
Part de la hauteur de la fenêtre réservée à l’en-tête historique. Exemple : 0.1 = 10 %. Elle réduit l’espace restant pour les choix.
Chemin JSON
UIConfiguration → TitleConfiguration → Height
Présentation des choix 4
- Marge verticale
- Nombre · obligatoire
Marge verticale autour des choix, exprimée en part de la hauteur de la fenêtre. Exemple : 0.01 = 1 % par côté.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → MarginHeight - Marge horizontale
- Nombre · obligatoire
Marge horizontale autour des choix, exprimée en part de la largeur de la fenêtre. Exemple : 0.01 = 1 % par côté.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → MarginWidth - Couleur de fond
- Texte · obligatoire
Couleur Rust : rouge, vert, bleu et opacité, entre 0 et 1, séparés par des espaces. Exemple : 1 0.5 0 1 = orange opaque ; une opacité de 0 rend l’élément invisible.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → BackgroundColor - Espacement entre les choix
- Nombre · obligatoire
Espace entre les choix, exprimé en part de leur conteneur. Exemple : 0.01 = 1 %. Plus d’espace laisse moins de largeur aux cartes.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → MarginBetweenCommands
Fenêtre du vote 4
- Largeur
- Nombre entier · obligatoire
Largeur de la fenêtre historique, en pixels de référence CUI. Une largeur excessive peut sortir de l’écran sur un petit affichage.
Chemin JSON
UIConfiguration → WindowConfiguration → Width - Hauteur
- Nombre entier · obligatoire
Hauteur de la fenêtre historique, en pixels de référence CUI. Prévoyez assez d’espace pour tous les choix du vote.
Chemin JSON
UIConfiguration → WindowConfiguration → Height - Adresse de l’image de fond
- Valeur JSON · obligatoire
Adresse directe de l’image à afficher, et non de sa page web. Utilisez une image accessible aux joueurs ; préférez HTTPS.
Chemin JSON
UIConfiguration → WindowConfiguration → BackgroundImageUrl - Couleur de fond
- Texte · obligatoire
Couleur Rust : rouge, vert, bleu et opacité, entre 0 et 1, séparés par des espaces. Exemple : 1 0.5 0 1 = orange opaque ; une opacité de 0 rend l’élément invisible.
Chemin JSON
UIConfiguration → WindowConfiguration → BackgroundColor
Compte à rebours · Style du texte 4
- Taille du texte
- Nombre entier · obligatoire
Taille du texte de cette zone dans l’interface historique. Vérifiez sa lisibilité et son débordement avec les textes les plus longs.
Chemin JSON
UIConfiguration → CountDownConfiguration → LabelConfiguration → FontSize - Couleur du texte
- Texte · obligatoire
Couleur Rust : rouge, vert, bleu et opacité, entre 0 et 1, séparés par des espaces. Exemple : 1 0.5 0 1 = orange opaque ; une opacité de 0 rend l’élément invisible.
Chemin JSON
UIConfiguration → CountDownConfiguration → LabelConfiguration → Color - Police de caractères
- Texte · obligatoire
Nom d’une police disponible dans le client Rust. Une police installée seulement sur votre PC ne sera pas disponible aux joueurs.
Chemin JSON
UIConfiguration → CountDownConfiguration → LabelConfiguration → Font - Alignement du texte
- Nombre entier · obligatoire
Alignement Unity : 0–2 = haut (gauche, centre, droite), 3–5 = milieu, 6–8 = bas. Exemple : 4 centre le texte sans déplacer son panneau.
Chemin JSON
UIConfiguration → CountDownConfiguration → LabelConfiguration → TextAnchor
Titre du vote · Style du texte 4
- Taille du texte
- Nombre entier · obligatoire
Taille du texte de cette zone dans l’interface historique. Vérifiez sa lisibilité et son débordement avec les textes les plus longs.
Chemin JSON
UIConfiguration → TitleConfiguration → LabelConfiguration → FontSize - Couleur du texte
- Texte · obligatoire
Couleur Rust : rouge, vert, bleu et opacité, entre 0 et 1, séparés par des espaces. Exemple : 1 0.5 0 1 = orange opaque ; une opacité de 0 rend l’élément invisible.
Chemin JSON
UIConfiguration → TitleConfiguration → LabelConfiguration → Color - Police de caractères
- Texte · obligatoire
Nom d’une police disponible dans le client Rust. Une police installée seulement sur votre PC ne sera pas disponible aux joueurs.
Chemin JSON
UIConfiguration → TitleConfiguration → LabelConfiguration → Font - Alignement du texte
- Nombre entier · obligatoire
Alignement Unity : 0–2 = haut (gauche, centre, droite), 3–5 = milieu, 6–8 = bas. Exemple : 4 centre le texte sans déplacer son panneau.
Chemin JSON
UIConfiguration → TitleConfiguration → LabelConfiguration → TextAnchor
Apparence d’un choix 4
- Marge intérieure
- Nombre · obligatoire
Champ historique conservé dans la configuration, mais non utilisé par le rendu de VoteCommands 0.1.3. Ne comptez pas sur ce champ pour changer les marges.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → Padding - Couleur de fond
- Texte · obligatoire
Couleur Rust : rouge, vert, bleu et opacité, entre 0 et 1, séparés par des espaces. Exemple : 1 0.5 0 1 = orange opaque ; une opacité de 0 rend l’élément invisible.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → BackgroundColor - Taille de la zone du nombre de votes
- Nombre entier · obligatoire
Taille réservée à l’affichage du nombre de votes dans une carte, en pixels de référence CUI.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountSize - Hauteur de l’image
- Nombre · obligatoire
Part de la hauteur d’une carte réservée à l’image. Exemple : 0.85 = 85 % ; le reste sert au nom du choix.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → ImageHeight
Style du nom du choix 4
- Taille du texte
- Nombre entier · obligatoire
Taille du texte de cette zone dans l’interface historique. Vérifiez sa lisibilité et son débordement avec les textes les plus longs.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → FontSize - Couleur du texte
- Texte · obligatoire
Couleur Rust : rouge, vert, bleu et opacité, entre 0 et 1, séparés par des espaces. Exemple : 1 0.5 0 1 = orange opaque ; une opacité de 0 rend l’élément invisible.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → Color - Police de caractères
- Texte · obligatoire
Nom d’une police disponible dans le client Rust. Une police installée seulement sur votre PC ne sera pas disponible aux joueurs.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → Font - Alignement du texte
- Nombre entier · obligatoire
Alignement Unity : 0–2 = haut (gauche, centre, droite), 3–5 = milieu, 6–8 = bas. Exemple : 4 centre le texte sans déplacer son panneau.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → NameLabelConfiguration → TextAnchor
Style du nombre de votes 4
- Taille du texte
- Nombre entier · obligatoire
Taille du texte de cette zone dans l’interface historique. Vérifiez sa lisibilité et son débordement avec les textes les plus longs.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → FontSize - Couleur du texte
- Texte · obligatoire
Couleur Rust : rouge, vert, bleu et opacité, entre 0 et 1, séparés par des espaces. Exemple : 1 0.5 0 1 = orange opaque ; une opacité de 0 rend l’élément invisible.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → Color - Police de caractères
- Texte · obligatoire
Nom d’une police disponible dans le client Rust. Une police installée seulement sur votre PC ne sera pas disponible aux joueurs.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → Font - Alignement du texte
- Nombre entier · obligatoire
Alignement Unity : 0–2 = haut (gauche, centre, droite), 3–5 = milieu, 6–8 = bas. Exemple : 4 centre le texte sans déplacer son panneau.
Chemin JSON
UIConfiguration → VoteCommandsConfiguration → VoteCommandConfiguration → VotesCountLabelConfiguration → TextAnchor
Instructions du plugin
VoteCommands 0.1.3 — guide
Cette version est celle de Codefling. Elle crée un exemple au premier chargement et n’exécute aucune action gagnante si aucun joueur n’a voté. Elle ne nécessite pas PimpMyCUI ; l’intégration PimpMyCUI et les réglages de quorum/égalité concernent la bêta 1.0.0.
Installation et export
Sauvegardez le plugin, les configurations et le fichier de langue. Déchargez VoteCommands, installez les JSON dans le dossier oxide/config/VoteCommands/, puis installez VoteCommands.cs dans oxide/plugins/. Sur Carbon, utilisez carbon/config/VoteCommands/ et carbon/plugins/.
Il n’y a pas de fichier unique `oxide/config/VoteCommands.json`. Un fichier JSON configure un vote. L’éditeur exporte Example.json : placez-le dans oxide/config/VoteCommands/Example.json, ou renommez-le avec un nom unique. Ne remplacez pas un fichier personnalisé sans comparaison/sauvegarde.
Si ce dossier ne contient aucun JSON, y compris dans ses sous-dossiers, le plugin crée Example.json. Il ne remplace jamais un fichier existant, même invalide. Consultez les erreurs de la console au chargement.
Premier vote
L’exemple est manuel, activé et ses commandes gagnantes sont désactivées. En tant qu’administrateur, saisissez /vote_start, puis /vote, choisissez une option et attendez 60 secondes.
Pour autoriser les joueurs :
oxide.grant group default VoteCommands.Example.VoteLa permission utilise le nom exact du fichier sans .json. Le droit VoteCommands.Example.Start ne permet pas à un non-administrateur de lancer un vote dans cette version. Les joueurs peuvent voir le scrutin mais ont besoin du droit Vote pour participer.
Réglages
| Champ | Rôle |
|---|---|
Enabled | Charger ce vote si activé. |
CommandForStartSessions | Commande admin, sans /. |
CommandForUi | Commande d’ouverture, sans /. |
CommandsConfiguration.VoteDurationSeconds | Durée d’un scrutin en secondes. |
AutomaticStart | Démarrer automatiquement après chargement. |
DelayBeforeAutomaticStart | Délai initial en secondes. |
AutomaticSessions | Répéter les sessions une fois démarrées. |
TimeBetweenSessions | Secondes entre les débuts de sessions. |
Pour un vote de 60 secondes toutes les 20 minutes, utilisez une durée de 60, un intervalle de 1200, AutomaticSessions=true et AutomaticStart=true si le cycle doit démarrer au chargement. L’intervalle doit dépasser la durée du vote. Les commandes et noms de fichiers doivent être uniques.
Conservez la section UIConfiguration. Après édition, exécutez oxide.reload VoteCommands : les sessions en cours s’arrêtent sans exécuter d’action gagnante et le calendrier redémarre.
Options et actions
Chaque entrée de CommandsConfiguration.VoteCommands a un nom, une URL d’image directe et des actions facultatives. Chaque commande/callback a son propre Enabled. Testez une commande dans la console avant de l’activer.
{
"Name": "Day",
"ImageUrl": "https://example.com/day.png",
"PluginCallbacks": null,
"ServerCommands": [{ "Enabled": true, "Command": "env.time 6" }]
}Ce fragment est une option, pas une configuration complète. Remplacez l’URL par une image existante. PluginCallbacks accepte un PluginName installé et un PluginCallback réel sans argument. Les callbacks activés sont exécutés avant les commandes serveur.
Exemples et résultat
Example.json: exemple générique sans action active.Example_SkipNight.json: vote jour/nuit ; l’option Day peut exécuterenv.time 6quand cet exemple est activé. Il ne détecte pas le coucher du soleil.Example_NextMapWipe.json: enregistre un choix ; ne change pas la map ni le wipe.Example_EventManager.json: nécessite EventManager compatible et l’adaptateur facultatifEventManagerWrapper.cs. Configurez vos événements dans EventManager et utilisez leurs vrais noms. Le plugin principal n’exige pas EventManager.
Seul l’exemple générique est activé par défaut. Chaque joueur vote une fois. Le choix le plus voté gagne ; une égalité avec des votes retient le premier choix à égalité dans l’ordre du fichier. Zéro vote : aucune commande ni callback n’est exécuté, même sur un serveur vide. Le cycle automatique continue à l’intervalle configuré.
Vérification et support
Vérifiez chargement, accès non-admin, images, compte à rebours, réouverture et plusieurs sessions automatiques. Testez une commande simple, puis une session sans vote. Les effets de vos hooks et le rendu dépendent de votre serveur et des plugins cibles. Pour le support, fournissez version, nom de fichier et erreur console, en retirant les secrets et détails privés.
Installer le fichier
Après avoir conservé une copie de l’ancien fichier, placez le JSON exporté à cet emplacement sur votre serveur :
oxide/config/VoteCommands/Example.jsonSuivez les instructions du plugin ci-dessus pour ses dépendances et son rechargement. L’export ne connecte pas le site à votre serveur.