Achievements
1 / 10









Create Achievements to Boost Player Retention
Details
This is a tiered achievement system, Players earn achievements for doing things they do daily like killing scientists, mining ore, taking down heli / bradley, and more.
An achievement popup shows in when they rank up a tier, and they can open a panel to track their progress.
Default Config comes with 20 Achievements - with 5 Tiers across them. For a total of 100 obtainable Achievements. Easily add more with the instructions below. Any achievements not wanted can be deleted or used as a base to create others.
Requires ImageLibrary to load the images.
Commands
/at - preview the popup banner - requires Achievements.Admin/ap - open the achievements panel/awipe - requires Achievements.Admin - wipe all progress
CREATING AN ACHIEVEMENT
Every achievement in the Achievements list has the same setup:
| 1 | { |
| 2 | "Id": "scientist_slayer", |
| 3 | "Title": "Scientist Slayer", |
| 4 | "Description": "Eliminate Scientists.", |
| 5 | "Icon": "assets/icons/skull.png", |
| 6 | "Trigger": "NpcKill", |
| 7 | "Filter": [ "scientist" ], |
| 8 | "Tiers": [ xxx ] |
| 9 | } |
Id- a unique name. Player progress is saved to this, so don't rename it after players start earning it.Title/Description- what shows on the banner and in the panel.Icon- Takes an Image URLTrigger- what action counts - see the list below.Filter- what specifically to count - see below. Leave it out to count everything for that trigger.Tiers- the ladder of goals - see Tiers.
Triggers - what you can track
Pick one per achievement:
NpcKill PlayerKill AnimalKill Gather Collectible FishCaught Craft Build Loot BeastKill BountyKill BountyTrade ZombieKill ZombieTrade HeliKill BradleyKill
Filters - targeting exactly what you want
The Filter narrows a trigger down to specific things. It's a list, and it uses group names that are built in.
Want an achievement for killing only snakes? Use the AnimalKill trigger with a snake filter:
| 1 | "Trigger": "AnimalKill", |
| 2 | "Filter": [ "snake" ] |
Built-in groups exist for kills, animals, and gathering:
- Kills:
scientistdwellerscarecrow - Animals:
bearwolfboarstagchickensharkcrocodilepanthertigersnakeanimal(animal = all of them) - Gathering:
woodstonemetalsulfurhqmore- ore = all ore
You can combine them - "Filter": [ "bear", "wolf" ] counts bears and wolves.
Get as specific as you want. A group like scientist is just a shortcut for a big list of exact names. You can use any single one of those names on its own to target one variant:
- Only Bradley scientists -
"Filter": [ "scientistnpc_bradley" ] - Only oil rig scientists -
"Filter": [ "scientistnpc_oilrig" ] - Only heavy scientists -
"Filter": [ "scientistnpc_heavy" ]
Mix exact names and groups freely, e.g. "Filter": [ "scientistnpc_oilrig", "scarecrow" ].
Leave the Filter out entirely to count every kill/gather for that trigger. Example: AnimalKill with no filter = any animal, Gather with no filter = any resource.
For anything without a group - crafting, building, looting, fishing, collectibles, or a specific target not in the lists below - put the exact in-game name in the Filter instead. Use the item shortname for Craft / Gather ex. rifle.ak, and the prefab name for a kill. Or just leave the Filter off to count them all.
Every group and the names inside it
Use the group name for the whole set, or any single name on its own line for one variant.
scientist - scientistnpc_arena scientistnpc_bradley scientistnpc_bradley_heavy scientistnpc_cargo scientistnpc_cargo_turret_any scientistnpc_cargo_turret_lr300 scientistnpc_ch47_gunner scientistnpc_excavator scientistnpc_full_any scientistnpc_full_lr300 scientistnpc_full_mp5 scientistnpc_full_pistol scientistnpc_full_shotgun scientistnpc_heavy scientistnpc_junkpile_pistol scientistnpc_oilrig scientistnpc_outbreak scientistnpc_patrol scientistnpc_patrol_arctic scientistnpc_peacekeeper scientistnpc_ptboat scientistnpc_rhib scientistnpc_roam scientistnpc_roam_nvg_variant scientistnpc_roamtethered scientist2 scientist2.heavy scientist2.shotgun
dweller - npc_tunneldweller npc_underwaterdweller
scarecrow - scarecrow
bear - bear polarbear
wolf - wolf2
boar - boar
stag - stag
chicken - chicken
shark - simpleshark
crocodile - crocodile
panther - panther
tiger - tiger
snake - snake.entity
animal - targets all of the above animals (bear polarbear wolf2 boar stag chicken simpleshark crocodile panther tiger snake.entity)
wood - wood
stone - stones
metal - metal.ore
sulfur - sulfur.ore
hqm - hq.metal.ore
ore - metal.ore sulfur.ore hq.metal.ore
CREATING TIERS
Tiers are the ladder for an achievement. Each one needs a Name and an Amount, and can hand out a list of rewards. Add as many as you like, they are sorted low to high automatically.
| 1 | "Tiers": [ |
| 2 | { "Name": "Bronze", "Amount": 25, "Reward Commands": [ "inventory.giveto {id} scrap 250" ] }, |
| 3 | { "Name": "Silver", "Amount": 75, "Reward Commands": [ "inventory.giveto {id} scrap 500" ] }, |
| 4 | { "Name": "Gold", "Amount": 200, "Reward Commands": [ "inventory.giveto {id} scrap 1000" ] } |
| 5 | ] |
Amount- how many of the thing they need for that tier.Reward Commands- any console commands to run when they hit it. Use{id}for the player's steam id. Give items, kits, RP, Economics, Perms - whatever you like. Leave it null for no reward.
Adding a new tier (say a 6th one called "Master"): add it to the list, then give it a color and a sound by adding "Master" to the Tier Colors and Tier Sounds sections.
Tier Colors and Sounds
These sit at the top of the config and are matched by tier name. The color themes the banner and panel row, the sound plays when the tier is earned.
| 1 | "Tier Colors": { |
| 2 | "Bronze": "0.80 0.50 0.20", |
| 3 | "Silver": "0.75 0.76 0.80", |
| 4 | "Gold": "1.00 0.84 0.00", |
| 5 | "Platinum": "0.85 0.92 0.95", |
| 6 | "Diamond": "0.45 0.85 1.00" |
| 7 | }, |
| 1 | "Tier Sounds": { |
| 2 | "Bronze": "assets/prefabs/misc/easter/painted eggs/effects/bronze_open.prefab", |
| 3 | "Silver": "assets/prefabs/misc/easter/painted eggs/effects/silver_open.prefab", |
| 4 | "Gold": "assets/prefabs/misc/easter/painted eggs/effects/gold_open.prefab", |
| 5 | "Platinum": "assets/bundled/prefabs/fx/item_unlock.prefab", |
| 6 | "Diamond": "assets/bundled/prefabs/fx/item_unlock.prefab" |
| 7 | } |
The Popup Banner
When a player earns a tier, an Achievement will pop up.
Banner Style (Top, Right, Left)- where it sits on screen.Banner Scale- size.1is full size,0.65is the default, lower is smaller.Display Duration/Fade In/Fade Out- timing in seconds.
Icons
Take 256x256 PNGs with a transparent background. Set the achievement's Icon to your URL.
By default the icon shows base png color.
If you want to use white/grayscale art and have it auto-colored to the tier, set Match Icon Color to Tier to true.
Integrations
Works alongside these automatically if they are loaded.
- BeastMaster -
BeastKill - BountyHunter -
BountyKill,BountyTrade - ZombieHunter -
ZombieKill,ZombieTrade - WelcomePanel - the achievement panel can be shown as a page inside WelcomePanel.
Wipe Handling
Set Wipe Progress On New Save to true to clear all progress when the map wipes. Off by default, so progress carries across wipes unless you turn it on.