Reflex Changelog 0.33.x

From Reflex Wiki
Jump to: navigation, search

Reflex Changelog 0.33.x - Fancy UI stuff

After a month of late nights, it's finally time to release our new UI update to the world. Although its still a work in progress, HUD and menus have been dramatically improved and we're excited to see what the community comes up with using the new UI scripting system.

To gather all of these custom HUDs into one place, we've set up a new UI forum over at the forums: the UI Scripting where (if it ends up anything like our mapping scene) you'll soon be able to find a masses of info and custom widgets.

We've also started sneaking in a few bits of art that you can check out in the "envtank" map. Stay tuned for some new weapon concept art and more information about the direction we're going in!

This is definitely not the end of our 0.33 updates. In the upcoming point release, we'll be expanding the UI system further, making some changes to knockback and weapon balance and squashing a few bugs.

0.33.1, April 7th 2015


  • Added fullclip
  • Added envtank map to demonstrate current art usage examples.
  • Fixed slime functionality.


  • Added new Lua based UI system (which despite being a single bullet point, was a month of work).
  • Asset hotloading now included in public builds (for live-updating of HUD scripts).
  • Added SSAO via r_ssao.
  • Crash report now detect spinlocks & fires off a crashreport if it occurs (implemented on both dedicated server & clients).
  • Key \ is now bindable.
  • Fixed lightmapping bug on maps with multiple texture pages with r_shader_quality 2.
  • Fixed bug where probes were incorrectly not being calculated inside player clip.
  • Server now reports location to steam (in gametags), client decodes this and it's used to display flag on server browser.
  • bind command now has states, for example "bind game mouse1 +attack" "bind me mouse1 +editorprimary"
  • All configuration is now in game.cfg (no more editor.cfg).
  • Bind command now supports ; for multiple commands on one key.
  • Renamed game.cfg to game_default.cfg -- game.cfg is now created on first load if it doesn't exist.
  • Renamed dedicatedserver.cfg to dedicatedserver_default.cfg -- dedicatedserver.cfg is now created on first load if it doesn't exist.

Known Issues

  • If you've deleted your menu music, the game will crash on start. To fix, verify your game cache in Steam. Fixed in 0.33.1.
  • Armor timers occasionally wrong on connect. Correct time is shown once the item is taken.
  • UI can get stuck in a loop changing resolution / refresh rate from the menu. To fix, either close the options menu or adjust your resolution using console commands instead.

0.33.2, April 9th 2015


  • Updated UI scripts to respect cl_show_hud 0, i.e. turns off widgets.
  • Server browser now has a "join server" button (rather than joining on first click).
  • Options menu now has an apply button for resolution / window mode / refresh rate.
  • Hopefully fixed a collision routing bug causing client to freeze at 99% connected.
  • Added sorting by ping/map/mode/players to the server browser.
  • Added ui_reset command to restore the default UI config.
  • The saveconfig command now saves to game.cfg if no filename is given, regardless of any previous loadconfigs.
  • Added SVG versions of cl_crosshairs 6 to 16.
  • Scoreboard has been moved to the new UI system.

Bug Fixes

  • Fixed bug where pressing delete in the console would start deleting command history too.
  • Fixed HUD being shown when freecam-spectating.
  • Fixed FRAGGED message being shown when spectating.
  • Fixed UI crash in options menu when cl_playercolorX was set to something invalid.
  • Fixed bug causing UI colours to occasionally be wrong.
  • Fixed bug with enemy health being incorrectly exposed/restricted to lua scripts.
  • Fixed bug with team selection from in-game menu.
  • Fixed game clock being off centre with default config.
  • Fixed crash for people who delete their menu music.

UI Scripting

  • Exposed more NanoVG functions to Lua: nvgTranslate, nvgRotate, nvgSkewX, nvgSkewY, nvgScale, nvgArc, nvgElipse.
  • Added Lua variables world.mapName and showScores.
  • Exposed Lua table library.
  • The Lua variable is now 1 or 2 (instead of 0 or 1).


  • Added sv_country command for dedicated servers. We try and automatically determine this, but it doesn't seem to be working for dedicated servers.


  • Added clock.
  • Added alarm.
  • Added cables.
  • Added new style downward spot.
  • Updated girder meshes to cast shadows.
  • Optimised grate_128x128x8 mesh.
  • Updated envtank with new assets.

0.33.3, April 15th 2015


  • Fixed collision bug when players were outside of world bounds.
  • Fixed SVG rasterize crash bug


  • Improved the way kick votes are handled.
  • Dedicated server no longer auto-saves configs.
  • SVG texture atlas is now purged if SVG asset is updated.
  • Added NVG_CCW and NVG_CW constants to reflexcore.lua.
  • Clients must now be not responding for 120 seconds before the crash reporter kicks in.


  • Added fan mesh.
  • Updated envtank map.


  • IC damage increased from 7 to 8.
  • IC knockback increased from 0.25 to 1.3.
  • Item pickup radius increased from 16 to 20.
  • Changes to global knockback rules to prevent IC cripple (among other things).
  • Player movement should now be more responsive when exiting teleporters.

0.33.4, April 17th 2015

