Yeah - I got the different clocks and everything - that's the reason I tought you had the object... Although - it'll only work with that object right now (not so hard to put in an array).
- Your wizardtemp's are there for a reason from what I saw - turning strings into numerics.
You asked me (very funny BTW

- I had a good chuckle when I woke up) what I meant by simplified... I'd say that all your code cheks for time-setting within the various limits (which can be changed via the object - nice touch!)... But That doesn't REALLY need to be there since I don't think quest supports '-' numbers (or even if so - just cut off the - easily using a one-line command), and the other reason is that in 1 second it'll be reset to 0:00:00 anyway.
Another simplification is moving all the time checking, and object updating into the "onchange" of the variables... Either that or put the variable names' in an array and scan through them, checking/setting them with one function - but I don't know if quest supports variable-variable name setting (ie "set <#variablename#; John>")...
The "timeset" function only displays the time - minor niggle with the naming there... The whole hourset/minuteset procedures could be simplified if instead of .minute or .second - you put them into an array (Alex - does an array work with status variables?)... [0] [1] [2]... That way you just pass "1" or "3" to the procedure and it comes up...
Another way is to put it all on one function and have;
if ($param(?) = 1) then set <var.minute; #whatever#>
if ($param(?) = 2) then set <var.second; #whatever#>
Instead of going through the same code 3 or 4 times.
Lastly the timer runs a procedure and what have you... This way of working seems really awkward for me to understand - just different brains I guess.
The advantage of moving the procedures into the "on change" part of the variables means - all you have to do with the timer is add one to the second variable. That saves coding a call to the procedure.
ALSO... That object idea is great - but it means all clocks have to be the same, unless you rework the code to add to the object properties instead of the variables (which I think you might have started out doing - as that's the only reason I see for not adding them to the variable's on change routine).
All in all the code's neat and tidy, quite readable etc. Nothing bad with the code itself... Just thought I'd explain how I'd go about it differently.