GroupeZ Docs
Modules

Vote Module

Vote tracking with vote party system and per-site cooldowns

File: modules/vote/config.yml

The Vote module tracks player votes from external voting sites, provides configurable rewards based on cumulative vote counts, and includes a Vote Party system that triggers global rewards when the server reaches a collective vote goal. It supports per-site cooldowns, tiered reward brackets, offline vote notifications, and automatic monthly resets.

Dependency

This module requires NuVotifier to be installed and configured. NuVotifier receives incoming votes from voting sites and forwards them to zEssentials for processing.


Source Configuration

enable: true
enable-vote-party: true
enable-vote-party-open-vote-inventory: true
vote-party-objective: 200
vote-party-rewards:
  actions:
    - type: console_command
      commands:
        - "eco give money %player% 5000"
  permission: "zessentials.vote.double"
  permission-actions:
    - type: console_command
      commands:
        - "eco give money %player% 5000"
  global-commands:
    - "bc Its VoteParty Time"
rewards-on-vote:
  - min: 0
    max: 150
    commands:
      - "cr give %player% vote"
  - min: 151
    max: 400
    commands:
      - "cr give %player% vote"
  - min: 401
    commands:
      - "cr give %player% vote"
sites:
  - name: "ServeurMinecraftVote"
    seconds: 5400
  - name: "ServeurPrive"
    seconds: 5400
  - name: "ServeursMinecraft"
    seconds: 86400
  - name: "TopServeurs"
    seconds: 7200
enable-offline-vote-message: true
placeholder-available: "<green>Available ✔"
placeholder-cooldown: "<red>%cooldown% ✘"
reset-configuration:
  day: 1
  hour: 0
  minute: 0
  second: 0

Options

General Options

OptionTypeDefaultDescription
enableBooleantrueEnable or disable the Vote module
enable-offline-vote-messageBooleantrueIf true, players who voted while offline receive a notification message when they next join the server

Vote Party

OptionTypeDefaultDescription
enable-vote-partyBooleantrueEnable or disable the Vote Party system
enable-vote-party-open-vote-inventoryBooleantrueIf true, opens a zMenu vote inventory when the Vote Party triggers, allowing players to claim rewards through a GUI
vote-party-objectiveInteger200The total number of server-wide votes required to trigger a Vote Party

Vote Party Rewards

OptionTypeDefaultDescription
vote-party-rewards.actionsList(see above)Actions executed for each online player when the Vote Party triggers
vote-party-rewards.actions[].typeStringconsole_commandThe type of action to perform. console_command executes commands from the console
vote-party-rewards.actions[].commandsList of Strings-The commands to execute. Supports the %player% placeholder for the player's name
vote-party-rewards.permissionStringzessentials.vote.doubleA permission node that grants bonus rewards during a Vote Party
vote-party-rewards.permission-actionsList(see above)Additional actions executed for players who have the bonus permission. These run in addition to the standard actions
vote-party-rewards.permission-actions[].typeStringconsole_commandThe type of bonus action
vote-party-rewards.permission-actions[].commandsList of Strings-The bonus commands to execute for players with the special permission
vote-party-rewards.global-commandsList of Strings-Commands executed once globally (not per-player) when the Vote Party triggers. Useful for broadcasts or server-wide effects

Players with the zessentials.vote.double permission (or whatever permission you configure) receive both the standard actions and the permission-actions, effectively doubling their rewards. This is great for incentivizing donation ranks.

Rewards on Vote

OptionTypeDefaultDescription
rewards-on-voteList(see above)Tiered reward brackets based on the player's cumulative vote count
rewards-on-vote[].minInteger-The minimum cumulative vote count for this reward bracket (inclusive)
rewards-on-vote[].maxInteger(optional)The maximum cumulative vote count for this reward bracket (inclusive). Omit for an open-ended bracket
rewards-on-vote[].commandsList of Strings-Commands executed when a player votes and their total vote count falls within this bracket. Supports the %player% placeholder

Reward brackets allow you to give different rewards as players accumulate more votes. For example, you could give basic crate keys for the first 150 votes, better keys from 151-400, and premium keys beyond 401. When max is omitted, the bracket applies to all vote counts at or above min.

Voting Sites

OptionTypeDefaultDescription
sitesList(see above)Defines the voting sites and their per-site cooldown durations
sites[].nameString-The name identifier for the voting site. Must match the service name sent by NuVotifier
sites[].secondsInteger-The cooldown duration in seconds before a player can vote again on this site

The name field must exactly match the service name configured in NuVotifier for each voting site. Common cooldown values are 5400 (1.5 hours), 7200 (2 hours), and 86400 (24 hours), depending on the voting site's own restrictions.

