StepPrime Documentation

Last updated: Mar 24th, 2021

Download

Before doing stuff over this game, be sure to get the last version of StepPrime.

Download StepPrime

Step Editor

On Editor you change and add a lot of things, but we included new features on it

SimFile information

There are new values that you can edit/add on your simfile

Song Information

While using Step Editor, Press Escape > Edit Song Info

  • Category:
    • NEW TUNES: Not specific, but will be placed at first
    • ORIGINAL: Original from Pump It Up
    • K-POP: Korean Pop
    • WORLD MUSIC: WorldMusic used on Pump It Up
    • J MUSIC: Japanese music used on Pump It Up
    • XROSS: Licensed music from other games used on Pump It Up
    • USE_GENRE: Custom Category, you should set or specific the GENRE
  • Genre: You can use this value as a new category if you set Use_Genre as CATEGORY
  • Hearts: How many hearts you need to play and show this song in Screen Select Music
    • FULLSONG: 4 Hearts
    • REMIX: 3 Hearts
    • NORMAL/ARCADE: 2 Hearts
    • SHORTCUT: 1 Heart
  • Volume: Set Volume of Song on Gameplay, value recommended between 80-150. Default: 100
Step Information

While using Step Editor, Press Escape > Edit Step Information. It will only change values under the stepchart.

  • Label Type: It will be shown in SelectMusic and change the behavior of stepchart sometimes
    • NORMAL: Doesn't do anything
    • UCS: User Custom Step
    • ANOTHER: User Custom Step Another
    • UCQ: User Custom Quest Step (Without Goal)
    • DIVISION: Step will not be shown in game but you can play it using DIVISION MODE in game
    • S1, S2, S3, S4: Exclusive for Quest Channel
  • Quest Mods: What kind of mods the step will activate once the game started, exclusive on Quest Channel. Check all available mods here. You should splits the mods with a ','. Example: nx2,nxmode
  • Quest Initial Bar/Quest Bar Max: This will change the behavior of LifeBar on Game, Exclusive for Quest Channel. Values can go from 0 to 999999 but normal lifebar goes between 0-1000. Higher Values will give a strong lifebar and it will be hard to reach 0
    • Quest Initial Bar: Song will start with lifebar filled. Default: 500
    • Quest Bar Max: Resize Total LifeBar value. Default: 1000
  • Quest Description: Set description quest that will be shown in Game once you pick the step.
Set Auto Velocity

You can set the AutoVelocity on Editor to View/Edit your Chart under this Scroll Velocity.

Key Shortcuts

  • LEFT CTRL + (1 to 9): Edit Timing Data
  • RIGHT CTRL + (1 to 3): Change Speed Behavior
  • LEFT CTRL + (+/- from keypad or ?/¿): Change Notefield Zoom
  • LEFT CTRL + MouseWheel: Change Scroll Size under editor
  • LEFT CTRL + (Left/Right Arrow): Change Music Velocity
  • N or M: Change Tap Notes, you can check the full list here
  • SHIFT + (N or M): Change NoteSkin
  • J or K: Change Layer Score between Normal, Fake, Bonus
  • G or H: Change Layer Display between Normal, Vanish, Hidden, Flash
  • D or F: Change Layer Display between ZigZag, Snake, Dizzy, Twirl, Sink, Rise
  • X or C: Change Tap Behavior, it can be considered as Normal,Tap or Hold.

