Skip to content

Data and Upgrades

Alex Baldry edited this page Aug 8, 2026 · 3 revisions

💾 Data and upgrades

Rivet keeps generated state under plugins/Rivet/data/. These files are for the plugin, not routine configuration.

Data file index

Files are created when their feature first has something to save.

File Stored data
backpacks.yml Up to 54 serialised item slots per player
breeders.yml Breeder locations, species, stored food and bred counters
chat.yml Chat colours and social-spy switches
daily.yml Last claim timestamps and real streak numbers
filters.yml Filter enabled state and material set per player
graves.yml Active graves, serialised items, death locations and /back cooldowns
homes.yml Named home locations by player UUID
holograms.yml Every hologram property and location
glow.yml Player glow colour, last known name and previous scoreboard team by UUID
ignore.yml Private-message ignore lists by UUID
kits.yml Last-use timestamps by player and kit
nicknames.yml Persistent nickname strings
notes.yml Timestamped staff notes by player UUID
permissions.yml Group assignments and direct permission grants
rtp.yml Last successful random teleport timestamps
spawn.yml Rivet's server spawn location
staff.yml Persistent god-mode UUIDs when enabled
warps.yml Public warp locations
worlds.yml Tracked test-world names and types

Some features deliberately keep only session state:

  • AFK status and reasons;
  • TPA requests and sender cooldowns;
  • reply partners;
  • active poses;
  • vanish and managed flight;
  • temporary boss bars.
  • temporary advancement toasts.

Safe editing

Caution

Stop the server before changing anything in data/. A running module may save its in-memory copy and replace manual edits.

Use spaces, not tabs, in YAML. Keep UUIDs and Bukkit serialised item sections unchanged unless you know the Paper format.

Save guarantees

Rivet avoids granting valuable state before important saves complete:

  • a grave is saved before normal death drops are cleared;
  • a grave claim is saved before items are returned;
  • a kit cooldown is saved before the kit is granted;
  • a daily claim is saved before rewards are granted;
  • hologram and player-glow edits keep the previous live state when their save fails;
  • /back updates its cooldown after a successful teleport.

Graves and holograms write through a temporary file and move it into place. When the file system supports it, that replacement is atomic.

Backups

A useful server backup includes:

plugins/Rivet/
world/
world_nether/
world_the_end/
<any tracked test worlds you want to keep>

Back up while the server is stopped, or use a server-aware snapshot system that flushes plugin and world data first.

Automatic migration from older layouts

Migration runs before any module starts.

Moved files

Old location New location
chat.yml settings/chat.yml
permissions/groups.yml settings/permissions.yml
graves.yml data/graves.yml
glows.yml data/glow.yml
holograms.yml data/holograms.yml
permissions/users.yml data/permissions.yml

If both old and new files exist, Rivet uses the new file and leaves the old one untouched. It writes a warning to the console instead of overwriting either file.

Values moved out of old config.yml

These old sections are copied into data files:

Old section Destination
homes data/homes.yml
warps data/warps.yml
auto-breeders data/breeders.yml

Only missing destination keys are copied. Existing newer values win. The old section is removed from config.yml after the destination saves successfully.

The old flat-worlds.allow-natural-mob-spawning setting moves to settings/worlds.yml and is removed from the global file.

Test-world markers

Older tracked worlds may contain a .rivet-test-world marker. Rivet reads flat or void from that marker, imports the world into data/worlds.yml, and keeps compatibility with the marker during discovery.

New module switches

When an update introduces a module switch missing from an existing modules.yml, Rivet appends it as enabled and records how many switches were added in the console. Existing switch values are never replaced.

Legacy glow regions

Current Rivet uses player glows instead of cuboid outline regions. Tagged legacy outline entities are removed as loaded worlds and newly loaded chunks are checked. Old region definitions are not turned into player assignments because the two features represent different things.

Reloading versus restarting

/rivet reload reads:

  • config.yml;
  • modules.yml;
  • every file in settings/.

It does not reload data/ files. Restart after an offline data edit.

Module state is fixed for the current server session. A reload tells you which module switches changed, but a restart is required to register or remove listeners, recipes and scheduled tasks cleanly.

Clone this wiki locally