Game Engine Configuration


haloman30

The game engine has various configuration settings available that tweak how the engine functions. Many of these are unimplemented and will be introduced at a later date.

Implemented Settings

Directories and Paths (paths)

 

Setting Name Description Valid Values Default Value Type
game_data_root The root of any game files (levels, tags, movies, etc.) any valid relative path {$APPDIR} string
user_data_root The path for any user files (game/map variants, config files, savegames, etc.) any valid relative path {$DOCUMENTS}\My Games\Project Infinity string
user_mods_dir The folder to store any user-installed mods any valid relative path {#user_data_root}\mods string
raw_data_dir The folder to store any miscellaneous loose files. any valid relative path {#game_data_root}\content  string
raw_data_images_dir The folder to store any loose images (.PNG, .GIF, .BMP, .JPG) any valid relative path {#raw_data_dir}\Gallery string
screenshots_dir The folder to store any user-captured screenshots any valid relative path {#user_data_root}\screenshots\ string
levels_dir The folder to store game cache files (.maps) any valid relative path {$APPDIR}\maps string
fonts_dir The folder to store any game fonts any valid relative path {#levels_dir}\fonts string
tags_dir The folder to store any individual tag files that aren't part of any given cache file any valid relative path {$APPDIR}\tags string
plugins_dir The folder that XML plugins will be saved to upon being generated any valid relative path {$APPDIR}\plugins string
engine_resource_dir The folder to store any miscellaneous engine resources any valid relative path {$APPDIR}\data string

 

Resource Settings (resources)

 

Setting Name Description Valid Values Default Value Type
force_regenerate_game_engine_text Whether or not to forcibly re-create the default game engine text file, overwriting any user changes true or false true bool
force_regenerate_globals Whether or not to forcibly re-create the default globals file, overwriting any user changes true or false true bool

 

 

Logger Settings (logging)

 

Setting Name Description Valid Values Default Value Type
clear_log_first Whether or not to clear the log file at startup (only applies for standard logs and reports) true or false true bool
enable_multi_log Whether or not to enable "multi-logging", which creates a new log file for each run true or false true bool
log_format The log format to use, HTML has the option to have stylized logs html, txt, or both html string
multi_log_dir The directory to store multi-logs any valid relative path logs string
reports_dir The directory to store reports any valid relative path reports string
use_reports Whether or not to use reports instead of just debug.txt/debug.html. true or false true bool
stylized_html_logs Whether or not to enable CSS styling for HTML logs true or false true bool
console_color_set The color set to use for the console classic, new, or custom new string
show_header_in_stylized_reports If enabled, the log header will be included even in stylized reports. The header was originally only visible in plain HTML or text logs. true or false true bool
include_extras_in_stylized_reports If enabled, the additional blank line and Ώ ∞ messages will be printed after the header. These serve no purpose other than as a cosmetic feature. true or false false bool
bypass_queue If enabled, the logger queue will not be used outside of initial startup. May cause increased IO usage, but can be used to ensure that no log messages are lost in the event of an exception. true or false false bool

 

ImGUI Display Settings (imgui)

 

Setting Name Description Valid Values Default Value Type Notes
sys_font The font package to load for ImGUI name of any TTF format file in /maps/fonts font_package_dbg string Fonts should be placed in /maps/fonts. If sys_font_force_extension is set to true, the file extension must be set to .bin extension, and this config option should be the font name without the extension. Ex: if the font file is "font-package-en.bin", then this value should be "font-package-en".
sys_font_force_extension Whether or not to force a .bin file extension for fonts true or false true bool  
sys_font_size The font size to use for ImGUI any float or int 15.0f float  

 


Debug Settings (debug)

 

Setting Name Description Valid Values Default Value Type
hsc_debug Whether or not to print HaloScript parsing details to console true or false false bool
csc_debug Whether or not to print CommandScript parsing details to console true or false false bool
screenshot_debug Whether or not to print screenshot debugging details to console true or false false bool
debugMode Whether or not debug mode is enabled true or false true bool
placeholder_debug Whether or not to print extra placeholder info to console at startup true or false true bool
config_colors_debug If enabled, will print a series of dummy messages for each warning severity. Useful for ensuring messages are displaying properly. true or false true bool


 

Debugging UI (blam_ui) Settings (debug_ui)

 

Setting Name Description Valid Values Default Value Type
ui_default_font The default font package to use for rendering debug text. Name of any font package (.bin) or folder with fontinfo.xml within its root fixedsys_ttf string


 

Rendering Settings (rendering)

 

Setting Name Description Valid Values Default Value Type
rendering_engine -- vulkan, directx, opengl, bgfx opengl string
vulkan_log_level Minimum severity for Vulkan log messages to be printed to console. verbose, info, warning, error warning string
vulkan_device -- auto, first, any valid device index auto string


 

Sentry Settings (sentry)

 

Setting Name Description Valid Values Default Value Type
enable_sentry Whether or not to enable Sentry support. true or false true bool
sentry_host The URL for Sentry to use to send diagnostics data. Any valid Sentry ingest URL. https://[email protected]/5259190 string


 

Font Settings (fonts)

Setting Name Description Valid Values Default Value Type
use_font_table Whether or not to use font_table.txt to retrieve the list of available fonts. true or false true bool
draw_shadow_separately Whether or not to draw text shadow as a separate text object. (?) true or false true bool


 

Console Settings (console)

Setting Name Description Valid Values Default Value Type
extraConsoleOutputPadding Whether or not to keep some space between console output (equal to 1 line) or not. (original games did not have extra spacing) true or false true bool
useEnhancedBooleanCommands Whether or not to use enhanced boolean command handling true or false false bool
useEnhancedGvarMessages Whether or not to use more informative messages for setting script gvars from console. When disabled, messages will display as they did in the official Bungie games. true or false false bool


 

Debug Menu Settings (debug menu)

Setting Name Description Valid Values Default Value Type
useAlternateDebugMenuUnknownGlobalDisplay Whether or not use an alternative display mode for missing globals in the debug menu. Defaults to `false` which uses the classic display style seen in Halo 2 true or false false bool
autoGenerateNewDebugMenuFile If disabled, the engine will not generate the default `debug_menu_init.xml` file if it isn't found. As such, it will attempt to load `debug_menu_init.txt` but this will almost certainly fail. true or false true bool

 


Engine Features (features)

Setting Name Description Valid Values Default Value Type
use_discord_rpc Whether or not to enable Discord Rich Presence true or false true bool
show_firstboot Whether or not to show the firstboot dialog true or false true bool
show_windows_menubar Whether or not to show the standard Windows menu bar true or false true bool
use_custom_cursor Whether or not to use the game's custom cursor true or false true bool
enable_imgui_gamepad_nav Whether or not to allow ImGUI to be used with gamepad navigation true or false true bool

 


Networking Settings (network)

Setting Name Description Valid Values Default Value Type
use_netcode Whether or not to enable networking true or false true bool

 

 

Multithreading Settings (threading)

Setting Name Description Valid Values Default Value Type
use_separate_render_thread Whether or not to run rendering on it's own thread. Changing may have undesirable consequences. true or false true bool

 

 

Appearance Settings (`appearance`)

Setting Name Description Valid Values Default Value Type
use_themed_windows Whether or not to use visual themes on dialogs true or false true bool
use_themed_controls Whether or not to use visual themes on dialog controls true or false false bool

 


Miscellaneous Options (miscellaneous)

Setting Name Description Valid Values Default Value Type
screenshot_format The format to use for saving screenshots TBA PNG string

 


Special Settings - Don't touch these (special - don't touch these)

Setting Name Description Valid Values Default Value Type
conf-ver The configuration version, used for upgrading if need be any int 1 int

 


Placeholders

Information on placeholders has been moved [here](Placeholders).

 

Referencing other Config Options

A configuration value can include the value of another option by using the following format:


{#config_option_id}

Example

Take the following configuration settings:
 

raw_data_dir=content
raw_data_images_dir={#raw_data_dir}\Gallery

 

raw_data_images_dir would evaluate to:

 

content/Gallery

Unimplemented Settings

 

Many of these settings may not get implemented for reasons that will soon seem obvious. Many of these were conceptualized by a young boy who had little knowledge at the time of how any of this shit works. They describe ambiguous and random features that, in some cases, flat out don't make any sense. They remain here as a reference only in the event that some of these get implemented in the future - just to satisfy that young boy's visions and make them into reality (or something like that).

 

 

Spoiler

 

  • fpsMax - Controls the maximum framerate that the engine can run at
    • Valid values: Any number between 1 and 60
    • Default: 60
  • bink-enabled - Whether or not intro videos will play upon starting the game
    • Valid values: true or false
    • Default: true
  • useSwitches - Whether or not to respect command-line switches, such as -console or -devmode
    • Valid values: true or false
    • Default: true
  • useMulti - Whether or not to ignore levels whose scenario path starts with /levels/multi
    • Valid values: true or false
    • Default: true
  • useMulti - Whether or not to ignore levels whose scenario path starts with /levels/solo
    • Valid values: true or false
    • Default: true
  • useLegacyFileStructure - Whether or not to use the traditional Bungie-style file structure /maps, /bink, etc.
    • Valid values: true or false
    • Default: true
  • useDedicated - Whether or not to use Dedicated servers in favor of Peer-to-Peer networking.
    • Valid values: true or false
    • Default: true
  • dedicatedHost - The default host IP for dedicated servers
    • Valid values: any valid DNS hostname or IP address
    • Default: 343.host.elaztek.com
  • dedicatedFallback - A fallback host in the event that the primary dedicated host is offline or unreachable
    • Valid values: any valid DNS hostname or IP address
    • Default: i01.host.elaztek.com
  • dedicatedFallback2 - A secondary fallback host in the event that the primary dedicated host and fallback server are both offline or unreachable
    • Valid values: any valid DNS hostname or IP address
    • Default: contingency.host.elaztek.com
  • ui - The type of UI to use upon starting the game
    • Valid values: default, classic, halo3, imgui
    • Default: default
  • mp3Enabled - Whether or not to support MP3-format sound
    • Valid values: true or false
    • Default: true
  • checkSignatures - Whether or not to check cache file signatures
    • Valid values: true or false
    • Default: true
  • enableElaztekExtended - Whether or not to enable the Elaztek Extended Framework
    • Valid values: true or false
    • Default: false
  • launchMode - The release mode to launch the engine in
    • Valid values: retail, alpha, beta, dev, press, safemode, debug, screen
    • Default: debug
  • init-level - The level to load by default when first starting the game
    • Valid values: any level path
    • Default: levels/ui/mainmenu/mainmenu
  • s_hsc_ver - The HaloScript version that should be used
    • Valid values: any valid release of HSC
    • Default: 15267.10.13.16.0467.blamite
  • havok_cloth_phys - Whether or not to use Havok Cloth simulation
    • Valid values: true or false
    • Default: false
  • havok_impact_phys - Whether or not to use Havok impact simulation
    • Valid values: true or false
    • Default: false
  • havok_physics_engine - The Havok Physics preset to utilize
    • Valid values: havok, h2v, contingencycryengine, madness, none, spaaace, michael
    • Default: none
  • achi_enabled - Whether or not to enable achievement support
    • Valid values: true or false
    • Default: false
  • voice_server - The IP of the TeamSpeak 3 server to utilize for voice communication
    • Valid values: any valid TS IP
    • Default: voice.inf.elaztek.com
  • voice_default_channel - The channel ID to join by default
    • Valid values: any valid channel id
    • Default: 57
  • show_ts_window - Whether or not to show a TeamSpeak window for voice connectivity
    • Valid values: true or false
    • Default: false
  • poly_limit - The maximum number of polygons to render in a given frame
    • Valid values: any valid int16, anything higher will cause issues
    • Default: 32767
  • r_wireframe - Whether or not to render 3D scenes in wireframe mode
    • Valid values: true or false
    • Default: false
  • render_preset - The rendering preset to use by default
    • Valid values: blam, halo, halo2, halo3, omaha, storm, osiris, ue4, unity, groundhog
    • Default: blam
  • fog - Whether or not fog is enabled
    • Valid values: true or false
    • Default: true
  • rendering_engine - The graphics API to utilize for rendering
    • Valid values: directx11, opengl
    • Default: directx11

 

 

 

Edited by haloman30


User Feedback

Recommended Comments

There are no comments to display.



Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now