Tap Note Types

  • Tap: Normal Tap Note
  • Mine: You will lose LifeBar
  • Lift: No description about it
  • Left: Change Notefield Rotation
  • Down: Change Notefield Rotation
  • Up: Change Notefield Rotation
  • Right: Change Notefield Rotation
  • X1: Change Velocity to 1x
  • X2: Change Velocity to 2x
  • X3: Change Velocity to 3x
  • X4: Change Velocity to 4x
  • X8: Change Velocity to 8x
  • Heart: Heart Item. Without Behavior
  • Potion: Potion Item. You will gain LifeBar
  • GathPotion: Gathered Potion Item. You will gain LifeBar (not specified value available for now)
  • Weather: Weather Item. Notes will Flash for 10 sec
  • Mouth: Bite Item. You will lose LifeBar (not specified value available for now)
  • Nuke: Nuke Item. You will lose LifeBar (not specified value available for now)
  • Drain: Drain Item. Without Behavior
  • Squid: Squid Item. Without Behavior
  • Rocket: Rocket Item. Without Behavior
  • 2Up: Change Notefield Rotation. Like Up Item
  • Random Item: It will randomed show an Item
  • Random Active Item: Random Item. Without Behavior
  • Random Vel: It will randomed changed the Velocity
  • Action: Action Item. Without Behavior (Can be used for DIVISION MODE)
  • Shield: Shield Item. Without Behavior (Can be used for DIVISION MODE)
  • Change: Change Item. Without Behavior (Can be used for DIVISION MODE)
  • W: Wild Item (can be used for DIVISION MODE)
  • G: Groove Item (can be used for DIVISION MODE)
  • Wrap: You will be random redirected to another StepChart with the Same StepType or with filtered DIVISION LabelType Chart. Its Hidden and will be activated automatically once it reach the receptor (for DIVISION MODE)
  • Wrap0: You will be redirected to the index step that you choose before entering the Gameplay. Its Hidden and will be activated automatically once it reach the receptor (for DIVISION MODE)

ABOUT DIVISION MODE

Division Mode can be used under Normal or Quest Channels, you can find more information about division mode here.

Division Mode

Division Mode is a great feature that can improve your stepchart, it will switch your stepchart to another chart of the same steptype in realtime gameplay, its conditional so you need to use it carefully, first at all you need to be aware that you can't edit 100% from StepEditor so you need to edit it manually.

Division mode is generally conditional, so before switching to some charts, the game will detect how many W or G were pressed and swicht it depending on amount to another specified chart in the same second on the NoteField. For example, if division is being checked at 19.5 sec, it will switch to another chart in this same second length.

Division check needs to be added manually in stepchart from simfile. Open your simfile and modify values based on this:

[MIN VALUE]=[MAX VALUE]=[CHART NAME]=[SECOND TO CHECK AND CHANGE]=[TAPNOTE]

[MIN VALUE] : Minimal value of specified tapnote pressed before to be checked.
[MAX VALUE] : Maximum value of specified tapnote pressed before to be checked.
[CHART NAME] : Name of chart that will be switched if condition is true, destination #CHARTNAME stepchart should have this value too.
[SECOND TO CHECK AND CHANGE] : Second Length the game will check this condition.
[TAPNOTE] is accumulated in gameplay and will be resetted if condition is true:

  • W: Wild TapNote - TapCount will be resetted if condition is true
  • G: Groove TapNote - TapCount will be resetted if condition is true
  • WG: Wild & Groove TapNote - TapCount will be resetted if condition is true
  • WGR: Wild & Groove Tapnote - TapCount will be resseted always after checking the condition
  • ACTION: Wild TapNote - TapCount will be resetted if condition is true
  • CHANGE: Wild TapNote - TapCount will be resetted if condition is true
  • SHIELD: Wild TapNote - TapCount will be resetted if condition is true

Step Segment Section on SimFile
#DIVISION:1=1=HARD PATH=36.26100=G
,1=1=MEDIUM PATH=42.82900=W
,2=2=BAD PATH=42.82900=W
;	

Now explaining the segment above:
On 36.21600 second, the game will detect if you pressed min 1 or max 1 Groovy TapNote before, if its correct, the game will switch to the stepchart with the #CHARTNAME "HARD PATH".
On 42.82900 second, the game will detect if you pressed min 1 or max 1 Wild TapNote before, if its correct, the game will switch to the stepchart with the #CHARTNAME "MEDIUM PATH".
On 42.82900 second, the game will detect if you pressed min 2 or max 2 Wild TapNote before, if its correct, the game will switch to the stepchart with the #CHARTNAME "MEDIUM PATH".

G TapNotes should be set before the checking time.

Important

