Hi,
So I think the issue is having the pf commands in the root of the script instead of inside an event. I think what's happening is that when palettefade runs, it likely refreshes all the stuff in the root level script, which then gets itself into a loop where it's calling itself over and over. I'm not fully sure myself of the logic of when these are called, generally except for like setting constants (like palettes and such) I put all my logic inside events.
If you put the commands inside the "timepass" event, so that they're only called when this event is called, does that help?
Edit: so I did an experiment with the unlocked version of your deck and this seems to fix things. Remove the setpalette and palettefade commands from the root of the script and put them inside "timepass" like this
on timepass do t.value:t.value+1 if t.value=1 pf.setpalette[deck morningpalette] elseif t.value=2 pf.palettefade[deck morningpalette noonpalette 60] elseif t.value=3 pf.palettefade[deck noonpalette sunsetpalette 60] else pf.palettefade[deck sunsetpalette nightpalette 60] end end