Placeholders

OptionTypeDefaultDescription
placeholder-availableString<green>Available ✔The MiniMessage-formatted text returned by site cooldown placeholders when the player can vote on that site
placeholder-cooldownString<red>%cooldown% ✘The MiniMessage-formatted text returned by site cooldown placeholders when the player is still on cooldown. The %cooldown% token is replaced with the remaining time

Reset Configuration

OptionTypeDefaultDescription
reset-configuration.dayInteger1The day of the month when vote counts are reset
reset-configuration.hourInteger0The hour (0-23) when the monthly reset occurs
reset-configuration.minuteInteger0The minute (0-59) when the monthly reset occurs
reset-configuration.secondInteger0The second (0-59) when the monthly reset occurs

The reset configuration controls when all player vote counts are reset to zero. By default, this happens on the 1st of every month at midnight. Make sure your players are aware of the reset schedule, especially if rewards are tied to cumulative vote counts.


How It Works

  1. A player votes for the server on an external voting site.
  2. NuVotifier receives the vote and forwards it to zEssentials.
  3. The Vote module increments the player's cumulative vote count and executes the appropriate reward commands from the matching rewards-on-vote bracket.
  4. The server-wide vote counter is incremented toward the vote-party-objective.
  5. If the player is offline and enable-offline-vote-message is true, they receive a notification on their next login.
  6. When the server-wide vote counter reaches the vote-party-objective, the Vote Party triggers:
    • global-commands are executed once.
    • actions are executed for each online player.
    • Players with the bonus permission also receive permission-actions.
    • The vote party counter resets to zero.
  7. On the configured reset day/time each month, all player vote counts are reset.

CommandAliasesPermissionDescription
/vote-essentials.voteOpen the vote menu or view vote information
/votepartyvpessentials.votepartyView the current Vote Party progress

For the full command list, see Commands & Permissions.


PlaceholderDescription
%zessentials_voteparty_amount%The current number of votes toward the next Vote Party
%zessentials_voteparty_objective%The total votes required to trigger a Vote Party
%zessentials_vote_amount%The player's cumulative vote count for the current period
%zessentials_vote_site_cooldown_{site}%The cooldown status for a specific voting site. Replace {site} with the site name (e.g., %zessentials_vote_site_cooldown_TopServeurs%). Returns the configured placeholder-available or placeholder-cooldown text

For the full placeholder list, see Placeholders.


EventDescription
UserVoteEventFired when a player's vote is received and processed. Can be used to trigger custom reward logic
VotePartyEventFired when the Vote Party objective is reached and rewards are distributed
VotePartyStartEventFired when the Vote Party begins processing. Can be cancelled or used to modify behavior before rewards are given

Listen to VotePartyStartEvent if you want to add custom pre-party logic such as firework effects, title announcements, or conditional checks before the party proceeds.


Example: Vote Menu with Site Cooldowns

You can display per-site cooldown statuses in a vote menu using the site cooldown placeholders:

ServeurMinecraftVote: %zessentials_vote_site_cooldown_ServeurMinecraftVote%
ServeurPrive:         %zessentials_vote_site_cooldown_ServeurPrive%
ServeursMinecraft:    %zessentials_vote_site_cooldown_ServeursMinecraft%
TopServeurs:          %zessentials_vote_site_cooldown_TopServeurs%

Each placeholder returns either <green>Available ✔ or <red>2h 15m ✘ (with the remaining cooldown time), making it easy to show players which sites are ready for voting.

On this page

GroupeZ MCP

Documentation in your AI

MCP lets your AI search GroupeZ documentation and read current examples to help you configure your plugins.

Read-only · No documentation API key needed

1. Copy the server URL

Transport: HTTP (Streamable HTTP). Authentication: none. Your tool uses its own model and subscription limits.

  1. Open Plugins in ChatGPT on the web, then + → Add custom MCP server.
  2. Name it ‘GroupeZ Documentation’, paste the URL above and choose ‘No authentication’. Create and install the plugin.
  3. In a conversation, type @ and select the plugin before asking. If needed, enable search, get_page and list_pages in its settings.
Official setup guide

3. Ask a question

Use GroupeZ MCP to help me create a zMenu inventory. Search relevant pages, read the examples and cite your sources.
Other clients and troubleshooting

For clients using mcpServers, adapt this example to their format:

{
  "mcpServers": {
    "groupez-docs": {
      "url": ""
    }
  }
}

Available tools are search, get_page and list_pages. Refresh the connector’s tools after updates. If your AI cannot access them, check that the connector is enabled in the conversation and your account allows custom MCP servers. Opening the URL in a browser is not an MCP test.