It's not perfect but you could add some keyboard shortcuts to the "back" and "next" buttons, which isn't ideal but does still make things a bit more usable
Millie Squilly
Creator of
Recent community posts
Basically you open the deck you need to have the module in, and then drag the deck that has the module into the window. That'll pop up the Font/DA mover and you can move the module across. It looks like you've done that but with still no luck?
Any chance you can upload the deck somewhere so we can have a look?
Yesss you made the correct choice! The font is made by https://ahmwma.itch.io/
I'm working on the launcher for my Deck Kiosk - so I'm starting with the sample code you sent me with the directory listing but I want to have it go through and open up each deck and pull out the name (and maybe the author) for each deck so that things look a bit friendlier than just a filename. I tried doing it as part of the select statement but it didn't seen to work, I guess because the function I was using didn't work nicely over a vector?
I'm having some troubles working out how to iterate through every row in a grid
If I use like "each x in grid.value" I get each column separately. And I can do it if I refer to each row with the index like "each x in count y" and then "grid.value[x]" that seems to be an option but I can't seem to find a way of getting the total size so that I know how far to go.
Is there something I'm missing? Is there a cleverer way of doing this?
I think most of your questions have been answered, but there is something I can add. In terms of a fading effect, if you're willing to mess around with changing the palette then this is something you can do! I made a module called PaletteFade that lets you smoothly transition from one palette to another. If you have text set to a certain colour in the palette, and use PaletteFade to change that colour from being the same as the background to a distinct colour, it'll look like the text is fading in. There's a few other tools in the Contraption Bazaar that can be helpful for messing with palettes if this is something you want to do.
Or the easier option is having two cards and transitioning between them as mentioned elsewhere haha.
They're .desktop files! Essentially like shortcuts in Windows. So I can set the name and icon to be whatever I want them to be, as well as passing in extra parameters to Decker when I open it (so I can have them always open fullscreen). The actual .deck files live elsewhere.
So for example for the links to my zine I might have a file named issue1.desktop that contains this
[Desktop Entry] Name=zine of millie, issue 1 Exec=decker --fullscreen "/home/milliesquilly/kioskfiles/zine/s1/zine of millie issue 1.deck" Comment= Terminal=false Icon=/home/milliesquilly/kioskfiles/icons/zine.png Type=Application Name[en_AU]=zine of millie, issue 1
Quick question - with grids, is there any way to have a hidden column, aside from the few built-in always hidden columns?
Basically I'm trying to build a file list where I show the user "friendly" names but when they select one I then have the actual path to the file hidden behind the scenes and I can load that. Is there a way I can have that as a column in the same table, hidden but accessible through scripting, or would I need a separate invisible grid elsewhere with the "real" values?
I've been working on something of a project of building a dedicated box for running Decker things. Basically, it's a raspberry pi with the UI of the default OS stripped down a bit and a bunch of Decker stuff on it, paired with a display I got off aliexpress and a retro looking keyboard and mouse. My plan is to build an enclosure for it that resembles a classic Apple Mac, and hopefully I'll have something of that to show off soon.
But in any case here's a video of it in operation running Gray Lo-Fi's In Dreams Of Strife:
I also have long-term plans to write a Decker-based menu interface instead of using desktop shortcuts - there's a few danger zone features that'll make that possible.I've been blogging about it a bit but realised I hadn't mentioned anything here yet so now I have haha.
I suspect the "hide offscreen" workaround may work for buttons inside contraptions too tbh, which keeps things a bit neater. If you set the position manually using the console you should be able to position it to be sure it's offscreen even if the contraption is up against a corner in the outside world.
I'm not sure yet whether the overall behaviour around widgets in the outside bits of contraptions is intended or not, but I do know that one of the design considerations on Decker is that decks should still be usable on touch-only devices, and not require keyboard input. So I think the intent is to not be able to have keypresses without a corresponding clickable button.
Hiding a button off screen might work as a workaround though if you really want to do it. But if you're targeting web decker and don't mind diving into the danger zone, there's also functionality in the forbidden library to read keypresses directly from javascript.
And the reboot continues! https://zine.milliesquilly.com/ex/ex2.html

