Challenge ProMode Arena

CNQ3 1.51 Changelog


Changelog for CNQ3 1.51


  • now showing the cvar's current and latched values in the help panel

  • new console and chat keyboard shortcuts

    • Ctrl-left/right arrow | move caret to previous/next word
    • Shift-left/right arrow | move caret to previous/next argument
  • new console keyboard shortcuts

    • Ctrl-I | insert cvar's current value
    • Ctrl-D | insert cvar's default value
  • demo recording status query extension for CPMA 1.52+

  • /cvar_add <cvar> <number> to add a number to a cvar

  • /cvar_mul <cvar> <number> to multiply a cvar by a number

  • /unset <cvar> to remove a user-created cvar

  • /setempty <cvar> to set a string cvar to an empty string

  • /toggle can now accept a value sequence (2 or more entries) to loop through

    • syntax: /toggle <cvar> [<value1> <value2> [value3]..]
    • if the cvar's current value is in the sequence and not in the last spot, the next one is used
    • otherwise, the first value in the sequence is used


  • r_lodCurveError <250.0 to 10000.0> (default: 2000) is now archived and no longer cheat-protected

  • multi-monitor support improvements

    • /monitorlist will print all detected monitors and the indices to use with r_monitor
    • the monitor list now gets updated during video restarts and calls to /monitorlist
    • Linux | r_monitor is a 0-based index and monitors are sorted top-to-bottom, left-to-right
    • Windows | the Windows + shift + left/right arrow key shortcuts should be usable now
  • bundling lightmap tiles into texture atlases for improved rendering performance

  • faster map loads by limiting the rendering back-end's frame-rate

  • on Windows, the upper limit of open stdio file handles was raised from 512 to 2048


  • the presence of .shader files outside of PK3s no longer triggers a drop error

  • shader stage collapsing was happening in cases where it would yield incorrect results

  • map download improvements

    • using numeric addresses as fallbacks in case DNS resolves fail
    • made connections non-blocking so the engine won't freeze for long when starting a download
    • writing to $(fs_homepath)/baseq3 instead of $(fs_basepath)/baseq3
    • only using valid (TCP/stream) addresses from getaddrinfo
    • setting send time-outs so the engine can't freeze indefinitely
    • creating the destination directory when it doesn't already exist
    • the file name suffixes generated by /dlmapf would often repeat due to a constant seed
  • the last byte of a maximum length bitstream string wasn't parsed ("q3msgboom")

  • aborting demo playback would crash when the "nextdemo" cvar was set to play a demo

  • no longer feeding cs commands that came from a previous gamestate to cgame

    • example in CPMA: "/map cpm22" ->"/cv map cpm25" -> elevator sound was broken
  • on Windows, could sometimes click outside the engine's window in raw mouse input mode

  • when r_msaa was in the range [2, 16], the requested sample count was always 4

  • /video and /stopvideo fixes

    • /video can only be used during demo playback
    • broken audio in the output files
    • properly named file sequences
    • using a better supported video codec (FourCC 0x00000000) for raw BGR output
    • broken raw video output when r_width wasn't a multiple of 4
    • /stopvideo no longer leaves sound output broken for a while after stopping
  • /cv and /callvote map auto-completion was disabled after cgame was shut down at least once