Achievements (ACH)
Achievements are a simple form of measuring game progress. While some additional data like important memory note values are recorded once an achievement is unlocked, whether or not achievement user data has been submitted is largely treated as binary.
Database layout
Name | Type | Src (?) | Description |
---|---|---|---|
tr_title | Locale string | π | The name of the achievement. The name does not necessarilly need to be descriptive. |
tr_description | Locale string | π | A description of the criteria for unlocking the achievement. Should include all of the relevant details including which game modes are applicable, which strategies are not allowed, etc. |
tr_icon | Locale string | π | The path to the achievement's icon, relative to /public_html/. For example, images/achievement_icons/arrow.png. |
flags | Int32 | π | A bitfield that describes certain aspects of the achievement. If this field is missing, any code should presume it to be 0. See Achievement Flags below. |
earned_count | Int32 | π₯οΈ | The number of active players that have earned this achievement. |
earned_percent | Float | π₯οΈ | The percentage of active players that have earned this achievement. |
rarity | Int32 | π₯οΈ | A rating from 0-9 that roughly determines this achievement's rarity, figured automatically by dividing this achievement's earned value by its parent game's players value. This informs which rarity icon to use on the website. |
{
'tr_title':
[
'en_US' => 'You did it!',
'fr_FR' => 'Tu l\'as fait!',
'ja_JP' => 'γ§γγγοΌ'
],
'tr_description':
[
'en_US' => 'Perform an impressive feat.',
'fr_FR' => 'RΓ©alisez un exploit impressionnant.',
'ja_JP' => 'η΄ ζ΄γγγζ₯ηΈΎγιζγγγ'
],
'tr_icon':
[
'en_US' => 'images/achievement_icons/trophy.png'
],
'flags': 1,
'earned_count': 306,
'earned_percent': 30.6,
'rarity': 3
}
Achievement Flags
# | Value | Symbol | Description | Examples |
---|---|---|---|---|
1 | 0x00000001 | CL_ACH_FLAG_MISSABLE | This achievement can be missed on a playthrough and require the player to start over. Achievements with this flag will have a graphic denoting them on the website. | In Albert Odyssey, an optional boss is only available for a brief period 30 hours into a 60-hour game. In Galaga, the unique Challenging Stages can only be tried once per playthrough, but the game is comparatively very short and does not save, so this flag is not applicable. |
2 | 0x00000002 | CL_ACH_FLAG_SPOILER | This achievement's title, icon, and description will be hidden until the player unlocks it. This is meant to denote an achievement that contains story spoilers and should not be used to create achievements with secret conditions. | |
3 | 0x00000004 | CL_ACH_FLAG_COMPLETION | Unlocking this achievement means that the player has completed the game. This awards the user a game completion badge. | In Super Mario Bros., while a significant amount of game content can be skipped or ignored, the game is "completed" if World 8-4 is cleared. |
4 | 0x00000008 | CL_ACH_FLAG_SPECIFIC_HASH | In order to unlock this achievement, the player must use a specific hash that may conflict with the "default hash" guidelines. This should be used sparingly; only in cases where a game was significantly changed between regional/revisional releases. |
In Ace Combat 3, most story material was removed when the game was localized from its original Japanese. In Chameleon Twist 2, several stages were discarded when the game was released outside of Japan. |
Content styling guidelines
General
- Avoid including any distasteful language or imagery in achievements. This rule is less strictly enforced on games with the "nsfw" tag.
- Avoid referencing events or other properties significantly detatched from the game the achievement is for. This includes overt references to unrelated games, recent events, political messages, etc.
Descriptions
- Linking the user to outside material in order to further explain how to unlock an achievement is not allowed. The description itself should contain all relevant information, even if other achievement descriptions in the set may make some info redundant.
Icons
- Only include depictions of violence if they accurately represent the content of the game (gore could be reasonably allowed in Doom but not Kirby's Adventure.)
Leaderboards (LDB)
Name | Type | Req | Desc |
---|---|---|---|
tr_title | Locale string | Yes | The name of the leaderboard. |
tr_description | Locale string | Yes | A short description of the leaderboard. May include details on the game mode to use or how to submit scores. |
tr_details | Locale string | No | A more detailed description of the leaderboard only visible from the website. May include more exact rules on activation or reasoning for excluding certain submissions. |
disallowed_hashes | Array | No | A blacklist specifying hashes the player is not allowed to be using for his/her score to be accepted. |
reverse | Boolean | Yes | Whether or not to interpret smaller scores as better ones. For example, in time attack leaderboards this would be true, whereas in score attack leaderboard this would be false. |