You can set a noteskin/layer to Groove, Wild, Action, Shield, Change. For example, Groove can use a hidden layer, or/and a Basic NoteSkin

Its recommended that every Division Chart destination should be labeled as DIVISION, so they will be hidden and only activated it from these conditions

Wrap and Wrap0

Wrap and Wrap0 are tapnotes that will automatically be pressed once it reach the receptor and their actions are switch to another stepchart
Wrap will switch to a random stepchart (with the same steptype) or switch to a random stepchart with the labelype 'Division'.
Wrap0 will switch to the stepchart that you select first to play.
Editor is not prepared for Division. So we recommend to insert Wrap0/Wrap/Division Tags once you finished editing your simfile

SimFile Demonstration

We are attaching a file where you can see how Division/Division Special and Wrap items are working.

Download the simfile here

Custom Sort Channel

Custom Sort will give you a way to customize to sort the songs from your Group Folder. Be aware that once you use custom sort, the game will not play the category sound, and this custom sort will be only available when you enter your channel.

Create a new text file called sort on the Group Folder and open it

Now type the folder names with the order you want using a new line always. Save the file and start the game.

Sort.txt
(1) PE328 - Gargoyle
(1) PE325 - Electrock
(1) PE327 - Frozen
(1) PE326 - EternuS	

Your Group Folder now will looks customized sorted

Quest Channel System

Quest Channels are Groups where you have songs with stepcharts lockeds, and the only way to unlock them is playing it consecutively from the first one. These steps can have pre-requisite in order to unlock the next stepchart in the row.

Quest Channels have a green background, Categorized as 'Quest' and there are only 4 steps slots visible on Prime.

Creating Quest Channel

  • Create a text file (empty) with the name "quest" inside the group folder. The game will recognize the Group Folder as a Quest
  • Be sure that your songs have stepcharts labeled as S1,S2,S3 or S4 (Use Step Editor)
  • (Optional) Use a description for every quest step, you can split the language with a @ - (Use Step Editor) Example:
    • #QUESTDESC:Survive until the end@Sobrevive hasta el final@Passe da música
  • (Optional) Insert mods on the stepcharts, so the song will start with these modifiers (List of Mods below)

Quest Mods

Appear Vanish Flash Nonstep Boost
Brake Wave Expand Boomerang Drunk
Dizzy Confusion Mini Tiny Flip
Invert Tornado Tipsy Bumpy Beat
XMode Twirl Roll Rise Hidden
HiddenOffset Sudden SuddenOffset Stealth Blink
RandomVanish Reverse Split Alternate Cross
Centered Dark Blind Cover RandomSpeed
Mirror Backwards SuperShuffle Wide Big
NXMode UnderAttack LeftAttack RightAttack Drop
Snake ZigZag 100% Rise -100% Rise HideJudge
ExtraJudgement HardJudgement VeryHardJudgement UltraHardJudgement JudgeReverse
BreakOff

Creating Quest Goal

There are two ways to create a quest goal, it can be based on LUA or INI. INI is only for basic requisite, while LUA is more advanced. These files should be attached in the same folder of the Song, and they can't be activated at the same time. So choose wisely.

Song Folder should contain the INI File or the LUA file (Lua file can have any name, and ini file should be called "QuestConfig" )

INI Goal

Quest Goal from INI its a simple way to create a requisite for the stepcharts in the songfolder. Remember, this system is only for basic requisites. Create a file text called QuestConfig but with the INI extension.

INI structure is splitted in S1 S2 S3 S4 and the keys inside are the requisite per step, you can use multiple keys.

