Program/
folder no longer works as a result of the new .dlls
Program/
directory this time, so what you'll need to do is download the entire folder and put it in your NotITG install.
Program/
folder.combination, cyber, default, divinentity, de-default, dunno, dunno2, proxynotes, randomhex, scalable, scalable2, sm3.9, Toshisan, vintage
You will very likely have file conflicts with existing noteskins - it's safe to just replace the conflicts, as they need to be overwritten.squareoffset
and bounceoffset
revised, now you don't have to multiply its value by 100100
, now "M"
drunkoffset
and tipsyoffset
, including axis and tan variants, have new behaviors
drunkspacing
F3
+ 9
in anywhere: Edit Last Edited Song
F3
+ 0
in ScreenSelectMusic or ScreenGameplay: Edit Currently Playing SongCtrl
+ [
in edit: Music preview starts from here (start marker)Ctrl
+ ]
in edit: Music preview ends at here (end marker)
Ctrl
+ O
in edit: Open song folder from edit mode
Alt
+ Scroll
in editor now repositions the receptors on screenESC
-> Preference
) which moves the receptors down after placing down an arrow
Esc
-> Preferences
-> Show Beat, Time and Attack List during play
#NOSHUFFLE
: zone in .sm, allows user to determine segments of the chart that cannot be affected by shuffles such as Mirror and SmartBlender
#NOSHUFFLE:<StartBeat>=<EndBeat>,<StartBeat>=<EndBeat>,<StartBeat>=<EndBeat>
Actor Lua errors will no longer crash as often!!! (Thanks, NAYOTO!)
Fonts can be loaded relative to XML file now
skewy
tween as a mod
New mod: orient
314% ConfusionOffset
noteskewx
- Identical to noteskew
noteskewy
- skewy for notes. noteskewx and y can also be column specific, e.g. noteskewy2
waveoffset
- Affects the waveform of wave
Column specific wave and waveperiod -wave2
, waveperiod3
, etc.
Updated Lua from 5.0.2 to 5.0.3 (with some modifications)
debug
library.=
signs in the delimiters[=[hello]=]
--[==[Im a comment]==]
%
5 % 3
is the same as math.mod(5,3)
#
#myTable
is the same as table.getn(myTable)
0xA573
Updated FFmpeg from 0.4.9-pre1 to 4.1.4
Actor:skewy( skew: number )
Actor:addaux( deltaaux: number )
Actor:GetParent(): Actor
Actor:GetTweenTimeLeft(): number
Actor:SetRotationOrder(): string
/ Actor:GetRotationOrder( order: string )
SetRotationOrder( "xyz" )
"zyx"
by defaultActorFrame:GetChildren(): table
ActorFrame:GetSharedBGA(): ActorFrame
ActorFrame:GetOverlayScreens(): table
SCREENMAN
and ActorFrame
have metamethods now
local af = SCREENMAN() -- GetTopScreen()
#SCREENMAN() -- GetTopScreen():GetNumChildren(), we get an ActorFrame first here
SCREENMAN(5) -- GetTopScreen():GetChildAt(4) <- notice the index
SCREENMAN("Overlay") -- GetTopScreen():GetChild("Overlay")
af("PlayerP1") -- same as above, but on the ActorFrame directly
af("PlayerP1")(2) -- chaining example, gets the second child on PlayerP1
#af -- GetNumChildren()
Added input modes for screens
ScreenManager:SetInputMode( INPUT_ALL = 0 | INPUT_OVERLAY = 1 | INPUT_NONE = 2)
Song:GetNoteData( steps, [bool beatBased = true,] number startBeat = 0, number endBeat = -1 )
Player:GetNoteData
already existssprite:getstate()
sprite:looppoint( point: int )
player:Reset<type>Splines( column: int )
player:SetArrowPathShader()
works now
Added Song methods:
GetDisplaySubTitle()
GetTranslitSubTitle()
GetBackgroundPath()
GetMusicPath()
GetSampleStartSeconds()
GetSampleLengthSeconds()
GAMESTATE:GetCurrentNoteSkins()
GAMESTATE:GetRealPath( string )
lua -- Assuming AdditionalSongFolders is `D:/AdditionalSongFolder` local songDir = GAMESTATE:GetCurrentSong():GetSongDir() GAMESTATE:GetRealPath(songDir .. "./fg/default.xml") -- Returns `D:/AdditionalSongFolder/Group/Song/fg/default.xml`
Added Shader Methods:
uniform1iv( string name, table )
uniform1fv( string name, table )
uniform2fv( string name, table )
uniform3fv( string name, table )
uniform4fv( string name, table )
shader:uniform4fv( 'v4Array', { 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 1.0 } )
sends a vec4 array where its length is 2uniformMatrix2fv( string name, table )
uniformMatrix3fv( string name, table )
uniformMatrix4fv( string name, table )
shader:uniformMatrix2fv( 'mat2Rotate', { 0.0, -1.0, 1.0, 0.0 } )
sends a 2x2 matrixdefine( string name, string/bool/number/nil )
clearDefine( string name )
#define HOGE 4
on top of the shader codecompileImmediate()
define()
or clearDefine()
does not automatically compile the shader. Call this function to compile it immediately (or to make it automatically compile when it uses the shader for the first time)New MessageCommands:
WindowFocusMessageCommand
WindowFocusLostMessageCommand
Profile:ClearHighScoresForSongAndSteps( song: string )
Profile:ClearHighScoresForSong( song: string )
Simfiles can now temporarily override user's SmoothLines preference for one song with GAMESTATE:ForceSmoothLines( 0 or 1 )
GAMESTATE:ForceSmoothLines( -1 )
basezoomz can finally be set actor:basezoomz(float)
or basezoomz,float
actor:GetBaseZoomY() and actor:GetBaseZoomZ()
added
New actor state getting methods, including the ability to get the current state of previously unknowable values, such as zoom and rotation
actor:GetRotationX()
actor:GetRotationY()
actor:GetRotationZ()
actor:GetCurrentRotationX()
actor:GetCurrentRotationY()
actor:GetCurrentRotationZ()
actor:GetCurrentZoomX()
actor:GetCurrentZoomY()
actor:GetCurrentZoomZ()
actor:GetSkewX()
actor:GetSkewY()
Also available, current state of actors when taking into account active effects e.g. bob, wag and so on (Thanks, Melody!)
actor:GetEffectX()
actor:GetEffectY()
actor:GetEffectZ()
actor:GetEffectRotationX()
actor:GetEffectRotationY()
actor:GetEffectRotationZ()
An additional layer for actor position/rotation/scaling is now available
actor:x2(), y2, z2, zoomx2, zoomy2, zoomz2, rotationx2, rotationy2, rotationz2, skewx2, skewy2
(these cannot be tweened, and must be set via an update loop)Player:SetHiddenRegions( {{startBeat,endBeat,column},...} )
hides notes within the specified beat ranges. Omit the "column" parameter to hide all columns.
Player:SetNoteTypeMults( {{startBeat,multiplier},...})
multiplies the note type (timing color) of every note beyond startBeat.
Player:ClearHiddenRegions()
and Player:ClearNoteTypeMults()
removes all sections of the specified type.
PROFILEMAN
.#UNLOCK:someunlock.lua;
in the .sm file#UNLOCKSTEPS:
#UNLOCKSTEPS0:
, #UNLOCKSTEPS2:
etc.,#UNLOCKSTEPS2:easy.lua; #UNLOCKSTEPS4:challenge.lua;
will be minified to #UNLOCKSTEPS::easy.lua::challenge.lua::;
THIS_SONG
to refer to the song itselfTHIS_GROUP
the group the song belongs toTHIS_PACK
Identical to THIS_GROUP
song:GetUnlockMethod( difficulty )
can be used to get the path directly to the lua file.NotITGKeymaps.ini
, which has the same format as SM5 KeymapsData/NotITGPrefs.ini
:
OnlySongFolders
FFmpegNumThreads
6
,NotITGPrefs.ini
, RateMods9msOffsetFix
PlayerStageStats:GetCurrentLife()
now returns 0.001 (instead of 0) if no notes or mines have been hit yet.proxy:SetTarget()
Type
set through LuaFont
/File
of BitmapText
can be set through LuaFrag
and Vert
can be set through Lua
Condition
, but you have to start the line with @
.<Layer Type="@spriteOrModel() or 'Sprite'" />
log.txt
and info.txt
are now written to the Data/
foldercrashinfo-*.txt
is now written to the Data/Crash/
folderNITG-
F3
+ 0
while it's greyed out/not selectable no longer crashes the gameDISPLAY:ShaderFuck()
GAMESTATE:GetFileStructure
Ctrl
+ R
crashes
Var=""
on xml actor loadingActorFrame:SetDrawFunction( function )
now worksBitmapText
: Foo [Bar]/Font [Page].png
now works properly, treated as Font [Page]
.Texture
: Foo Bar 16x8/Texture sphere.png
now works properly, treated as Texture sphere
CustomsLoadTimeout
now works properlyWe've found that digital
and digitalz
are slightly offsync with each other
Ctrl
+ O
(Reveal Song Folder) currently does not work with AdditionalSongFolders
NotITG <build number> - Simply Love
beat * 48
) of every mine hit by playerThemes/SimplyLove/config.lua
, some newer theme properties are set in that
config.lua
can be copied to the Data/
folder, any options set there will take priority over the ones in the Simply Love folderStitch.lua
has been added to the Themes/SimplyLove/Scripts/
folder
stitch
and stx
has been addedThemes/SimplyLove/
folder as its base folder.local hello = stitch('screen.hello')
will load SimplyLove/Screen/hello.lua
, cache and return its value.ctrl+9
config.lua
ViewGC
in config.lua
DefaultModifiers
has the Scalable
NoteSkin set, it switches over to Cel
as you enter edit mode or song select for the first time.EditorShowSongTitle
is available in config.lua
, works exactly the same as the one in NotITGPrefs.ini
Player
defined by Simply Love has been localized to Mods.lua