Logo

[SM 5.1-new / OutFox LTS and Alpha V] DDR A3 / DDR WORLD Theme.

Register Log In Back To Forums

Post #641 · Posted at 2026-01-13 01:56:13am 1.5 months ago

Offline R6
R6 Avatar Member
14 Posts
Japan
Reg. 2025-02-28

DDR-WORLD-THEME-main\BGAnimations\ScreenEvaluation decorations
↓default.lua


local t = Def.ActorFrame{
StandardDecorationFromFileOptional("Footer","Footer");
LoadActor("background");
--Def.Sprite{ Texture="o4ma", InitCommand=function(s) s:FullScreen() end, };
};

local StageIndex = GAMESTATE:GetCurrentStageIndex()
local FinalStage = PREFSMAN:GetPreference("SongsPerPlay")

t[#t+1] = Def.ActorFrame{
Def.Sprite{
Texture=THEME:GetPathG("","_shared/ddr"),
InitCommand=function(s) s:zoom(0.667):xy(SCREEN_LEFT+88,_screen.t+23) end,
};
Def.Sprite{
Texture="RESULTS",
InitCommand=function(s) s:zoom(0.667):xy(_screen.cx,_screen.t+27) end,
};
Def.Sprite{
Texture="event",
InitCommand=function(s) s:zoom(0.667):xy(_screen.cx,_screen.t+56) end,
};
};

t[#t+1] = Def.ActorFrame{
Name="Jacket";
Def.Sprite{
Texture="base",
InitCommand=function(s) s:setsize(149,189):xy(_screen.cx,_screen.cy-77) end,
};
Def.Sprite{
Texture="rocket",
InitCommand=function(s) s:zoom(0.667):xy(_screen.cx+64,_screen.cy+5) end,
};
Def.Sprite {
OnCommand=function(s)
local song; if GAMESTATE:IsCourseMode() then song = GAMESTATE:GetCurrentCourse() else song = GAMESTATE:GetCurrentSong(); end
if GAMESTATE:IsCourseMode() then
s:Load(song:GetBannerPath()):zoomto(290,52):xy(_screen.cx+3,_screen.cy-114)
else
s:Load(GetJacketPath(song)):setsize(141,141):xy(_screen.cx,_screen.cy-97)
end
end;
};
Def.BitmapText{
Font="_swis721 blk bt 28px",
InitCommand=function(s) s:xy(_screen.cx-70,_screen.cy-8):maxwidth(310):zoom(0.4):halign(0)
local song = GAMESTATE:GetCurrentSong()
local course = GAMESTATE:GetCurrentCourse()
if GAMESTATE:IsCourseMode() then
s:settext(GAMESTATE:GetCurrentCourse() and GAMESTATE:GetCurrentCourse():GetDisplayFullTitle() or "")
else
s:settext(GetSongName(song))
end
end,
};
Def.BitmapText{
Font="_swis721 blk bt 28px",
InitCommand=function(s) s:xy(_screen.cx-70,_screen.cy+6):wrapwidthpixels(650):zoom(0.2):halign(0)
local song = GAMESTATE:GetCurrentSong()
if not GAMESTATE:IsCourseMode() then
s:settext(GetArtistName(song))
end
end,
};
};

