XML Script Builder
inspired by, more or less a sequel to: Block XML Generator
welp, it’s been long overdue for me to release a new project. so try this out! tell me if there is anything you wanted to create but couldn’t/something I forgot to implement or any bugs in the project (feedback appreciated).
of course, all of it uses no JS function{} blocks!
oh, and here’s one thing you can make with it:
check the examples in the project for more!
finally, post your craziest creations below!
Update 1.1.0 (20241230): added local block support (technically it was already there but there was a typo); added scripted menu support; made examples better; added the autolambda input (ring input) EDIT (20250114) literally what does that input do
update 1.1.1 (20241231)
added menu options for the options slot in the (slot type [ v] readonly <> static <> initial (1 :: #5353d4) default [] options [ v] :: #6464ff) block
update 1.1.2 (2025
)
added random stuff to see on the project page
update 1.1.3 (20250102)
combined the slot type blocks; made the menu in the input type block make more sense
update 1.1.4 (20250104)
added a ‘cursed’ examples section
update 1.1.5 (20250108)
added a “other input [ V]” block containing the “empty” option (now moved here) and a “⚑” option.
Update 1.2.0 (20250109): added COLOR support!!!! (and made the block labels make more sense)
update 1.2.1 (20250111)
fixed the xml utilities scene example; added <dev version?> and <current version?> blocks there
update 1.2.2 (20250112)
fixed the xml utilities scene, added <release candidate?> there, added a block var values block that does nothing necessary in main scene.
update 1.2.3 (20250119)
simplified the block var declaration and translation definitions, also made it so that you could type in translations directly rather than using a block constructor.
update 1.2.4 (20250307)
added wish frames (see project examples on how to use them)
EDIT (20260228): they are now “expressions”
Update 1.3.0 (20250308): redid most of the blocks (changed how slots work, changed how block vars work, changed how the main constructor works, deleted lots of now unnecessary blocks, fixed a TON of glitches (scripted menu errors, messed up implicit vs explicit slot fill in in HOFs used)
1.3.0b (20250308)
made the slot type menu a scripted menu, so that it would be automagically updated s
Update 1.4.0 (20250308): added support for hybrid block constructor and snap blocks to load xml, this may not sound like much but it really is.
1.4.1 (20250309)
made changes to define block constructors (labels are now declared with an upvar), combined blocks, added new (when slot [ v] signals [ V]{ ... }::control block so that people can use the when slot [ V] signals [ V] ... block in xml constructing (that block cannot be placed in the scripting area normally, so this is a solution that lets people use xml-block hybrid features)
1.4.2 (20250415)
fixed the make new categories block in the xml utilities scene
1.4.3 (20250704)
![]()
made the dropdown in the block w/inputs block not go out of sync when there are empty custom categories, made the scripts block not be static
1.4.4 (20250705)
Added a new
block in the xml utilities scene
1.4.5 (20250928)
tiny change - made the snap script → xml thing from 1.4.0 work with new first-class colors
oh my god → ← this works what there are arrows since when omg
added a new upvar in the block defining block that shows the blockspec of the defined block(this will make things way easier)!
Update 1.5.0 (20251105): started preparation for Snap v11.1 (EDIT: OFFICIALLY Snap v12 now), by renaming the blocks with the xml internal name Wish Frame to Expression which is now the official name, also trying to figure out how the new useful variadic dropdowns work in xml and even in normal snap)
##1.5.1 (20260227-28)
ADT support mostly, yay!
##1.5.2 (20260228)
updated group slot types to have variadic menus
##1.5.3 (20260308)
made the slot type block’s final menu be scripted (so that I don’t have to update it constantly) and made the menu be on a newline bcs it’s way too large otherwise unless the input is empty
##1.5.3b (20260308)
partially reworked the block definitor block and block block by making some of the inputs unevaluated for better upvar support of the block definitor block’s block upvar, which has been integrated into the block label text at the block’s top so that the block takes up less space, new to do block for new to do sprite to organize features in development, not for end users but take a peek to see what’s coming
##1.5.4 (20260312)
started making a tutorial for how to use the blocks, combined the 2 scenes into one to make things easier to organize (although it seems counterintuitive)
##1.5.5 (20260313)
continued making a tutorial for how to use the blocks, in the primitive/custom block block there was an error in the scripted edited thing in which it guesses the number of inputs of the block because I made the spec slot unevaluated earlier and so it was passing in a lambda instead of text, to fix this i simply used a call block
Me reading the forums of 2025, in 2026:
whoops!