Example: QuestConfig.ini
[S1]
GRADE=SSS
[S2]
GRADE=SSS,SS,S,A
[S3]
MISS=<25
[S4]
FLAG=BREAKOFF,AUTOPLAY	
Key Value Type Description Aditional Values
PERFECT Numeric How many perfects player need to do in order to pass the quest. > or <
GREAT Numeric How many greats player need to do in order to pass the quest. > or <
GOOD Numeric How many good player need to do in order to pass the quest. > or <
BAD Numeric How many bad player need to do in order to pass the quest. > or <
MISS Numeric How many miss player need to do in order to pass the quest. > or <
HEART Numeric How many hearts player need to do in order to pass the quest. > or <
POTION Numeric How many potions player need to do in order to pass the quest. > or <
MINE Numeric How many mines player need to do in order to pass the quest. > or <
ITEMS Numeric How many total items player need to do in order to pass the quest. > or <
VELOCITY Numeric How many velocity items player need to do in order to pass the quest. > or <
HIDDEN Numeric How many hidden items/taps player need to do in order to pass. > or <
MAXCOMBO Numeric Set Max Combo player need to reach to pass the quest. > or <
MISSCOMBO Numeric Set Max Combo player need to reach to pass the quest. > or <
LIFEBAR Numeric/Float Set LifeBar player need to do to pass the quest (0 to 100). > or <
SCORE Numeric Set Score player need to do to pass the quest. > or <
GRADE String Set Grade player need to do to pass the quest. Multiple Values
FLAG String Set Special Flags in ordet to pass the quest. Multiple Values
Multiple Values on Keys
  • GRADE: SSS, SS, S, A, B, C, D, F
  • FLAG: QuestMode doesnt allow autoplay or breakoff, because autoplay will give you a failed mission, and breakoff will give you the stagebreak screen with a failed mission. Add these flags to allow the game pass the quest.
    • AUTOPLAY: Declare this stepchart has autoplay mod
    • BREAKOFF: Declare this stepchart has breakoff mod

This is an example of QuestConfig.ini. STEP1 requires Grade A or S to pass, STEP2 requires to press less than 80 Mines and it has breakoff mod activated, STEP3 requires MAXCOMBO more or equal than 200000 and 40 Potions with a lifebar of 50% or less, STEP4 needs only survive until the end.

Example: QuestConfig.ini
[S1]
GRADE=S,A
[S2]
MINE=<79
FLAG=BREAKOFF
[S3]
MAXCOMBO=>200000
POTION=40
LIFEBAR=<50
[S4]
											

Save the file, and test it in game to be sure its working.

LUA Goal

Creating a Quest Goal based on LUA could be difficulty, so you need to be careful of what are you doing here. if you are beginner we recommend you to start reading a manual from this language. LUA will help you IE to count Tap NoteSkins.

First at all you should create a text file with whatever name but with a LUA extension (Quest_Goal.Lua) in the song folder. And you need to link this file into the SimFile (ssc) You can add it from the StepEditor on #FGChanges, or add it manually opening the ssc file.

#FGChanges on Simfile, calling Quest_Goal.lua (should be located on Song Segment)
#FGCHANGES:-100.000=Quest_Goal.lua=1.000=0=0=1=====,;	
Open Quest_Goal.lua and define an Actor Frame as a return, and insert GameplayFinishMessageCommand
Quest_Goal.lua
local t = Def.ActorFrame
{
	GameplayFinishMessageCommand=function(self,params)
		local pnStageStats = STATSMAN:GetCurStageStats():GetPlayerStageStats(params.Player);
		pnStageStats:SetSuccess(true);
	end;
};
return t

This is a list of commands that will return a value, they are called from pnStageStats and after getting the values, you should set SetSuccess(true) command to make a MISSION SUCCESS otherwise it will get automatically MISSION FAILED.

Command Result Description
GetTapNoteScores("TapNoteScore") Get Total Score from specified TapNote (see table below)
MaxCombo() Get Max Combo
MaxMissCombo() Get Max Miss Combo
MaxMissCombo() Get Max Miss Combo
GetCurrentLife() Get Current Life value from LifeBar
GetScore() Get Score
GetGrade() Get Grade (see table below)
GetScore() Get Score
MaxComboSkin("NoteSkin Value") Get Max Combo from specified NoteSkin (see table below)
MaxMissComboSkin("NoteSkin Value") Get Max Miss Combo from specified NoteSkin (see table below)
GetTapNoteSkin("NoteSkin Value", "TapNoteScore") Get Max Miss Combo from specified NoteSkin (see table below)
GetFailedAux() If user got LifeBar 0 or Stagebreak



