Skip to main content

Create Tier Achievements - How-To

This page explains how to create tier achievements line by line. A tier file uses the tier selection only and should not render seasonal or exclusive variant sections.

Variant rule

For a Tiers achievement file, include tierAchievements: and do not render seasonalAchievements: or exclusiveAchievements:.

1. File Location

plugins/FioAchievements/achievementsCategory/survive/Tiers/survive_tiers.yml
PartExplanation
surviveCategory id for generated tier achievements.
TiersFolder used for tier achievement generator files.
survive_tiers.ymlGenerator file that can create multiple tier achievements.

2. Enabled And Settings

enabled: true

settings:
priority: 0
repeatable: false
max-completions: 1
hidden: false
secret: false
preserve-progress-when-disabled: true
LineExplanation
enabled: trueLoads this tier generator file.
settings:Starts shared settings for generated tier achievements.
priority: 0Places tier achievements early in the menu.
repeatable: falsePrevents repeated tier completion.
max-completions: 1Allows one completion per tier per player.
hidden: falseShows tier achievements while locked.
secret: falseShows tier descriptions.
preserve-progress-when-disabled: trueKeeps tier progress if disabled later.

3. Shared Locked Item Template

items:
locked:
material: COAL
amount: 1
behavior:
model-data: 0
glow: false
name: "<red>Survive Tier %tier_roman%</red>"
lore:
- "<dark_gray>Survive Tiered</dark_gray>"
- ""
- "<gray>{tier_description}</gray>"
- ""
- "<gray>Rewards:</gray>"
- "%rewards%"
- ""
- "<#919191>Unlocked by {percent}% players"
- "<#919191>on this server."
- ""
- "<red>Locked</red>"
LineExplanation
items:Starts shared item templates.
locked:Template used before each generated tier is completed.
material: COALLocked icon.
amount: 1Stack amount.
behavior:Visual behavior options.
model-data: 0No CustomModelData.
glow: falseNo glow on locked tiers.
%tier_roman%Replaced by roman numerals such as I, II, or III.
{tier_description}Replaced by the tier entry description.
%rewards%Replaced by the tier entry reward display.
{percent}Server unlock percentage.

4. Shared Completed And Claim Templates

completed:
material: TOTEM_OF_UNDYING
amount: 1
behavior:
model-data: 0
glow: false
flags:
- HIDE_ATTRIBUTES
name: "<green>Survive Tier %tier_roman%</green>"
lore:
- "<dark_gray>Survive Tiered</dark_gray>"
- ""
- "<gray>{tier_description}</gray>"
- ""
- "<#7a7676>You achieved this at: {date_completion}"
- ""
- "<green>Unlocked</green>"

claim:
material: TOTEM_OF_UNDYING
amount: 1
behavior:
model-data: 0
glow: true
flags:
- HIDE_ATTRIBUTES
name: "<green>Survive Tier %tier_roman%</green>"
lore:
- "<dark_gray>Survive Tiered</dark_gray>"
- ""
- "<green>Claim your Rewards</green>"
rewards: {}
LineExplanation
completed:Template shown after a tier is completed.
material: TOTEM_OF_UNDYINGCompleted tier icon.
flags:Starts item flag list.
HIDE_ATTRIBUTESHides default item attributes.
{date_completion}Completion date placeholder.
claim:Template shown when rewards can be claimed.
glow: trueHighlights claimable tier rewards.
rewards: {}Keeps the claim item compatible with the menu structure.

5. Tier Selection

Use Actions Reference when choosing values for required and while.

tierAchievements:
enabled: true
Tier:
"1":
description: "Sleep through the night once."
name:
- "<dark_gray>+</dark_gray><yellow>25</yellow> <gray>Achievement Points</gray>"
achievementTasks:
required:
- "SERVER;SLEEP;1"
while: []
placeholderRules: []
afterCompletion:
- "[CONSOLE] exp give %player_name% 15"
- "[SOUND] ITEM_GOAT_HORN_SOUND_0 1 2 master"
- "[MESSAGE] <gray>Congratulations, you completed <gradient:#00FF00:#FF00FF:#7289da>Survive Tier I</gradient>.</gray>"
- "[FIOACHIEVEMENTS] Points+25"
LineExplanation
tierAchievements:Starts the tier-only selection section.
enabled: trueEnables tier generation for this file.
Tier:Starts generated tier entries.
"1":First tier entry.
description:Text injected into {tier_description}.
name:Reward display injected into %rewards%.
achievementTasks:Starts this tier's progress rule.
required:Required action list for this tier.
SERVER;SLEEP;1Player must sleep once.
while: []No live conditions.
placeholderRules: []No PlaceholderAPI condition checks.
afterCompletion:Actions run after this tier completes.

6. Add Another Tier

