Revision 12664 marks the creation methods as permissible. I also made KOLHSRequest set the appropriate fields to attempt to make the correct shop.php request, although I short-circuit the actual call to shop.php in the run() method. When I commented that out, I got this:
Requesting: http://www.kingdomofloathing.com/shop.php?whichshop=kolhs_art&action=buyitem&whichrow=163&quantity=2
Retrieved: http://www.kingdomofloathing.com/shop.php?whichshop=kolhs_art&action=buyitem&whichrow=163&quantity=2
response text says: Students of KOLHS only.
My session log says:
Trade 8 eraser nubbin
so it did recognize the URL submitted. And it did not deduct the (pseudo) ingredients from my inventory.
(I say pseudo because I am not in a KOLHS run. I added a new command to add things to my inventory.
Code:
test result You acquire <b>8 eraser nubbin</b>
Quick and dirty, but when I did that, the Creatables tab said I could make 2 giant erasers.)
Anecdotally (on this thread, even), once you make your way into the appropriate shop.php, you can continue submitting URLs to keep making stuff. It might be worthwhile to remove the short-circuit in KOLHSRequest.run and actually allow people to attempt to make things via the Creatable menu, although that (probably) won't work if you haven't visited the shop appropriately. I expect that KOLHSRequest.processResults could check for various errors in the responseText and tell you why creation failed, as appropriate.