Achievement Logic Features

There are several tools and options available to a developer. Knowing how to properly utilize them will improve the quality of your sets. These tools/options can be used in the Achievement Editor:

achievement_editor

For more help regarding these, our Discord server is always open for assistance.

Delta Values

A Delta value is the previous frame's value.

Examples of how it can be used:

  • Detect if the level has been increased: level > delta level. It means "current level is greater than the previous frame's level".
  • Detect damage: health < delta health. It means "current health is smaller than the previous frame's health". Or you can just make the previous frame's value a requirement. health delta = 1 means "the previous frame's value for health must be 1 when the achievement pops up."

You can see how it works in the Real Examples page.

Hit Counts

In the Achievement Editor, it's the field on the far right side is Hit Count.

Zero is default, none. It means the condition must be true when the achievement pops.

If you set a manual hit count, like 1, it means the condition must be true for at least 1 frame, and once that hit count is met, it doesn't need to be met again at any other time.

PLEASE NOTE: if a condition has a hit count, and reaches the number required, this condition is no longer tested. It is true and remains true, UNLESS you have a Reset If, which we will discuss below.

You can see how it works in the Real Examples page.

Special Flags

In the Achievement Editor, it's the field titled as Special?

These flags conditions only work if you set a manual hit count for a condition.

PauseIf

This will pause activity for all conditions in the same group.

Note: Keep in mind this will not pause conditions in other groups.

The PauseIf is used to pause hit count going up during a specific situation (like pausing the game). It's used when you want to keep previously earned hit count, but don't want to reset it when someone simply pauses the game, for example.

ResetIf

This will reset the hit count for conditions you set a manual hit count for. It's much more common to use than PauseIf

Note: Unlike PauseIf, this will reset conditions in all groups

You can see how it works in the Real Examples page.

N64 Special Flags

When developing for N64, there are additional "arithmetic flag operations" that can be used. These flags are currently exclusive to N64. Please note, any condition with arithmetic flags are always considered true, regardless of their comparison values.

Add Source

Will add the value of the source in the field labeled Memory to the next achievement condition. The total value will be used in the next achievement condition.

Sub Source

Works similarly to Add Source, but will instead subtract the source value.

Add Hits

Will add the current hit count to the next condition. The total hit value will be used in the next achievement condition.

Add Source Example

In this example, conditions #1 and #2 will have their values (5 and 3 respectively) added until they reach condition #3. At that point, the value contained in the Memory field will be 5 + 3 + 20, and it's new value will be 28. Condition #3 will now be true and read as: 28 > 20

Groups

Achievements can have groups added to them that can act as alternative requirements to unlock an achievement. These are called Alt Groups.

One extremely important thing to note: For an achievement to unlock it must have it's Core group AND at least one Alt group be true. If there are no Alt groups present, then only the Core group's conditions need to be true.

Tip: Because the Core group always need to be active, typically you would put conditions there that is common among all the alternative requirements. However, one trick you can use to basically ignore needing a Core group is to give it a condition that is always true such as:

Mem 0x0001 = Mem 0x0001

Since the Core group is now always true, and you can now focus on differentiating the Alt groups.