Options & Configuration
This page explains the main FioPlaytime systems before you edit the individual YAML files.
Tracking flow
- Player joins the server.
- FioPlaytime loads or creates the player's playtime record.
- The tracker checks worlds, regions, gamemodes, player filters, blacklist, freeze state, and same-IP rules.
- Eligible players gain playtime while online.
- Menus and placeholders render the current playtime.
- 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.
Menu flow
FioPlaytime menu files share a common structure:
title: inventory titlerows: menu heightitems: static buttons and decorationscontent-slot: slots used by paginated contentactions: click behaviorstatus: 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.
For exact keys, continue to the config.yml, rewards.yml, materials.yml, and menu pages.