Skip to content

DaisyVotes — Storage & Data

DaisyVotes stores all of its data through Sculk Data, the framework’s ORM. The default backend is SQLite, written to a database file inside plugins/DaisyVotes/ — there is no external database to install or configure.

storage.yml
# Managed by Sculk Data. The default is SQLite stored in the plugin folder.
# Only change this if you know what you're doing.

Running DaisyVotes across a network of servers? Point every server at the same MySQL/MariaDB database in storage.yml instead of SQLite. That one shared database keeps vote counts, points, streaks, and the reward queue consistent everywhere — it’s the foundation a cross-server network is built on. Add Redis on top only if you want instant cross-server delivery and parties.

DaisyVotes keeps its data in a set of tables, created automatically on first run:

TableHolds
vote_playersPer-player stats: total/daily/weekly/monthly votes, current & best streak, points & lifetime points, streak freezes, parties contributed, first/last vote timestamps.
vote_sitesPer-site totals.
player_site_votesPer-player, per-site vote counts (drives cooldowns and the daily wheel set).
vote_eventsAn immutable history of every vote received (used for accurate period windows).
pending_rewardsRewards queued for offline players, claimed with /vote claim.
vote_party_stateThe global vote-party counter and party history.
wheel_statesPer-player available & lifetime wheel spins.
wheel_spinsHistory of wheel results.
shop_purchasesPurchase history, used to enforce daily limits.
top_voter_stateTracks daily/weekly/monthly period rollovers.
migration_stateRecords which data migrations have been applied.

The database is a normal file. To back it up safely:

  1. Stop the server (so nothing is mid-write).
  2. Copy the database file (and, if you like, the whole plugins/DaisyVotes/ folder) somewhere safe.
  3. Start the server.
  • Directoryplugins/DaisyVotes/
    • config.yml
    • menus.yml
    • rewards.yml
    • shop.yml
    • storage.yml
    • the SQLite database file (back this up)

To wipe all vote data and start fresh, stop the server and delete the database file; DaisyVotes recreates it empty on the next start.

  • Leaderboards are cached for stats.leaderboard-cache-seconds (default 60s).
  • PlaceholderAPI values are cached for ~10 seconds so placeholder lookups never hit the database on the main thread.
  • Duplicate votes within sites.duplicate-window-seconds are dropped before any write.