# ETJump 3.5.0

## Added
- custom command menu - fully customizable, vsay-style menu to store any console commands/cvars in
  - accessible via __openCustomCommandMenu__ console command
  - commands are stored in __custom_commands.dat__ by default, configured in TOML language
  - can store up to __40__ commands, spread across 5 pages of the menu
- __func_static_client__ entity - conditional brush entity with a unique state for each client
- high resolution, anti-aliased CGaz 2 drawing (__etj_CGaz2HighRes__)
  - __etj_CGaz2Thickness1/2__ controls the thickness of the lines (__0.5 - 100.0__)
  - renders up to 1080px vertical resolution, before scaling to real screen resolution
- __listcheckpoints__ and __comparecheckpoints__ commands to list and compare checkpoint times from timeruns
  - also accessible via admin commands __!list/comparecheckpoints__
- __etj_CGaz2Y__ cvar to set Y position of CGaz 2 (__0.0 - 480.0__)
- __etj_runTimerSize__ to adjust timerun timer size (__0.0 - 10.0__)
- 2 alternative mouse cursors (__etj_altCursor__)
- __etj_cursorSize__ to resize mouse cursor
- __target_random__ entity - fire events for a client based off random chance/number
- __etj_CGaz1DrawMidLine__ - draw a line between min/max angle in CGaz 1
  - __etj_CGaz1MidLineColor__ adjusts the color
- link to ETJump documentation in in-game menus
- __etj_onDemoPlaybackEnd__ cvar to execute a command when demo playback ends
- __printMapCustomizationInfo__ console command to print custom mapscript/entity file hashes that the server uses
  - works in demo playback, starting from demos recorded in ETJump 3.5.0
- __printDemoCompatInfo__ console command to print active compatibility settings during demo playback

## Changed
- increased limit for networked shaders (remapshader, custom entity shaders etc.) from __31__ to __240__
- changelog improvements
  - changelog entries are now categorized and sorted from most to least interesting/important
  - condensed changelog output to be easier to skim through
  - color highlighting in in-game changelog UI
  - slight visual tweaks to in-game UI
- vote text displays total(spectators) as vote counts, to help with ambiguity on vote results when spectator voting is enabled
- improved smoothness of mouse cursor in menus
  - overall mouse sensitivity in menus is slightly lower as a side effect
- mouse cursor now warps to center of the screen when UI is brought up
  - chat UI is an exception, where cursor is warped to top left instead
- season states, timerun records and daily logs now use UTC time instead of local server time
- server shutdowns due to an error are now logged to logfile
- __g_mapScriptDir__ can no longer be set to __maps__
- __class__ can be used to select single (__1__) or akimbo (__2__) pistols with 3rd argument
- __callvote (dev)map__ is no longer blocked on localhost
- __etj_CGazY__ now accepts decimal values
- __ignore__ no longer works on yourself
- demo compatibility settings no longer automatically print to console on demo playback start
- certain prints are now colored white instead of pale green

## Fixed
- rank 1 times showed __+00:00.000__ diff if a player had no record on a run
- __etj_jumpSpeedsTextSize__ was initialized from a wrong cvar value, requiring a value change before applying correctly
- some votes weren't showing the keybinds for __vote yes/no__ in the vote text
- bad performance in score computation for timerun rankings, now faster by factor of hundred(s) depending on the server
- cheat state preserved from previous map when trying to change it via vote in localhost (e.g. __devmap oasis__ into __callvote randommap__ would load next map with cheats enabled)
- replay menu displayed demo names incorrectly if the filename ended in __^^*__
- potential crash on older versions of ETe when issuing RCON commands in localhost
- potential crash when loading a map after demo playback
- __etj_smoothAngles__ could sometimes apply on demo playback, breaking view angles
- spectators were able to use __class__ command
- __etj_viewPlayerPortals__ menu entry was missing a colon character
- __etj_lagometerShader__ menu tooltip listed an incorrect cvar name