Second glance,
and I'm still unsure if I'm on the right track - but it's setting off alarm bells...
I'd be happier with this answer if I could test it, but without the images, songs and fonts - it's purely a theoretical answer...
Okay...
Python:
python:
for song in day_1_song_list:
renpy.call_screen("play_song", song)
jump twenty_days_week1
renpy.call_screen() is the equivalent of
You must be registered to see the links
... which I tend to think of as "show screen but wait for player to click on something". There could be some quirk of doing it with
renpy.call_screen(), but I would expect track 1 to get shown and nothing to happen until the player clicked on something (or some other
action() is triggered).
But that is compounded by the
for song in day_1_song_list:. Since
day_1_song_list is 5 songs, it's almost like you're trying to show 5 different screens (one for each track)... Except they would all overlap and you wouldn't see the other 4 due to the one that shown on top. I don't think that is happening due to the
call screen forcing the player to deal with track #1 before track #2 can be processed - but it looks unintentional and deeply flawed.
Then, within your
screen play_song(song):, you have a "Return" imagebutton.
It's
action() is
action Call("twenty_days_weeks_menu"). Except
You must be registered to see the links
is intended to "call" a label (not to be confused with
call screen which behaves completely differently).
You must be registered to see the links
is intended to jump to a label, do something and then return to where it came from using a
You must be registered to see the links
statement. A list of labels that have been called is stored in something called a "call stack" and each time
call is used, the stack gets one entry bigger (
return reduces that stack by one). If you constantly
call various labels without ever doing a
return, the call stack can get so large that the game breaks. (The call stack is part of a save file, so things can so easily get out of hand).
I'm almost certain this should be an
action Jump() or
action Return().
None of which fixes your original problem, but hints at a series of compounded problems that may only now becoming obvious to you.
Will continue to look later today or tomorrow, as time allows...