Changelog - xoxor4d/iw3xo-dev Wiki

Build [3424]


  • added "DayNightCycle" module
  • fixed structures + general clean-up


  • increased main menu fps cap to 125 FPS
  • fixed in-game fps getting stuck at 500 FPS (Windows 10)
  • you can now tweak world and weapon fov separately ("cg_fov_tweaks" -> "cg_fov" (world) & "cg_fov_gun")
  • you can now tweak framefog using "r_fogTweaks" dvars

[Menu / Gui]

  • fixed a crash when loading a mod from the main menu (changelog related)
  • refactored devgui tabs
  • added fov settings to the visual tab
  • added fog settings to the visual tab
  • added DayNight cycle tab


  • dvar "cl_avidemo_streams_viewmodel" should now work as expected

Build [3421]



  • added "_Client" module
  • added "_Renderer" module
  • added "Mvm" module
  • cleanup and refactoring
  • automatically load reshade.dll if placed in "iw3xo\bin"
  • automatically load iw3mvm.dll if placed in "iw3xo\bin" and dvar "load_iw3mvm" is enabled
  • forced "sv_punkbuster" to 0 (randomly crashed the game)


  • increased Hunk
  • increased Gmem

[Rendering / Shaders]

  • proper d3d9 implementation
  • devgui no longer needs r_d3d9ex enabled ^
  • minor fixes for shader overlays
  • sampler.resolvedPostSun now includes the latest frame with filmtweaks/visions
  • added dvar "r_debugShaderTexcoord" :: show world and model uv's / texcoords
  • added dvar "r_dumpShaders" :: dump shader binaries at runtime (to iw3xo\shader_dump)
  • added dvar "r_wireframe_xmodels" and "r_wireframe_world" :: draw xmodels / world surfaces using their wireframe technique (use r_clear and r_clearcolor to manipulate filling-colors)
  • added dvar "r_cullWorld" and "r_cullEntities" to disable culling :: can be useful for vertex manipulating shaders (latched dvars, requires a vid_restart) (disabled for now)
  • added dvar "r_drawDynents" :: disable drawing of dynamic entities (disabled for now)
  • added dvars to increase rendering buffers such as skinnedCache, smodelCache and various others ("r_buf_" :: make sure to disable r_fastSkin when rocking custom sizes :: disabled by default)
  • R_MAX_SKINNED_CACHE_VERTICES and TEMP_SKIN_BUF_SIZE warnings are now dynamic and adjust to their respective buffer sizes ^


  • fixed an out of memory error when trying to take screenshots with R_TakeScreenshot when using heavy mods
  • fixed cl_avidemo screenshots being black (iw3mvm support)
  • added dvar "cl_avidemo_streams" :: same as iw3mvm mvm_streams but with customization options :: "cl_avidemo_streams_" (iw3mvm support)
  • added dvar "cl_pause_demo" :: pause demo's


  • added dvar "pm_terrainEdgeBounces" :: allow terrainEdges to be bounceable (somewhat mimics console behavior)


  • movement tweaks :: moved hud and CGaz settings into the debug tab
  • map export :: added a few notes on what needs to be done in order to export maps
  • menu :: added highlight dvars
  • ImGui now uses OpenSans


Build [3386]


  • Added dvar r_aspectRatio_custom (21:9 = 2.333) -> Use r_aspectRatio "custom" to enable
  • Automatically load xcommon_iw3xo_addon.ff if found in zone/language (user fastfile to overwrite loaded assets)
  • cubeMapShot command fixed (disable r_smp_backend when using it)

[Map Export]

  • Fixed brush indices drawing when using r_drawCollision_brushIndexVisible
  • Minor fixes to texture scaling when exporting maps
  • Use dvar mapexport_brush5Sides to export brushes with only 5 sides
  • All IW3xo created files will now be placed in their respective directories in root/iw3xo/

[ImGui / Ocean Shader]

  • Implemented Ocean tab to tweak ocean shader settings in realtime
  • Use the export button to export shader settings
  • Shaders needs preprocessor #define USE_CUSTOM_CONSTANTS for this to work
  • Visit

[Shader Overlays]

  • xo_shaderoverlay can now be set to custom (define postfx material with xo_shaderoverlay_custom)
  • Added dvar xo_shaderdbg_matrix to debug transformation matrices

Build [3369]


  • shortcut ALT + Enter now works without developer mode
  • some dvar mins/maxs have been changed (mainly collision and shader dvars)
  • collision hud now uses the correct dvar to determine its color
  • fixed a visual issue with weapon bullet spread
  • some changes to dvar mins and maxs (mostly postfx shaders and debug collision)


  • rawfile menu loading [/menu_loadlist_raw <menulist_name.txt>] (needs fs_usedevdir enabled)
  • open any loaded menu by name [/menu_open <menu_name>, /menu_open_ingame <menu_name>]
  • close any loaded menu by name [/menu_closebyname <menu_name>]
  • Menu Exporter [/menu_export, /menu_list ...] ((c) SheepWizard)
  • menu_loadlist_raw no longer drops the player when it was unable to find specified menu


  • implemented ImGui (currently needs <r_d3d9ex> to be enabled)
  • theres now a devgui for most of the dvars that where added [/devgui]
  • imgui demo menu [/devgui_demo]

Build [3333]


  • Increased asset pools (c) IW4x
  • Usage of <xo_shaderoverlay> now disables <r_glow_allowed>
  • Refactoring


  • r_d3d9ex [enables extended dx9 interface (on by default)] (c) IW4x
  • Fixed invalid sampler crashes when drawing debug polygons
  • Increased performance when using unlit debug polygons (r_drawCollision_polyLit 0)

[Map Export]

  • fixed brushmodel exporting
  • now skipping brushes with more then 128 points
  • play with <mapexport_brushEpsilon1/2> and <mapexport_brushMinSize> to export smaller but prob. invalid brushes


  • fixed matchbox-values
  • re-added dvars <xo_conhintBoxTxtColor ...>

Build [3284]


  • Fixed font size issues
  • Borderless fullscreen (r_noborder + vid_xpos/ypos 0) (c) IW4x


  • pm_debug_drawAxis [Draw axial information (Axis/Fps Zones)]
  • pm_debug_drawAxis_radius [Radius of axis/zones circle]
  • pm_debug_drawAxis_height [Height offset (from player origin)]
  • pm_debug_drawAxis_col125/250/333 [Color of zone]

Build [3262]


  • Fixed some texture scale issues
  • Fixed some texture scale issues
  • Exporter now writes brush contents
  • Some brushside generation fixes
  • Selection feature [Export only certain parts of the map by defining a bounding box]
  • mapexport_selectionMode [Enables selection mode]
  • mapexport_selectionAdd [Adds a point to the bounding box (needs 2 in total)]
  • mapexport_selectionClear [Reset bounding box]
  • mapexport_brushMinSize [Only export complex brushes if their diagonal length is greater then this]
  • mapexport_brushEpsilon1 [Brushside generation epsilon 1 (adv. only)]
  • mapexport_brushEpsilon2 [Brushside generation epsilon 2 (adv. only)]


  • added changelog to the main menu

Build [3214]


  • Fixed an access violation that could occur while getting brush indices from clipmap->leafbrushNodes[node].data.leaf.brushes (unfinished but fixes it for now)
  • Added brushmodel support


  • Changed default value for "pm_cpm_useQuakeDamage" to false (dvar influences stock rocket jumping)