Skip to main content

Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
TagsGame Engines

Missooni

10
Posts
8
Followers
2
Following
A member registered Sep 05, 2025 · View creator page →

Creator of

Recent community posts

Released a hotfix this morning to address a few things I missed after the update - some UI elements were layered incorrectly or nonfunctional.

Thank you for mentioning me in your zine, making awesome stuff, and helping other people feel seen!  

Yayy! Thank you so much mini-Phinxel.

The first palette is bundled in all Decker projects by default. I made the 'vivid' and 'pastel' palettes by tinting colors from that original set of sixteen, I'm really happy you like them.

The palette swapping is a feature from Decker itself - it's so cool!

Added in the most recent version! Thank you for the feedback. ^^

(1 edit)

Putting this line of code on the 'click' or 'release' event of a draggable canvas will copy the card background behind the canvas when fired. 

me.paste[me.parent.image.copy[me.pos me.size]]

(6 edits)

Another contraption! This one creates a pair of (configurable) canvases to magnify certain parts of your card. You can drag both of them around as you see fit.
Resize it to an area you'd like to use it on, then drag the small dashed square around to use the magnifying lens. This can help mobile users or people who are visually impaired see small components in your decks.


%%WGT0{"w":[{"name":"Magnifying Field","type":"contraption","size":[408,272],"pos":[39,43],"show":"transparent","def":"Magnifying Field","widgets":{"z":{"size":[116,116]},"l":{"size":[60,60],"pos":[122,3],"pattern":0},"zoom":{"size":[32,13],"pos":[368,-19]},"scale":{"size":[33,13],"pos":[322,-19],"value":"60"}}}],"d":{"Magnifying Field":{"name":"Magnifying Field","size":[162,106],"resizable":1,"margin":[0,0,0,0],"description":"Resizable contraption that displays large, zoomed in view within a square lens.","version":1,"script":"on set_scale x do scale.text:x end\non get_scale do scale.text end\non set_zoom x do zoom.text:x end\non get_zoom do zoom.text end\n\non view do\n card.show:\"transparent\"\n l.size:scale.text,scale.text\n l.clear[]\n l.pattern:23\n l.brush:0\n l.box[0,0 l.size]\n l.pattern:0\n z.scale:zoom.text\n z.size:(l.size-2)*zoom.text\n z.pos:3,3\n l.pos:(z.size[0]+6),3\nend\n\non secure x do\n mx:card.size-x.size\n if x.pos[0]<0 x.pos:0,x.pos[1] end\n if x.pos[1]<0 x.pos:x.pos[0],0 end\n if x.pos[0]>mx[0] x.pos:mx[0],x.pos[1] end\n if x.pos[1]>mx[1] x.pos:x.pos[0],mx[1] end\nend","attributes":{"name":["scale","zoom"],"label":["scale","zoom"],"type":["number","number"]},"widgets":{"z":{"type":"canvas","size":[96,96],"pos":[3,3],"volatile":1,"script":"on click pos do\n \nend\n\non drag pos do\n secure[me]\nend\n\non release pos do\n \nend","draggable":1,"scale":2},"l":{"type":"canvas","size":[50,50],"pos":[102,3],"locked":1,"volatile":1,"script":"on click pos do\n \nend\n\non drag pos do\n secure[me]\n z.clear[]\n z.paste[app.render[deck.card].copy[card.pos+me.pos+1 me.size-2]]\nend\n\non release pos do\n \nend","pattern":23,"show":"transparent","border":0,"draggable":1,"scale":1},"zoom":{"type":"field","size":[13,13],"pos":[146,-19],"locked":1,"show":"none","value":"2"},"scale":{"type":"field","size":[13,13],"pos":[128,-19],"locked":1,"show":"none","value":"50"}}}}}

That means so much to me - your work is absolutely amazing, thank you!

(1 edit)

Using  alert[] with type "choose" can be used to view (and navigate to) all available cards in a deck (since deck.cards returns a dictionary). This can be helpful for restricting navigation in a locked deck. 

 go[alert["Go to card:" "choose" deck.cards] "BoxIn"]


(1 edit)

RGB/Hex color adjusting contraption I made for a small project. :3

