🟪Achievements

Information related to how achievements are stored and what makes an achievement work

▸ Location

lua\achievements\*

▸ About

Achievements are broken up into folders and the foldername specifies what those achievements are for. Usually they're based on the gamemode.

Non-specific achievements that can be used for any gamemode go in the General folder.

When you boot your server up, only the achievements for that specific gamemode will be loaded, as well as the general folder. Which means that if your server runs the TTT gamemode; then the TTT folder and General folders will load.

▸ Achievement Structure

All achievements typically have the same structure:

XTASK                       = { }
XTASK.enabled               = true
XTASK.cat_clr               = Color( 196, 43, 76, 255 )
XTASK.maxreq                = 1000000
XTASK.po_enabled            = true
XTASK.po                    = { items = { }, currency = { points = 0, points_prem = 0, darkrpfunds = 200 } }
XTASK.gamemode              = { }
XTASK.title                 = 'Ass-Blaster'
XTASK.desc                  = sf( 'Deal %s in total damage to other players.', string.Comma( XTASK.maxreq ) )
XTASK.cat                   = 'Damage'
XTASK.author                = 'Richard'
XTASK.icon                  = 'rlib/modules/xtask/ach/ass_blaster.png'
XTASK.stat                  = 'action_damageinf'

Most of the settings are self-explanitory, but a summary of them are provided below:

Specifies if the achievement is enabled on the server. Disabled achievements will not show or be tracked at all.

The color that will be used for the Category

The maximum requirement needed to complete this achievement. As an example, if you set the stat to action_damageinf and the maxreq to 100000, then that means the player must do 100000 damage to other players.

Determines if there will be a payout when the achievement is completed. Player will receieve things like money, etc.

The payout that will be given to the player when they complete an achievement.

Which gamemode(s) the achievement will be enabled on.

The name of the achievement which will show on the interface when a player opens the achievements interface.

The description for the achievement which will show on the interface when a player opens the achievements interface.

Which category the achievement belongs to. Example: Damage, Sitting, etc.

Who made the achievement

The icon that will show for the player when they view the achievement.

What type of achievement this is. Damage, etc.

▸ Achievement Types

The achievement type is what determines how a user will earn the achievement. This includes things like jumping, sitting, crouching, damage, etc.

In the above achievement example, this is the value you will specify for the setting stat.

XTASK.stat                  = 'action_damageinf'

The following is a list of achievement types you can choose from. You can find this list also in lua\modules\xtask\cfg\sh_cfg_actions.lua

action_bulletsfired

Bullets fired from your gun

action_connections

Player connecting to the server

action_contextmenu

"C" Context Menu

action_damageinf

Damage inflicted on other players

action_damagetaken

Damage taken when shot by other players

action_deaths

Death

action_drugs

Basewars drugs

action_duck

Ducking, crouching

action_factions_create

Basewars factions created

action_factions_join

Basewars factions joined

action_factions_leave

Basewars factions left

action_ignite_ply

Players on fire

action_jobswitches

Switching between job to job (DarkRP).

action_jumps

Jumping

action_karma

Basewars karma

action_kills

Kills you make to other players

action_messages

Sending a message to another player

action_props

Props interacted with / spawned

action_reloads

Reloading your weapon

action_spawnmenu

"Q" Spawn menu interactions

action_steps

Walking, running

action_use

Using an item with the "E" key. Opening a door, pressing a button, etc.

action_voice

Voice chat

Last updated