Since I’ve been posting a lot of lengthy code to the bazaar, I’ve felt like I should try to find a way to tidy up so people have an easier time finding things they need. So I’ll be using this post as an index to all of my other contraptions from now on! If you like the new banner, you can create your own using the ‘bannerFactory’ contraption below. ^^
bannerFactory

%%WGT0{"w":[{"name":"bannerFactory","type":"contraption","size":[208,144],"pos":[160,112],"pattern":33,"show":"invert","def":"bannerFactory","widgets":{"inz":{},"outz":{},"savez":{},"rez":{}}}],"d":{"bannerFactory":{"name":"bannerFactory","size":[208,144],"margin":[0,0,0,0],"description":"Tiny, shaded banner generator. Uses widget.show and widget.pattern to render.\n\nIf widget.show is \"inverted\", the outline is white, and \"transparent\" will draw the outline using the pattern instead.","version":1,"script":"on view do\n bannerz[]\nend\n\non bannerz do\n outz.clear[].text[inz.value (0,0),outz.size \"center\"]\n txt:outz.copy[]\n c:-1,0,1\n each v in c\n each k in c\n outz.paste[txt v,k 1]\n end\n end\n oc:47\n if card.show=\"invert\" oc:32 elseif card.show=\"transparent\" oc:card.pattern end\n md:() dict ()\n each i in ((range 47)+1)\n md[i]:oc\n end\n outz.paste[outz.copy[].map[md]].paste[txt 0,0 1]\n outz.paste[outz.copy[] 0,-1 1]\nend\n\non savez do\n sz:-1 drop rez.text\n b:outz.copy[].bounds\n write[outz.copy[b.pos b.size].scale[\"%i\" parse sz]]\nend","image":"%%IMG3ANAAkAbAgHBILBqPyKRyyWw6n9CodEqtWq/YrHbLlYK+XyEYHBiHzaCyWT02otnkt3w9b3fveGtanN6Ly2qAfX2AQ4SGbkSHf36CioWMj4OQeZWWS42EZ4WakX6bm0Wfmp1tZ6ClnYiXrK2PjpmOsJ5xho1/gZSkYbKCqoGmrsKssZOksL/IlLifwLqRuLS9y8PVW3VxdNqma6JkfNx233Cn4ePW6Onq6+zt7u/w8UIG9PX29/j5+vv8/f7/AAMKHEiwoMB5BhMqXMiwocOHAxFCnEixosWLCSVi3Mixo8eFGj+KHElSZMiSKFOqBBkgn7yXMPHgO2kgps2bVma21Imzp88lOl3+HEp0SFCeRZPiPHpPqdObTO09nfoyaj2qWN9ZpUegq9evYMOKHUu2rNmzaNOqXcu2rVuvWw28nUu3rt27ePOCjau3r9+/gAOX5Su4sOHDiM8STsy4seO+ix9LnkxZcdOd9ypr3rw5MufPoA17Dk26NN7RplOrXot6tevXYVvDnu1aNu3bpW3j3s1ZN+/fk30DH85YOPHjhY0jX+5XOfPnd51Dn/5WOvXraq1j3z74cj7u4O1qD0+ewPjy4M+j365+/fX27qfDj/98Pv3l9u8fz69/eNysAK7zX4AEVjNggQiycmCCDMrkHVINRqjFghJWmNODl1moIRUUbuhhEx1+KCIScTVg4okopqjiiiy26OKLMMYo44w01mjjjSeWiOOOPPbo449ABomijkIWaeSRSCbJIpFKNunkk1C6yGSUVFZpZZBTXqnlllxKiaE9XYYppphZjmnmmUqWieaabPqoZptwxinjm3LWaeeQX9Zz55584ikVZmD2KaiddA5qaJiFHqrolYku6iiUjT4qaZKRTmqpkJVeqmmPmW7qqY2dfipqjKGOauqSedJz6qo8lsoqq66+emqsso5Ka62f3orrprruemmvvk4KbLCPDkvsosYee2iyyg7KbLN9PgvtntJOS2iqBli7a7Xaxsltt21+C+6a4o57Zrnmjoluuohiy+6s7r5ra7zy5kpvvbzei++v+u4rbL/+FgtwwMgOTPCyBh/sbMIKR8tww9Riu9LEFFcsscUYZ0wSTRp37DFGHH8s8sgMhUzyySgDZHLKLLf8p8swx3yxzDSLvHLNOGN8c848r7Rzz0BvDGjQRPs8dNFIC5300iX9zPTTDTkN9dQGSU311QFZjfXW/GjN9dczgy32Pl6P/XXZZm894tpaBAE=","attributes":{"name":[],"label":[],"type":[]},"widgets":{"inz":{"type":"field","size":[192,32],"pos":[8,24],"volatile":1,"script":"on change val do\n bannerz[]\nend","align":"center"},"outz":{"type":"canvas","size":[192,56],"pos":[8,64],"locked":1,"volatile":1,"pattern":47,"show":"transparent","scale":1},"savez":{"type":"button","size":[160,16],"pos":[8,120],"script":"on click do\n savez[]\nend","font":"body","show":"invert","text":"save"},"rez":{"type":"button","size":[32,16],"pos":[168,120],"script":"on click do\n if (me.text=\"1x\")\n me.text:\"2x\"\n elseif (me.text=\"2x\")\n me.text:\"4x\"\n else\n me.text:\"1x\"\n end\nend","font":"mono","show":"invert","text":"2x"}}}}}
RGB/Hex Adjuster