for _,pn in pairs(GAMESTATE:GetEnabledPlayers()) do
t[#t+1] = Def.ActorFrame{
Name="Player";
Def.Sprite{
Texture=THEME:GetPathG("Premium","Customizer/appeal/eval/appeal_board_0002_result"),
InitCommand=function(s) s:zoom(0.667):y(_screen.t+47.5)
s:x(pn==PLAYER_1 and _screen.cx-192 or _screen.cx+192)
end,
};
Def.BitmapText{
Font="_arial black cont 28px",
InitCommand=function(s)
s:maxwidth(285):diffuse(color("#ffffff")):zoom(0.5):y(_screen.t+70)
s:x(pn==PLAYER_1 and _screen.cx-195 or _screen.cx+195)
--s:horizalign(right)
if PROFILEMAN:GetNumLocalProfiles() >= 1 then
s:settext(string.upper(PROFILEMAN:GetPlayerName(pn)))
else
s:settext(pn==PLAYER_1 and "PLAYER 1" or "PLAYER 2")
end
end,
};
Def.Quad{
InitCommand=function(s)
s:diffuse(color("#00000")):diffusealpha(0.3):setsize(148.2,24)
s:xy(pn==PLAYER_1 and _screen.cx-192 or _screen.cx+192,_screen.t+90)
end,
};
Def.Sprite{
Texture="style",
InitCommand=function(s) s:zoom(0.667):xy(pn==PLAYER_1 and _screen.cx-238 or _screen.cx+141, _screen.t+90):pause():queuecommand("Set") end,
SetCommand=function(s) s:setstate(GAMESTATE:GetCurrentStyle()== "StyleType_OnePlayerTwoSides" and 1 or 0) end,
},
Def.Sprite{
Texture="diff",
InitCommand=function(s) s:zoom(0.7):xy(pn==PLAYER_2 and _screen.cx+198 or _screen.cx-179,90):pause():queuecommand("Set") end,
SetCommand=function(s)
local steps = GAMESTATE:IsCourseMode() and GAMESTATE:GetCurrentTrail(pn) or GAMESTATE:GetCurrentSteps(pn)
local diff = steps and ToEnumShortString(steps:GetDifficulty()) or "Beginner"
local idx = {Beginner=0,Easy=1,Medium=2,Hard=3,Challenge=4,Edit=5}
s:setstate(idx[diff] or 0)
end,
},
Def.BitmapText{
Font="eval_diff",
InitCommand=function(s) s:zoom(0.285):y(_screen.t+92)
local steps = GAMESTATE:IsCourseMode() and GAMESTATE:GetCurrentTrail(pn) or GAMESTATE:GetCurrentSteps(pn)
local meter = steps:GetMeter();
local shortDiff = ToEnumShortString(steps:GetDifficulty())
local diffData = {
Beginner = { x = 136 },
Easy = { x = 169 },
Medium = { x = 146 },
Hard = { x = 157 },
Challenge = { x = 136 },
Edit = { x = 136 },
}
local data = diffData[shortDiff]
s:x(pn==PLAYER_1 and _screen.cx-data.x or 811-data.x)
if meter ~= 0 then
s:settext(meter)
end
end,
};
};

