CFG/INI Configuration Files

Fallout and Fallout 2 use several INI-style configuration files. Some are global runtime settings, such as fallout2.cfg. Others are extension configs, such as sfall's ddraw.ini and the high-resolution patch's f2_res.ini. A few resource-side files, such as movie .cfg files, reuse the same parser for local data.

This page documents the shared parser behavior, the main game configuration keys, and the most important extension/config side effects that influence file lookup, language paths, subtitles, palettes, music, movies, scripts, and mod compatibility.

Config Files

FileTypical locationRole
fallout2.cfgGame directory.Main game settings: resource paths, language, preferences, sound, debug, and saved options-menu state.
mapper2.cfgMapper directory.Mapper variant of the main game config. Uses the same parser plus [mapper] keys.
ddraw.iniGame directory.sfall configuration. CE reads a compatibility subset; classic sfall supports many more options.
f2_res.iniGame directory or high-resolution patch config location.Resolution, fullscreen/windowed behavior, movie/static-screen scaling, and high-resolution patch options.
art\cuts\*.cfgBeside matching MVE movie files, loose or inside DAT.Movie palette fade effects keyed by movie frame number.
Data configsdata\*.txt and related paths.Files such as AI.TXT and worldmap.txt use the same broad INI/config style, but are documented separately because their schemas are game-data formats.

Parser Rules

Fallout 2 CE's config.cc is a useful reference for the classic parser behavior.

FeatureBehavior
Line lengthCE reads config lines with a 256-byte buffer. Keep lines shorter for compatibility.
SectionsA section line starts with [ after leading whitespace and ends at the next ].
Key/valueEntries are key=value. The first equals sign separates key and value.
WhitespaceLeading and trailing whitespace around section names, keys, and values is trimmed.
CommentsA semicolon ; truncates the rest of the line before parsing.
QuotesThere is no quote or escape syntax. Quotes become literal characters, and semicolons cannot be preserved in values.
Missing sectionA key/value before any section is stored under the parser's default last-section name, unknown.
CaseSection and key lookup is case-insensitive in CE's dictionary implementation.
DuplicatesSetting the same section/key again replaces the previous value. Practically, the later value wins.
IntegersCE uses strtol for normal integer reads and intentionally tolerates trailing nonnumeric characters for compatibility with old data such as percentages.
BooleansBoolean settings are integer-backed. 0 is false, any nonzero value is true.
ListsSome call sites read comma-separated integer lists with configGetIntList.

Command-line overrides are also parsed by the same config code. Arguments of the form [section]key=value are merged after the file has been loaded, so they override file contents.

fallout2-ce.exe [system]language=german [preferences]subtitles=1

Load Order

  1. sfall config initializes first with built-in defaults.
  2. ddraw.ini is loaded from the executable directory, if present.
  3. Command-line [section]key=value overrides are merged into the sfall config.
  4. The main game config initializes with built-in defaults.
  5. If ddraw.ini has [Misc] ConfigFile, CE can use that filename instead of fallout2.cfg for the game config.
  6. fallout2.cfg or mapper2.cfg is loaded, if present.
  7. Command-line overrides are merged into the game config.
  8. Configured resource paths are normalized and resolved for the current platform.

This means defaults are always present even when the file is missing. The file changes defaults, and command-line overrides win over both.

fallout2.cfg Sections

The main game config uses five major sections in Fallout 2 CE: [system], [preferences], [sound], [debug], and for mapper mode [mapper]. Classic files may include only [system] and [sound] immediately after installation; the game can write the expanded set later.

[system]

KeyCE defaultMeaning
executablegameIdentifies game or mapper mode in classic configs.
master_datmaster.datMain archive path. Case and spelling matter on case-sensitive platforms.
master_patchesdataLoose/patch resource root for master data.
critter_datcritter.datCritter archive path.
critter_patchesdataLoose/patch resource root for critter data.
languageenglishLanguage folder used for text, localized art/movie lookup, keyboard layout choices, and message paths.
scroll_lock0Scrolling/input behavior flag.
interrupt_walk1Whether input can interrupt walking.
art_cache_size8Art cache size in megabytes in CE's art cache initialization.
color_cycling1Enables animated palette cycling. See PAL/COL.
cycle_speed_factor1Multiplier applied to color-cycling periods.
hashing1Legacy/system behavior flag retained by the config.
splash0Startup splash index. CE increments this after showing a splash.
free_space20480Legacy free-space threshold setting.
times_runLegacyKnown from classic configs; not part of CE's current settings struct flow.

[preferences]

