Okay, so this version has support for the 3 new chocolates on the normal fancy counter, as well as turning GET_CHEF and GET_BARTENDER into ints by default. It checks for true first, setting them to 5k and 30k if they're set as true. If set as false, it uses 0. Otherwise, it uses the value as an int. This is a bit slower (3 checks instead of 1) but means that users won't have their values changed without their permission and won't see error messages for failed to_int checks. If you've set your get to -1, it will use 999999 instead, as you're telling it that money is no object, but we really don't want to mess you up if something goes REALLY nuts with the economy, so...
Edit: Checked it and zlib is too smart for me... when it runs the setvar, it normalizes, like so:
> seatdrink
The string "true" is not an integer; returning 0 (zlib.ash, line 65)
The string "true" is not an integer; returning 0 (zlib.ash, line 65)
ZLib setting eatdrink_getChef normalized: 'true' => '0'
The string "true" is not an integer; returning 0 (zlib.ash, line 65)
That means we can't actually convert in place as easily. On a 'positive' note, it means that the default won't cost people meat... but...
Edit2: Okay, checking if chef/bartender are true before we run the setvar and if so, setting them to the 5k/30k values. This works silently, because we're hitting it before the type check. If your values are currently set to false, it will visibly change as above, but normalize to 0, which is where we'd set it anyways. May as well not waste people's normal execution times with 2 additional checks when one will do. Tested and this seems to work properly with true/false/deleted/existing.
Edit3: By the way, all the edits except for this one happened before posting. But they did turn around the direction of the post, so... edit!