This is very beautifully written and presented. I hope and believe that you'll find what you're looking for.
ahmwma
Creator of
Recent community posts
Got mine done before the end, woohoo.... it's a temporary decker brush maker that's focused on patterns and ordered dithers.
I'm very excited to check out all the other projects.
Also, if anyone was almost there but didn't quite finish before the jam ended... Decker jams traditionally have a grace period of a day or two.
After your project is up on itch you can reach out to Internet Janitor for a late submission link for the jam.
I think the issue is just your parentheses () placement. If we look at this line:
elseif (p.hour+1>10) & (p.hour+1<20)
You only need the parentheses to be around p.hour and your +1 adjustment to the time. Putting it in it's own set of parentheses makes sure that this part is done first before the script checks if the number is in the correct range . So you could change that line to be like this instead:
((p.hour+1) >10) & ((p.hour+1) <20)
Hopefully that makes sense?
Optionally, another way to do this would be to modify what p.hour is at the beginning of your script like this:
p:"%p" parse "%e" format sys.now utc_offset:1 p.hour:24%utc_offset+p.hour
The first line is the same as what you have now.
The second line defines a new variable called utc_offset which I'm going to use to say how many hours off from utc your time zone is. (1)
And the third line sets p.hour to be p.hour plus your utc_offset. The 24% in this line keeps the result consistent with 24 hour time. So if the math it was doing for p.hour was 23+1 it would go back to 0 instead of up to 24.
If this version makes sense to you then you could put this at the beginning of your script and just refer to p.hour for the rest of it without needing to modify it again, because it's already been modified.
Thank you very much! I've quietly fixed both things. (And another unlocked field I spotted on my way there... there's a lot of widgets in this thing.)
I admit that the sidebar about FatBits was kind of written on the fly and not adequately fact checked (in terms of Mac history, or with IJ himself about his inspirations, haha) so I've put a more neutral mention of MacPaint there instead and I appreciate the correction.
Really, thank you for checking it out and enjoying it! It means a lot.
After I made The Riddle of the Temple last year some people mentioned that the behind-the-scenes area with Phinxel (a little sphinx character) was helpful for learning a couple of things about making projects in Decker.
I've learned a lot about the program since then and so Phinxel is back with enough Decker facts to fill up a medium sized notebook.

https://ahmwma.itch.io/phield-notes
The book is divided into sections that each have their own indexes and there's a search engine contraption in the appendix if you're trying to find something specific.
It's a little silly but I really hope it's helpful!
It's jam time again! We've only just begun but it's nice to have a place to talk about how the event is going.
Feel free to post about what you're working on! Anything is welcome from ideas to sneaky peek screenshots to letting us know you've published your project.
Good luck everyone and Happy Deck Month!
You can use the M key on your keyboard to hide the menu while you're using the drawing tools.
When you're getting ready to publish a project you can optionally Lock your deck which hides the Menu bar completely. This will make that area at the top visible all the time and limit people to Interact mode.
If you want to lock your project when you're done you can save a locked copy of your project using [ File > Properties > Protect... ]
Hello!
Some of the questions you've asked are difficult for me because I'm not very familiar with how these examples work or I'm not sure what the correct answer would be for your project. I've learned a little bit but I have more questions for you.
I really want to make sure I understand what you need so I can either figure it out or look up the answer.
Asking specific questions helps me give you more specific answers.
Regarding Sokoban and "Mover":
From what I understand about the sokoban example... "Mover" was made specifically to move boxes inside of a Sokoban-like game and most of the code in the example relates to that.
What do you like about "Mover"?
- Being able to move a character on a grid with the arrow keys?
- Sokoban gameplay?
- Something else?
- What kind of gameplay would you like in your game from something like "Mover"?
Regarding path:
From what I understand, this is what you need:
- A way to limit the number of steps taken when the follower moves
- A way to make an event happen when the follower runs out of their limited steps
- A way to make an event happen when the follower arrives at a specific location
Have you coded a way to make events happen when your follower arrives at a location yet?
Is there anything else that you're trying to understand how to do with path?
Regarding "quotes":
From what I understand you'd like to allow the player to choose a dialog option and then have the game run some code depending on what they chose? Is the code in the other text field more dialog (dd / visual novel format) or something else?
Do you want the player to be able to return to the original choice and pick another dialog option?
Or
Is this a one-time event where they can only choose one answer?
I'm sorry if I didn't understand something! Thank you for being patient.
Hopping in too (Hello!)
There is a fun thing about buttons which is often overlooked -- All buttons can store a value, not just checkboxes.
So you don't need a second button to be a checkbox at all.
We often talk about checkboxes because the mark is visible and easier to understand but if you don't want to have a separate hidden checkbox you can change your button back to what it was originally and use this script in it:
on click do me.value:1 end
When you use "me" like this in a script it refers to the widget the script is attached to... so the button (of any style you like and any name) will set it's own value to "1" when this script is inside of it and the button is clicked.
One more small correction, in the beginning of your progress checking script:
on click do if puzzleroom.widgets.button1.value & puzzleroom2.widgets.button2.value
Putting .widgets. between the card name and the widget name is an important part of telling Decker where to find your widget.
Of course, use the correct names for your particular buttons and cards at this moment!
A side note about setting the value in a hidden or non-checkbox button:
Doing it this way has a side effect of being a little harder to uncheck the buttons when you want to reset the game while testing it.... but you could set these two particular buttons as 'Volatile' if you wanted to.
That makes it so you can clear their .value anytime using [ File > Purge Volatiles ] in the menu.
This would also remove their .value when the project is saved.
Volatile is dangerous to use on anything precious and irreplaceable -- but it's fine for temporary things like progress checkmarks.
If you feel comfortable using it you can select the widget you're using to store this progress .value and use [Widgets > Volatile] to make it Volatile.
(Again, this is not for anything precious like your art assets! Disposable .values only here!)
This whole project sounds lovely :D We're all rooting for you.
Your audio duration should be fine!
After experimenting with a deck where I have a similar audio looping setup I think my best guess is that the script is expecting to find a Field that has the name "loopcounter" on the same card you're on and it's not finding it so it can't correctly loop through your clips.
(Because nothing is loopcount-ing, y'know?)
It could be that it doesn't exist, or it has a typo in the name or it does exist by that name but it's on another card... something like that.






















