You must specify the name of an existing timer, and a timer option from the list given for GetTimerOption. These are the same names as used in the XML world files for timer options.
For a detailed description about the meanings of the fields, see AddTimer.
Note that you can neither get nor set the "name" field. It is listed below for completeness in viewing timers copied to the clipboard or in world files and plugins. You already know the name when getting the timer option (it is TimerName), and this function is provided to modify existing timers, not rename them. To change the name of a timer use ExportXML, modify the XML, and then ImportXML.
If SetTimerOption is called from within a plugin, the timers for the current plugin are used, not the "global" MUSHclient timers.
For numeric options (such as "hour") the supplied string will be converted to a number. It is an error if the string does not consist of digits (0 to 9). For the "user" option an optional leading sign is accepted.
For boolean options (such as "enabled") the supplied string may be:
"y", "Y", or "1" for true
"n", "N", or "0" for false
Also if you are using Lua you can supply simply true or false.
The "offset" options are the time offset within the interval. In other words, if the interval is an hour, but the offset is 45 minutes, then the timer fires 15 minutes into the hour (it still fires every hour, but 45 minutes is subtracted from the fire time). This lets you stagger timer fire times.
The various option names are:
"active_closed": y/n - timer is active when world closed
"at_time": y/n - y=fire *at* time of day, otherwise every interval
"enabled": y/n - timer is enabled
"group": (string - group name)
"hour": hour to fire at (or every hour)
"minute": minute to fire at (or every minute)
"offset_hour": offset hour - fire at time *plus* this
"offset_minute": offset minute - fire at time *plus* this
"offset_second": offset second - fire at time *plus* this
"omit_from_log": y/n - omit timer from log file
"omit_from_output": y/n - omit timer output from log file
"one_shot": y/n - delete after firing
"script": (string - name of function to call)
"second": second to fire at (or every second)
"send": (multi-line string - what to send)
"send_to": 0 - 13 - "send to" location (see below)
"user": -2147483647 to 2147483647 - user-defined number
"variable": (string - name of variable to send to)
Send-to locations
"0" - send to MUD
"1" - put in command window
"2" - display in output window
"3" - put in status line
"4" - new notepad
"5" - append to notepad
"6" - put in log file
"7" - replace notepad
"8" - queue it
"9" - set a variable
"10" - re-parse as command
"11" - send to MUD as speedwalk
"12" - send to script engine
"13" - send without queuing
"14" - send to script engine - after omitting from output
The "send_to" field can be specified using the "sendto" table in the Lua global address space, as follows:
sendto.world = 0
sendto.command = 1
sendto.output = 2
sendto.status = 3
sendto.notepad = 4
sendto.notepadappend = 5
sendto.logfile = 6
sendto.notepadreplace = 7
sendto.commandqueue = 8
sendto.variable = 9
sendto.execute = 10
sendto.speedwalk = 11
sendto.script = 12
sendto.immediate = 13
sendto.scriptafteromit = 14
You can use true, false or nil for boolean options.
Returns
eInvalidObjectLabel: The timer name is not valid
eTimeInvalid: Time is out of range (hours not 0 to 23, minutes/seconds not 0-59)
eScriptNameNotLocated: The script name cannot be located in the script file
eBadRegularExpression: The regular expression could not be evaluated
ePluginCannotSetOption: The option is marked as non-settable (in a plugin or not)
eOK: set OK