Not In The Groove Version 4.2.0
NotITG changelog - version 4.2.0
💡 New Features!
- Changed how Lua errors are displayed
- They now point to the correct line in your xml or ini files
- They also tell you which file the error happened in
- Metamods
- They mod your mods
- They can be applied only from the theme options, they can't be toggled from a simfile!
- The "Flip" on the v4/1-april-fools build was a metamod
metaflip, metainvert, metaorient, metareverse, metastealth, metadizzy
- They are just for fun, so they will disqualify your score
- Imagine having MetaInvert on Red and Blue
- Drag and drop songs support
- Drag a song folder onto the game window, the song will be loaded while the game is running!
- If you are in the song selection screen, the wheel will automatically go to the new song
- The song will be placed in
/Songs/_drag_and_drop/
- Configurable in NotITGPrefs.ini:
DragAndDropSongGroup
- Preference
Borderless
- Can be freely used with
Windowed=0 or 1!
- Borderless + Windowed=0 will set the screen resolution to the wanted one, as usual, but clicking outside of the game won't hide it, like a regular borderless fullscreen!
- Borderless + Windowed=1 will behave as usual, but the game will simply not have a border.
DISPLAY:SetBorderless( bool ) allow simfiles to toggle this! This is still controlled by the AllowWindowPos preference.
- If the borderless status has been changed by
DISPLAY:SetBorderless(), it will reset at the end of the song, just like other Lua window manipulations.
- The status is also resetted by doing F3+8.
- Preference
ShowComboInEditor is fairly self explanatory!
- Defaults to "on", can be adjusted from the editor's
ESC -> Preferences menu.
- Set custom song end time via lua with
GAMESTATE:SetSongEndTime( seconds )
- Preference
EditorPlayModeOffset lets you choose how much time (seconds) behind the cursor the game will start playing from when you switch from editing mode to playtest mode.
- Defaults to 1 to match normal StepMania behavior, but can be adjusted from the editor's
ESC -> Preferences menu.
- Added
ScreenReadyCommand for gameplay
- Runs before the songs starts
- TopScreen is guaranteed to be available
xml <Layer ScreenReadyCommand="%function(self) local s = SCREENMAN:GetTopScreen() -- This will be ScreenGameplay end" />
- Preference
SleepCpuWhenUnfocused
- Defaults to 1 (old behaviour)
- Disable this if you want the game to run full speed at all times, including when you switch windows/alt-tab
- Preference
BothAtOnceAffectsDifficulties
- Defaults to 1 (new behavior)
- If BothAtOnce is on, changing difficulty at song select will change difficulty for both players to ensure they have the same difficulty.
- Preference
DisqualifyCover allows you to choose whether "Cover" (Hide Background) mod disqualifies your score.
- Set to 1 by default, to match the existing openITG behavior
- Will not have any effect if
Disqualification preference is already 0
- Preference
FailOffForFirstStage allows you specify whether or not the first stage of a credit has "FailOff" enabled.
- Preference
DiscardFailOffFailedScore allows you to not save scores that were "failed" when playing using failoff.
- Preference
AutoDisableBothAtOnce causes BothAtOnce to be disabled automatically on ScreenTitle init, for arcade purposes.
- New ScreenTitleMenu Code:
BothAtOnce, that toggles the BothAtOnce, for arcade purposes.
- F3+0 now toggles between edit mode and song select
- Add function
PlayerStageStats:GetCurPossibleDancePoints()
- Which is very useful to calculate subtractive score in lua
- Add functions to get/delete scores of courses
profile:GetHighScoreForCourseAndTrail(course, difficulty, stepsType)
profile:ClearHighScoresForCourseAndTrail(course, difficulty, stepsType)
profile:ClearHighScoresForCourse(course)
- Add a method to get the stepsType of a trail
actor:tween(t, f) now accepts a function
xml <Layer OnCommand="%function(self) self:tween(4, function(t) return someEase(t) end) end" />
- Added
GAMESTATE:OnlyOpenITGMods(true/false)
- This restricts the mods to only the ones available in OpenITG
- Will disqualify you
LUA_PATH is now set by the game
- This means you can now use
dofile, loadfile, etc to load .lua files
- From anywhere in the game, it searches in the current theme folder
- From within a song, the current song folder takes priority
⚡ Enhancements
- Project Outfox provided some updates and enhancements
- Several math optimizations
- Library updates
- Render stats now show memory usage
- Thank you Project Outfox!
- Theme switcher has been modified and should switch themes without error
- Even Simply Love based themes!
ApplyModifiers now throws a Lua error if you give it an invalid player number
NOTESKIN:GetPath does not crash the game anymore
- It returns the theme missing graphic if it can't find the noteskin element
- Several memory leaks have been fixed.
bad allocation errors should not happen anymore.
DISPLAY:SetWindowPosition[AndSize]() have been fixed for accounting window borders!
- They used to resize the window wrongly, e.g. having a 640x480 game could result in a 636x471 game (because it accounted for Windows 10 borders)
- They now resize the actual game, borderless or not!
- They set the position relative to the actual game, and not the window (+ borders)
- Their position is now accurate no matter if the game is borderless or not: the game will ALWAYS be at the same position, if we provide the same values to the methods. (So, a position of e.g. (40;40) will make the game be at the SAME place, borderless or not.)
- Before this change, on Exschwasion's ETERNALLY file : Video
- After this change (lua is unchanged): Video
GAMESTATE:GetRealPath() has been slightly tweaked for accounting specific edge cases (noticeeably with the presence of patch.zip) and should now always work no matter the setup.
- The External memory (used by
GAMESTATE:GetExternal() and :SetExternal()) got its size increased from 64 to 256.
- The
Toasty theme element is named
- Lights had their indexes reverted to pre-v3.1
- Parallel lights has been changed to account for this
- Song offset keys (F11/F12) in Edit mode has been swapped
- It now matches syncing offset in ScreenGameplay
- Removed some very chatty log traces from FFmpeg
- Several Edit Mode changes:
- Current Beat, BPM, Time and mods display in Edit Mode does not move with TopScreen anymore
- This means you can screen bounce as much as you want, the mods display will stay in place
- Actor order for Edit Mode now matches actor order in Gameplay
- Player 2 steps are now set, fixes errors in scripts querying both players
- Attempts to use non-existing mods will print warnings to the Log
- Edit Mode will also show a SystemMessage
- Enable NotITGPrefs
AlwaysShowUnknownModsSystemMessage if you want the message to be shown outside of Edit Mode as well
- The maximum texture size's hardcoded limit has been increased from 2048 to 4096
- doing
SetTexture on a Shader with an invalid texture no longer crashes the game with "Nice texture, idiot."
- Editor's "Jump to beat" text field now starts empty.
- Score actors will no longer appear in the editor.
- It is still possible to unhide them with
SCREENMAN:GetTopScreen():GetChild('ScoreP1'):playcommand('Show')
BothAtOnce being enabled counts as joint premium (one credit needed to join both sides) for coin purposes.
- Jump between spellcards in the editor using
Alt + , / Alt + .
hidenoteflash timing has been greatly improved so it's now instant.
UpdateFunction now shows a dialog on error, it also unsets the function to prevent getting stuck.
player:IsUsingReverse() see whether the player is using reverse or not
- It's just seeing the reverse of column 0 (left in
dance)
- Intended to be used by themes
- Added
sprite:GetNumStates()
- Other Edit mode changes
- Enabling
MetaReverse lets you edit in reverse
- Render distance past the receptors has been increased
- Scroll animations are back, but are more snappier than before
- All non-LGPL DLLs are now embedded in the .exe
⤴ New Mods
randomvanish has been split into two mods, randomize and vanish, which control the two aspects of the original mod seperately.
- Vanish makes the arrows disappear for a bit at a spot in the middle of the screen.
- Randomize shuffles the notes while they are within the "invisibe" region created by Vanish.
randomvanish is now a macro that enables both.
vanishoffset and randomizeoffset controls the location where the event takes place, randomvanishoffset controls both simultaneously.
- Choose which turn mod is being applied to each player during the "randomize" event with
Player:SetRandomVanishTransform( 'swapupdown' ).
- The default is
supershuffle, to match the original randomvanish implementation.
- All existing turn modes are usable (
left, right, mirror, swapleftright, swapupdown, couplesmirror, couplesswapsides, shuffle, softshuffle, spookyshuffle and supershuffle)
scrollspeedmult<n> multiply speed mod of a single column.
- does not have a non-col specific version - attempting to apply it without a specified column will just apply all col specific versions.
- default value is 100%. 50% is half scroll speed.
zigzag<n> and sawtooth<n>, sawtooth and zigzag waves are finally column specific.
- these naturally come with accompanying periods and offsets, i.e.
zigzagperiod<n> and zigzagoffset<n>
dizzy<n>, twirl<n> and roll<n> join the column-specific party! (notes that rotate in z, y and x axis over time as they approach, ending with a rotation of 0 at the targets)
manualnoteflash has a much better alias that more accurately describes what it does: hidenotepress. It's also now column specific.
drunk<n> in all axes, along with all associated period, spacing, speed and offset is now column specific.
beat<n> in all axes, along with all associated mult, period, cap and offset is now column specific.
boost<n> and brake<n> are now column specific.
- Added aliases
tanbumpyz, tanbumpyzsize,tanbumpyzperiod, tanbumpyzoffset
- Added
tanbumpysize<n>, tanbumpyzsize<n>, tanbumpyperiod<n>, tanbumpyzperiod<n>, tanbumpyoffset<n>, tanbumpyzoffset<n>, tanbumpyxsize<n>, tanbumpyxperiod<n>, tanbumpyxoffset<n>, tanbumpyysize<n>, tanbumpyyperiod<n>, tanbumpyyoffset<n>
- Added
orientoffset
- It changes the direction the
orient mod should reference
- Added
noreorient
- Disables the
orient behavior optimized for reverse and SCAR families
- See bugfixes for more info
🐛 Bugfixes
- Column specific wave works again
ScreenGameplay:SetLife( number ) actually works now
number must be a value between 0 and 1 inclusive
- Theme elements in ScreenGameplay show up correctly again
- Most notably the LifeMeter in the itg3 theme
- Preference
LastSeenVideoDriver now shows the correct driver in use
- The string may have changed from what it used to be
- This will make old modfiles using the old Nvidia checker work correctly on dual GPU (Intel+Nvidia) setups
- Opposite playfield on battle made has been fixed (Is this correct?)
- Turn mods in
#ATTACKS actually work as they should now!
- Reported and test file supplied by PCBoyGames, thanks!
- Turn mods for Player 2 (and other aspects of Player 2 in general) in the editor are no longer completely broken.
- Rainbow effect on BitmapText updates correctly upon theme change
- SkewY is now properly reset in the editor.
GetRealPath issue is probably dealt with
GetTapNoteScoresForPlayer with TNS_HIT_MINE fixed
NoteTypeMults and HiddenRegions resets between songs in Course mode
- Ctrl-O/Reveal in Explorer in Edit mode works for AdditionalSongFolders and AdditionalFolders too now
- We don't normally do this, but we fixed an issue happening on newer versions of Wine where keyboard bindings weren't detected properly
SetNoteTypeMults now no longer requires an entry at beat 0 to work properly.
- Combo above 2147483647 no longer crashes the game.
orient now reorients itself when when reverse and SCAR mods are enabled.
- If you have used orient+reverse before, setting
314% confusionoffset is no longer required.
- Several existing files are dependant of this change, a patch to affected files will follow
- Fixed substractive scoring calculation
RageShaderProgram:define now works with #version directive
- Certain edgecases with DrawFunctions resulted in weird rendereing, they are now gone.
tanbumpyxoffset actually works now
- The old behavior was setting
tanbumpyyoffset instead
👾 Known Issues
- Reloading theme and textures (f3+r) still has the same issues as the old theme switcher
❤️ Simply Love changes
We are open for contributions! https://github.com/TaroNuke/Simply-Love-NotITG-ver.-/
- Metamods! (Under "More Options" in the player options menu)