All target selectors start with @
. The following character is the selector type. For example, @p
means 'closest player'.
Target selectors may have additional, optional arguments. You can specify these in [ ]
, using the syntax a=0
. For example, @p[a=0,b=5,c=-500]
.
There is a special short syntax for just specifying x
, y
, z
and r
arguments; simply list their values separated by a comma, without x=
. For example: @p[100,64,-100,5]
for 5 range, x=100
, y=64
and z=-100
. Each of these are optional and skippable by leaving them empty. For example, to just specify y
coordinate: @p[,64]
.
x
- X coordinate for search center. Default is senders coordinate, or 0.y
- Y coordinate for search center. Default is senders coordinate, or 0.z
- Z coordinate for search center. Default is senders coordinate, or 0.r
- Range, number above 0. Default 0 ("No range limit")m
- Game mode, number above 0. Default -1 ("No mode limit")c
- Max count of results. Default 0 ("No count limit"). Numbers below 0 will make it return the last x amount of entries.
p
- Closest player.a
- A list of all players.r
- A random player.
All selectors are lists, but only p
has a default count limit of 0 (unlimited). When using lists in a string context (for example, /say Hello @a
) it will list all players as strings. When used as a command argument, it will iterate the command for each player in the list.
@p[r=5]
Closest person within 5 blocks. If there's nobody within 5 blocks, the command will fail.
@a[x=100,y=64,z=-100,c=10,r=5]
Closest 10 players within 5 blocks of 100,64,-100.
@p[0,64,0,c=-2]
The furthest 2 players from 0,64,0.
@a[,,,10,c=5]
The closest 5 players within 10 blocks of your current position.
An implementation of selected player variables can add a lots of new possibilities and minimize amount of command blocks needed for some commands.
For example we can use one command block in re-spawn area to send players in different places depending on class.
/tp @r[0,0,0,5] 10 10 Class*10
Where "Class" is score from scoreboard (or their Level). It acts like "~" in tp command. Players with class 1 will be teleported at z=10, with class 2 at z=20 etc.
It will be also possible to arrange players on pedestal in order of their kills or experience at the end of the match.
If we need 3 players to stay in correct order depending on their role, we can use:
/testfor @A[0,0,Role*10,5].
And it will output signal strength of 3 if all players stay in their places.
And lots more.