I’m trying to make a RULES command, and Inform won’t let me.
Understand the command "rules1" as something new. Understand "rules1" as rules1ing. Rules1ing is an action applying to nothing.
Understand "rules" as rules1ing.
Carry out rules1ing:
say "List rules here.".
Error message:
rules is a built-in Inform testing verb, which means it is reserved for Inform's own use and can't be used for ordinary play purposes.
I suppose I can just make a different command, but it bothers me to just not be able to do this. Is there a way around this, or should I just go with GUIDELINES or REGULATIONS?
I use it all the time when coding and debugging. Turning it off for me would be about as helpful as turning my screen off.
If you want to use it in your game because (for example) you have some game-within-a-game element, or you just think that your players are likely to try it in some situation, I would create a different command for that and leave rules as it is for the debug build. You can always add the “rules” synonym for your custom action before release.
RULES is disabled when you compile for release so it won’t have any direct impact on the game, other than you not being able to use it in the interim which it sounds like you don’t do - personally I find it such a useful command while debugging that I’d be very loath to part with it, though!
I see. I just tried it in 6M62 and got the same error. The code works in 10.1.2.
Any reason why you might not be using the latest version. (Like maybe this is a WIP that was started in an older version and is now too big for you to want to risk upgrading?) Note that the new version allows you to compile to previous versions if needed.
The debugging commands aren’t conventional commands; they’re weird special cases. You can’t replace them in 6M62, at least not if you’re compiling not for release. You probably can if you’re compiling for release; I’m not positive.
But in v10 you can just understand "rules" as new-actioning and it works. The rules debugging command automatically becomes !rules instead.
understand the command "rules" as something new is superfluous. It compiles without error just like understand the command "any-garbage-string" as something new compiles without error. I7’s “thought process” is: “does it contradict anything to say that this is meaningless? Nope, let’s move on”, not “the author may have made a typo or is otherwise confused about something, I should give them a warning”.