Now we all probably know of the awesome block known as the Command Block and it definitely is one of the best things ever added into Minecraft.But why stop with those simple commands? Why not turn it into something even better by adding even more features?
Now I know there are already a few topics suggesting new things for Command Blocks, but here I will try to create a huge list of new features that should be added while also adding whatever anyone else comes up with. Doing this we can place all of the most wanted things for Command Blocks into one single topic.But enough with that, let us begin with the suggestions:
Variables
@m - targets only mobs and not [email protected] - targets a random mob @mp - targets nearest mob@e - targets players and mobs@er - targets random player or [email protected] - targets nearest player or [email protected] - targets blocks @br - targets a random block@bp - targets the nearest block. If there are more blocks equally near the command block then it targets a random one. @i - targets dropped items, items carried by mobs or players, and items stored in chests, hoppers... @ir - targets a random dropped item, item carried by a mob or player, and item stored in a chest, hopper...
@ip - targets nearest dropped item, item carried by a mob or player, and item stored in a chest, hopper...
Game Rules
doItemDrop - if this is false than players cannot drop items from their inventory playerGriefing - Unlike adventure mode if this is set to true players cannot destroy ANYTHING at all
Arguments
f - unlike x,y and z this tells the command block where a player, mob or any item that has different textures on different sides is facing (Credit to Tizorna)
Example:
kill @b[f=90, type=piston] - This destroys every piston that is facing north
hunger - Checks how many hunger "points" a player has.Example: give @a[hunger=5] 260 1 - gives every player with a low hunger bar 1 apple
type - Checks what type the target is. Example: type=Creeper type=Pigtype=EnderDragon type=VillagerGolem type=Wolftype=dirt type=swordDiamond
iamin() - This would mean Item Amount Minimum. This targets players who have at least the number of items of a type specified. Example: tp @a[iamin(137)=4] 37 65 76 - Teleports all players who have at least 4 Command Block to the given coordinates. This means it won't target those who have less than 4(Idea by faissaloo).
iamax() - This would mean Item Amount Maximum. This targets players who have no MORE than the number of items of a type specified. Example: tp @a[iamax(137)=3] 37 65 76 - Teleports all players who have at most 1 Command Block to the given coordinates. This means it won't target those who have more than 3(Idea by faissaloo).
op - Checks for players who are OPs or not OPs on a server.
Example:
tp @a[op=0] @r - This teleports every unit who is not an operator to a random player
tell @a[op=1] Hello admins! - This would say "Hello admins!" to every operator on the server.
name - Checks what the name of a mob/item/player is. If the target is a mob or item it will output whatever you renamed it to. If it has not been renamed it will basically output the same thing type(see above) would. If the target is a player it will output the player's name.
Example:
kill @i[name=Sword of Epic] - this destroyes every item named Sword of Epic there is.
canchat - This would either be true or false. It depends on whether a player has been targeted by chatdisable or chatenable. It is false if they cannot chat and true if they can.
Example:
tell @a[canchat=false] You have been silenced!
state - checks where an item is gives a number as an answer
1 - The item is dropped
2 - The item is carried by a player
3 - The item is carried by a mob
4 - The item is inside a chest
5 - The item is inside a trapped chest
6 - The item is inside a dispenser
7 - The item is inside a dropper
8 - The item is inside a hopper
9 - The item is inside a furnace
Example:kill @ip[type=glass, state=4] - This command destroys 1 glass block inside the command block's nearest chest. If there are multiple chests equally near the command block a random one is chosen.
Commands
wait - waits a number of seconds and outputs a redstone signal afterwards
Example:
wait 5 - waits 5 seconds
replace - replaces a block, item or mob with another block, item or mob
Example:
replace @b[type=dirt,rm=1,r=5] stone - this replaces every dirt block near the Command Block into stone blocks(this can be used to build huge structures without MCEdit
Because there is a block almost everywhere(air is also a block) you can basically use replace to spawn a block as no matter what coordinates you give there will always be a block there(I believe).
heal - adds or removes a number of hearts from the target
Example:
heal @a[health=0.5] 10 - This fully heals all players that are about to die
heal @m[type=creeper] -100 - This is a safe way to kill every creeper on the map.
allow - makes a mob that has been disabled again able to spawn.
Example:
allow creeper - creepers are again allowed to spawn.
disable - makes a type of mob unable to spawn again and all that have already spawned are removed.
Example:
disable enderman - No more endermen can spawn and all that exist are removed.
spawn - Creates a mob at the given coordinates.
Example:
spawn creeper 56 84 43 - Spawns a creeper at the given coordinates.
chatdisable - whoever is targeted with this command cannot chat at all.
Example:
chatdisable @a[op=0,iamax(264)=0] - this would disable all players who are not operators and who do not have at least 1 diamond from chatting.Note that this does not exactly forbid players to type a chat message. Instead, once the player presses enter the chat message isn't shown. However, if the message was a command and the player has permission to use such commands the command will be executed.
chatenable - this command would allow the targeted player to chat again.
Example:
chatenable @a[m=1] - this would allow each player who is in creative to chat.
texture - this would change a block's texture to another block's texture.(Credit to Atm12397)
Example:
texture(@bp[type=stone])=gravel - this sets the nearest stone block's texture to gravel's texture so that it looks exactly like gravel.
timespeed - changes the duration of a Minecraft day/night cycle(Credit to MrBlackDrag0nFly)
Example:
timespeed 6 - sets the duration of 1 day/night cycle to 6 Minecraft hours
permission - Allows or forbids a player from using a command. Similar to giving them operator status except you don't give them permission for everything.
Example:
permission Notch give true - This allows Notch to use the tp command without actually giving him op status.
So basically it's:permission [player] [command] [true/false]
lightning - Creates lightning at the given x and z coordinates or the x and z coordinates of a given target
Example:
lightning @r - This creates lightning at the x and z coordinates of a random player
Note: The Y coordinate is not needed as the lightning will strike at the highest block on the given x and y coordinate so if you target a player that is in a cave the lightning wouldn't actually hit the player.
A completely new command called var
This command might be a bit confusing but would be of great use to mapmakers!
var - Creates a new variable and if it already exists it sets it to whatever you typed.
Examples:
var Thingamajig=8 - This creates a variable called Thingamajig and sets it to 8.
var Thingamajig=2 - Since we already made a variable of this name now it sets it to 2.
You could also set the variable to:
A PLAYER'S OR MOB'S:
X position
var Thingamajig=x(@ep)
var Thingamajig=x(@er)
Y position
var Thingamajig=y(@ep)
var Thingamajig=y(@er)
Z position
var Thingamajig=z(@ep)
var Thingamajig=z(@er)
F position
var Thingamajig=f(@ep)
var Thingamajig=f(@er)
Health
var Thingamajig=health(@ep)
var Thingamajig=health(@er)
Name
var Thingamajig=name(@ep)
var Thingamajig=name(@er)
A PLAYER'S:
Gamemode
var Thingamajig=m(@p)
var Thingamajig=m(@r)
X position
var Thingamajig=x(@p)
var Thingamajig=x(@r)
Y position
var Thingamajig=y(@p)
var Thingamajig=y(@r)
Z position
var Thingamajig=z(@p)
var Thingamajig=z(@r)
F position
var Thingamajig=f(@p)
var Thingamajig=f(@r)
Amount of a certain item
var Thingamajig=ia(@p)
var Thingamajig=ia(@r)
Health
var Thingamajig=health(@p)
var Thingamajig=health(@r)
Hunger
var Thingamajig=hunger(@p)
var Thingamajig=hunger(@r)
Name
var Thingamajig=name(@p)
var Thingamajig=name(@r)
A MOB'S:
X position
var Thingamajig=x(@mr)
var Thingamajig=x(@mp)
Y position
var Thingamajig=y(@mr)
var [email protected])
Z position
var Thingamajig=z(@mr)
var Thingamajig=z(@mp)
F position
var Thingamajig=f(@mp)
var Thingamajig=f(@mr)
Type
var Thingamajig=type(@mr)
var Thingamajig=type(@mp)
Health
var Thingamajig=health(@mr)
var Thingamajig=health(@mp)
Name
var Thingamajig=name(@mr)
var Thingamajig=name(@mp)
A BLOCK'S:
X position
var Thingamajig=x(@br)
var Thingamajig=x(@ip)
Y position
var Thingamajig=y(@br)
var [email protected])
Z position
var Thingamajig=z(@br)
var Thingamajig=z(@bp)
F position
var Thingamajig=f(@br)
var Thingamajig=f(@bp)
Type
var Thingamajig=type(@br)
var Thingamajig=type(@bp)
Name
var Thingamajig=name(@bp)
var Thingamajig=name(@br)
AN ITEM'S:
X position
var Thingamajig=x(@br)
var Thingamajig=x(@ip)
Y position
var Thingamajig=y(@br)
var [email protected])
Z position
var Thingamajig=z(@br)
var Thingamajig=z(@bp)
Type
var Thingamajig=type(@br)
var Thingamajig=type(@bp)
Name
var Thingamajig=name(@bp)
var Thingamajig=name(@br)
(If an item is inside a chest, hopper... then its coordinates will match the coordinates of the container.)
You can also apply arguments to the targets the variable is set to.
Example:
var Thingamajig=name(@p[lm=1,l=2]) - This sets the variable Thingamajig to the name of the nearest player whose level is either 1 or 2.
Then you can use the variable when typing commands.
Example:
kill var(Thingamajig) - This kills whatever player Thingamajig is set to.Last time we set it to @p[lm=1,l=2].
You can also target more players and it would look like this:
var [email protected][op=1] - This sets the variable Admins to all of the players who are admins
say var(Admins) - This would output the variable to every player. The output could look something like this:
RontoKing, Notch, Dinnerbone (Quite creative names xD)
As you can see the variable separates the names with a comma.
This would be EXTREMELY useful for storing information which you could use later as in today's Minecraft it is quite hard if not impossible to store any information.
I would also like the ability to place Command Blocks in minecarts!
There should be more lines in Command Blocks as suggested by PanJouda!
It should be possible for the command block to automatically complete what you are typing in it when you press tab just like in the chat as suggested by MrBlackDrag0nFly!
Also some commands that already change would gain additional features:
kill would work for players, mobs, blocks and items
tp would work for players, mobs, blocks and itemstp would also teleport to a specific angle using the f argument.
playsound could be used to actually play custom .ogg files inside resource packs
If you have any ideas please leave a comment and I will add them along with your name next to them!
If you really like these suggestions and would like to support this even more feel free to set this as your signature:
Changelog:
As of 7/11/2013 I have started adding a history of changes to this topic!
- Added @i, @ir, @ip and name argument
- Added the texture command- Added the timespeed command and information about how commands that already exist would change
- Added a new feature for the command block to auto-complete what you type like in chat
- Added the argument f that can also be used alongside x, y and z.
- Added a list of people that have given reputation to this post
- Added state argument
- Added canchat argument, added permission command, also fixed and added other minor details
- Added lightning command
Hmmm maybe. Actually I was thinking about that too when I was creating the topic but then I remembered that they are adding teams in Minecraft and one of the features is to turn PVP off in a team which makes this almost useless. :/
This is a great idea. As I've said before, I'll almost always support new additions to command blocks because they are meant to be as varied and powerful as possible. Support from me. Great ideas for additions.
Rollback Post to RevisionRollBack
If you want to see a great idea for Minecraft, click the banner! Over 400 supporters and counting!
1. How would a block with a Tile Entity be pushed by a Piston?
2. How would the Boat with Command Block activate? (I suggest Lily Pad activators which when run on, will activate the Boat with Command Block/Tnt/etc. Now this gives a use to Lily Pads.)
1.I don't know much about Java so I'm just gonna suppose that it's impossible to move them with pistons...Too bad!
2.I really forgot about that! Still, lily pads are in my opinion a bad choice because they destroy boats.So, I guess I should take down both of those suggestions from the main post until someone comes up with an answer to these problems.
Thanks for telling me about those obvious mistakes!
Rollback Post to RevisionRollBack
To post a comment, please login or register a new account.
Now I know there are already a few topics suggesting new things for Command Blocks, but here I will try to create a huge list of new features that should be added while also adding whatever anyone else comes up with. Doing this we can place all of the most wanted things for Command Blocks into one single topic.But enough with that, let us begin with the suggestions:
Variables
@m - targets only mobs and not [email protected] - targets a random mob
@mp - targets nearest mob@e - targets players and mobs@er - targets random player or [email protected] - targets nearest player or [email protected] - targets blocks
@br - targets a random block@bp - targets the nearest block. If there are more blocks equally near the command block then it targets a random one.
@i - targets dropped items, items carried by mobs or players, and items stored in chests, hoppers...
@ir - targets a random dropped item, item carried by a mob or player, and item stored in a chest, hopper...
@ip - targets nearest dropped item, item carried by a mob or player, and item stored in a chest, hopper...
Game Rules
doItemDrop - if this is false than players cannot drop items from their inventory
playerGriefing - Unlike adventure mode if this is set to true players cannot destroy ANYTHING at all
Arguments
f - unlike x,y and z this tells the command block where a player, mob or any item that has different textures on different sides is facing (Credit to Tizorna)
Example:
kill @b[f=90, type=piston] - This destroys every piston that is facing north
hunger - Checks how many hunger "points" a player has.Example: give @a[hunger=5] 260 1 - gives every player with a low hunger bar 1 apple
type - Checks what type the target is.
Example:
type=Creeper
type=Pigtype=EnderDragon
type=VillagerGolem
type=Wolftype=dirt
type=swordDiamond
iamin() - This would mean Item Amount Minimum. This targets players who have at least the number of items of a type specified.
Example:
tp @a[iamin(137)=4] 37 65 76 - Teleports all players who have at least 4 Command Block to the given coordinates. This means it won't target those who have less than 4(Idea by faissaloo).
iamax() - This would mean Item Amount Maximum. This targets players who have no MORE than the number of items of a type specified.
Example:
tp @a[iamax(137)=3] 37 65 76 - Teleports all players who have at most 1 Command Block to the given coordinates. This means it won't target those who have more than 3(Idea by faissaloo).
op - Checks for players who are OPs or not OPs on a server.
Example:
tp @a[op=0] @r - This teleports every unit who is not an operator to a random player
tell @a[op=1] Hello admins! - This would say "Hello admins!" to every operator on the server.
name - Checks what the name of a mob/item/player is. If the target is a mob or item it will output whatever you renamed it to. If it has not been renamed it will basically output the same thing type(see above) would. If the target is a player it will output the player's name.
Example:
kill @i[name=Sword of Epic] - this destroyes every item named Sword of Epic there is.
canchat - This would either be true or false. It depends on whether a player has been targeted by chatdisable or chatenable. It is false if they cannot chat and true if they can.
Example:
tell @a[canchat=false] You have been silenced!
state - checks where an item is gives a number as an answer
1 - The item is dropped
2 - The item is carried by a player
3 - The item is carried by a mob
4 - The item is inside a chest
5 - The item is inside a trapped chest
6 - The item is inside a dispenser
7 - The item is inside a dropper
8 - The item is inside a hopper
9 - The item is inside a furnace
Example:kill @ip[type=glass, state=4] - This command destroys 1 glass block inside the command block's nearest chest. If there are multiple chests equally near the command block a random one is chosen.
Commands
wait - waits a number of seconds and outputs a redstone signal afterwards
Example:
wait 5 - waits 5 seconds
replace - replaces a block, item or mob with another block, item or mob
Example:
replace @b[type=dirt,rm=1,r=5] stone - this replaces every dirt block near the Command Block into stone blocks(this can be used to build huge structures without MCEdit
Because there is a block almost everywhere(air is also a block) you can basically use replace to spawn a block as no matter what coordinates you give there will always be a block there(I believe).
heal - adds or removes a number of hearts from the target
Example:
heal @a[health=0.5] 10 - This fully heals all players that are about to die
heal @m[type=creeper] -100 - This is a safe way to kill every creeper on the map.
allow - makes a mob that has been disabled again able to spawn.
Example:
allow creeper - creepers are again allowed to spawn.
disable - makes a type of mob unable to spawn again and all that have already spawned are removed.
Example:
disable enderman - No more endermen can spawn and all that exist are removed.
spawn - Creates a mob at the given coordinates.
Example:
spawn creeper 56 84 43 - Spawns a creeper at the given coordinates.
chatdisable - whoever is targeted with this command cannot chat at all.
Example:
chatdisable @a[op=0,iamax(264)=0] - this would disable all players who are not operators and who do not have at least 1 diamond from chatting.Note that this does not exactly forbid players to type a chat message. Instead, once the player presses enter the chat message isn't shown. However, if the message was a command and the player has permission to use such commands the command will be executed.
chatenable - this command would allow the targeted player to chat again.
Example:
chatenable @a[m=1] - this would allow each player who is in creative to chat.
texture - this would change a block's texture to another block's texture.(Credit to Atm12397)
Example:
texture(@bp[type=stone])=gravel - this sets the nearest stone block's texture to gravel's texture so that it looks exactly like gravel.
timespeed - changes the duration of a Minecraft day/night cycle(Credit to MrBlackDrag0nFly)
Example:
timespeed 6 - sets the duration of 1 day/night cycle to 6 Minecraft hours
permission - Allows or forbids a player from using a command. Similar to giving them operator status except you don't give them permission for everything.
Example:
permission Notch give true - This allows Notch to use the tp command without actually giving him op status.
So basically it's:permission [player] [command] [true/false]
lightning - Creates lightning at the given x and z coordinates or the x and z coordinates of a given target
Example:
lightning @r - This creates lightning at the x and z coordinates of a random player
Note: The Y coordinate is not needed as the lightning will strike at the highest block on the given x and y coordinate so if you target a player that is in a cave the lightning wouldn't actually hit the player.
A completely new command called var
This command might be a bit confusing but would be of great use to mapmakers!
var - Creates a new variable and if it already exists it sets it to whatever you typed.
Examples:
var Thingamajig=8 - This creates a variable called Thingamajig and sets it to 8.
var Thingamajig=2 - Since we already made a variable of this name now it sets it to 2.
You could also set the variable to:
A PLAYER'S OR MOB'S:
X position
var Thingamajig=x(@ep)
var Thingamajig=x(@er)
Y position
var Thingamajig=y(@ep)
var Thingamajig=y(@er)
Z position
var Thingamajig=z(@ep)
var Thingamajig=z(@er)
F position
var Thingamajig=f(@ep)
var Thingamajig=f(@er)
Health
var Thingamajig=health(@ep)
var Thingamajig=health(@er)
Name
var Thingamajig=name(@ep)
var Thingamajig=name(@er)
A PLAYER'S:
Gamemode
var Thingamajig=m(@p)
var Thingamajig=m(@r)
X position
var Thingamajig=x(@p)
var Thingamajig=x(@r)
Y position
var Thingamajig=y(@p)
var Thingamajig=y(@r)
Z position
var Thingamajig=z(@p)
var Thingamajig=z(@r)
F position
var Thingamajig=f(@p)
var Thingamajig=f(@r)
Amount of a certain item
var Thingamajig=ia(@p)
var Thingamajig=ia(@r)
Health
var Thingamajig=health(@p)
var Thingamajig=health(@r)
Hunger
var Thingamajig=hunger(@p)
var Thingamajig=hunger(@r)
Name
var Thingamajig=name(@p)
var Thingamajig=name(@r)
A MOB'S:
X position
var Thingamajig=x(@mr)
var Thingamajig=x(@mp)
Y position
var Thingamajig=y(@mr)
var [email protected])
Z position
var Thingamajig=z(@mr)
var Thingamajig=z(@mp)
F position
var Thingamajig=f(@mp)
var Thingamajig=f(@mr)
Type
var Thingamajig=type(@mr)
var Thingamajig=type(@mp)
Health
var Thingamajig=health(@mr)
var Thingamajig=health(@mp)
Name
var Thingamajig=name(@mr)
var Thingamajig=name(@mp)
A BLOCK'S:
X position
var Thingamajig=x(@br)
var Thingamajig=x(@ip)
Y position
var Thingamajig=y(@br)
var [email protected])
Z position
var Thingamajig=z(@br)
var Thingamajig=z(@bp)
F position
var Thingamajig=f(@br)
var Thingamajig=f(@bp)
Type
var Thingamajig=type(@br)
var Thingamajig=type(@bp)
Name
var Thingamajig=name(@bp)
var Thingamajig=name(@br)
AN ITEM'S:
X position
var Thingamajig=x(@br)
var Thingamajig=x(@ip)
Y position
var Thingamajig=y(@br)
var [email protected])
Z position
var Thingamajig=z(@br)
var Thingamajig=z(@bp)
Type
var Thingamajig=type(@br)
var Thingamajig=type(@bp)
Name
var Thingamajig=name(@bp)
var Thingamajig=name(@br)
(If an item is inside a chest, hopper... then its coordinates will match the coordinates of the container.)
You can also apply arguments to the targets the variable is set to.
Example:
var Thingamajig=name(@p[lm=1,l=2]) - This sets the variable Thingamajig to the name of the nearest player whose level is either 1 or 2.
Then you can use the variable when typing commands.
Example:
kill var(Thingamajig) - This kills whatever player Thingamajig is set to.Last time we set it to @p[lm=1,l=2].
You can also target more players and it would look like this:
var [email protected][op=1] - This sets the variable Admins to all of the players who are admins
say var(Admins) - This would output the variable to every player. The output could look something like this:
RontoKing, Notch, Dinnerbone (Quite creative names xD)
As you can see the variable separates the names with a comma.
This would be EXTREMELY useful for storing information which you could use later as in today's Minecraft it is quite hard if not impossible to store any information.
I would also like the ability to place Command Blocks in minecarts!
There should be more lines in Command Blocks as suggested by PanJouda!
It should be possible for the command block to automatically complete what you are typing in it when you press tab just like in the chat as suggested by MrBlackDrag0nFly!
Also some commands that already change would gain additional features:
kill would work for players, mobs, blocks and items
tp would work for players, mobs, blocks and itemstp would also teleport to a specific angle using the f argument.
playsound could be used to actually play custom .ogg files inside resource packs
If you have any ideas please leave a comment and I will add them along with your name next to them!
If you really like these suggestions and would like to support this even more feel free to set this as your signature:
Changelog:
As of 7/11/2013 I have started adding a history of changes to this topic!
- Added @i, @ir, @ip and name argument
- Added the texture command- Added the timespeed command and information about how commands that already exist would change
- Added a new feature for the command block to auto-complete what you type like in chat
- Added the argument f that can also be used alongside x, y and z.
- Added a list of people that have given reputation to this post
- Added state argument
- Added canchat argument, added permission command, also fixed and added other minor details
- Added lightning command
Dont caps your topic titles.
Deluxe total Support
EDIT:Somehow managed to make a screenshot but doesn't look too realistic :P.
If you want to see a great idea for Minecraft, click the banner! Over 400 supporters and counting!
2. How would the Boat with Command Block activate? (I suggest Lily Pad activators which when run on, will activate the Boat with Command Block/Tnt/etc. Now this gives a use to Lily Pads.)
2.I really forgot about that! Still, lily pads are in my opinion a bad choice because they destroy boats.So, I guess I should take down both of those suggestions from the main post until someone comes up with an answer to these problems.
Thanks for telling me about those obvious mistakes!