Command: Enter the command template here. This consists of normal text, which is what players must type to activate this command, plus variables. You can separate multiple commands using semicolons.
Insert text variable: Prompts you for a variable name, and then enters it with "#" characters surrounding it. Use text variables where players can type in any text.
Insert object variable: Prompts you for a variable name, and then enters it in the "#@...#" form. Use object variables where players must type in a valid object name.
Script: Specify the script to run when the player types this command.
Some examples:
You then need to specify some script to run when this command is typed in - click "Edit" to edit the script. From the script, you may want to compare the contents of any string variables in the command with something and specify what happens as a result - in the "detonate" example above, you might want to see if the "device" variable contains something that can be used to blow things up - you might see if the player has the object referred to by "#device#" and that this object has the property "explosive" (N.B. we don't check "#@device#", as this returns the displayed name - and to check for a property, we must always use the real name of the object, as it is known to Quest, rather than the displayed name of the object, as it is known to the player). Then you might want to see if the "thing" variable contains something sensible that it can be put under, and run some script that "explodes" this "thing"
Note that commands set up within a room take priority over commands set up for the entire game, and that these take priority over Quest's built-in commands. Commands at the top take priority over commands specified lower down. So, if you want to set up commands such as "read (anything)" and "read (anything) carefully", the more specific command should be higher up than the more general command.