RGB/Hex color adjusting contraption I made for a small project. :3
%%WGT0{"w":[{"name":"RGB/Hex Adjuster","type":"contraption","size":[162,79],"pos":[140,180],"def":"RGB/HEX Adjuster","widgets":{"rs":{},"gs":{},"p":{},"bs":{},"rgb":{},"c":{},"hex":{},"temp":{}}}],"d":{"RGB/HEX Adjuster":{"name":"RGB/HEX Adjuster","size":[162,79],"margin":[0,0,0,0],"description":"Adjust color patterns by using their rgb and hex values.","version":2,"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 if !temp.text\n patterns[p.pattern]:\"%h\" parse convertRgbz[x]\n setz[p.pattern]\n end\nend\non get_hex do hex.text end\non set_hex x do \n if !temp.text\n patterns[p.pattern]:\"%h\" parse x\n setz[p.pattern]\n end\nend\n\non setz x do\n previewz[x]\n h:hexz[x]\n v:rgbz[h]\n hex.text: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 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":"%%IMG3AKIATwbAgHBILBqPyKRyyWw6n9CoEkCtWq/YrHbL7Xq/4LB4nBWSz+i0es3+mtvwuHzOftPv+Dzeru/7/2F8gIOEg4KFiIlzh4qNjmeMj5KTW5GUl5eWmJuOmpyfhZ6go36ipKd3UqqrrK2ur1EgsrO0tba3uLm6u7y9vr/AwbdCwsXGx8jJyr3EtbDP0NGy0VDTAbYBqIrXINmh1tjaidzehOTctOXihtOI593N6ut/5O7gxNfy83313/D/+fax62YPYDyBgPqZu5ePIMJS7fw1S/cQosOF/5xV5BcR48RZ+jbKUTjwY0eRdEgmBOeMmsuXT06uzLisps2b4SSiAwmzp08jMumxpIgyVVCLJi8WHXmUI02QS1M21fNOY1SmSmfiG5L16hqVQg1C9QoHLNJ8DUOShTQ1zzsiXdeyjet0Kz65ddruGToWbxqzdXfq9dsFMFW+gwlXSrwIMbyfkHsyxpoUp+XLwtQefmotsmdqk+NUJaqYjGG3jjWX5nJ6L2e6q1mHLps69pjWRg3itm1ld2OxAXmD8U0ZLXHex2kDhy38SvI2bw829/I872vV06lU/1o7u2zmrpNiz75dzWien9PD6qzeMeb38OMbqyy/vv376NXr36/+05Hp8cymlYBLcWWNf90kOJ5cAYK3jVXCIeGfEQCm5eA4CRJYFD4KIihdhIItWFBfyP3HiYkgQogJhxeuBdcQHj5WoYqZ0BibhCdS2Bx/PPYYTRA=","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"},"c":{"type":"canvas","size":[160,14],"pos":[1,1],"locked":1,"script":"on sendz x do\n temp.text:x[1]\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 temp.text:nil\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,"scrollbar":1,"style":"plain","align":"center"},"temp":{"type":"field","size":[8,8],"pos":[165,1],"locked":1,"volatile":1,"script":"on change val do\n \nend","show":"none"}}}}}



























