Preference Storage
Preferences are stored in thePreferences.ini file in the StepMania save directory. The file uses INI format with sections and key-value pairs.
Preference Types
StepMania supports several preference types:- String: Text values (e.g., theme names, language codes)
- Integer: Whole numbers (e.g., screen width, coins per credit)
- Float: Decimal numbers (e.g., global offset, difficulty scale)
- Boolean: True/false values (e.g., windowed mode, show stats)
- Enum: Predefined set of values (e.g., image cache mode, background fit mode)
Core Display Preferences
| Preference | Type | Description |
|---|---|---|
Windowed | bool | Run in windowed mode instead of fullscreen |
DisplayId | string | Identifier for the display to use |
DisplayWidth | int | Screen resolution width |
DisplayHeight | int | Screen resolution height |
DisplayAspectRatio | float | Aspect ratio for rendering |
DisplayColorDepth | int | Color depth for display |
RefreshRate | int | Monitor refresh rate |
Vsync | bool | Enable vertical sync |
FullscreenIsBorderlessWindow | bool | Use borderless window for fullscreen |
ShowMouseCursor | bool | Display mouse cursor |
Graphics & Rendering
| Preference | Type | Description |
|---|---|---|
TextureColorDepth | int | Color depth for textures |
MovieColorDepth | int | Color depth for videos |
StretchBackgrounds | bool | Stretch backgrounds to fit screen |
BGFitMode | enum | How backgrounds are fitted |
HighResolutionTextures | enum | High-res texture loading mode |
MaxTextureResolution | int | Maximum texture resolution |
AllowMultitexture | bool | Enable multitexture support |
FastNoteRendering | bool | Use optimized note rendering |
ImageCache | enum | Image caching mode |
DelayedTextureDelete | bool | Defer texture deletion |
DelayedModelDelete | bool | Defer model deletion |
FastLoad | bool | Enable fast loading |
FastLoadAdditionalSongs | bool | Fast load for additional songs |
Gameplay Settings
| Preference | Type | Description |
|---|---|---|
CurrentGame | string | Currently selected game type |
DefaultModifiers | string | Default player modifiers |
LifeDifficultyScale | float | Scale for life difficulty |
RateModsAffectTweens | bool | Rate mods affect UI animations |
RegenComboAfterMiss | int | Combo needed to regenerate life |
MaxRegenComboAfterMiss | int | Cap for regen combo |
MercifulDrain | bool | Scale negative life by current life |
HarshHotLifePenalty | bool | Stricter life penalty when near full |
MinTNSToHideNotes | enum | Minimum judgment to hide notes |
BreakComboToGetItem | bool | Breaking combo grants items |
Course & Stage Options
| Preference | Type | Description |
|---|---|---|
Minimum1FullSongInCourses | bool | First song uses FEOS, then fail immediately |
FailOffInBeginner | bool | Disable failing in Beginner difficulty |
FailOffForFirstStageEasy | bool | Disable failing in first stage Easy |
MercifulBeginner | bool | Easier grading in Beginner |
ComboContinuesBetweenSongs | bool | Combo persists between songs |
LockCourseDifficulties | bool | Lock difficulties in courses |
ProgressiveLifebar | int | Progressive lifebar mode |
ProgressiveStageLifebar | int | Stage-based progressive lifebar |
ProgressiveNonstopLifebar | int | Nonstop progressive lifebar |
User Interface
| Preference | Type | Description |
|---|---|---|
Theme | string | Current theme name |
Announcer | string | Current announcer |
ShowStats | bool | Display statistics |
ShowBanners | bool | Show song banners |
ShowInstructions | bool | Show mode instructions |
ShowCaution | bool | Show caution screen |
ShowNativeLanguage | bool | Display native language |
MenuTimer | bool | Enable menu timer |
DelayedBack | bool | Delay back button |
AllowHoldForOptions | bool | Hold button for options |
ThreeKeyNavigation | bool | Three-key navigation mode |
ShowDancingCharacters | enum | Dancing character display mode |
Music Wheel
| Preference | Type | Description |
|---|---|---|
MusicWheelUsesSections | enum | Use sections in music wheel |
MusicWheelSwitchSpeed | int | Music wheel scroll speed |
OnlyPreferredDifficulties | bool | Show only preferred difficulties |
HiddenSongs | bool | Enable hidden songs |
Scoring & Grading
| Preference | Type | Description |
|---|---|---|
AllowW1 | enum | Allow Flawless (W1) timing |
PercentageScoring | bool | Use percentage-based scoring |
MinPercentageForMachineSongHighScore | float | Min % for song high score |
MinPercentageForMachineCourseHighScore | float | Min % for course high score |
Disqualification | bool | Enable score disqualification |
MercifulSuperMeter | bool | Scale super meter by life |
Arcade & Credits
| Preference | Type | Description |
|---|---|---|
EventMode | bool | Enable event mode |
CoinsPerCredit | int | Coins required per credit |
SongsPerPlay | int | Songs per credit |
DelayedCreditsReconcile | bool | Delay credit reconciliation |
OnlyDedicatedMenuButtons | bool | Require dedicated menu buttons |
ArcadeOptionsNavigation | int | Arcade navigation mode |
Audio & Timing
| Preference | Type | Description |
|---|---|---|
GlobalOffsetSeconds | float | Global timing offset in seconds |
Content Generation
| Preference | Type | Description |
|---|---|---|
AutogenSteps | bool | Auto-generate steps |
AutogenGroupCourses | bool | Auto-generate group courses |
Unlocks & Extras
| Preference | Type | Description |
|---|---|---|
UseUnlockSystem | bool | Enable unlock system |
AllowMultipleToasties | bool | Allow multiple toasty triggers |
ShowSongOptions | enum | Show song options screen |
Setting Preferences via GameCommands
You can set preferences using thesetpref GameCommand:
Setting Preferences via Lua
Preferences can be accessed and modified through Lua:Theme Preferences
Themes can define their own preferences using the ThemePrefs system. These are stored separately inSave/ThemePrefs.ini.
Declaring Theme Preferences
Using Theme Preferences
ThemePrefs.ini.
Command-Line Preference Override
Use the--Type argument to load preferences from alternate sections:
[Preferences-arcade] instead of the default section.
Notes
- Changes to most preferences require restarting StepMania
- Display-related preferences take effect immediately in some cases
- Preferences are automatically saved when modified through the options menu
- Direct INI file edits require StepMania restart to take effect