KeyCE defaultMeaning
game_difficulty10 easy, 1 normal, 2 hard.
combat_difficulty10 easy, 1 normal, 2 hard.
violence_level30 none, 1 minimal, 2 normal, 3 maximum blood.
target_highlight20 off, 1 on, 2 targeting only.
item_highlight1Highlight items when requested.
combat_looks0Combat look/inspect preference.
combat_messages1Combat message display.
combat_taunts1Combat taunt/message behavior.
language_filter0Profanity/language filter preference.
running0Default movement preference.
subtitles0Enables movie subtitles and ending narration subtitles where supported. See SVE.
combat_speed0Combat animation speed preference.
player_speed0Classic key name for player speedup.
player_speedupCE struct nameCE stores this setting internally as player_speedup, while the game-config key is player_speed.
text_base_delay3.5Base delay for floating/dialog text timing.
text_line_delay1.399994Per-line text delay. Older public docs often round this differently.
brightness1.0Brightness/gamma value applied through the color system.
mouse_sensitivity1.0Mouse sensitivity preference.
running_burning_guy1CE-tracked preference for the burning-guy running behavior.

[sound]

KeyCE defaultMeaning
initialize1Whether sound initializes.
device-1Legacy sound device selector.
port-1Legacy DOS sound port setting.
irq-1Legacy DOS sound IRQ setting.
dma-1Legacy DOS sound DMA setting.
sounds1Sound effects enabled.
music1Music enabled.
speech1Speech enabled.
master_volume22281Master volume. Classic docs describe volume values in the 0..32767 range.
music_volume22281Music volume.
sndfx_volume22281Sound-effects volume.
speech_volume22281Speech volume.
cache_size448Sound cache size setting.
music_path1sound\music\Primary music path. CE may switch this to data\sound\music\ if it detects ACM files there.
music_path2sound\music\Secondary music path.
debugCE structSound debug flag in CE settings.
debug_sfxcCE structSound-effect-cache debug flag in CE settings.

[debug]

KeyCE defaultMeaning
modeenvironmentDebug output mode. CE recognizes values such as environment, screen, log, mono, and gnw.
show_tile_num0Debug tile-number display flag.
show_script_messages0Debug script-message display flag.
show_load_info0Debug load-info flag.
output_map_data_info0Debug map-data output flag.

[mapper]

mapper2.cfg uses the same system/preferences/sound/debug structure, but mapper mode also initializes mapper-specific keys.

KeyCE defaultMeaning
override_librarian0Mapper librarian override.
librarian0Mapper librarian mode.
use_art_not_protos0Mapper asset/prototype behavior.
rebuild_protos0Rebuild prototype data.
fix_map_objects0Map object repair option.
fix_map_inventory0Map inventory repair option.
ignore_rebuild_errors0Ignore rebuild errors.
show_pid_numbers0Show PID numbers in mapper UI.
save_text_maps0Save text-map output.
run_mapper_as_game0Run mapper as game.
default_f8_as_game1F8 behavior default.
sort_script_list0Sort script list behavior.

Language And Path Effects

The [system] language value is one of the highest-impact config settings. It participates in:

The master_dat, master_patches, critter_dat, and critter_patches keys control the archive and loose-resource roots that feed the database layer. See DAT File Format for the effective resource loading and override order. On case-sensitive platforms, the configured names must match the actual asset names.

ddraw.ini

ddraw.ini is sfall's main configuration file. Full sfall has many settings; Fallout 2 CE currently initializes and consumes a compatibility subset, mostly under [Misc] and [Scripts].

SectionKeys recognized by CE source
[Misc]MaleDefaultModel, FemaleDefaultModel, MaleStartModel, FemaleStartModel, StartYear, StartMonth, StartDay, MainMenuBigFontColour, MainMenuCreditsOffsetX, MainMenuCreditsOffsetY, MainMenuFontColour, MainMenuOffsetX, MainMenuOffsetY, SkipOpeningMovies, StartingMap, KarmaFRMs, KarmaPoints, DisplayKarmaChanges, OverrideCriticalTable, OverrideCriticalFile, RemoveCriticalTimelimits, BooksFile, ElevatorsFile, ConsoleOutputPath, PremadePaths, PremadeFIDs, ComputeSprayMod, ComputeSpray_CenterMult, ComputeSpray_CenterDiv, ComputeSpray_TargetMult, ComputeSpray_TargetDiv, Dynamite_DmgMin, Dynamite_DmgMax, PlasticExplosive_DmgMin, PlasticExplosive_DmgMax, ExplosionsEmitLight, MovieTimer_artimer1, MovieTimer_artimer2, MovieTimer_artimer3, MovieTimer_artimer4, CityRepsList, UnarmedFile, DamageFormula, BonusHtHDamageFix, DisplayBonusDamage, Lockpick, Steal, Traps, FirstAid, Doctor, Science, Repair, ScienceOnCritters, DialogueFix, TweaksFile, DialogGenderWords, TownMapHotkeysFix, ExtraGameMsgFileList, NumbersInDialogue, AutoQuickSave, VersionString, ConfigFile, PatchFile, PipBoyAvailableAtGameStart.
[Scripts]IniConfigFolder, GlobalScriptPaths.

