Skip to content

Careers

FoFiX has a career mode that enables song packs to configure sorting and unlock conditions.

Structure

Careers are structured using multiple tiers of songs. In the career folder, there is a titles.ini file which specifies display names and tier IDs. Then, each song within the career contains a couple tags in its song.ini file indicating which tier it belongs to, and any tier that needs to be completed before the song is unlocked.

titles.ini

The titles.ini file is headed with a [titles] section. It has one entry:

Tag Name Description Data type
sections A space-separated list of .ini sections to include in the career. string

This entry points to other sections that should be used as part of the career. Each of those sections has two entries:

Tag Name Description Data type
name Display name of the tier. string
unlock_id ID used for associating a song with this tier and checking unlock requirements. string

song.ini Tags

Tag Name Description Data type
unlock_id Name of the career tier that this song belongs to. string
unlock_require Name of the career song/tier that must be completed to unlock this song. string
unlock_text Text to display if the song is locked. string
unlock_completed Indicates whether or not the song is unlocked. (not a boolean value) number

unlock_id can be appended with .<song number> to respectively sort songs in a specific order, and with enc (affixed before affixing the song number) to tag songs as an encore song (though FoFiX doesn't seem to check for this suffix at all, so it's likely also just for sorting, and special unlocks are done manually). Examples: gh3_1.5, gh3_2enc.2

The value of unlock_completed is determined by removing the song order prefix from the song name using a regular expression of ^[0-9]+\. *, then multiplying the length of the result by the length of the artist name, then adding 1.

Example

My Career/
|- titles.ini
   ---
   [titles]
   sections = tier01 tier02 tier03

   [tier01]
   name = 01. Getting Started
   unlock_id = tier_01

   [tier02]
   name = 02. Warmed Up
   unlock_id = tier_02

   [tier03]
   name = 03. Rockin' Out
   unlock_id = tier_03
   ---
|- Tier 01/
|  |- Song 01/
|  |  |- notes.mid
|  |  |- song.ogg
|  |  |- song.ini
         ---
         [song]
         ...
         unlock_id = tier_01
         # No unlock requirements since it's the first tier
         ---
|  |- Song 02/
|  |  |- notes.mid
|  |  |- song.ogg
|  |  |- song.ini
         ---
         [song]
         ...
         unlock_id = tier_01
         ---
|- Tier 02/
|  |- Song 01/
|  |  |- notes.mid
|  |  |- song.ogg
|  |  |- song.ini
         ---
         [song]
         ...
         unlock_id = tier_02
         unlock_require = tier_01
         unlock_text = Complete tier "01. Getting Started" to unlock this song!
         ---
|  |- Song 02/
|  |  |- notes.mid
|  |  |- song.ogg
|  |  |- song.ini
         ---
         [song]
         ...
         unlock_id = tier_02
         unlock_require = tier_01
         unlock_text = Complete tier "01. Getting Started" to unlock this song!
         ---
|- Tier 03/
|  |- Song 01/
|  |  |- notes.mid
|  |  |- song.ogg
|  |  |- song.ini
         ---
         [song]
         ...
         unlock_id = tier_03
         unlock_require = tier_02
         unlock_text = Complete tier "02. Warmed Up" to unlock this song!
         ---
|  |- Song 02/
|  |  |- notes.mid
|  |  |- song.ogg
|  |  |- song.ini
         ---
         [song]
         ...
         unlock_id = tier_03
         unlock_require = tier_02
         unlock_text = Complete tier "02. Warmed Up" to unlock this song!
         ---

References

  • https://fofix.readthedocs.io/en/latest/users/careers.html