User Interface

  • Added a Options / Widgets menu.
    • This gives a list of all widgets in the game and allows you to adjust their position/anchor from the menu (rather than using the console).
    • This menu will also call an optional drawOptions() function for each widget, allowing widgets to draw their own options menu for players.
    • See the Crosshairs options panel for an example.
  • Added a PlayerSpeed widget.
  • Added ui_list_widgets and ui_set_widget_zindex commands.
  • Truncated various slider results in options menu to 2 decimal places.


  • We now pass self parameter into widget.draw()/show()/hide().
  • Updated options menu to use self. rather than looking up global table each time.
  • ui_show_widget / ui_hide_widget now lists all the widgets if you pass in no param.
  • Added Lua functions saveUserData() and loadUserData(). This allows widgets to save any lua object across application launches.
  • Exposed widgets table to Lua so scripts can see registered widgets.
  • Added special "ui_define" command. This is used to persist lua objects to game.cfg.
  • Added zIndex variable to widget, for controlling the draw order of your widgets.
  • Replaced lua's internal "require" function with our own. This removes the capability of loading DLLs into Lua.
  • Exposed new Lua variable world.hostName.
  • Exposed new Lua player variables: position, velocity, anglesDegrees, jumpTimer, weapon[n].maxAmmo.
  • Exposed ALL pickups to lua (to spectators only).
  • Exposed pickup world position to lua (to spectators only)
  • Cleaned up spacing/tabs in Healthbar.lua.


  • Added hanging chain meshes
  • Added chain hook mesh
  • Added chain pulley mesh
  • Added pipe booster valve mesh
  • Added fan vent frames
  • Updated light_wall_sml to a small blue arc-lamp
  • Updated light_wall_sml to cast shadows
  • Updated envtank

Bug Fixes

  • Fixed bug where always visible widgets wouldn't have their show() function called.
  • Fixed "unbindall" being written to dedicated server.
  • Fixed "addbind" command.
  • Renamed vent_128x64x4 to vent_128x48x6

Known Issues

  • Armor timers occasionally wrong on connect. Correct time is shown once the item is taken.

0.33.5, April 27th 2015


  • If you encounter any UI bugs, we suggest doing a ui_reset / rebuilding your config.
  • Chat / Death messages have been moved to the new UI system.
  • Added Movement Keys widget (thanks!)
  • Fixed order of item timers to correctly sort by Y position.
  • Exposed some of the ArmorBar options through the widgets options menu (more soon!)
  • Added scrollbar to widget options menu.
  • Fixed round countdown ticks being inaudible if game messages were not visible.
  • Fixed PlayerStatus' mode name having horizontal padding applied for no particular reason.


  • Shotgun changes
    • Fires 14 pellets (down from 16).
    • Spread for both inner and outer rings has been reduced.
    • Upped knockback multiplier from 1.2 to 2.
    • These will probably need a nerf next update, but we'll see how they play for this week.
  • Movement tweaks
    • Ground is now less slippery.
    • Players can now corner slightly sharper when bunny hopping.
  • Bolt Rifle reload is now 1500ms (up from 1250)
  • Players now spawn with 200RA in Arena modes (up from 150).
  • Updated thc* maps in preparation for the tournament.


  • Fixed spec chat to only go to spectators when spectating.
  • Fixed team chat to only go to team.
  • Added notifications for players entering spec/editor/game/queue.
  • Fixed issues with player color not working in UI and & game.
  • Removed cl_crosshair_* commands -- use ui_crosshairs_* instead.
  • Fullclip now has it's own special collision mask rather than just using solid. This was required to differentiate between clip & solid when placing probes in world.


  • Added widget cvars.
    • These are saved to game.cfg inside the widget object.
    • These can be created / queried via widgetCreateConsoleVariable() and widgetGetConsoleVariable().
    • These are automatically prefixed with ui_widgetname_.
  • Added widget initialize() and finalize() functions, this will be called when widget is loaded, regardless if it's visible or not. This is a better place to call loadUserData() -- i.e. crosshair can be not visible, but still drawn in the options menu, so it needs to be initialised.
  • Removed bogus param 'r' from nvgIntersectScissor(x, y, w, h, r).
  • It's now possible to hide the following widgets: Crosshairs, GameMessages, PlayerStatus, Scoreboard.
  • After widget persistent data is written, we now push that back to the widget to see our changes. (Note, yes this will stomp user data, this is expected, we've loaded user data from the config).
  • Added color picker control to reflexcore (thanks Bonuspunkt!).
  • Renamed uiComboxBox() -> uiComboBox(), scripts need to update to corrected function name :).
  • Added lua convenience function widgetSetConsoleVariable(varname, value), same as consolePerformCommand("ui_<widgetname>_<varname> <value>").
  • Added Lua function callWidgetGetOptionsHeight(). This is used to determine the height required for widget options menus, so we can automatically add a scrollbar.


  • Set game_default.cfg to show crosshair (now that it can be set not visible).
  • Configs now have a version number so we can automatically adjust cvars / add default cvars when we update.

Bug fixes

  • Fixed potential crash in dedicated server.
  • Fixed bug where you couldn't change sky color.

0.33.6, April 29th 2015


  • Reduced SG knockback from 2 to 1.24.
  • Player keys UI widget now actually works.
  • Can move around in replay editor again.
  • Fixed another potential spinlock bug in collisionworld.
  • Fixed crash in ServerBrowserMenu.lua:364 when trying to sort nil.
  • Fixed potential crash in lua function loadUserData().