Yeah, that might be more trouble than it's worth. If you really wanted to, maybe the new state object capability of scriptcards could help. Main macro outputs a card with buttons for each spell level (or a single one if you want query) and sets the roll value in the state object to 0. The buttons call another scriptcard macro (one of 9, or a single one if you want a query) that attempts to add one slot of the appropriate spell level. It would read the "roll" variable in the state object and see if there is "room" to add the desired slot. If so, it would call ChatSetAttr, else it would output an error msg. The reason to use the chat button in the initial macro instead of querying directly is so you can hit it more than once to keep adding slots and adding to the running total of slots gained in the state object. Again, the initial macro would reset that to 0. Like I said, it may be more trouble than it's worth. Any other normal macro is going to have problems due to the number of possibilities for arcane recovery at high level.