-- local IsScore = "NORMAL.png"
-- if IsEXScore() then
-- IsScore = "EX.png"
-- end
-- t[#t+1] = Def.ActorFrame{
-- InitCommand=function(s) s:zoom(0.667):xy(pn==PLAYER_1 and _screen.cx-208 or _screen.cx+220,_screen.cy-40) end,
-- OffCommand=function(s) s:sleep(0.2):linear(0.2):diffusealpha(0) end,
-- Def.Sprite{
-- Texture=IsScore,
-- InitCommand=function(s) s:xy(-124,-36) end,
-- };
-- };
t[#t+1] = LoadActor("Grade",pn);
local pss = STATSMAN:GetCurStageStats():GetPlayerStageStats(pn)
t[#t+1] = Def.RollingNumbers{
File="eval_score",
InitCommand=function(s)
s:zoom(0.667)
s:xy(pn==PLAYER_1 and _screen.cx-183 or _screen.cx+200,_screen.cy+16)
s:playcommand("Set")
end,
OffCommand=function(s) s:sleep(0.2):linear(0.2):diffusealpha(0) end,
SetCommand=function(s)
local score
if IsEXScore() then
score = (pss:GetPossibleDancePoints())*(pss:GetPercentDancePoints());
else
score = pss:GetScore();
end;
s:Load("RollingNumbersEvaluation"):targetnumber(score);
end,
};

if pss:GetMachineHighScoreIndex() == 0 or pss:GetPersonalHighScoreIndex() == 0 then
t[#t+1] = Def.Sprite{
Texture="RECORD",
InitCommand=function(s) s:zoom(0.667):xy(pn==PLAYER_1 and _screen.cx-138 or _screen.cx+246,_screen.cy+34) end,
OnCommand=function(s) s:queuecommand("Light") end,
LightCommand=function(s) s:diffusealpha(1):linear(1):diffusealpha(0.4):linear(1):diffusealpha(1):queuecommand("Light") end,
};
end

-- if not ((StageIndex == FinalStage+1) or (StageIndex == FinalStage+2)) then
-- t[#t+1] = LoadActor(THEME:GetPathB("ScreenEvaluation","decorations/stars"))..{
-- InitCommand=function(s) s:xy(pn==PLAYER_1 and _screen.cx-54 or _screen.cx+278,_screen.cy-10):zoom(0.667) end,
-- OffCommand=function(s) s:sleep(0.2):linear(0.2):addx(pn==PLAYER_1 and -700 or 700) end,
-- };
-- end;
-- end;

if #GAMESTATE:GetEnabledPlayers() == 1 then
t[#t+1] = LoadActor("frame", GAMESTATE:GetMasterPlayerNumber(),PLAYER_1,(GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_1))..{
InitCommand=cmd(xy,_screen.cx-172,_screen.cy+115;zoom,0.667);
};
t[#t+1] = LoadActor("frame", GAMESTATE:GetMasterPlayerNumber(),PLAYER_2,(GAMESTATE:GetMasterPlayerNumber() ~= PLAYER_2))..{
InitCommand=cmd(xy,_screen.cx+172,_screen.cy+115;zoom,0.667);
};
else
t[#t+1] = LoadActor("frame", PLAYER_1,PLAYER_1,false)..{
InitCommand=cmd(xy,_screen.cx-172,_screen.cy+115;zoom,0.667);
};
t[#t+1] = LoadActor("frame", PLAYER_2,PLAYER_2,false)..{
InitCommand=cmd(xy,_screen.cx+172,_screen.cy+115;zoom,0.667);
};
end
end;



-- if not ((StageIndex == FinalStage+1) or (StageIndex == FinalStage+2)) then
-- t[#t+1] = LoadActor(THEME:GetPathG("","_shared/stars"))..{
-- InitCommand=function(s) s:xy(_screen.cx,_screen.cy+184):zoom(0.667) end,
-- OffCommand=function(s) s:linear(0.2):diffusealpha(0) end,
-- };
-- end

-- if (GAMESTATE:HasEarnedExtraStage() and GAMESTATE:IsExtraStage()) then
-- t[#t+1] = LoadActor("Extra");
-- elseif (GAMESTATE:HasEarnedExtraStage() and GAMESTATE:IsExtraStage2()) then
-- t[#t+1] = LoadActor("Encore");
-- end





-- t[#t+1] = Def.ActorFrame{
-- Name="songinfo",
-- InitCommand=function(s) s:xy(_screen.cx,_screen.cy-40):zoom(0.667) end,
-- OffCommand=function(s) s:linear(0.2):zoomy(0) end,
-- Def.Sprite{
-- Texture=THEME:GetPathG("","_shared/song info"),
-- InitCommand=function(s) s:setsize(300,47) end,
-- };

-- };

return t;



↓grade.lua




local pn = ({...})[1]
local Award = STATSMAN:GetCurStageStats():GetPlayerStageStats(pn):GetStageAward()
local Grade = STATSMAN:GetCurStageStats():GetPlayerStageStats(pn):GetGrade()

return Def.ActorFrame{

Def.Sprite{
InitCommand=function(s)
s:player(pn):x(pn== PLAYER_1 and _screen.cx-175 or _screen.cx+205)
s:y(_screen.cy-70):zoom(0):queuecommand("Set")
end,
OnCommand=function(s) s:linear(0.2):zoom(0.667) end,
OffCommand=function(s) s:linear(0.2):zoomy(0) end,
SetCommand=function(s) s:Load(THEME:GetPathG("","Grade/"..Grade)) end,
};
Def.Sprite{
InitCommand=function(s)
s:player(pn):x(pn== PLAYER_1 and _screen.cx-176 or _screen.cx+198)
s:y(_screen.cy-12):zoom(0):queuecommand("Set")
end,
OnCommand=function(s) s:linear(0.2):zoom(0.667) end,
OffCommand=function(s) s:linear(0.2):zoomy(0) end,
SetCommand=function(s)
if (Award == "StageAward_FullComboW1") then
s:Load(THEME:GetPathG("","Grade/FullCombo_W1"))
elseif ((Award == "StageAward_SingleDigitW2")
or (Award == "StageAward_OneW2")
or (Award == "StageAward_FullComboW2")) then
s:Load(THEME:GetPathG("","Grade/FullCombo_W2"))
elseif ((Award == "StageAward_SingleDigitW3")
or (Award == "StageAward_OneW3")
or (Award == "StageAward_FullComboW3")) then
s:Load(THEME:GetPathG("","Grade/FullCombo_W3"))
elseif (STATSMAN:GetCurStageStats():GetPlayerStageStats(pn):FullComboOfScore('TapNoteScore_W4')) then
s:Load(THEME:GetPathG("","Grade/FullCombo_W4"))
end
end,

};
};

Post #642 · Posted at 2026-01-14 11:18:15pm 1.5 months ago

Offline VR0
VR0 Avatar Member
1,011 Posts
Chile
Reg. 2012-03-20

Nintendo Switch Friend Code: SW-2602-0918-1312
"ムーン ゴーシュス メヂィデーション"
Grade AAA- is abstent of official DDR games.
Replace it with generic AAA, please.
AC Score Tracker: DDR EXTREME // SN2 (JP)
My username in these games:
DDR(1st)-EXTREME: VRC
StepMania 3.9+ REDUX: VRC
DDR Supernova onwards / IIDX ID: VR0

Post #643 · Posted at 2026-01-20 02:47:58pm 1.3 months ago

Offline jambuddy
jambuddy Avatar Member
5 Posts
Not Set
Reg. 2024-05-03

Amazing theme work! Really brings new life to the game to have a theme recreation this well done.

Post #644 · Posted at 2026-01-28 08:28:28am 1 month ago

Offline MrK!NG
MrK!NG Avatar Member
44 Posts
Not Set
Reg. 2024-12-23

Quote: piotr25691
Quote: MrK!NG
I just tried the world theme
Aside from some changes needed at name entry and timer menu after choose language, for some strange reason when I picked mines option(at custom option) it showed 4 combos instead of one than supposed to be

4 combos for shock arrows are a StepMania limitation, since the shock arrows are charted as 4 mines, and on DDR they're just one note that spans all columns. This is not a bug.

I just wonder what options did Yuisin use for that mine reading at similar theme, since he managed to make shock arrows read as 1 notecount

----------

Also, 2 weeks ago I encounter that whenever I'm scrolling the song too fast, it automatically locked into Beginner difficulty and it forces me to going back on main menu and restarting again

Post #645 · Posted at 2026-01-29 04:43:40am 1 month ago

Offline ~Guiltytenshi~
~Guiltytenshi~ Avatar Member
54 Posts
Chile
Reg. 2008-12-04

Hello everyone,
I haven't played SM in a while, and I decided to try 5.1 and DDR World. It looks amazing!
However, I noticed something about the background videos. They start before the song, even though they are perfectly synchronized in the .sm file (I checked them in Edit Mode).
Maybe it's not a big deal for some people but I must admit it bugs me a little. Is it there any way to manually solve it? maybe in the game options?
Thanks in advance

Post #646 · Posted at 2026-01-29 06:13:31am 1 month ago

Offline xepher07
xepher07 Avatar Member
13 Posts
Peru
Reg. 2007-12-28

Quote: ~Guiltytenshi~
Hello everyone,
I haven't played SM in a while, and I decided to try 5.1 and DDR World. It looks amazing!
However, I noticed something about the background videos. They start before the song, even though they are perfectly synchronized in the .sm file (I checked them in Edit Mode).
Maybe it's not a big deal for some people but I must admit it bugs me a little. Is it there any way to manually solve it? maybe in the game options?
Thanks in advance

I have the same problem; it's a bit annoying. Otherwise, it's good enough for a beta version.

Post #647 · Posted at 2026-01-30 11:59:54pm 4.2 weeks ago

Offline Witherbomb47
Witherbomb47 Avatar Member
2 Posts
Not Set
Reg. 2026-01-30

Hello,

I find myself unable to change options (Scroll speed, etc) while using this theme. I have tried changing "Show Song Options" to Ask/Show in UI options, but nothing shows up. I circumvent this by disabling the theme, changing the option, and then reenabling the theme every time I want to change an option.

This is potentially user error, and if so I apologize.

Post #648 · Posted at 2026-01-31 10:42:31am 4.1 weeks ago

Offline TranceWarp
TranceWarp Avatar Member
29 Posts
United States
Reg. 2007-06-23

Quote: Witherbomb47
Hello,

I find myself unable to change options (Scroll speed, etc) while using this theme. I have tried changing "Show Song Options" to Ask/Show in UI options, but nothing shows up. I circumvent this by disabling the theme, changing the option, and then reenabling the theme every time I want to change an option.

This is potentially user error, and if so I apologize.

I have no problem with this, but some of the themes here have the options menu accessible by pressing the "/" key on the keyboard during song selection. It would be equivalent to pressing "9" on the keypad in the arcade.
https://zenius-i-vanisher.com/v5.2/ddr_newsig.php?userid=1283

Post #649 · Posted at 2026-01-31 10:54:21pm 4.1 weeks ago

Offline Witherbomb47
Witherbomb47 Avatar Member
2 Posts
Not Set
Reg. 2026-01-30

Quote: TranceWarp
Quote: Witherbomb47
Hello,

I find myself unable to change options (Scroll speed, etc) while using this theme. I have tried changing "Show Song Options" to Ask/Show in UI options, but nothing shows up. I circumvent this by disabling the theme, changing the option, and then reenabling the theme every time I want to change an option.

This is potentially user error, and if so I apologize.

I have no problem with this, but some of the themes here have the options menu accessible by pressing the "/" key on the keyboard during song selection. It would be equivalent to pressing "9" on the keypad in the arcade.

The / key works for me. It's a little annoying that I can't press the button with my pad (not enough buttons), but far better than what I was doing before, so thank you.

I notice the list that appears doesn't show every option, though. Things like rates and whether or not to submit scores aren't included in the list. Is there a way to access those, or not?

Post #650 · Posted at 2026-02-03 05:34:53am 3.7 weeks ago

Offline sameascopy
sameascopy Avatar Member
3 Posts
Not Set
Reg. 2025-11-23

Quote: MrK!NG
Quote: piotr25691
Quote: MrK!NG
I just tried the world theme
Aside from some changes needed at name entry and timer menu after choose language, for some strange reason when I picked mines option(at custom option) it showed 4 combos instead of one than supposed to be

4 combos for shock arrows are a StepMania limitation, since the shock arrows are charted as 4 mines, and on DDR they're just one note that spans all columns. This is not a bug.

I just wonder what options did Yuisin use for that mine reading at similar theme, since he managed to make shock arrows read as 1 notecount

----------

Also, 2 weeks ago I encounter that whenever I'm scrolling the song too fast, it automatically locked into Beginner difficulty and it forces me to going back on main menu and restarting again

The way that Yuisin makes 4 mines(/shocks) count as a single combo is by having only one of the mines be real, and the others be fake notes, if memory serves correctly

Post #651 · Posted at 2026-02-05 02:55:37am 3.5 weeks ago

Offline DogP
DogP Avatar Member
1 Post
Not Set
Reg. 2026-02-03

Just wanted to drop by and say I'm really enjoying the A3 theme... thanks for posting it! I'm getting back into DDR and StepMania after almost 20 years, and was looking for something a bit nicer than the stock theme.

I've been using it for the past week or so, and made some customizations and "fixes" (I think). I uploaded my fork to Github in case anyone else is interested in any of my changes: https://github.com/pdaderko/DDR-A3-THEME/ .

I'm using my dance pad for most controls, so my main motivation was to improve functionality of the menu with just a dance pad. But while I was messing with it, I decided to make some other changes as well.

I made a few minor tweaks for personal preference (skip language screen, shorten the caution screen time, etc). And I'm using the machine profile, so I updated a few things for consistency when using the machine profile (e.g. calorie tracking, versus mode, etc.).

One thing I fixed is that a missed hold or a let go now count as a miss when calculating status icons (e.g. full combo). I got a single N.G. in a song (tricked by a left then right arrow during an up hold Oops ), but otherwise hit all the notes, and noticed it showed a full combo icon next to the high score.

Another thing that bothered me was when I got a really good score, but had one miss... then got a full combo the next time, but with a worse score. I didn't get the full combo lamp on the music select screen, because my highest score wasn't a full combo. So I changed it to look at all scores (not just high score) to determine the status lamps/icons.

There are a few other misc. tweaks as well - I attempted to break up commits and provide details to more easily pick and choose changes if desired.

I've only tested with StepMania 5.1-new (2025-07-18), since it works better than ITGMania/OutFox for dance pad only controls IMO.

I've read that the announcers are buggy, though they seem to be working great for me. And thanks to SchneiderAFX for the Noteskins... they look great with this theme.

I was disappointed that SNCharacters and DanceStages were removed from the current build, but I put all the SNCharacters videos in RandomMovies, which works great. Anyone know if there's a way to render DanceStages directly to a video file to use with RandomMovies?

Thanks,
DogP

Post #652 · Posted at 2026-02-05 03:17:42am 3.5 weeks ago

Offline MrK!NG
MrK!NG Avatar Member
44 Posts
Not Set
Reg. 2024-12-23

Quote: sameascopy
Quote: MrK!NG
Quote: piotr25691
Quote: MrK!NG
I just tried the world theme
Aside from some changes needed at name entry and timer menu after choose language, for some strange reason when I picked mines option(at custom option) it showed 4 combos instead of one than supposed to be

4 combos for shock arrows are a StepMania limitation, since the shock arrows are charted as 4 mines, and on DDR they're just one note that spans all columns. This is not a bug.

I just wonder what options did Yuisin use for that mine reading at similar theme, since he managed to make shock arrows read as 1 notecount

----------

Also, 2 weeks ago I encounter that whenever I'm scrolling the song too fast, it automatically locked into Beginner difficulty and it forces me to going back on main menu and restarting again

The way that Yuisin makes 4 mines(/shocks) count as a single combo is by having only one of the mines be real, and the others be fake notes, if memory serves correctly

If that's true, it means that he needs to edit the chart first then
Thanks anyway
Register Log In Back To Forums

0 User(s) Viewing This Thread (Past 15 Minutes)

©2006-2026 Zenius -I- vanisher.com -5th style- IIPrivacy Policy
Web Server: 5% · Database: 12% · Server Time: 2026-03-01 18:40:03
This page took 0.026 seconds to execute.
Theme: starlight · Language: englishuk
Reset Theme & Language