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.

image alt ><

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.