GetTapNoteScores() needs an specific tapnote value, this is the list available:

TapNoteScore Value Description
TapNoteScore_W1 Perfect Taps
TapNoteScore_W2 Perfect Taps
TapNoteScore_CheckpointHit Perfect Hold
TapNoteScore_W3 Great Taps
TapNoteScore_W4 Good Taps
TapNoteScore_W5 Bad Taps
TapNoteScore_Miss Miss Taps
TapNoteScore_CheckpointMiss Miss Holds
TapNoteScore_Heart Heart Taps
TapNoteScore_Potion Potion Taps
TapNoteScore_HitMine Mine Taps
TapNoteScore_Velocity Velocity Item Taps
TapNoteScore_Item Total Item Taps



MaxComboSkin(), MaxMissComboSkin(), GetTapNoteSkin(,) needs an specific NoteSkin Value, this is the list available:

  • aadmb : Blue Drum NoteSkin
  • aadmr : Red Drum NoteSkin
  • aadmy : Yellow Drum NoteSkin
  • basic : Basic NoteSkin
  • canon : Canon NoteSkin
  • default : Prime NoteSkin
  • dog : Dog NoteSkin
  • drum : Drum NoteSkin
  • easy : Easy NoteSkin
  • fiesta : Fiesta NoteSkin
  • fiesta2 : Fiesta 2 NoteSkin
  • fire : Fire NoteSkin
  • flower : Flower NoteSkin
  • girl : Girl NoteSkin
  • horse : Horse NoteSkin
  • ice : Ice NoteSkin
  • infinity : Infinity NoteSkin
  • lightning : Lightning NoteSkin
  • missile : Missile NoteSkin
  • music : Music NoteSkin
  • nx : NX NoteSkin
  • nx2 : NX 2 NoteSkin
  • nxa : NX Absolute NoteSkin
  • old : Old NoteSkin
  • perfor1 : Perfomance 1 NoteSkin
  • perfor2 : Perfomance 2 NoteSkin
  • perfor3 : Perfomance 3 NoteSkin
  • poker : Poker NoteSkin
  • prime2 : Prime 2 NoteSkin
  • rebirth : Rebirth NoteSkin
  • sheep : Sheep NoteSkin
  • slime : Slime NoteSkin
  • soccer : Soccer Ball NoteSkin
  • wind : Wind NoteSkin
  • xx : XX Aniversary NoteSkin



GetGrade() will return these values

Grade Return Grade Description
Grade_Tier1SSS Gold Grade
Grade_Tier2SS Gold Grade
Grade_Tier3S Gold Grade
Grade_Tier4A Grade
Grade_Tier5B Grade
Grade_Tier6C Grade
Grade_Tier7D Grade
Grade_Tier8F Grade

This is an example of Quest_Goal.lua.
• STEP1 requires that PERFECT + GOOD + MISS less or equal than 100, 10 Hearts, LifeBar at 15%, MaxComboSkin of NXA Tap more than 30 and No StageBreak.
• STEP2 requires 10 Bad Old Noteskin tapnotes, 250 Perfects from Basic NoteSkin but it can allow BreakOff.
• STEP3 requires more than 35 Mines pressed, Grade S or Better, Score more or equal than 20000.
• STEP4 Only need to survive until the end.

