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)