Documentation

Documentation

PowerSigns are triggered by when a redstone wire is powered next to a sign. This means that wall signs are not activated by redstone powering the block they are attached to, only the sign block itself.

Directions in PowerSigns are all specified as if you are looking at the text of the sign. Forward is out the back of the sign, backward is out the front of the sign, etc. When the directions are used, only the first letter of the direction is specified, one of fblrud or sometimes s for self.

Sign posts like !push and !pull, when pointed down, automatically skip the block the sign post is standing on. Directions on wall signs usually start on the block the sign is attached to. However, signs like !line and !activateif which deal with the lines on other signs, are only relative to the sign block itself.

Syntax

Legend

[...] - Optional
a|b - Either a or b
(vector) - Either s or at least one of the direction chars. Ex: ffru
(materials) - A comma-separated list of either material names or IDs
(skip) - How many blocks to skip from the normal start position. Can have a direction before the number to specify the skip direction.

Signs

Push

Line 1: !push [u|d][@(skip)] [(count)][*(repeat)]
Line 2: (materials)
(count): a specific number of blocks to move, or it will push as many as it finds in a row
(repeat): how many spaces to move the blocks, default: 1
u|d: push up or down instead of forward

Push a single line of matching blocks starting immediately next to the sign.

Pull

Line 1: !pull [u|d][@(skip)] [(count)][*(repeat)]
Line 2: (materials)
See !push.

Opposite of !push. It will skip empty blocks next to it until it finds a line of matching blocks, and pull them towards it.

Activate

Line 1: !activate [u|d][@(skip)] [all]
all: activate all PowerSigns it finds in a row, otherwise just one

Activates other PowerSigns like they were powered by redstone.

Activate Long

Line 1: !activatelong [u|d][@(skip)]

Skips a large number of empty blocks until it finds a sign, and then activates it.

Activate If

Line 1: !activateif [u|d][@(skip)]
Line 2: activate[fail] (vector) OR
Line 2: (vector)(line) (=|!=|<|<=|>|>=) (vector)(line)
(vector): where to find the sign
(line): which line on the sign to use

If the condition on line 2 evaluates to true, activate the sign forward of it. The activate condition is true if the specified PowerSign, when activated, succeeds, or fails if fail is specified. For the other conditions, it tries to evaluate the specified lines as numbers, and applies the specified operator to them. If it is unable to convert the lines to numbers it uses lexicographic (alphabetical) ordering instead.

Cannon

Line 1: !cannon [u|d][@(skip)] (sand|gravel|tnt)
Line 2: (power) (angle) [ns]
(power): magnitude of force to use
(angle): angle to fire at, 0 is forward, 90 is straight up
ns: "No spread" - do not apply random spread to the projectile

This looks for a dispenser in front of it (or up/down) and then fires a sand, gravel, or TNT entity out the front of the dispenser. All of these use a number of TNT items from the dispenser, proportional to the power, to propel the entity, in addition to a single sand, gravel, or TNT item.

Line

Line 1: !line (vector)(line) (operator) (vector)(line)
(vector)(line): See !activateif

Currently there are only two operators. Empty means copy, and ## means swap. If there is not enough room on the first line, !line may be placed on the first line by itself with the parameters on the second line.

InvPush and InvPull

Line 1: !inv(push|pull) [u|d][@(skip)][*(0-99)] (vector)
Line 2: (materials)
(vector): the inventory block (chest or dispenser) to use, relative to the sign block

These are very similar to their !push and !pull counterparts. After pushing, !invpush will fill the resulting space with blocks taken from the inventory block. !invpull will suck blocks into the inventory block and then pull a line of blocks to fill the resulting space.

InvDrop and InvSuck

Line 1: !inv(drop|suck) [u|d][@(skip)][*(0-99)] (vector)
Line 2: (materials)
(vector): the inventory block (chest or dispenser) to use, relative to the sign block

!invdrop will drop items as item entities, while !invsuck will look for item entities and suck them into the inventory block.

Take and Give

Line 1: !(take|give) [u|d][@(skip)][*(0-99)] (vector)
Line 2: (materials)
(vector): the inventory block (chest or dispenser) to use, relative to the sign block

These transfer items between the inventory block and either a player or a storage minecart.

InvCount

Line 1: !invcount (vector)
Line 2: (materials)
(vector): the inventory block (chest or dispenser) to use, relative to the sign block

Sets line 3 of itself to the number of matching items in the inventory block.

# Fling Line 1: !fling [u|d][@(skip)] (vector) Line 2: (power) (angle) (vector): which direction to fling the entities. Note that this can only be one of fblr, as up and down are controlled by the angle. See also !cannon##

Looks for entities in the block forward of it and flings them with the specific power and angle, in the perpendicular direction specified.

Toggle

Line 1: !toggle [u|d][@(skip)]

This looks for a switch forward (or up/down) of it and toggles it.

Detect

Line 1: !detect [u|d][@(skip)]

When powered, it looks at the block forward (or up/down) and sets line 2 of itself to the material name of the block and line 3 to the material id.

DataGet and DataSet

Line 1: !data(get|set) [u|d][@(skip)]

When powered, it looks at the block forward (or up/down) and sets line 2 of itself to the data value of that block, or sets the data value of that block to line 2 of itself. Only raw numbers are accepted, in the future a color/name may be accepted for wool and log blocks.

Math

Line 1: !math (vector)(line) (+-*/&|^|and|or|xor) (vector)(line) [= (vector)(line)]

If the last optional part is present then the result of the calculation will be placed there, otherwise it will replace the first operand. Just like !line, if there is not enough room, !math may be placed on the first line by itself with the parameters on the second line. The operations are as follows:

  • +-*/: Your standard add, subtract, multiply and divide operations.
  • &|^: Bitwise AND, OR and XOR, respectively.
  • and, or, and xor: The numbers are interpreted as boolean values, where 0 is false and everything else is true. The respective operation is applied, and then the result is converted back into a number, 0 meaning false and 1 meaning true.

Money

Line 1: !money [u|d][@(skip)] (give|take)
Line 2: (amount)
Line 3: [(other end)]

When powered, it finds a player and tries to give or take money away from them. It fails if it can't find a player or if the player doesn't have enough money. If the other end is specified, the money is taken from the player and given to the other, or vice versa, but only if the source end has enough money. Works well with !activateif.

Gate

Line 1: !gate [<|>](req inputs) | NOT | [N]AND | [N]OR | X[N]OR

Put a lever behind the sign, and it will perform the requested logic operations on all other redstone inputs around the sign. If you use the first syntax, you specify an exact number of inputs, or either < or > to specify that you want less than or greater than that many inputs turned on.


Comments

Posts Quoted:
Reply
Clear All Quotes