Iptscrae Quick Reference


      The following table is a brief summary of the Iptscrae commands and their meanings.

      Word Stack Synopsis
      !
      a -- bool
      Pushes 1 if a is zero, else 0
      !=
      a b -- bool
      Pushes 1 if a is zero, else 0
      #
      --
      Rest of line is a comment
      %
      a b -- m
      Pushes the remainder (modulus) of a/b
      %=
      v sym --
      Divides contents of sym by v and stores remainder in sym
      &
      "a" "b" -- "ab"
      Pushes the concatenation of a and b
      *
      a b -- p
      Pushes the product of a*b
      *=
      v sym --
      Multiplies v by the contents of sym and stores result in sym
      +
      a b -- s
      Pushes the sum of a+b
      +
      "a" "b" -- "ab"
      Pushes the concatenation of a and b
      ++
      sym --
      Adds 1 to the contents of sym and stores result in sym
      +=
      v sym --
      Adds v to the contents of sym and stores result in sym
      +=
      "s" sym --
      Appends "s" to the string value of sym and stores result in sym
      -
      a b -- d
      Pushes the difference a-b
      --
      sym --
      Subtracts 1 from the contents of sym and stores result in sym
      -=
      v sym --
      Subtracts v from the contents of sym and stores result in sym
      /
      a b -- id
      Pushes the integer dividend of a/b
      /=
      v sym --
      Divides contents of sym by v and stores the result in sym
      ;
      --
      Rest of line is a comment
      <
      a b -- bool
      Pushes 1 if a less than b, else 0
      <
      "a" "b" -- bool
      Pushes 1 if a less than b, else 0
      <=
      a b -- bool
      Pushes 1 if a less than or equal b, else 0
      <=
      "a" "b" -- bool
      Pushes 1 if a less than or equal b, else 0
      <>
      a b -- bool
      Pushes 1 if a not equal b, else 0
      <>
      "a" "b" -- bool
      Pushes 1 if a not equal b, else 0
      =
      v sym --
      Stores v in location sym
      ==
      a b -- bool
      Pushes 1 if a equals b, else 0
      ==
      "a" "b" -- bool
      Pushes 1 if a equals b, else 0
      >
      a b -- bool
      Pushes 1 if a greater than b, else 0
      >
      "a" "b" -- bool
      Pushes 1 if a greater than b, else 0
      >=
      a b -- bool
      Pushes 1 if a greater than or equal b, else 0
      >=
      "a" "b" -- bool
      Pushes 1 if a greater than or equal b, else 0
      ADDLOOSEPROP
      propID x y --
      Place propID at x,y
      ADDLOOSEPROP
      "name" x y --
      Place prop name at x,y
      ALARMEXEC
      {al} ticks --
      Run atomlist al after ticks 1/60 seconds
      AND
      a b -- bool
      Pushes 1 if both a and b are non-zero
      ARRAY
      n -- [ar]
      Allocate array ar of n elements
      ATOI
      "str" -- n
      Converts str to an integer or zero
      BEEP
      --
      Sound system beep
      BREAK
      --
      Exit from a WHILE or FOREACH loop
      CHAT

      deprecated, use SAY
      CLEARLOOSEPROPS
      --
      Clear all loose props in room
      CLEARPROPS

      deprecated, use NAKED
      CLIENTTYPE
      -- "type"
      Pushes the type of the client, e.g. "TPV"
      COSINE
      degrees -- sin
      Pushes cosine(degrees)*1000
      DATETIME
      -- t
      Pushes seconds since 1/1/1970
      DEF
      {al} sym --
      Define atomlist al as symbol sym
      DELAY
      n --
      Stop client for n seconds
      DEST
      -- roomID
      Pushes destination roomID of the ME door or 0 for Cyborg
      DIMROOM
      n --
      Dim room to n% of fully lit
      DOFFPROP
      --
      Removes last-worn prop
      DONPROP
      propID --
      Add prop propID
      DONPROP
      "name" --
      Add prop name
      DOORIDX
      n -- doorID
      Pushes doorID of door number n
      DROPPROP
      x y --
      Put last-worn prop at x,y
      DUP
      n -- n n
      Duplicate top of stack
      EXEC
      {al} --
      Execute atomlist al
      EXIT
      --
      Stop the currently executing script
      FOREACH
      {al} [a] --
      Run al for each element of a
      GET
      [a] n -- v
      Pushes element n from array a onto stack
      GETSPOTSTATE
      spotID -- n
      Pushes the state n of spotID
      GLOBAL
      sym --
      Declares symbol sym to be global scope
      GLOBALMSG
      "msg" --
      Sends msg to everyone on the server
      GOTOROOM
      roomID --
      Moves user to room roomID
      GOTOURL
      "url" --
      Moves user or browser to url
      GOTOURLFRAME
      "url" "frame" --
      Moves user or browser to url
      GREPSTR
      "s" "p" -- bool
      Greps s for pattern p, pushes 1 if found else 0
      GREPSUB
      "rep" -- "s"
      Replaces values in rep from GREPSTR and pushes result
      HASPROP
      propID -- bool
      Pushes 1 if user has prop, else 0
      HASPROP
      "name" -- bool
      Pushes 1 if user has prop, else 0
      ID
      -- id
      Pushes spotID/doorID executing script or 0 for Cyborg
      IF
      {al} bool --
      Run al if bool is not zero
      IFELSE
      {tal} {fal} bool --
      If bool not zero run tal, otherwise fal
      INSPOT
      spotID -- bool
      Pushes 1 if user in within spot spotID, else 0
      IPTVERSION
      -- ver
      Pushes the version of the Iptscrae language supported
      ISGOD
      -- bool
      Pushes 1 if user is an owner, else 0
      ISGUEST
      -- bool
      Pushes 1 if user is guest, else 0
      ISLOCKED
      doorID -- bool
      Pushes 1 if doorID is locked
      ISWIZARD
      -- bool
      Pushes 1 if user is an operator or owner, else 0
      ITOA
      n -- "S"
      Converts n to a string
      KILLUSER
      userID --
      Forces user userID off server
      LENGTH
      [a] -- n
      Pushes the number of elements in a
      LINE
      x1 y1 x2 y2 --
      Draws from absolute x1,y1 to x2,y2
      LINETO
      x y --
      Draws from penpos relative x,y
      LOCALMSG
      "msg" --
      Sends msg to user running script (only)
      LOCK
      doorID --
      Locks doorID
      LOGMSG
      "msg" --
      Puts msg in client log
      LOWERCASE
      "S" -- "s"
      Converts upper case in S to lower case
      MACRO
      number --
      Runs user's avatar macro number
      ME
      -- id
      Pushes spotID/doorID executing script or 0 for Cyborg
      MIDIPLAY
      "fn" --
      Plays MIDI file fn.
      MIDISTOP
      --
      Stops the currently playing MIDI
      MOUSEPOS
      --
      x y Pushes the current mouse x,y
      MOVE
      x y --
      Moves the user relative x,y from current position
      NAKED
      --
      Clears all props from user
      NBRDOORS
      -- n
      Pushes number of doors in room
      NBRROOMUSERS
      -- n
      Pushes number of users in room
      NBRSPOTS
      -- n
      Pushes number of spots in room
      NBRUSERPROPS
      -- n
      Pushes number of props being worn
      NETGOTO
      "url" --
      same as GOTOURL
      NOT
      a -- bool
      Pushes 1 if a is zero, else 0
      OR
      a b -- bool
      Pushes 1 if either a or b is non-zero
      OVER
      --item
      Pushes a copy of the next to top of the stack
      PAINTCLEAR
      --
      Clears all painting
      PAINTUNDO
      --
      Erases last painting command
      PENBACK
      --
      Moves pen behind avatars
      PENCOLOR
      r g b --
      Sets pen to red/green/blue
      PENFRONT
      --
      Moves pen in front of avatars
      PENPOS
      x y --
      Moves pen to x,y w/o drawing
      PENSIZE
      n --
      Sets size of pen to n (1-9)
      PENTO
      x y --
      Moves pen to relative x,y w/o drawing
      PICK
      n -- item
      Pushes a copy of the item n down on the stack
      POP
      n --
      Removes top stack element
      POSX
      -- x
      Pushes user's X coordinate
      POSY
      -- y
      Pushes user's Y coordinate
      PUT
      d [a] n --
      Stores d in element n of array a
      PRIVATEMSG
      "msg" userID --
      Sends private msg to userID
      RANDOM
      n -- v
      Pushes a random number between 0 and n-1
      REMOVEPROP
      propID --
      Removes prop propID
      REMOVEPROP
      "name" --
      Removes prop name
      RETURN
      --
      Break out of an atomlist
      ROOMID
      -- n
      Pushes the current roomID
      ROOMMSG
      "msg" --
      Sends msg to everyone in the room
      ROOMNAME
      -- "name"
      Pushes the current room name
      ROOMUSER
      n -- userID
      Pushes userID of nth user in room
      SAY
      "msg" --
      Makes user speak msg
      SAYAT
      "msg" x y --
      Cause msg to appear at x,y
      SELECT
      spotID --
      Causes ON SELECT handler of spotID to run
      SERVERNAME
      -- "name"
      Pushes the current server name
      SETALARM
      ticks spotID --
      Runs ON ALARM for spotID in ticks time
      SETCOLOR
      n --
      Sets roundhead to color 0-15
      SETFACE
      n --
      Sets roundhead expression to 0-12
      SETLOC
      x y spotID --
      Moves spotID to x,y if god/wiz
      SETPICLOC
      x y spotID --
      Moves current state pic for spotID relative x,y if wiz/god
      SETPOS
      x y --
      Moves user to absolute x,y
      SETPROPS
      [props] --
      Causes user to wear props
      SETSPOTSTATE
      n spotID --
      Sets state of spotID to n for all in room
      SETSPOTSTATELOCAL
      n spotID --
      Sets state of spotID to n for user only
      SHOWLOOSEPROPS
      --
      Lists loose props locations in log
      SINE
      degrees -- sin
      Pushes sine(degrees)*1000
      SOUND
      "fn" --
      Plays sound fn
      SPOTDEST
      spotID -- n
      Pushes room number spot leads to
      SPOTNAME
      spotID -- "name"
      Pushes name of spot spotID
      SPOTIDX
      n -- spotID
      Returns ID of the nth spot in room
      SQUAREROOT
      n -- sqrt
      Pushes the square root of n
      STACKDEPTH
      -- n
      Pushes the number of items on the stack
      STATUSMSG
      "msg" --
      Puts msg in client status window
      STRINDEX
      "str" "sp" -- off
      Pushes the offset of sp in str or -1
      STRLEN
      "str" -- len
      Pushes the length of str
      STRTOATOM
      "str" -- {al}
      Compiles str into atomlist
      SUBSTR
      "str" "sp" -- bool
      Search str for sp, push 1 if found, else 0. Case independent.
      SUBSTRING
      "str" off len -- "f"
      Pushes the substring of str at offset off for length len
      SUSRMSG
      "msg" --
      Sends msg to owner/operator via page
      SWAP
      a b -- b a
      Swap top two stack elements
      TANGENT
      degrees -- sin
      Pushes tangent(degrees)*1000
      TICKS
      -- tick
      Push current client time in 1/60 seconds
      TOPPROP
      -- propID
      Pushes the propID of the top prop
      TOPTYPE
      -- type
      Pushes the type of the top item on the stack without removing it. Types are: 0 - Error/unknown/stack empty, 1 - number, 2 - variable, 3 - AtomList, 4 - String, 5 - ArrayMark, 6 - Array
      UNLOCK
      doorID --
      Unlocks door doorID
      UPPERCASE
      "str" -- "STR"
      Converts lower case str letters to upper case
      USERID
      -- userID
      Pushes my userID
      USERNAME
      -- "name"
      Pushes the user's screen name
      USERPROP
      n -- propID
      Pushes ID of the nth worn prop
      VARTYPE
      -- type
      Like TOPTYPE, but if the top item is a variable pushes the type of it's value
      WHILE
      {al} {test} --
      Runs al as long as test is non-zero
      WHOCHAT
      -- userID
      Pushes userID in INCHAT handler
      WHOME
      -- userID
      Pushes my userID
      WHONAME
      userID -- "name"
      Pushes screen name of userID
      WHOPOS
      userID -- x y
      Pushes x,y of user userID
      WHOPOS
      "name" -- x y
      Pushes x,y of user name
      WHOTARGET
      -- userID
      Pushes userID of whisper/esp target