- Actors provide True Z Rotation to Lua - 04b2664
- BMS 6k, 8k, 12k, 16k, Dance 3k, Pump 6k support added to CustomizeGameplay - b84d2fe 567f4ec a2b9aeb ff3f16c
- BPM & Rate Text can be moved in Customize Gameplay - 7f1d23a
- CB Highlighting and Counting in Evaluation and Offset Plots accounts for the middle column now - a563a8f cae1e35
- Clicking the WifePercent of a Leaderboard Score with a Replay will show the Offset Plot - 2d41a71
- ComboGraphs in Evaluation recalculate given a Replay - 15075a7 04ce0cf a7bee3d c3904ce 818e12d b1afbaf 03f9e02 c5dedd9
- Current Judge string on Offset Plots in SelectMusic - ba71fbd
- Error Bar Count can be changed in Player Options - 366930b
- LifeGraphs in Evaluation recalculate given a Replay - 458799e 6d5e994 9f96ec5 a7bee3d c3904ce 818e12d b1afbaf 03f9e02 c5dedd9 2884024
- Login/Logout hotkey set to Ctrl+L - cdbc3e4
- Lua-accessible way to set Practice Mode - 090b236 d71d937
- Lua-accessible way to recalculate Player Rating - fe7f462
- Lua-accessible way to check Player Options for Invalidating mods - 08f4028
- Lua-accessible way to check Player Options for Replay breaking mods - d80a510
- LuaJIT profiler added to fallback scripts - 4e6f2fc
- NoteDataUtil has access to just setting up part of the NoteData - 373e034 565e0a9
- Offset Plot in Evaluation can be hovered to show the Judgments and WifePercent - 2f47527 92eb552 1a32edd aae918c 6842407
- Pack Downloader Screens allow arrow key navigation for scrolling - 90b8820
- PBs shown in the General Tab have an M next to the rate for PBs that have Mirror mod - 2726864
- PlayerAI can set up PlayerStageStats given a good Replay - a4c3ee1 e20bbd9 75db75e 1d6aff4
- PlayerReplay, a derivative of Player for organization - e532fe9 7859184
- PlayerPractice, another Player derivative - c3bc281
- Practice Mode has a Loop Region in addition to the Bookmark - 418fea6 e0d022f f4153d1 f241ee3
- Practice Mode lets you reload the song from Gameplay using the same binding as usual - aedd490 bb978df a3632ba
- ScreenGameplayReplay and ScreenGameplayPractice are their own Screen - 0375254 f0f71b0 b51df95 ac19b96 66792d3 0952d74
- Song Search supports "subtitle=" in addition to Title, Author, and Artist - f4d200a
- StageStats tracks whether or not they were created by the Player or a Replay - 86a4947
- Steps will keep track of whether or not they are a duplicate Difficulty (same Difficulty, but not same chart) - 1ea4c49
- RageSounds keep track of the paused state - 3fd8f50 6539851
- ReplaySnapshots added to PlayerAI, to provide a "Snapshot" of the Replay at any given noterow - 11b81cf 23f1e08 7abdc4e f3cdf3d 3accece 4cc4d07 d7d8248 a4b9e0d b1afbaf 075b994 0310b38
- TestInput Screen has new text indicating what button to press to exit - #663
- Theme Preference to require pressing Enter to confirm a song search - cdc0abb dd3672f 9325131
- Translation support for Til Death widely increased, Chinese Translation updated - #597
- Additive Mines is now invalid - 92bb88a
- Borp is now PlaySampleMusicExtended - 553dbf1
- Buttons to change song BPM (F9, F10) require Ctrl to be pressed - 1d8fcc2
- Button mapping screen has had the top 4 rows removed - 453a436 ad5896d
- Chart Leaderboards wait to load until the MusicWheel settles (Music Preview attempts to load) - d4cc865
- Chart Preview Music doesn't need a fallback setup - 6f84167
- Chart Preview NoteField hides when changing music - 261edcf
- Checking a PlayerOptions for any Transform skips ones that don't invalidate a score - 11ee317 93fad2e
- Combo Graph Generation Logging is hidden behind the Verbose Logging Preference - aad1817
- Couple difficulties loaded from SM files stopped loading at all due to the removal of Couple itself, so now they should load as Doubles (but only from SM files) - 2d53f58
- Differential Reload will show Transliterated names when using that option - 2b5d377
- Discord RPC shows slightly more detail to Gameplay status: Replay or Practice - fc2b542
- Downloaded Replays are identified with the Online_ prefix on their keys - 0781f2f
- Evaluation will indicate that the score on screen is a Replay - 7529489
- Gameplay's PlayerInfo vector is now just an attribute - 0fd192d
- Gameplay Restart stuff got moved internally from Gamemanager to Gamestate - e8cd51c 149cf04
- Gameplay Restart button can be pressed in Multiplayer now - cabf0cd a4e40bc
- Gameplay Splash will alert the player for 2 extra seconds of invalidating mods - 86d5253
- GameplaySyncMachine should use the mods of the first profile - 9305595
- JudgedRows moved to the Player header instead of cpp - 78e8b4f
- Jumping to the Practice Bookmark/Loop unpauses the music - 642312f
- Lane Cover Trigger button changes according to the binding for Select - 5e60a9f
- Leaderboard Scores sometimes don't have Replays but say they do. In this case, don't enter Replay - 747aeb8
- License Footers got moved to a single file - #600
- Loading NoteData from SSC files is hidden behind the Verbose Logging Preference - 58d3236
- Lua in ScreenSelectMusic was changed a little to give more FPS - 634a529
- Optimized resetting stats by making a separate Player Reload method - f32b31a 3f16a6c
- Overall Player Rating no longer drops the lowest Skillset - 213fd3e
- Player Rating in ScreenSelectMusic will update when clicking Save Profile or Validate All in the Profile Tab - 9da1b16 77e3ab3
- Profile will not save when exiting Evaluation if the score was a Replay - da260c2
- Practice Mode can exit to Evaluation again - 1b97bbe
- Practice Mode exit fadeout is quick - 4ace6c9
- Practice Mode Player Option will no longer save to the profile - cc765fd
- Replaced the existing RageTimer implementation internals with C++ chrono stuff - #591 27469ad 909e731 40c1f8a
- ReplayData from the Leaderboard is already cached, so don't request it again - 809c34b
- ReplayData Parsing throws out misses - de03620
- Replays use all mods of the score being viewed, based on a Preference - af59834 3a3602d 8a25456
- ScreenGameplayPractice and ScreenGameplayReplay functions are renamed to more confusing things - a1c69b4 a89ebd6
- ScreenGameplaySyncMachine shouldn't let you hold enter to do anything - 04bb22f
- ScreenGameplaySyncMachine shouldn't have a lifebar - 7475de9
- Seeking in Practice Mode causes all stats to reset - 6617882 c282936 02a551c 3e3c88b
- Seeking in Replays uses new ReplaySnapshots so recalculating the score isn't needed - 90ea291 9fffd27
- Setting the song position in Practice has a delay - a9b9d6d
- Stats in Practice do not accumulate until Player presses a button - a62fed3
- TimingWindowScale is basically now a global - 148e6dc
- Use the scroll wheel to scroll in Practice - 7cb4630
- Use InsertCoin to set the Bookmark/Loop region in Practice - 7cb4630
- Use separate thread for CrashHandler on Windows - #640
- WifePercent recalculation should use the same floor process so the numbers are consistent - 5322ee2
- Windows Installer (CPack with NSIS) should generate a proper shortcut and install into a consistent directory - #660
- Using / as a modifier key (like Select) shouldn't let the Chat Overlay pop up - 1ab2cbd
- AI.ini - 055ef81
- Characters - #617
- FailAtEnd (superceded by FailImmediateContinue) - 8b63a20
- Frets - 611781d
- Instrument Tracks for Guitars - 8a09087
- Macros for PlayerNumbers - cd23136 f6dd063
- Norf - 934c6a2
- Profile Name Blacklists - e27b66d
- References to RandomAttacks - 4ecde8a
- Tokens? - 5468cc6
- Version Date/Time info internally and in crash logs - 14acf71 4b6a20c #659
- Banners in SelectMusic were not properly cropped - 120bd5a
- BPM didn't properly update for SSC files with different specified BPM - #619
- Brand new instances of the game didn't save anything - a4b28f6
- CBHighlights appeared twice if the Hold/Roll head score was a CB - 9a1196b
- Changing songs quickly or using the Random button broke the Chord Density Graph rendering - 9565f2f
- Changing rates in Gameplay and then checking Player Options caused the rate to reset to 0.5x - 65eb024 128690e
- Chart Preview pausing and then doing almost anything broke the consistency of it - c7be276 0258040
- Chart Preview set position incorrectly when swapping between Reverse and Upscroll after already turning preview on - aec1145
- Chart Preview seeking fails to work when moving from a pack to a song - 97c99c0 1c2d2a5
- Chart Preview sometimes restarted when changing tabs and doing other stuff - 44a4999 66a54ea
- Chart Preview stopped playing music randomly - f11b462 8b683c5 f046dbe 443411a a915aca
- Chart Preview went invisible - 2aa5531 2b8761c
- Chord Density Graphs were not synced for files that end in a hold - 7bc619f
- Crash logs stopped showing the Build information at some point due to a CMake change - 14acf71 a9794ff
- Crashed if logged in to Multiplayer while not actually being in Multiplayer on some systems - 655ea08
- Crashed rarely on multithreaded startup in a specific case where a profile has at least 1 score for each difficulty on a song that has multiple difficulties - c988456
- Customize Gameplay movement caused very heavy I/O usage - 852cd31
- Custom Windows caused a rare Lua error in Offset Plots - d75dd20
- Exiting GameplaySyncMachine caused some crashes - 3904379
- Exiting Practice displayed a dummy score - 180be6e
- Gameplay Judgment counter sometimes didn't count some judgments - 35353c4
- Getting the Noterows of a Highscore failed for some Highscores from the Leaderboard that only had Timestamps - 0b374b8
- Hitting a Mine in Gameplay caused the LifeGraph to do weird things - 7e55f80
- Hitting Fakes was possible outside of Fake Regions, allowing a score over 100% - 140af60
- Loading Window on Windows loaded a font in the Data folder that never unloads, making uninstalling the game impossible - 3dc8c81
- Logging in with invalid credentials triggered the wrong events in Lua - 80e9a79 edcb71a
- Mac Travis CI was failing due to not finding OpenSSL - #658
- NoteDataUtil's GetNoteDataFromSM/ETTString functions never worked literally ever - bd9448e edd0edd
- Noteskins used to have access to snap information a bit better. Removing this broke some stuff. Undo it, but with a catch - 4b85287
- NotesLoaderDWI refused to load a difficulty that was forced to change since it was a "duplicate" - b01f56b
- NotesLoaderSM refused to load a difficulty that was forced to change since it was a "duplicate" - 833e886
- Pausing and scrolling in Replays just broke everything - 624b1e0 052690b
- Pausing and scrolling to the end of a Replay caused a bad fadeout - 27399a8
- Pausing music before it is loaded caused weird state issues - 11852b3
- Plays Counter in PlayerInfo didn't update unless restarting the game - a2c6a0f 3af6e62
- Player Rating stopped updating until restarting the game - 25f6e36
- Playlists allowed Practice to be enabled in them - 1460422
- Playlists containing a Song with a rate outside the range of 0.7 to 3.0 crashed the game - a5d964d
- Playlists did not reset visual Gameplay stats on song transitions - d505933
- Pressing a tap after a Mine but before a Tap when the windows overlap cause the judgment to be a miss - b3c8501 81317d9
- Pressing any button on Player 2 in Gameplay allowed hitting Mines - 39f30c0
- Pressing Game Start was impossible when the Caution Screen was active - 02281e5
- Pressing Select on Evaluation didn't take a Screenshot if in Multiplayer - 3e0e477
- Profiles didn't save to the right directory if they were brand new - 2c1e488
- Profiles didn't load if only 1 exists - a4b28f6
- RageSoundReader for MP3s never actually overrode any methods - 68d7161
- Replays didn't work correctly. Fixing this was a big list of changes that can't be summarized well - 69aaf3c 4402db8 ae28a69
- Replays had the Mean, Absolute Mean, and Standard Deviation all wrong - 49b18b3
- Replays missed negative noterows - 5820aa7
- Replay Scrolling using the Progress Bar Slider was not accurate - d7e77d3
- Right clicking to pause the music on ScreenSelectMusic conflicted with Profile and Score tab functionality. It is now impossible to pause on these tabs. - 979e95d
- Screenshots folder was not in the gitignore - 162a3cc
- Searching for Songs using certain orders of result-returning and empty result-returning searches and deleting the searches caused some weird behavior - f1aa6c0
- Seeking in variable bitrate MP3s caused incorrect position reporting - c7bc664 2453611 7f6148d 46ee353 2422ec7 e7ad42e b8ae11a 0a60b59
- Sometimes Gameplay sent a TNS_None, throwing a Lua error from the Error Bar - bdca4ea
- Style changes with Chart Preview on caused the CDTitle & Difficulties to drift on non 16:9 aspect ratios - 4e83933
- Sync Overlay updated every frame and did too much when it shouldn't, hurting FPS - 20c8338 668edef
- Syncing allowed for the Timing Data of 2 different files to be compared, which is basically useless or otherwise impossible - 8f184b9
- Tags could overlap the Music Wheel if long enough - 30fe7de
- Turning Judgments off in Player Options caused a harmless Lua error - 6f0f65a
- Updating Tags too often killed FPS sometimes - 1ad013a
- Using the Blind mod caused taps to disappear seemingly randomly - 7d80865
- When lagging in ScreenSelectMusic with Chart Preview on, the wrong preview music might play - dd3af14
- X11 Input Drivers produced bad timestamps, forcing "polling lines" on Linux - #643