%%WGT0{"w":[{"name":"Color Selector","type":"contraption","size":[162,79],"pos":[177,117],"def":"Color Selector","widgets":{"rs":{},"gs":{},"p":{},"bs":{},"rgb":{},"canvas1":{},"hex":{}}}],"d":{"Color Selector":{"name":"Color Selector","size":[162,79],"margin":[0,0,0,0],"description":"Adjust color patterns by using their rgb and hex values.","version":1,"script":"on get_s do p.pattern end\non set_s x do setz[x] end\non get_rgb do rgb.text end\non set_rgb x do \n patterns[p.pattern]:\"%h\" parse convertRgbz[x]\n setz[p.pattern]\nend\non get_hex do hex.text end\non set_hex x do \n patterns[p.pattern]:\"%h\" parse x\n setz[p.pattern]\nend\n\non setz x do\n previewz[x]\n h:hexz[x]\n hex.text:h\n v:rgbz[h]\n rgb.text:v\n v:\",\" split v\n rs.value:v[0]\n gs.value:v[1]\n bs.value:v[2]\nend\n\non sliderz x y do\n c:(\"r\",\"g\",\"b\") dict (rs.value,gs.value,bs.value)\n c[y]:x\n c:\",\" fuse c\n rgb.text:c\n hex.text:convertRgbz[c]\n patterns[p.pattern]:\"%h\" parse hex.text\nend\n\non previewz x do\n p.clear\n p.pattern:x\n p.fill[]\nend\n\non hexz x do\n r:patterns[x]\n r:\"%h\" format r\n r:\"\" split r\n if !r[2] r:\"00\",r end\n if !r[4] r:\"00\",r end\n r:\"\" fuse r\nend\n\non convertRgbz x do\n  d:(10,11,12,13,14,15) dict (\"a\",\"b\",\"c\",\"d\",\"e\",\"f\")\n show[d]\n x:\",\" split x\n r:()\n each v i in x\n  i1:floor v/16\n  i2:((v/16)-i1)*16\n  if i1>9 i1:d[i1] end\n  if i2>9 i2:d[i2] end\n  r:r,i1,i2\n end\n \"\" fuse r\nend\n\non rgbz x do\n d:\"abcdef\" dict 10,11,12,13,14,15\n r:()\n each v i in 2 window \"\" split x\n  each v2 i2 in v\n   if d[v2]\n    v[i2]:d[v2]\n   end\n   v[i2]+0\n   r[i]:(v[0]*16)+v[1]\n  end\n end\n r:\",\" fuse r\nend","image":"%%IMG2AKIATwGjAKABAgCgAQIAoAECAKABAgCgAQIAoAECAKABAgCgAQIAoAECAKABAgCgAQIAoAECAKABAgCgAaQAoAECAKABAgCgAQIAoAECAKABAgCgAQIAAQEDAJwBAgABAQIAAQEBAJsBAgABAQIAAQEBAJsBAgABAQMAnAECAAEBAgABAQEAmwECAKABAgCgAQIAoAECAKABAgCgAQIAoAECAKABAgCgAQIAoAECAKABAgCgAQIAAQEEAJsBAgABAQIAnQECAAEBAgABAQEAmwECAAEBBACbAQIAAQEEAJsBAgCgAQIAoAECAKABAgCgAQIAoAECAKABAgCgAQIAoAECAKABAgCgAQIAAQEDAJwBAgABAQIAAQEBAJsBAgABAQMAnAECAAEBAgABAQEAmwECAAEBAwCcAQIAoAECAKABAgCgAQIAoAECAKABAgCgAQgAAQGhADgBBQBeAQEAAgEBAD0BAQBgAQIAAwEBADoBAQABAQEAXwEBAAIBAQCeAQYAOQEFAF4BAQABAQEAAQEBADsBAQBhAQEAAQEBAAEBAQA7AQIAYAEBAKEBBgA5AQUAXgEBAD4BAQABAQEAYAEDAAEBAgA6AQEAAQECAF4BAQChAagAOAEHAFwBAQ==","attributes":{"name":["s","rgb","hex"],"label":["selected","rgb","hex"],"type":["number","string","string"]},"widgets":{"rs":{"type":"slider","size":[106,14],"pos":[7,18],"volatile":1,"script":"on change val do\n sliderz[val \"r\"]\nend","font":"mono","interval":[0,255],"style":"bar"},"gs":{"type":"slider","size":[106,14],"pos":[7,33],"volatile":1,"script":"on change val do\n  sliderz[val \"g\"]\nend","font":"mono","interval":[0,255],"style":"bar"},"p":{"type":"canvas","size":[44,44],"pos":[115,18],"locked":1,"volatile":1,"pattern":47,"scale":1},"bs":{"type":"slider","size":[106,14],"pos":[7,48],"volatile":1,"script":"on change val do\n sliderz[val \"b\"]\nend","font":"mono","interval":[0,255],"style":"bar"},"rgb":{"type":"field","size":[94,15],"pos":[68,64],"volatile":1,"script":"on change val do\n set_rgb[val]\nend","font":"mono","border":1,"style":"plain","align":"center"},"canvas1":{"type":"canvas","size":[160,14],"pos":[1,1],"locked":1,"script":"on sendz x do\n c:me[x]\n if c=0 c:32\n elseif c=1 c:47\n end\n setz[c]\nend\n\non click pos do\n sendz[pos]\nend\n\non drag pos do\n sendz[pos]\nend\n\non release pos do\n \nend","border":0,"image":"%%IMG2AKAADgEUIRQkFCUUKBQpFCwULRQBFCEUJBQlFCgUKRQsFC0UARQhFCQUJRQoFCkULBQtFAEUIRQkFCUUKBQpFCwULRQBFCEUJBQlFCgUKRQsFC0UARQhFCQUJRQoFCkULBQtFAEUIRQkFCUUKBQpFCwULRQAFCIUIxQmFCcUKhQrFC4UABQiFCMUJhQnFCoUKxQuFAAUIhQjFCYUJxQqFCsULhQAFCIUIxQmFCcUKhQrFC4UABQiFCMUJhQnFCoUKxQuFAAUIhQjFCYUJxQqFCsULhQAFCIUIxQmFCcUKhQrFC4U","scale":1},"hex":{"type":"field","size":[57,15],"pos":[6,64],"volatile":1,"script":"on change val do\n set_hex[val]\nend","font":"mono","border":1,"style":"plain","align":"center"}}}}}