The Drum


Drum documentation

Command formats

There are two command formats:

Note, the positioning of the ; is essential, otherwise the drum will most likely report a syntax error.

A do command must always be issued to start the drum moving


Commands are processed in the order listed, multiple commands may be given on a single line, in which case, commands will be executed in order, no attempt will be made to execute commands in parallel. For example:

blue turn 45;red to extend;

Basic commands use the drum’s default time, this is set in the drum configuration card/


Commands may be enclosed in a cycle wrapper:

cycle cycle time { command }

where cycle time is the length of time the “cycle” is to take, this is specified in seconds and decimal seconds

for example:

cycle 10 {blue to extend; blue turn 45;}

will raise the blue pallet to the extend position while turning it through +45 degrees on from its current orientation. When possible commands will execute in parallel and will attempt to complete totally in the specified time

Cycle commands can be concatenated, in which case the cycles proceed from left to right. For example:

cycle 10 {blue to extend;blue turn 45;} cycle 20 {blue to stage]

An empty cycle will pause the drum for the length of the cycle, for example:

cycle 10 {blue to extend;blue turn 45;} cycle 30 {} cycle 20 {blue to stage]

which will make blue rise to extend position while turning through 45 degrees, the drum will wait for 30 seconds and then blue will return to stage level.

Targets and Selectors


A selector lets you select a pallet for some command. Selectors can be the name of the pallet or the location where the pallet is.

Various selector are predefined:

  • * (star) – will select all pallets
  • upper – will select pallets in the upper (stage) position excluding those in the outer revolve position
  • lower – will select pallets in the lower stage area, for example, upper turn 45; will turn all pallets in the upper position by 45 degrees
  • sub – will select pallets in the sub stage area
  • p1, p2, p3, -p1, -p2 etc – will select pallets in the park areas
  • outer – will select pallets in the outer revolve area


Targets are target location used as destinations for pallet moves

  • stage – for example blue to stage;
  • lower – for example blue to lower;
  • sub – for example blue to sub;
  • extend – for example blue to extend;

in addition a target can be specified as a number, interpreted as a percentage if the span. The span is the natural height unit for the drum and is defined in the drum settings, one span i set to the maximum realistic height the drum will rise to. The lower level is one span below the stage surface while the sub level is 1.2 spans below the lower level.

Usually complicated pallets like the old blue pallet which have a height have there height automatically scaled to one span, this means that when such a pallet is raised to its extend position its lower surface is then level with the stage surface, when at the stage level its upper surface is level with the stage.

Pallet commands

turn / rotate

Turn a pallet through a number of degrees, for example:

blue turn 180;

to / elevate

Raise or lower a pallet to a specified height, for example:

blue to stage;
blue to extend;
blue to sub
blue to 30;


Trigger another script


Trigger and control some other external device, for example, lights, flats, some other 3rd party device which has a published API


Command a rezzed pallet to delete itself, for example:

blue to sub;blue die;

will make the blue palette return to the sub level and then delete itself


turn a pallet to face a specify angle, usual this angle is 0 or 180 degrees which allows a pallet to be set to a known orientation.

Warning: it’s not easy to predicate the direction of the turn

Other features

Pallets include a simple particle script, this needs improving. The particle effects can be triggers as part of the normal drum sequences using the internal command.

There is no reason why other effects scripts can’t be added

The drum can also synthesise the behaviour of stage trucks, for trucking on and off whole sets, left or right and also a family competent fly system for flying object in and out of the theatre fly space (if there is one).

One thing the drum is reluctant to do, largely because huge effort was taken to make the scripts behaviour as “physically” as possible and to be as accurate a model of the real work stage this is based on. So given this huge reluctance will be shown to make this behave in non physical ways.

Fundamental commands


rez object location face extension height;

Will rez an object as a specific position


  • object is the name of the object to be razzed, this object must have been previously placed into the rezzer.
  • location is the objects razzing location, this subsequently will be the location the object returns to when and align command is issued
  • face is the primary direction the object faces when razzed, this is either A or B
  • extension is the natural height the object will reuse to when the elevation height is set to extend

for example:

rez myObject p1 a 1 1;

will rez object “myObject” at position p1 facing in the A direction with a height and extension of 1m


Align causes an immediate and direct return for all pallets (or one pallet if the pallet name is specified) to their initial positions.

align pallet;

where pallet is the name of a specific pallet to align

for example

align myPallet


The drum maintains a list of all active pallets, if the drum controller is restarted then initially it has no knowledge of existing pallets, issuing a ping command will clear the current pallet list, if any, and then transmit a ping command to all active pallets. A new pallet list is then built


for example:



Dump will display a list of active pallets together with their location.  You must be wearing a headset to see the result of this command


for example:




The drum controller preloads all its commands when the commands are entered. A do command is required to force commands to execute. multiple preloads can be entered before a do is entered, also commands can be entered while the drum is in motion.


Engage will move pallets between the park areas (p1, p2 etc) into the drum ready for use. Pallets are shifted as necessary to make space

engage pallet facing;


  • pallet is the name of the pallet to engage or any selector in the sub stage, p1, p2, etc
  • facing is the direction to engage in, this is either A or B.

for example:

engage yellow B;
engage p1;

Note that empty selectors may be engaged, this is one way of just moving pallets around in the sub stage – should this ever be necessary


Load will load a show or reload the drum settings.

load settings;
load my show;


  • my show is the name of a show notecard

for example:

load show 1;


Play will play a preset from the currently loaded show.

play my preset;

for example:

play preset 1;