There are a number of commands you can give to directly to the Savitar application which don't get sent to the remote world, they're "local" to Savitar. They allow you to accomplish many useful tasks.
To distinquish Savitar local commands from commands you send to your server, local commands are prefixed with the your world's command marker character(s). The default Savitar command marker is '##'. An example of this would be typing "add macro" would send "add macro" to your server, giving you unexpected results, whereas type "##add macro" would direct Savitar to handle the command locally, not passing it on to the server.
The following is a description of Savitar's local commands: Each command is listed in bold followed by a statement of its syntax, a description of the command, and example usage(s).
add macro
syntax: add macro <XML STATEMENTS>
Allows you to add a macro to the active world.
Example:
##add macro <MACRO NAME="MACRO_UP" KEY="KP+"><VALUE>up</VALUE></MACRO>
add trigger
syntax: add trigger <XML STATEMENTS>
Allows you to add a trigger to the active world.
Example:
##add trigger <TRIGGER NAME="http://" FLAGS="matchToEndOfWord" FACE="underline" COLOR="#0000FF" AUDIO="silent" SOUND="ah choo" VOICE="Zarvox"><WORDEND>" </WORDEND><SAY>Click on the speaker icon to hear this.</SAY></TRIGGER>
add world
syntax: add world <XML STATEMENTS>
Allows you to add a world to the World Picker.
Example:
##add world <WORLD NAME=Ancient Anguish" URL="telnet://ancient.anguish.org:2222" FLAGS="ansi" CMDMARKER="&cmdmark;" VARMARKER="&varmark;" WILDMARKER="&wildmark;" FORECOLOR="#FFFFFF" BACKCOLOR="#000000" FONT="Monaco" FONTSIZE="9" RESOLUTION="80x24x8" POSITION="50,50" ZOOMED="FALSE" OUTPUTMAX="102400" OUTPUTMIN="25600" RETRYSECS="30"><LOGOFFCMD>quit</LOGOFFCMD></WORLD>
broadcast
syntax: broadcast <input>
The broadcast command allows you to send <input> to all active world sessions simultaneously, thus allowing you to type <input> one time in one window and all connections will get the input.
Example:
##broadcast say Hey everybody! Its a girl!!!
close status
syntax: close status input | output
This command closes an input or output status pane. See the command 'set status' for info on how to open and set status panes.
Examples:
##close status input
##close status output
close window
syntax: close window <"window-name">
Allows you to close a given window. If the window in question is a world window, this will close the connection. Issuing this command a second time will then close the window.
Examples:
##close window "Sample Text Window"
##close window "Sample World Window"
disable trigger
syntax: disable trigger <"trigger name">
Allows you to disable a given trigger.
Example:
##disable trigger "http://"
dump colors
syntax: dump colors
Allows you to list their ANSI colors to the active world window's output pane.
Example:
##dump colors
dump macros
syntax: dump macros
Allows you to list their universal macros and the active world's world-specific macros to the active world window's output pane.
Example:
##dump macros
dump triggers
syntax: dump triggers
Allows you to list their universal triggers and the active world's world-specific triggers to the active world window's output pane.
Example:
##dump triggers
dump worlds
syntax: dump worlds
Allows you to list the current worlds (from the World Picker) to the active world window's output pane.
Example:
##dump worlds
enable trigger
syntax: enable trigger <"trigger-name">
Allows you to enable a given trigger.
Example:
##enable trigger "http://"
help
syntax: help [<local-command>]
Gives basic usage information for all local commands or the specified command.
Examples:
##help
##help dump triggers
kill
syntax: kill <taskID> | all
Allows you to kill-off a task created by the ##task command. Specifying 'all' will kill all tasks. The <taskID> for a task is found from the output of ##show tasks
Examples:
##kill 3
##kill all
open text window
syntax: open text window "window-name" [for file ":filepath-in-app-folder"] | ["full-filepath"] [at=(horiz,vert)] [size=(width,height) | size=(colsxrows)]
Allows a user to open a text window (with or without loading a given text file to display in it), and also allows them to control where and how large to open it.
Examples:
##open text window "Sample Text Window"
##open text window "Test" for file ":test"
##open text window "Test 2" for file "HD:Text Files:test2"
##open text window "Location/Size Control" at 50,50 size=(20x20)
play
syntax: play "<sound-file-name>"
Allows you to play a sound file (which should be placed in a "Sounds" folder within your Savitar folder.
Example:
##play "boing.wav"
regex
syntax: regex "<text>" "regular-expression"
Allows you to test a regular expression and will list macros it would set.
Example:
##regex "Well... hi Bob, did you find it?" "hi +\b(.*), +\b(.*)$"
regex "Well... hi Bob, did you find it?" "hi +\b(.*), +\b(.*)$" ==> success
%%0 ="hi Bob, did you find it?"
%%1 ="Bob"
%%2 ="did you find it?"
select window
syntax: select window "<window-name>"
Allows you to bring a given window to the front.
Example:
##select window "Sample Text Window"
send window
syntax: send window <"window-name"> <text-message>
Allows you to send a given snippet of text to a given text window.
Example:
##send window "Sample Text Window" Here is some text.
set ansi
syntax: set ansi [on|off]
Allows you to turn ANSI interpretation on/off for the active window.
Example:
##set ansi on
##set ansi off
set autoclose
syntax: set autoclose [on|off]
Allows you to determine whether the active world window will prompt for reconnect (off) or simply close automatically (on).
Example:
##set autoclose on
##set autoclose off
set cronly
Syntax: cronly [on|off]
Allows you to determine whether the active world will postfix each line with a carriage return & linefeed (off) or a carriage return only (on).
Example:
##set cronly on
##set cronly off
set echo
syntax: set echo [on|off]
Allows you to determine whether the active world will echo input.
Example:
##set echo on
##set echo off
set html
syntax: set html [on|off]
Allows you to turn HTML interpretation on/off for the active window.
Example:
##set html on
##set html off
set macro
syntax: set macro "<macro-name>" <value>
Allows you to set a given macro to a given value.
Example:
##set macro "Test" test
set marker
syntax: set marker <command | variable | wildcard> value
Allows you to set the command, variable, or wildcard marker for the active world.
Examples:
##set marker command ##
##set marker variable %%
##set marker wild $$
set status
syntax: set status output | input <message>
This will display a <message> on the status panel at the top of the output pane or input pane (specified by either specifying 'output' or 'input'. If the pane isn't currently there, this command will open the pane first and then display the message. Subsequent 'set status' commands will replace the pane's current contents with the new contents.
Examples:
##set status output Hello world.
##set status input My hitpoints are at %%hitpoints. I have %%gold gold pieces remaining.
show tasks
syntax: show tasks
Displays a list of currently running tasks.
Example:
##show task
task
syntax: task <frequency> <command>
Allows you to submit a <command> to be repeated every <frequency> seconds.
Examples:
##task 300 date
##task 60 ##upload my harddisk:savitar:scripts:refresh.txt
tell application
syntax: tell application "<application-name>" to <AppleScript command line>
Allows you to send Applescript commands to a given application.
Example:
##tell application "Finder" to open folder "Savitar™ 1.1 Ä" of folder "Internet & Networking" of startup disk
upload
syntax: upload <file>
Allows you to upload the contents of a text file <file> to the connect world. You have to give a full or partial Mac Classic OS pathname. Text uploaded to the world is not parsed or interpreted by Savitar in any way.
Example:
##upload my harddisk:savitar:scripts:refresh.txt
wait
syntax: [wait=n]
Allows you to have Savitar pause n ticks (tick=1/60 second) before sending a given command. This is useful if you want a trigger send a given reply after a given amount of time.
Example:
##[wait=120]wave