Variables
@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...
I'm not sure if the game can check for data inside tile entities. Could be wrong, though.
Arguments
type - Checks what type the target is.
Example:
type=creeper
type=pig
type=enderdragon
type=iron golem
type=wolf
type=dirt(used with @b )
type=diamond sword(used with @i )
Some syntax corrections:
type=Creeper
type=Pig
type=EnderDragon
type=VillagerGolem
type=Wolf
type=dirt
type=swordDiamond
Arguments
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).
It would just be much more convenient if the /clear command could support amount of items.
Commands
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
Already possible with /testfor, /scoreboard, and /effect commands. Redundant.
feed - adds or removes food points from the player
Example:
feed @a[hunger=0] 10 - Fully heals the hunger of all players whose hunger bar is empty
feed @a[hunger=10] -9 - Leaves all players that have full hunger bars with only one hunger point.
As of 1.6.1, already possible with the Saturation effect. Redundant.
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
As of 13w24a, already possible with the /gamerule doDaylightCycle command. Redundant.
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!
The only idea from your thread that I like; typing commands in Command Blocks is such a pain.
1. About tile entities, I don't know either. If you are 100% sure that it is impossible or ridiculously difficult then I will remove it.
2. I guess having @bp would be fine, then.
3. Ok, I'll correct those syntax errors.
4. Those arguments don't directly clear the inventory. They are used to check for players with a certain amount of items. You might not always want to take away items from players. Clear is for removing items, iamin and iamax are for picking players that have a certain amount of a certain item.
5. It was just an example, but alright I'll change it to something else, like tp.
6. Again, an example, but I will change it.
7. But it is a great shortcut.
8. Can you explain in a bit more detail. like, add whatever else is needed to /testfor and /scoreboard and I do not know what /effect does. I suppose it gives you a potion effect? If so, then it still isn't redundant because the /heal command could heal a specific amount.
9. At the time of typing that command there was no /saturation command. Although I did forget to remove it from the list, so my mistake.
10. /timespeed wouldn't stop time like that gamerule. It would set the time a full cycle would last...
11. With variables you can store information forever. if you don't use it then if something in the map changes you could never have any info on what that something was before.
12. it could still be good to have. It would save space. i don't know if it would save memory(maybe it would because less command blocks would have to be rendered but I'm not sure if that makes much of a difference).
13. You say you like that idea? Well, if so then why would you not like the /wait command?
They are both redundant, while /wait can save even more time and effort than that shortcut.
I will edit some of the things you pointed out, though, later.
I have corrected the syntax mistakes and also those two examples you informed me of WaterTipper :D.
I am still not sure about removing @i, @ir and @ip though.
Wow, coming back to this now, I see some suggestions have been added! Command Block minecarts, the summon and setblock command! I don't know if Mojang saw this topic, other ones, or just thought of them by themselves, but either way, that's awesome! I wish i knew though... :/
I think this system would work better than the one currently on the first page for two reasons: first, it fits with the rest of the minecraft variables so it should be easy to code into the game, and second, it allows for list type variables (e.g. @v[area,1,players] could be used for the players in area 1, or @v[myBase,guests] could be used to allow guests into a house).
I have a thread dedicated to adding a few new commands, but as that thread is so unreplied to and because there are only seven new ideas, you can use them if you want.
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 blocksThis is a fairly good idea. @e already exists and targets all entities, however, so it no longer needs to b in the suggestion.@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.setblock already targets blocks, and I'm not sure how this would be used in a way setblock could not be.
@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...Items on the floor are entities, but items in inventories are a property of what they are stored in. This kinda feels off. 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 How does doItemDrop interact with keepInventory being false (the default)?playerGriefing works fine. 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 This actually would work well for puzzles, but makes more sense as replace with air.
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 This is a well formed idea.
type - Checks what type the target is.
Example:
type=Creeper
type=Pigtype=EnderDragon
type=VillagerGolem
type=Wolftype=dirt
type=swordDiamond You need to make this less ambiguous, or break it into multiple arguements.
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. These ideas are well defined and formed. Add a iaexact, to target those with exactly that amount of an item.
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! These two logically make sense.
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. This makes the targeting items make some more sense. Commands
wait - waits a number of seconds and outputs a redstone signal afterwards
Example:
wait 5 - waits 5 seconds Okay, but doable with repeaters.
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). setblock already does this, this has no reason to be here anymore.
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. This is exact enough to make its difference from giving healing warranted.
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. This works well, but probably should fall under gamerule.
spawn - Creates a mob at the given coordinates.
Example:
spawn creeper 56 84 43 - Spawns a creeper at the given coordinates. This suggestion is redundant, as /summon exists.
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. These two make logical sense.
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. This idea works fine, but how would it be stored? Would it fade out is you exited the game?
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 This also falls under gamerule, but is a good idea.
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] This is a logical idea.
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. /summon LightningBolt works just as well. 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. The scoreboard does this just fine.
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! Tabbing command blocks is a great idea. 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.
kill works fine, except blocks could just be set to air.tp changing is okay.playsound allow custom ones also works fine. All in all, these are good ideas, but some of them have become outdated
Rollback Post to RevisionRollBack
I'll make a better information picture at some point.
To post a comment, please login or register a new account.
I'm not sure if the game can check for data inside tile entities. Could be wrong, though.
Then wouldn't the @bp choose a random block from the closest blocks?
Some syntax corrections:
type=Creeper
type=Pig
type=EnderDragon
type=VillagerGolem
type=Wolf
type=dirt
type=swordDiamond
It would just be much more convenient if the /clear command could support amount of items.
Command Blocks have /kick disabled to prevent abuse.
I'd imagine that this would create a ton of lag, since the game has to check every single chest in a given world.
Already possible with Redstone without any unnecessary commands. Redundant.
Already possible with /testfor, /scoreboard, and /effect commands. Redundant.
As of 1.6.1, already possible with the Saturation effect. Redundant.
As of 13w24a, already possible with the /gamerule doDaylightCycle command. Redundant.
Dat pointless word spam >.<
Also, I don't see how this would be in any way useful, except for making commands inside Command Blocks slightly shorter.
Already possible with multiple Command Blocks connected via Redstone. Redundant.
The only idea from your thread that I like; typing commands in Command Blocks is such a pain.
2. I guess having @bp would be fine, then.
3. Ok, I'll correct those syntax errors.
4. Those arguments don't directly clear the inventory. They are used to check for players with a certain amount of items. You might not always want to take away items from players. Clear is for removing items, iamin and iamax are for picking players that have a certain amount of a certain item.
5. It was just an example, but alright I'll change it to something else, like tp.
6. Again, an example, but I will change it.
7. But it is a great shortcut.
8. Can you explain in a bit more detail. like, add whatever else is needed to /testfor and /scoreboard and I do not know what /effect does. I suppose it gives you a potion effect? If so, then it still isn't redundant because the /heal command could heal a specific amount.
9. At the time of typing that command there was no /saturation command. Although I did forget to remove it from the list, so my mistake.
10. /timespeed wouldn't stop time like that gamerule. It would set the time a full cycle would last...
11. With variables you can store information forever. if you don't use it then if something in the map changes you could never have any info on what that something was before.
12. it could still be good to have. It would save space. i don't know if it would save memory(maybe it would because less command blocks would have to be rendered but I'm not sure if that makes much of a difference).
13. You say you like that idea? Well, if so then why would you not like the /wait command?
They are both redundant, while /wait can save even more time and effort than that shortcut.
I will edit some of the things you pointed out, though, later.
I am still not sure about removing @i, @ir and @ip though.
First, change the syntax to
/var [{name}]={value}Then change the read syntax to
@v[{name}]Last, add support for basic math e.g.
I think this system would work better than the one currently on the first page for two reasons: first, it fits with the rest of the minecraft variables so it should be easy to code into the game, and second, it allows for list type variables (e.g. @v[area,1,players] could be used for the players in area 1, or @v[myBase,guests] could be used to allow guests into a house).
Here are some examples to consider:
Remember a player:
To see it this is the same player:
A bank system:
Adding funds to the bank:
I don't know how to check if the bank has a large enough value though...
Changing a line of blocks to stone:
Create two command blocks and hook them up to a clock, set the first one to and the second to
I have a thread dedicated to adding a few new commands, but as that thread is so unreplied to and because there are only seven new ideas, you can use them if you want.
The thread is here.
I'll make a better information picture at some point.