I had a lot of fun with the new dither brushes in this one, and as a result it's now the largest size deck I've ever made and I had to zip it to fit it on a floppy disk! Lemme know what you think!
Hi!
I'm sorry I'm not very good at making videos but hopefully this will still be helpful.
Where have you got so far with Path? As a starting point, you probably want to set something up like the "Follower animation demo" in the Path documentation. Essentially, copying what's there and changing the art to suit your purposes. There's an associated contraption that you'll need to import into your own deck to make this work.
The next part is making things trigger based on the movement. There's not really any set way to do this, but one way to do it is that when the follower has stopped walking, it calls a finish[] event, and you can put code in that event to check where the follower's current position is and make events happen accordingly.
I'm not sure if this makes much more sense than the tutorial, but if you can let me know which parts make sense and which parts don't we may be able to work it out.
Hi! I'll do my best to answer your questions, but please let me know if anything doesn't make sense to you, and I will try to explain more clearly.
1:
When you're doing the style settings in Dialogizer, there's two key attributes to get it to animate with sound. The first is "tsound" which specifies a sound to play for each word, and the second is "speed" which specifies how fast or slow the text will appear.
For example, if you have a script in a field and a sound:
o:() o.tsound:"sound1" o.speed:3 dd.open[deck o] dd.say[field1.value] dd.close[]
2:
When you play a sound using the "play" command you can specify that you want it to loop. When you do this then it will loop continuously including over other cards, until a command is used to stop it.
To start a sound:
play["sound1" "loop"]
and to stop it:
play[0 "loop"]
3:
One way to make it easier to keep animation frames consistent and lined up is to use the grid functionality. When you're in drawing mode, in the View menu there is an option to "Show Grid Overlay" which will add a grid to the screen that you can use to line everything up. And if you click "Grid and Scale..." then you can change the size of the grid if you need to.
4:
Yes! As part of the setup for Puppeteer, you will have added an "on animate do" function - this is what Dialogizer uses to work at the same time as Puppeteer and other scripts. So if you add the zazz commands here then they will run as well.
For example, in a current project I have this in a card-level script to make the zazz animations work.
on view do zazzanimations[] go[card] end on zazzanimations do zazz.flipbook[coffee coffeeframes 0.0015] end on animate do zazzanimations[] pt.animate[deck] end
I've put the zazz command in its own function so that I only have to change it in one place.
5:
So basically you will need to create a separate card with checkboxes on it, to store the values. E.g. make a card called "flags". Then you add a checkbox on this card named "gotkey"
You can in your code refer to the value of this card like so:
#to get the value flags.widgets.gotkey.value #or to set the value flags.widgets.gotkey.value:1
You can reset it by having some code that runs at the start to reset the value to 0, or if you set the checkbox as "volatile" then it will automatically reset when the deck opens.
I hope this all makes sense. If you have more questions I'm sure people here would be happy to help out.
And I think it is absolutely OK to share projects that aren't in English. I know there have been a few Decker projects that are in languages other than English. People may not be able to understand it but you shouldn't let that stop you!
So, when you quit Decker it pops up the thing about saving your changes, had you been clicking "save" on that? My understanding is Autosave runs periodically (like every however many minutes) so it may be missing the final changes if you make them right before finishing
Edit: I've been told that when autosave is on it will just save automatically so I'm guessing you're not seeing the prompt haha
Hi,
So in theory Decker shouldn't crash, even if you write something that doesn't work. And the things not saving sounds like an issue. In the interests of figuring this out so it can be fixed for others, can you let me know what you'd put into Dialogizer that crashed things, so I can try and see if I can recreate it? And also, what sort of things weren't saving?
Also, just want to mention this was a really lovely project that turned out really well, great work!!!
And from that season finale, a reboot! Which took less time than I expected, I think because I felt inspired by the less weight! https://zine.milliesquilly.com/ex/ex1.html





















