DaisyVotes — Cross-Server (Redis)
New in 2.0 DaisyVotes can run across a network of servers — a lobby, survival, skyblock, etc. — sharing one set of vote data, with optional Redis for live cross-server delivery.
Network mode is configured in network.yml and is off by default (single-server).
How it fits together
Section titled “How it fits together”There are two layers:
- Shared database (required for a network). Point every server at the same database — use MySQL/MariaDB in
storage.ymlinstead of SQLite. This alone keeps vote counts, points, streaks, and the queue consistent everywhere. - Redis (optional, adds “live”). Redis powers instant cross-server delivery, player presence, and duplicate suppression — e.g. a vote received on the lobby grants its reward on the survival server immediately, rather than when the player next visits.
network.yml
Section titled “network.yml”enabled: falseserver-id: "auto"redis: uri: "redis://localhost:6379" key-prefix: "daisyvotes" heartbeat-seconds: 15 message-ttl-seconds: 30live-routing: enabled: true deliver-online-rewards-across-network: true broadcast-vote-party-across-network: true| Key | Default | Description |
|---|---|---|
enabled | false | Turn on Redis network mode. |
server-id | "auto" | This server’s id on the network. auto derives a stable id; set a name (e.g. lobby) if you prefer. |
redis.uri | redis://localhost:6379 | Redis connection URI. Supports auth and TLS, e.g. redis://:pass@host:6379 / rediss://…. |
redis.key-prefix | daisyvotes | Namespace for all DaisyVotes keys/channels in Redis. |
redis.heartbeat-seconds | 15 | Presence heartbeat interval (min 5). |
redis.message-ttl-seconds | 30 | How long cross-server messages live (min 5). |
live-routing.enabled | true | Master switch for live routing over Redis. |
live-routing.deliver-online-rewards-across-network | true | Deliver a reward on whichever server the player is currently on. |
live-routing.broadcast-vote-party-across-network | true | Trigger vote parties network-wide. |
- Shared database. Configure the same MySQL/MariaDB connection in
storage.ymlon every server. See Storage & Data. - Enable Redis. Set
enabled: trueand yourredis.uriinnetwork.ymlon each server. Give each a distinctserver-id(or leaveauto). - Reload / restart, then check
/daisyvotes network status— it should report connected.
Without Redis
Section titled “Without Redis”Redis is optional. With only a shared database and Redis off, everything still works — votes, points, streaks, and rewards are consistent across servers, and any reward earned while a player is offline is delivered through the shared offline queue (/vote claim). Redis simply makes online delivery and parties instant instead of on-next-join.
Command
Section titled “Command”| Command | Permission | Description |
|---|---|---|
/daisyvotes network status | daisyvotes.admin.network | Enabled/connected state, server id, Redis URI (redacted), last error. |
Storage & Data Configure a shared MySQL/MariaDB database.