Temporarily disabling an extension

Is it possible to “turn off” an extension at a point in my game, and reactivate it later on?

No.

I think you’ll have to adjust things at the level of individual rules or specific rulebooks. For now you might use a procedural rule to tell the game to ignore certain rules or rulebooks, during a particular part of the game.

Well, yeah, that’s what I meant to say.

tl;dr

I’m thinking maybe I could modify the extension code to add ‘when’ clauses, then use a flag to activate/deactivate the code. Are procedural rules strictly necessary?

Procedural rules are never necessary (and they’re going away eventually). You can always modify rules with “when” clauses, as you note.

Probably it depends on the extension. Which extension are you using?

To see how it can depend, let’s say you’re using Assorted Text Generation by Emily Short, which defines a bunch of text substitutions like “[in-on the item]” (which is “[in the item]” if the item is a container and “[on the item]” if it isn’t) or “[ordinal of N]” (which writes “first,” “second,” etc. depending on what number N is). It wouldn’t make any sense to temporarily disable this – what that would mean is that suddenly a bunch of the text substitutions in your code would be invalid and should produce compile errors, but of course by then they’re already compiled.

Whereas I can see what it would mean to turn off something like Disambiguation Control – you’d go back to the normal disambiguation behavior for a while. (Except I’m sure you can’t do this, because Disambiguation Control rips out a bunch of the parser and replaces it with other stuff; you’d have to be some kind of I6 wizard to make a toggleable version, where “wizard” at least means “someone who understands a little bit of I6.”)

So yeah, it seems like it’d depend on the extension.

Thanks for the advice, all. I’m being purposefully vague as to the extension I have in mind, but if I run into trouble I’ll let you know. I suppose the best solution would be to try and avoid the extension and try to code the required behaviour myself… Eep.