Example: Quest_Goal.lua
local t = Def.ActorFrame 
{
	GameplayFinishMessageCommand=function(self,params)
	
		local pnStageStats = STATSMAN:GetCurStageStats():GetPlayerStageStats(params.Player);
		local bFailedAux = pnStageStats:GetFailedAux();
		
		local iPerfects = pnStageStats:GetTapNoteScores("TapNoteScore_W1") + 
				pnStageStats:GetTapNoteScores("TapNoteScore_W2") +
				pnStageStats:GetTapNoteScores("TapNoteScore_CheckpointHit");
		local iGood = pnStageStats:GetTapNoteScores("TapNoteScore_W4");
		local iMiss= pnStageStats:GetTapNoteScores('TapNoteScore_Miss') +
				pnStageStats:GetTapNoteScores("TapNoteScore_CheckpointMiss");
		
		local iHearts = pnStageStats:GetTapNoteScores("TapNoteScore_Heart");	
		
		local iNXAMaxCombo = pnStageStats:MaxComboSkin("nxa");
		local iLifePercent = pnStageStats:GetCurrentLife();
		
		if params.Label == "S1" then	-- Step1
			local TotalRequire = iPerfects + iGood + iMiss;
			if not bFailedAux and TotalRequire <= 100 and iHearts == 10 and
				iLifePercent == 15 and iNXAMaxCombo > 30 then
				
				pnStageStats:SetSuccess(true);
			end;
		end;
		
		if params.Label == "S2" then	-- Step2
			local iBadOlds = pnStageStats:GetTapNoteSkin("old", 'TapNoteScore_W5');
			local iBasicPerfects = pnStageStats:GetTapNoteSkin("basic", 'TapNoteScore_W1') +
					pnStageStats:GetTapNoteSkin("basic", 'TapNoteScore_W2') +
					pnStageStats:GetTapNoteSkin("basic", 'TapNoteScore_CheckpointHit');
					
			if iBadOlds == 10 and iBasicPerfects == 250 then
				pnStageStats:SetSuccess(true);
			end;
		end;
		
		if params.Label == "S3" then	-- Step3
			local Grade  = pnStageStats:GetGrade();
			local iMines = pnStageStats:GetTapNoteScores("TapNoteScore_HitMine");
			local iScore = pnStageStats:GetScore();
			if iMines > 35 and iScore >= 20000 and not bFailedAux and
				(Grade == Grade_Tier3 or Grade == Grade_Tier2 or Grade == Grade_Tier1) then
				pnStageStats:SetSuccess(true);
			end;
		end;
		
		if params.Label == "S4" then	-- Step4
			if not bFailedAux then
				pnStageStats:SetSuccess(true);
			end;
		end;
		
	end;
}

return t;

Important about Quest_Goal.lua

For GetTapNoteSkin(), "default" will be always the TapNote that you didn't set as noteskin on StepEditor. If you set 'prime2' as mod, then every default noteskin will be set with the prime2 noteskin.

SimFile Packing


SimFile Packing is a way to share your work (SimFile and Lua/Ini/Text Files) in one file only (SPX Extension), this files are stored in UserPackages folder and can't be edited once created.

Packed File (SPX) will only store SSC, LUA, INI, TXT, SM, SMA, KSF, DWI, BMS files. It will also pack Sort.txt file and Quest.txt file. So the game will recognize it with a custom sort and as a quest channel too. SPX File WILL NOT storage media files like Pictures, Audio or Video Files. Also the packed file will not save your banner channel.

If you want to create a new Package, you should create a file called PackInfo.ini in the group folder. Open and edit it filling your information, remember that every Key is UpperCase, including the Section, Value can be Uppercase or Lowercase

  • NAME: Name for your SongPack, this is only a reference Name, it will not replace the Group Folder Name.
  • AUTHOR: The Author Name of this SongPack
  • URL: A valid URL, it can't be activated from game for security reasons, so use a short one as reference.
  • DESCRIPTION: This will replace the description of the channel when you are picking it.
  • UNLOCKED: 1 means that users can create ssc.ext stepscharts, but can't edit the original simfiles. 0 means your group folder will not be shown on Step Editor
Example: PackInfo.ini
[PACK]
NAME=My New SongPack
AUTHOR=Awesome StepMaker
URL=http://www.stepprimeofficial.blogspot.com
DESCRIPTION=Awesome description for my channel
UNLOCKED=0	

Open StepMania Configuration and go to Create/View User Packages, and select the option to Create Package

Verify its showing their information on screen, press the Center button and press again to confirm. It wil take a while to create the SPX File that its located on UserPackages Folder. Once created, you should only Share the SPX files, and the media files just like we do.

About creating SPX Files

Be aware the game will lock the group folder from StepEditor if the SPX of the groupfolder exist in UserPackages, you need to move it or delete it and restart the game again to show it on StepEditor Again.