Scripting for InstantPalace

      • Iptscrae Commands

        When scripting for InstantPalace, one must use a subset of the iptscrae commands available when scripting for Palace C-clients. Below is a list of the iptscrae commands that were either not implemented or were partially implemented for InstantPalace as of version 2.0.

        ADDLOOSEPROP
        ALARMEXEC - multiple alarms hinder performance
        CLEARLOOSEPROPS
        CLEARPROPS
        DATETIME - returns seconds since 1/1/1970
        DIMROOM
        DOFFPROP
        DONPROP
        DROPPROP
        EXIT
        GLOBALMSG
        GOTOURLFRAME
        HASPROP - returns FALSE always
        ISGOD - returns FALSE always
        ISGUEST - returns TRUE always
        ISWIZARD - returns FALSE always
        KILLUSER
        MACRO
        MIDILOOP
        MIDIPLAY
        MIDISTOP
        MOUSEPOS - returns 0,0 always
        NAKED
        NBRUSERPROPS - returns 0 always
        PRIVATEMSG
        REMOVEPROP
        SETALARM - multiple alarms hinder performance
        SETLOC
        SETPICLOC
        SETPROPS
        SHOWLOOSEPROPS
        SUSRMSG
        TOPPROP
        USERPROP - returns 0 always
        WHOCHAT - returns 0 always
        

        All painting commands were left off this list. InstantPalace can't see paint, and none of the painting commands were implemented.

      • SUSRMSG Workaround

        It is fairly common to have scripts that use SUSRMSG, especially at gates and server entry points. InstantPalace can't use this command, but there is a workaround. For example, instead of using a script like this:

        ON ENTER { "I have arrived!" SUSRMSG }
        

        Try using this instead:

        ON ENTER { "`page I have arrived!" SAY }
        

        On newer servers, the `page command is set to rank 0 by default. For this workaround to work on older servers, the `page command must be set to rank 0 by using the `setrank command, as some older servers might have `page set to rank 1. To find out, enter Owner mode and type "`setrank `page", and the server will tell you what rank `page is currently set to. If the server returns the value 1, then type "`setrank `page 0". For more information about the setrank command, try the Improve InstantPalace with Setrank section.

      • EXIT Workaround

        The EXIT command doesn't work with InstantPalace. For a workaround, try substituting BREAK for EXIT in room scripts that will be interacting with InstantPalace users.

      • ON LEAVE Handler

        The ON LEAVE handler was never implemented for InstantPalace. The workaround is to use other handlers for scripts that will be interacting with InstantPalace users.

      • InstantPalace Identifiers

        Since InstantPalace always returns 0,0 to MOUSEPOS, this can be used as a way to identify InstantPalace clients. To accomplish this, a GLOBAL can be set:

        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
        

        For example, if you want to send InstantPalace users to a certain room on room entry, you can try:

        ON ENTER {
        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
        { 16 GOTOROOM } Instpal IF
        }
        

        This detection method isn't perfect. If you carefully place your mousepoint at exactly the 0,0 spot with a C-client, the script would think you are InstantPalace. However, in practice, this is an extremely rare occurance.

        Since InstantPalace always returns 0 to WHOCHAT, this can be used as another InstantPalace identifier. However, under some circumstances, C-clients can also return 0 to WHOCHAT. When a C-client first logs on to a server, it has a WHOCHAT value of 0. As soon as anyone speaks, the WHOCHAT value of the C-client is set to something other than 0. This means that in an OUTCHAT or INCHAT script, WHOCHAT NOT can be a reliable and efficient InstantPalace identifier, but in a SIGNON, ENTER, or SELECT script, the above described MOUSEPOS identifier is generally considered more reliable.

      • InstantPalace Friendly Palace Links

        This script is an example of an InstantPalace friendly Palace link. It can be placed in a spot, and both C-clients and InstantPalace clients can use the same spot as a link to another Palace.

        ON SELECT {
        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
         { "http://eagles.chatserve.com/ip.html" NETGOTO
         }
         {
          { "palace://eagles.chatserve.com:9998" NETGOTO
          } 30 ALARMEXEC
         } Instpal IFELSE
        }
        

      • Client Type Detection

        This is an example of a client type detection script that is InstantPalace aware. Just replace the SAY expressions with other actions:

        ON ENTER {
        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
        Mac GLOBAL PC GLOBAL
        { 1 Mac = } { 1 Win = } DATETIME 0 < IFELSE
         {
          { "I'm a Windows 3.5 user" SAY } CLIENTTYPE "WINDOWS32" == IF
          { "I'm a Mac 3.5 user" SAY } CLIENTTYPE "MACPPC" == IF
          { "I'm a TPV user" SAY } CLIENTTYPE "TPV" == IF
         }
         {
          { "I'm an InstantPalace user" SAY }
          {
           { "I'm an old Windows version" SAY } 1 Win == IF
           { "I'm an old Mac version" SAY } 1 Mac == IF
          } Instpal IFELSE
         } IPTVERSION IFELSE
        }
        

      • InstantPalace and DATETIME

        InstantPalace returns the number seconds since 1/1/1970 to DATETIME, regardless of which platform is being used. This is the same way Windows handles DATETIME, which means scripts that use DATETIME to determine Windows from Mac users will always think InstantPalace is a Windows user. Since iptscrae can't determine whether an InstantPalace user is on Windows or Mac, the suggested workaround is to use the Client Type Detection method above to determine which are InstantPalace users, and recognize that they may using Windows or Mac. Here is an example of a more basic client type detection script:

        ON SELECT {
        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
         { "I'm using InstantPalace." SAY }
         {
          { "I'm using a Windows C-client." SAY }
          { "I'm using a Mac C-client" SAY
          } DATETIME 0 > IFELSE
         } Instpal IFELSE
        }
        

      • Combination Prop Spots

        This script is an example of a combination prop spot. If C-client avatars are made to match InstantPalace avatars, then both InstantPalace and C-clients can use the same spot to wear avatars that look alike. Only InstantPalace users would perceive this, however, as C-clients perceive InstantPalace users as smileys.

        ON SELECT {
        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
        { 4 SETCOLOR 3 SETFACE "I'm a butterfly!" SAY }
        { [ 911142527 ] SETPROPS "I'm a butterfly!" SAY } Instpal IFELSE
        }
        

      • Avoid InstantPalace Errors

        When an InstantPalace user clicks on a typical prop spot, an error appears in the center of the screen that says "Sorry, that action is unsupported for InstantPalace." Here is an example of a common script that produces this error:

        ON SELECT {
        [ 971753362 971753378 971753349 971753370 ] SETPROPS
        }
        

        If you choose not to use the Combination Prop Spot described above, the InstantPalace identifier can be used so the InstantPalace user receives no error:

        ON SELECT {
        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
        { [ 971753362 971753378 971753349 971753370 ] SETPROPS
        } Instpal NOT IF
        }
        

        Similarly, when an InstantPalace user clicks on a typical Palace link, an error appears in the center of the screen that says "Sorry, that action is unsupported for InstantPalace." Here is an example of a common script that produces this error:

        ON SELECT {
        { "palace://eagles.chatserve.com" NETGOTO } 30 ALARMEXEC
        }
        

        If you choose not to use the InstantPalace Friendly Palace Links described above, the InstantPalace identifier can be used so the InstantPalace user receives no error:

        ON SELECT {
        Instpal GLOBAL
        MOUSEPOS + 0 == Instpal =
        {
        { "palace://eagles.chatserve.com" NETGOTO } 30 ALARMEXEC
        } Instpal NOT IF
        }
        

      • Double Escape Characters

        There are times when a GREPSTR script will execute differently for C-clients and InstantPalace users, and the use of two escape characters (backslash characters) will represent a workaround. Here's an example:

        ON OUTCHAT {
        { "Yes I like$1" GREPSUB "." & ROOMMSG
        } CHATSTR LOWERCASE "^do you like(.*)?$" GREPSTR IF
        }
        

        For C-clients, the above script will execute when a chatstring starts with the words "do you like", and ends with a question mark. InstantPalace operates differently, and executes with or without a question mark at the end of the chatstring. If you were to say "Do you like flying?", the C-client response is "Yes, I like flying." while the InstantPalace response is "Yes, I like flying?." The question mark character needs to be escaped. With InstantPalace, it takes two consecutive escape characters to make this work:

        ON OUTCHAT {
        { "Yes I like$1" GREPSUB "." & ROOMMSG
        } CHATSTR LOWERCASE "^do you like(.*)\\?$" GREPSTR IF
        }
        

        Now the script will execute identically for C-client and InstantPalace users.

      • Chatstring Clearing Anomaly

        There is an anomaly that occurs when a script clears the chatstring for an InstantPalace user. An example can be demonstrated with this script:

        ON OUTCHAT {
        { "Demonstrating the anomaly." LOCALMSG
          "" CHATSTR =
        } CHATSTR "test" == IF
        }
        

        When a C-client executes this script, nothing appears in the log window of other room occupants. When an InstantPalace user executes this script, the log window of each person in the room will show an "empty" entry next to the name of the InstantPalace user who triggered the script, which resembles the log entry that occurs when someone types a space, but without the associated speech balloon. There is no known workaround for this condition.

      • Room Change and ALARMs

        When a C-client initiates a room change, all ALARM events are ended. If a script directs a C-client to execute a room change, followed by other delayed actions, the other actions will not execute. InstantPalace acts differently, and will execute delayed actions after a room change. An example can be demonstrated with this script:

        ON OUTCHAT {
        {
         { 86 GOTOROOM } 120 ALARMEXEC
         { "Test message 1" SAY } 300 ALARMEXEC
         { "Test message 2" SAY } 600 ALARMEXEC
         { 100 GOTOROOM } 900 ALARMEXEC
         { "Test message 3" SAY } 1200 ALARMEXEC
         { "Test message 4" SAY } 1500 ALARMEXEC
        } CHATSTR "test" == IF
        }
        

        When a C-client executes this script, the first GOTOROOM will occur, but no subsequent scripted actions will take place, as all ALARM events were cancelled by the room change. InstantPalace will execute the entire script as written.

      • Allscray and InstantPalace

        Due to incomplete implementation of the WHOCHAT command, conventional allscray does not work on InstantPalace users. A modified version of allscray, or "javascray", can be deployed. The version below will allow allscray functions using the ;js command, and will only work on InstantPalace users. This would not replace your existing allscray scripts, but would be used in addition to them. As with regular allscray, you should wear an * in front of your name.

        The OUTCHAT section is designed to simulate the server's "command denial" message. This script is secure in an InstantPalace only Palace that uses authentication to block C-client access to everyone except staff members, but is not completely secure in a Palace that allows access to C-client members.

        ON SIGNON {
        jscrayin GLOBAL {
        Instpal GLOBAL MOUSEPOS + 0 == Instpal = 0 a =
        { CHATSTR SWAP SUBSTR a +=
        } [ "'" "`" "\\x27" "\\x60" ] FOREACH
        { "$1" GREPSUB STRTOATOM EXEC
        } CHATSTR "^;js (.*)" GREPSTR Instpal AND a NOT AND IF
        } jscrayin DEF
        jscrayout GLOBAL {
        { "" CHATSTR =
          "Sorry - you don't have the privileges to use that command" LOCALMSG
        } CHATSTR "^;js" GREPSTR USERNAME "^[*]" GREPSTR NOT AND IF
        } jscrayout DEF
        }
        ON INCHAT { jscrayin GLOBAL jscrayin EXEC }
        ON OUTCHAT { jscrayout GLOBAL jscrayout EXEC }
        

        The ON SIGNON section would be placed at the gate or server entry points, and the INCHAT and OUTCHAT sections would be placed in the rooms where you want to have "javascray" enabled, or placed in the HANDLER globals if your Palace is authored using that technique.

        IMPORTANT NOTE: Advanced C-client members will have the ability to circumvent the OUTCHAT in the above script, and allscray InstantPalace users. This would make it possible for C-client members to do things to InstantPalace users such as send them to different rooms, different locations within a room, force them to access web pages, disconnect them from the server, and more. Protection was added to this script so InstantPalace users in Owner or Operator mode cannot be allscrayed to execute owner or operator commands.

      • Allscray Security Fix

        If an InstantPalace user is in Operator or Owner mode, and is wearing an * in front of their name, a member can allscray them using the conventional allscray script. This represents a security risk, since with an unmodified conventional allscray script, a member could allscray the InstantPalace person wearing the * to execute owner or operator commands. This is another byproduct of the InstantPalace implementation of the WHOCHAT command. If you are using InstantPalace and you enter owner or operator mode, and you aren't sure of exactly how the Palace you are in is scripted, do NOT wear an * in front of your name.

        The scripted solution is to modify the standard allscray script so it doesn't affect any InstantPalace users. Conventional allscray already doesn't work on InstantPalace users, unless that InstantPalace user has an * in front of their name. This modification directs the script to ignore all InstantPalace users including those with an * in front of their name, without changing the way the script interacts with C-client users.

        The solution is a simple one. In any allscray script, change this line:

        } WHOCHAT WHONAME "^[*]" GREPSTR IF
        

        To this:

        } WHOCHAT WHONAME "^[*]" GREPSTR WHOCHAT AND IF
        

        Below are three common implementations of allscray, updated to include the security fix. Here is the scripted solution in Dr X's standard allscray script:

        ON SIGNON {
        xDoIt GLOBAL
        nDoIt GLOBAL
        {
         {
          "$1" GREPSUB STRTOATOM EXEC
         } CHATSTR "^;as (.*)" GREPSTR ISWIZARD NOT AND IF
         {
          "$1" GREPSUB STRTOATOM EXEC
         } CHATSTR "^;ao (.*)" GREPSTR
            WHOCHAT WHOME == NOT AND ISWIZARD NOT AND IF
         {
          "$1" GREPSUB STRTOATOM EXEC
         } CHATSTR "^;*allscray (.*)" GREPSTR ISWIZARD NOT AND IF
        } xDoIt DEF
        {
          xDoIt GLOBAL
          {
           xDoIt EXEC
          } WHOCHAT WHONAME "^[*]" GREPSTR WHOCHAT AND IF
         } nDoIt DEF
        }
        ON INCHAT { nDoIt GLOBAL nDoIt EXEC }
        

        Here is the scripted solution in a conventional stand-alone allscray script:

        ON INCHAT {
        {
        { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;allscray (.*)" GREPSTR IF
        { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;ao (.*)" GREPSTR
          WHOCHAT WHOME == NOT AND IF
        } WHOCHAT WHONAME "^[*]" GREPSTR WHOCHAT AND IF
        }
        

        Here is the scripted solution in a modified allscray script, which includes a routine that will not allow the allscraying of ` and ' commands:

        ON SIGNON {
        nDoIt GLOBAL {
        { { tr = { EXIT } CHATSTR tr SUBSTR IF
        } [ "'" "`" "\\x27" "\\x60" ] FOREACH
        { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;allscray (.*)" GREPSTR IF
        { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;as (.*)" GREPSTR IF
        { "$1" GREPSUB STRTOATOM EXEC } CHATSTR "^;ao (.*)" GREPSTR
          WHOCHAT WHOME == NOT AND IF
        } WHOCHAT WHONAME "^[*]" GREPSTR WHOCHAT AND IF
        } nDoIt DEF
        }
        ON INCHAT { nDoIt GLOBAL nDoIt EXEC }
        

        It is likely that the reason this issue hasn't surfaced earlier is because very few people use InstantPalace in owner or operator mode. Play it safe, and update your allscray scripts.

      • WHOCHAT Workaround

        In some cases, WHOCHAT can be replaced with WHOME for an effective workaround. The script below will write your current position in the room to your log window. It works for C-clients, but an InstantPalace user will always return 0,0 to this routine:

        ON SELECT {
        WHOCHAT WHOPOS SWAP ITOA "," & SWAP ITOA & LOGMSG
        }
        

        By replacing WHOCHAT with WHOME, the script can be made to work with both C-clients and InstantPalace:

        ON SELECT {
        WHOME WHOPOS SWAP ITOA "," & SWAP ITOA & LOGMSG
        }
        

        While this workaround can work with some simple scripts, it is not an effective workaround for others, such as allscray.

      • Authoring Technique - Forcing Pic Downloads

        One difference in behavior between C-clients and InstantPalace clients is that C-clients will download all spot pics in the room on room entry, and InstantPalace only downloads spot pics on demand. Sometimes, you might want to force the download of an unseen spot pic to enhance an effect. An example would be an iptscrae popout menu. When selecting the open menu button for the first time during a session, the delay displaying the open menu graphic due to downloading can be avoided if the hidden spot pic can be forced into the browser's cache on room entry.

        The technique for accomplishing this is to make a new spot, spot type normal, and add the pic you want to have pre-downloaded. These spots are usually very small, and placed near the edge of the room. Then use the SETPICLOC command to move the pic entirely off the screen. Leave the spotstate value at 0, so the pic is "displayed", it just isn't on screen to be seen. InstantPalace will now download this hidden graphic on room entry, and display it without delay when desired.

      • Authoring Technique - Nav Area Workaround

        A Nav Area constrains user movement. When a C-client enters a Nav Area, they cannot move out unless they move into another door or spot. InstantPalace doesn't recognize a Nav Area, and can move in and out of one freely. The workaround is to make everything in the room except for the desired Nav Area(s) into one or more DONTMOVEHERE spots.

      • InstantPalace Iptscrae Popout Menu

        The InstantPalace entry room at Eagle's Nest contains an example of an InstantPalace Popout Menu that contains a combination InstantPalace/C-client avatar dispenser, links to Games, the Directory, and to the server's Site Page. Many of the above techniques and scripts were used in developing this menu. You can download a 5K zip file with the with the gifs and pserver.pat file fragments for this menu.

      • Entering Owner or Operator Mode

        You can enter Owner or Operator mode with InstantPalace by typing ~susr password. This will work with InstantPalace 2.0, but will not work with earlier versions. If you plan to use InstantPalace in Owner or Operator mode, do NOT wear an * in front of your name, unless you have updated the allscray scripts in in your Palace. For more information, see the Allscray Security Fix section.

      • Improve InstantPalace with Setrank

        The setrank command allows server operators to define the commands that are available to each level of user. There are 4 levels of users:

        3 = Owner
        2 = Operator
        1 = Member
        0 = Guest
        

        InstantPalace visitors are level 0, or guests. By default, there are several commands that are set to level 1 for member use. These commands include `hide, `unhide, `hidefrom, `unhidefrom, `mute, `unmute, and `respond. On older servers, `page was also set to level 1. By using the setrank command, these commands can be reset to level 0, thus improving the InstantPalace experience. For example, in Owner mode, type `setrank `mute 0 and InstantPalace users will now be able to use the `mute command. On version 4.4.1 or newer servers, there is a command called `showranks that will display all the current command rank settings in your log window. This information applies to conventional servers. If the server has a Guest=Member registration code, InstantPalace visitors will have access to level 1 commands.

      • Launching a Web Page Into a Frame

        The NETGOTO and GOTOURL commands, which are functionally identical, will only launch a web page into a new window. The GOTOURLFRAME command was developed for TPV and was never implemented for InstantPalace. The `displayurl command can be used to launch a web page to another frame on the same page. By default, the `displayurl command is set to rank 2. For InstantPalace to be able to use it, it needs to be re-ranked to rank 0 using the `setrank command. In owner mode, type:

        `setrank `displyurl 0
        

        The command syntax is:

        *** ; Usage: `displayurl [<pane>] <url> [<user>]
        

        An example of a simple script that will send the entire room to a URL in another frame:

        ON SELECT {
        "`displayurl 0 http://www.yahoo.com " SAY
        }
        

        An example of a simple script that will send just the person clicking on it to a URL in another frame:

        ON SELECT {
        "`displayurl 0 http://www.yahoo.com " WHOME WHONAME & SAY
        }
        

        Although the `displayurl command generates a server response when executed by a C-client, it will not function to display a URL to C-clients, and will only work on InstantPalace users. A Mac client will see an "Unknown Event: durl" error in the log window if it receives a `displayurl command, so it would be advisable to script `displayurl as InstantPalace-only if the server has traffic from C-clients as well. It is worth noting that setting the `displayurl command to rank 0 will allow guests and members free use of the command, which can have its drawbacks.

      • Guest=Member Servers

        InstantPalace responds TRUE to ISGUEST in iptscrae, even on a Guest=Member server, and even if the ~susr command is used to enter Operator or Owner mode. However, these servers will not exclude InstantPalace users from entering a room if the room setting has the No Guests flag. If the server setting "`guests off" is used, InstantPalace users won't have access, even on a Guest=Member server.

        InstantPalace visitors will have access to all member commands (level 1 commands) on a Guest=Member server. However, there is an anomaly regarding member created rooms. The server uses the registration code to determine which member has ownership over a member created room. If a member created room is created by any unregistered entity, including guest C-clients or InstantPalace visitors, then the server will allow any unregistered client to exercise control over that room, as the server does not perceive any differences between unregistered users regarding member created room operations. In addition, once one unregistered user creates a member created room, the server will not allow any other unregistered users to create one while the first room is in existence.

      • Servers with the Offer Plugin

        Several Unix and Linux servers have a plugin called offer.so or offer2.so, which allows people to share avatars using the commands `offer and `accept. These plugins provide a unique advantage to InstantPalace users. The `offer and `accept commands can be used to dress InstantPalace users in regular C-client avatars. InstantPalace clients do not have a way to store these avatars, but they can be used for the duration of that session. The offer/accept room scripts that don't use a server plugin will not work for InstantPalace users, as the plugin is required to make this work. Unfortunately, server plugin support was never completed for Windows servers, and a Unix or Linux server are the only servers that are currently capable of offering this functionality

      • AvBot - The Avatar Dispensing Robot

        Since a server equipped with the offer plugin can allow a C-client to dress an InstantPalace client in a C-client avatar, an avatar robot can be created that allows InstantPalace users to view a selection of avatars, and be dressed in one by issuing commands. The link below contains a Cyborg.ipt file for AvBot, which is an example of an avatar dispensing robot that can be run by either a Windows or a Mac C-client.

        Cyborg.ipt file for AvBot

        This version was designed to automatically greet people who enter the room, and prompt them to type "help" to view a list of commands. The basic command list:

        Type "av1", "av2", "av3", etc. to see a selection of over 100 avatars.
        Type "avdress" to be dressed in the currently displayed avatar.
        Type "avdrop" to have currently displayed avatar dropped across the top of the room.
        Type "avmake" for information on how to make an avatar and bring it into Palace.
        Type "avinfo" for basic avatar information.
        Type "avlinks" for several useful Avatar Help URLs.
        Type "avflip" for instructions on how to flip your avatar.
        Type "avclient" for the URLs for downloading the Palace client.
        Type "avtime" for the current time.

        There are 101 total avatars available in this version of AvBot, which users can view by typing av0 through av100. On a Windows client, 58 of the avatars are held in Macros (saved avatars), and on a Mac client, 80 of the avatars are held in Macros. This means that the client that is running AvBot should have avatars saved in every available slot under the Avatars, Member Avatars menu item. The rest of the avatars have their prop ID numbers coded into the cyborg.ipt file in the INCHAT section. The propID numbers will need to be updated in the Cyborg.ipt so the bot has a current set of avatars to distribute. It would be easy to extend the selection beyond the 101 total available in this version by extending the entries at the end of the INCHAT section.

        AvBot includes a time script. A Mac running AvBot will always display the computer's local time, but a Windows computer running AvBot may have to adjust the timezone GLOBAL to display the correct time. In the ON ENTER section, the timezone GLOBAL is currently set to the value -8 on this line:

        { -8 timezone =
        

        which means 8 hours behind Greenwich Mean Time (GMT). This is the winter setting used for the Pacific time zone in the USA. Change the -8 to the number that represents the GMT offset for your time zone. You can find your GMT offset on the World Clock website by clicking on a city in your time zone.

        AvBot includes an operator function that will display a list in the log of which keyboard shortcuts apply to which av#s (av1, av2, av3, etc.), which is activated by typing "macro list". This reference list can be helpful when setting up the macros that AvBot will be distributing. Along with an autogreet script, which is on by default, Avbot also includes an autolist function, which is off by default and is activated by typing "autolist on". This script will only work when the bot is run in operator or owner mode, and when activated, it will `list each person entering the room.

        This version of AvBot is designed to be stationary, although roaming capabilities could be added if that was desired. AvBot was originally developed as a C-client robot, and evolved into an InstantPalace tool. As a result, some of the existing functions were written for C-clients, and may not necessarily apply to deployment in InstantPalace only environments.

        Once AvBot has been set up, there are several files that should be backed up to save your work. On a Windows client, AvBot uses the Cyborg.ipt file for its iptscrae code, the Palace.prp file for prop pieces, the Palace.mac file for most of its macros, and the Palace.ini file for the rest of its macros. On a Mac client, AvBot uses the Cyborg.ipt file, the Palace.prp file, and the Palace Preferences file.

      • Additional Resources

        • InstantPalace Resources Index
        • Customizing InstantPalace
        • InstantPalace Installation
        • 104 Avatars for InstantPalace
        • Using Larger Avatars with InstantPalace
        • Using Sounds with InstantPalace
        • InstantPalace with 4.4 Windows Server
        • Mac InstantPalace and Browser Issues
        • InstantPalace Troubleshooting
        • Iptscrae Quick Reference Table
        • InstantPalace Demos
        • InstantPalace Parameters
        • InstantPalace Discussion Group


        © 2002