"2":
description: "Eat cooked beef to survive longer."
name:
- "<dark_gray>+</dark_gray><yellow>30</yellow> <gray>Achievement Points</gray>"
achievementTasks:
required:
- "ITEM;CONSUME;COOKED_BEEF;16"
while: []
placeholderRules: []
afterCompletion:
- "[CONSOLE] exp give %player_name% 20"
- "[SOUND] ITEM_GOAT_HORN_SOUND_0 1 2 master"
- "[MESSAGE] <gray>Congratulations, you completed <gradient:#00FF00:#FF00FF:#7289da>Survive Tier II</gradient>.</gray>"
- "[FIOACHIEVEMENTS] Points+30"
LineExplanation
"2":Second generated tier entry.
description:Description for Tier II.
ITEM;CONSUME;COOKED_BEEF;16Requires consuming 16 cooked beef. Format: ITEM;CONSUME;<MATERIAL>;<AMOUNT>.
Points+30Adds 30 achievement points for Tier II.

7. Broadcast Template

broadcast:
enabled: true
mode: GLOBAL
message:
- "<green>%player_name% completed <yellow>Survive Tier %tier_roman%</yellow>"
radius: 100
permission: "achievements.broadcast.receive"
hover:
enabled: true
text:
- "<green>Survive Tier %tier_roman%</green>"
- "<gray>{tier_description}</gray>"
click:
enabled: true
action: RUN_COMMAND
value: "/fioachievements view %player_name%"
LineExplanation
broadcast:Starts broadcast settings shared by generated tiers.
%tier_roman%Replaced per generated tier.
{tier_description}Replaced by each tier description.
mode: GLOBALSends to all online players.
click.valueOpens the completed player's achievement view.

8. Reload

/fioachievements admin reload
/fioachievements open

Complete File

enabled: true

settings:
priority: 0
repeatable: false
max-completions: 1
hidden: false
secret: false
preserve-progress-when-disabled: true

items:
locked:
material: COAL
amount: 1
behavior:
model-data: 0
glow: false
name: "<red>Survive Tier %tier_roman%</red>"
lore:
- "<dark_gray>Survive Tiered</dark_gray>"
- ""
- "<gray>{tier_description}</gray>"
- ""
- "<gray>Rewards:</gray>"
- "%rewards%"
- ""
- "<#919191>Unlocked by {percent}% players"
- "<#919191>on this server."
- ""
- "<red>Locked</red>"
completed:
material: TOTEM_OF_UNDYING
amount: 1
behavior:
model-data: 0
glow: false
flags:
- HIDE_ATTRIBUTES
name: "<green>Survive Tier %tier_roman%</green>"
lore:
- "<dark_gray>Survive Tiered</dark_gray>"
- ""
- "<gray>{tier_description}</gray>"
- ""
- "<#7a7676>You achieved this at: {date_completion}"
- ""
- "<green>Unlocked</green>"
claim:
material: TOTEM_OF_UNDYING
amount: 1
behavior:
model-data: 0
glow: true
flags:
- HIDE_ATTRIBUTES
name: "<green>Survive Tier %tier_roman%</green>"
lore:
- "<dark_gray>Survive Tiered</dark_gray>"
- ""
- "<green>Claim your Rewards</green>"
rewards: {}

tierAchievements:
enabled: true
Tier:
"1":
description: "Sleep through the night once."
name:
- "<dark_gray>+</dark_gray><yellow>25</yellow> <gray>Achievement Points</gray>"
achievementTasks:
required:
- "SERVER;SLEEP;1"
while: []
placeholderRules: []
afterCompletion:
- "[CONSOLE] exp give %player_name% 15"
- "[SOUND] ITEM_GOAT_HORN_SOUND_0 1 2 master"
- "[MESSAGE] <gray>Congratulations, you completed <gradient:#00FF00:#FF00FF:#7289da>Survive Tier I</gradient>.</gray>"
- "[FIOACHIEVEMENTS] Points+25"
"2":
description: "Eat cooked beef to survive longer."
name:
- "<dark_gray>+</dark_gray><yellow>30</yellow> <gray>Achievement Points</gray>"
achievementTasks:
required:
- "ITEM;CONSUME;COOKED_BEEF;16"
while: []
placeholderRules: []
afterCompletion:
- "[CONSOLE] exp give %player_name% 20"
- "[SOUND] ITEM_GOAT_HORN_SOUND_0 1 2 master"
- "[MESSAGE] <gray>Congratulations, you completed <gradient:#00FF00:#FF00FF:#7289da>Survive Tier II</gradient>.</gray>"
- "[FIOACHIEVEMENTS] Points+30"

broadcast:
enabled: true
mode: GLOBAL
message:
- "<green>%player_name% completed <yellow>Survive Tier %tier_roman%</yellow>"
radius: 100
permission: "achievements.broadcast.receive"
hover:
enabled: true
text:
- "<green>Survive Tier %tier_roman%</green>"
- "<gray>{tier_description}</gray>"
click:
enabled: true
action: RUN_COMMAND
value: "/fioachievements view %player_name%"