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
, andxor
: 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