Aller au contenu
← Toute la documentation

/// 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

  1. Vérifiez la version installée

    Ce guide décrit VoteCommands 0.1.3. Le configurateur doit utiliser cette même version.

  2. Importez votre configuration

    Ouvrez le configurateur et importez le JSON actuel. Pour une nouvelle installation, vous pouvez partir de l’exemple proposé.

  3. 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 JSONEnabled
Démarrage automatique
Activé / désactivé · obligatoire

Démarrer les votes au chargement ou au rechargement du plugin.

Chemin JSONAutomaticStart
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 JSONAutomaticSessions
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 JSONDelayBeforeAutomaticStart
Commande de démarrage du vote
Texte · obligatoire

Commande chat sans le caractère / initial.

Chemin JSONCommandForStartSessions
Commande d’ouverture du vote
Texte · obligatoire

Commande chat sans le caractère / initial.

Chemin JSONCommandForUi
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 JSONTimeBetweenSessions

Minimum : 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 JSONCommandsConfiguration → VoteDurationSeconds

Minimum : 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 JSONCommandsConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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 JSONUIConfiguration → 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.Vote

La 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

ChampRôle
EnabledCharger ce vote si activé.
CommandForStartSessionsCommande admin, sans /.
CommandForUiCommande d’ouverture, sans /.
CommandsConfiguration.VoteDurationSecondsDurée d’un scrutin en secondes.
AutomaticStartDémarrer automatiquement après chargement.
DelayBeforeAutomaticStartDélai initial en secondes.
AutomaticSessionsRépéter les sessions une fois démarrées.
TimeBetweenSessionsSecondes 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écuter env.time 6 quand 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 facultatif EventManagerWrapper.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.json

Suivez les instructions du plugin ci-dessus pour ses dépendances et son rechargement. L’export ne connecte pas le site à votre serveur.