Important integration points:

sfall INI Script Helpers

sfall-style scripts can access INI files through triplets of the form:

file.ini|Section|Key

CE's helper parser limits the filename chunk to 63 characters and the section chunk to 32 characters. ddraw.ini and f2_res.ini are treated as system config names and are read from the current directory instead of being forced through IniConfigFolder.

Helper/opcodeBehavior
get_ini_settingReads an integer via `filesectionkey. CE returns -1` only if the triplet cannot be parsed; missing loaded values otherwise pass through helper defaults.
get_ini_stringReads a string via `filesectionkey`. Missing values return an empty string when the triplet is valid.
set_ini_settingWrites an integer or string value to the selected INI file in sfall-style runtimes that expose the setter.

f2_res.ini

f2_res.ini belongs to the high-resolution patch and modern-compatible runtimes that retain its config convention. Fallout 2 CE's README documents the essential [MAIN] keys:

[MAIN]
SCR_WIDTH=1280
SCR_HEIGHT=720
WINDOWED=1

High-resolution patch documentation describes additional sections such as [MAIN], [EFFECTS], [HI_RES_PANEL], [MOVIES], [MAPS], [IFACE], [MAINMENU], [STATIC_SCREENS], and [OTHER_SETTINGS]. CE currently also reads [STATIC_SCREENS] SPLASH_SCRN_SIZE when displaying RIX splash screens: 0 keeps original size, 1 scales while preserving aspect ratio, and 2 stretches to fill the screen.

Because f2_res.ini is used by multiple patches and runtime layers, treat it as an extension config rather than a single stable game-data schema. Document the target patch/runtime version whenever a mod requires specific keys.

Movie CFG Sidecars

When an MVE movie is played, CE tries to load a same-basename .cfg file through the database layer:

art\cuts\intro.mve
art\cuts\intro.cfg

The sidecar describes palette fade effects by movie frame number.

[info]
total_effects=2
effect_frames=1,120

[1]
fade_type=in
fade_color=0,0,0
fade_steps=30

[120]
fade_type=out
fade_color=0,0,0
fade_steps=30
KeyMeaning
[info] total_effectsNumber of effect frames to read.
[info] effect_framesOne integer frame or a comma-separated list of frames.
[frame] fade_typein or out.
[frame] fade_colorThree comma-separated color components. Movie effect code stores them as bytes and treats them as palette component values.
[frame] fade_stepsNumber of movie frames over which the fade runs.

Movie CFG files are optional. Missing or incomplete sidecars do not prevent the movie from playing; they only omit the palette fade effect.

Inter-File Dependencies

Config settingAffected documentation areas
[system] languageMSG, SVE, MVE, art lookup, keyboard layout.
[system] master_dat / master_patchesDAT, all loose resource overrides, message/art/proto/map loading.
[system] color_cycling / cycle_speed_factorPAL/COL animated palette ranges.
[preferences] subtitlesSVE, MVE, endgame narrator subtitles.
[sound] music_path1 / music_path2ACM music lookup.
[Scripts] GlobalScriptPathsSSL, INT, sfall global scripts.
art\cuts\*.cfgMVE movie palette effects and PAL/COL fades.

Implementation Notes

Source Code Map

SourceRelevant behavior
Fallout 2 CE config.ccShared parser, comments, trimming, integer/list reads, command-line overrides, config write format.
Fallout 2 CE dictionary.ccCase-insensitive section/key lookup and replacement behavior.
Fallout 2 CE game_config.ccMain config defaults, fallout2.cfg/mapper2.cfg path resolution, load order, save behavior.
Fallout 2 CE settings.h / settings.ccRuntime settings structs and mapping from config keys to engine settings.
Fallout 2 CE sfall_config.ccddraw.ini defaults and load order.
Fallout 2 CE sfall_ini.ccsfall INI helper triplet parsing, file/section length limits, and IniConfigFolder behavior.
Fallout 2 CE movie_effect.ccMovie .cfg sidecar syntax and palette fade behavior.

References

History

2026-05-07 - Added CFG/INI documentation covering parser behavior, fallout2.cfg, mapper2.cfg, ddraw.ini, f2_res.ini, movie sidecar .cfg files, and cross-format dependencies.