Skip to main content

Options & Configuration

This page explains the main FioPlaytime systems before you edit the individual YAML files.

Tracking flow​

  1. Player joins the server.
  2. FioPlaytime loads or creates the player's playtime record.
  3. The tracker checks worlds, regions, gamemodes, player filters, blacklist, freeze state, and same-IP rules.
  4. Eligible players gain playtime while online.
  5. Menus and placeholders render the current playtime.
  6. Reward tiers become claimable when the required playtime is reached.

Reward flow​

Rewards are not written in config.yml. They live in rewards.yml:

playtime:
rewards:
1:
description:
- '<gray>- <white>100 Coins</white></gray>'
required:
playtime: 10m
one-time: true
commands:
- '[CONSOLE] eco give %player_name% 100'
- '[MESSAGE] <green>You claimed tier %tier%.</green>'

When a tier is claimable, the main menu renders it as unclaimed. Clicking the tier runs [FIOPLAYTIME] CLAIM %tier_raw%, then the reward actions run from rewards.yml.

FioPlaytime menu files share a common structure:

  • title: inventory title
  • rows: menu height
  • items: static buttons and decorations
  • content-slot: slots used by paginated content
  • actions: click behavior
  • status: visual states for generated entries

The menu action system supports normal click, right click, left click, shift click, message, sound, console command, player command, close, and FioPlaytime-specific navigation actions.

Storage flow​

Use YAML for simple servers:

database:
storage:
type: yaml

Use MySQL when multiple tools need central storage or the server has a large player base:

database:
storage:
type: mysql

Player preferences​

Players can control:

  • reward notification state
  • bossbar state
  • selected reward material

These preferences are exposed in menus and placeholders.

Page note

For exact keys, continue to the config.yml, rewards.yml, materials.yml, and menu pages.