mojira.dev
MC-2367

Players can place and remove arbitrary blocks in Adventure mode, breaking pre-1.4.2 maps

First, allow me to start by saying that I understand this is intended behavior. However, the behavior is not proper considering Adventure Mode's original behavior and its intended purpose. The changes made to Adventure mode break existing maps made prior to 1.4.2. You might call this an annoyance rather than a bug - see [MC-2302] for why I feel this is a valid issue to post here.

What I expected to happen was:
Players would not be able to place or remove blocks in a map if they were in Adventure mode.

What actually happened was:
Players in Adventure mode could place blocks freely, and remove them if they had the proper tools.

Steps to reproduce:
1. In Survival or Creative mode, get some blocks and their corresponding tools into your inventory.
2. Change your game mode to Adventure (/gamemode 2).
3. Observe that you can place blocks.
4. Observe that you can remove blocks, as long as you attempt to use the correct tool.

In its original inception, Adventure mode did not allow the player to place or remove any blocks whatsoever. This change contradicts Adventure mode's purpose on many maps, as "you may not place or remove any blocks" is a much more common rule in adventure maps than "you may place any block you have, and remove any block you can get the correct tool for". Many maps in 1.3.1 had this more common rule, and the changes in 1.4.2 break those maps by allowing players to cheat.

Some people may suggest the map maker must simply prevent players from acquiring tools and blocks, and the problem is solved. However, it is not simple to do this at all. Spiders, a common hostile mob, drop string, which may be used to craft wool which can then be used to cheat in parkour or escape the map's boundaries. Maps which allow the player to craft weapons must inadvertently also give them the power to create tools which can break the map. In fact, even swords can be used to break a variety of blocks. Thus, there is no way to escape having to put the "you may not place or remove any blocks" rule in such a map, and such a map is doomed to fail on larger SMP servers unless plugins which specifically prevent block removal/placement are used.

The ability to place blocks in Adventure mode also comes as an annoyance to players in some maps. I have seen a few videos where a player accidentally places a wool block they wanted to trade to a villager, and the block cannot be removed without acquiring shears or using commands.

While the new Adventure mode has its uses in maps which do not bear the "you may not place or remove any blocks" rule, the old Adventure mode supported its own massive share of maps (if anybody is willing to do a breakdown of the percentage of maps with this rule, feel free to post it in the comments). Furthermore, it supported modless multiplayer adventure maps, where a large amount of players can safely be allowed to play, whether or not they could be trusted not to cheat, because it literally prevented cheating. With these changes, such servers are broken and must get protection plugins to prevent cheating.

Thus, although I agree the new version of Adventure mode should not be removed, I earnestly feel the old version should be reinstated somehow. Whether it be as a new gamemode, or whether gamemode permissions can be made configurable, it would be a boon to map-makers and server owners alike whose maps go by one of the most common rules to be seen in Minecraft adventure maps.

Related issues

Comments

migrated

This is why we got the command /gamerule. "doMobLoot" will stop mob loot and "mobGriefing" will stop creepers from exploding, so the player can't craft blocks.

migrated

This bug tracker is for reporting unintended behavior.

migrated

Turning off mobLoot isn't the right fix - what if your map wants players to be able to gather mob drops, e.g. for food? Furthermore, you can't even let the player have a sword, because that is considered the proper tool for many plants and cobwebs.

And this is not a feature request - the feature had already existed in the game, and its removal is an annoyance. See this discussion; while the changes to adventure mode were intended, I doubt breaking many maps was an intentional consequence.

migrated

For the record, the old adventure mode had existed for nearly three months in terms of snapshots, and had existed for the majority of players in the nearly four-month period between 1.3.1 and 1.4.2. This isn't just something they added in one snapshot and changed in the next - it has been around for an entire full release cycle, and has featured in many maps.

I can understand calling this a feature request if the old adventure mode wasn't even intended to be seen by the majority of players and was still heavily in development. But it was actually put out in a public release, and many players decided to use it for their maps. Thus, the changes made quite a few maps from these past four months cheatable - which is honestly not something I imagine Mojang intended.

migrated

I think they key question is whether the current behavior is intended or not. If it is, then you're making a feature request. If it's not, then it's a bug report. Only Mojang can answer that question.

Also, I wouldn't rely too heavily on features as they existed in snapshots. Even if the feature was unchanged for a moderately long time chronologically, it was still the snapshots. They are, by definition, subject to change.

migrated

Please re-read that. The feature was released in 1.3.1 and then changed in 1.4.2. It was fully released, to the general public, for nearly four months. It's not just something they added in the snapshots and then changed before the full release. Like most features, it was added in a snapshot... But actually made it to the full release without change. It was not changed until the next full release.

And Mojang has changed their "intentions" in past issue reports. Dinnerbone intended for anvils to be expensive, but players complained that it wasn't quite worth it, and so he tweaked it. Mojang likely intended for bats to make noticeable squeaking noises, but did not intend for it to be so bad that it gave players headaches. And while Mojang intended their adjustments to adventure mode, we have yet to see any evidence that they intended to break maps as a result. If Mojang made intentional changes to redstone, would it be a feature request to complain that those changes broke a majority of complicated redstone contraptions? No, because in all probability breaking things isn't what they intended.

The key question isn't just whether the current behavior is intended or not. It's whether the consequences are intended - and as you said, only Mojang can answer that question. The fact that only Mojang can tell us does not mean this issue should be removed from Mojang's sight before they even have a chance to get to it.

migrated

Oops, my mistake, you're right. It was in a release and then changed. I still wouldn't consider that iron clad evidence, though. Several other game mechanics have changed after being in the game for a while.

I think my comments might be making my opinion seem a bit stronger than it actually is. My feeling is that Mojang will consider this not-a-bug, but I'm really not sure. I guess we'll eventually see how they respond.

migrated

What would be ideal imo is a gamerule for blocks that are breakable and one for blocks that are placable. Rather then the value being true/false, it would be a list of block ids. The rules could be added with an NBTeditor or with a command like "/gamerule PlacableBlocks add <id>" and "/gamerule BreakableBlocks remove <id>".
These gamerules would only apply to players in adventure mode.

This way the map creator could set (for example) that torches may be placed and broken, leaves may be broken and buttons may be placed.

migrated

Why do people keep saying there should be a new gamerule which decides which blocks you can place/destroy. Either it is too advanced to make/configure or the people at mojang are too lazy to make the system. (I hope the first one for them 😛) So it's probably not going to happen (soon).
But I do agree that they should make this though.

migrated

This needs to be fixed, hopefully soon as it breaks all my maps 😞

migrated

It breaks every map that uses adventure, I'm not really sure why this bug has only 8 votes.

migrated

Before a mod asks for it, yes this still happens in 1.4.6

migrated

this is a duplicate of [MC-3066] btw.

migrated

MC-3066 is a duplicate of this, to be exact, because this bug was created earlier (lower number).

migrated

ah, wow. You're right, I'm pretty sure I commented it on the other bug report.

migrated

godammit

migrated

Some suggested a new gamerule as solution for this issue, a new gamemode would be much better.

The important difference is that gamemodes can be set per player and thus allow builders and players whereas a gamerule would have limited usefulness.

migrated

The gamerule would only apply to those in adventure mode - you could still have builders in creative (or survival if you wanted to for some reason)

migrated

A new gamerule/gamemode isn't going to be there anyway 😞 maybe in 1.6 or something but I doubt it

migrated

Ok, well that extra gamemode/rule isn't going to be there anyway (as I said) but this might be a good idea:
Why not just nbt tags on tools wit hall the blocks it can break, that gives the map makers all the opportunities they need. And if people don't want blocks to be breakable, they don't have to worry about giving the wrong items. The only thing we need to find a solution for is right clicking actions

migrated

That wouldn't quite work in a setup where you want the player to be able to obtain mob drops (e.g. for bosses and such, or even just in general). Zombies occasionally carry shovels, which they can drop (not to mention, their swords can also cut through leaves).

And honestly, I find maps where crafting is actually needed are fun. In this case, you can't really stop the player from making a shovel or pick instead of a sword.

At this point, I've more or less given up on a fix for this anytime soon, so I'm relying on recommending people play the map on a Bukkit server with WorldGuard.

EDIT: To tell the truth, I always imagined Adventure Mode would come with a configurable list of blocks players can place/break, to suit those maps which say "you can only break clay", etc. Even if it required NBT editing, I'd love that.

migrated

well, if you have a spawner you can make zombie spawn with an item with NBT tags. Well I don't really care how they fix this, I just want the to FIX it.

migrated

Community Consensus?! Ohh... This is so exciting...

migrated

It means the community agrees that this is non-intended behavior. It's up to the devs to follow up on this. When that happens is, again, up to them to decide.

migrated

This issue also removes some of the uses of adventure mode, such as having areas where the player can not interfere with the environment. Such as having redstone heavy shops where the player should not be able to destroy blocks (and there for some reason is not possible to seal everything with bedrock, but still letting the player have the freedom of survival in the rest of the map.

migrated

confirmed for 13w09c
what's the point of breaking redstone in adventure anyway?

migrated

The easiest and best solution is adding a gamerule for adventuremode. /gamerule adventureBreak. And with false you wouldn't be able to break any blocks. With true you would be able to break glass, torches etc. with your hands, and other resources with the proper tools. If this gets fixed, you are able to make an ungriefable spawn area, and when players would walk outside it their gamemode would get updated. And I'm sure there will be more advantages. There is no reason why they shouldn't do that.

migrated

Indeed, but how are you going to tell if you want players to trigger pressure plates, buttons, buckets, trading etc. I think someone needs to think of something really clever which is very easy to code. But I think we can all agree that the way it is now, is definitely not the way it should be.

migrated

How about a world-creation option, in what you can adjust the adventure options for that map. I know that's much more work, but in that case no one would be harmed. You would be able to adjust breakable blocks, whether buttons/pressure plates work or not. But I think this won't be added very soon. It would be so much better though 🙂

migrated

The only way to disable breaking any blocks is giving the player mining fatigue lvl 100 or something.

migrated

Indeed, but that makes your hand slow and creates ugly particles

migrated

That's exactly my point, as that is the only way to do it now, and yet it has many downsides.

New idea: more options for /scoreboard teams
-Ability to link teams to gamemodes (when you log in it checks for your gamemode and assigns you to a team)
-Ability to set the ability to break/place blocks in that team

This wouldn't effect the adventure mode, so the people who wanted that to be like it is now have no reason to nag.
This would create a new system, I think not too complicated to add to the code, that allows the player to make his own gamemode.
Also this could be used to make classes/ranks in a server.

migrated

Why don't they just take away the feature where you can break stuff with your bare fist. That's the most stupid part of this bug. I understand why you can break blocks with the proper tool. If you don't want people to break blocks, don't give them tools. But now you can also break stuff without tools.

migrated

Because of 2 reasons:
-Rare mob drops (zombies dropping shovels)
-Combat (with a sword you can fight AND break certain blocks)

migrated

I think this relates to [MC-3066]

migrated

Haven't been around long enough on Minecraft to have played the old adventure mode myself, but when I went into adventure mode, I thought it would be just what it is called; "adventure". If you want to break blocks, then play survival. I need something exactly like the old adventure mode for my server so nobody accidentally/purposely trashes my map. Since I am on Vanilla, I can't use plugins unless I mod. I'd rather not do that. Bukkit is awful, and Canary refuses to cooperate. I hope we at least get a compromise on this.

migrated

Why not both? You could keep the current behavior, but also add a new mode, perhaps call it Explore mode, where you can't modify the world in any way.

migrated

Personally, I can see both points of view, Yes breaking glass is useful for some adventure maps, but it also can be used to easily cheat as there is no transparent block that can not be broken. I do have a solution. Simply add a gamerule to disable breaking blocks completely. Only interacting with blocks like levers and chests. That will help a lot of people and help map makers a TON. Please consider this.

migrated

Ok, this issue is opened for like 8 months now, and I think we need some clearness on this bug. Just tell us wether this works as intended or if there is any change of this being fixed. Sure, you don't have to come up with a new gamemode/gamerule or anything, but just tell us what the future of this bug will look like. You can't leave us here with this uncertainty guys. We can't live like this... (ok I might be a bit over reacting there but you get the point) I mean, what's the point of a bug tracer if no one uses it. I just don't get it, it's not that it's hard to program or anything, you could just fix this easily right? And if it will take a bit more time or no one at mojang is in for fixing this bug then just tell us, we won't be mad (some of us will though)

migrated

nope? Another update and just still nothing at all?

migrated

It's not just Jesper here. This thing outright breaks adventure mode. The only way to prevent block breaking at the moment is to constantly have a mining fatigue. There has to at least be some kind of response to this.

migrated

POSSIBLE SOLUTION: As a person designing minigames in minecraft, I absolutely hate that you can break glass and decorations in adventure mode. I am joined by many, but also can see why Mojang implemented adventure mode the way they did. If someone is building a redstone puzzle map for instance, buttons have to have the ability to be removed and placed, so breaking them should be allowed, which is how adventure mode is set up.

Unfortunately, any block that is a full block can not be placed and removed, so redstone blocks, and regular blocks can not be used in a redstone puzzle map like I described above.

A fix to this would be to completely be able to customize which blocks can be broken. In creative mode, nothing can be broken with a sword, so making every block impossible to break is completely possible to code.

If mojang added a few extra gamerules to alter the way the game processes breaking blocks, this would allow map makers to customize their user's experience with the map. For example:

/gamerule allowBreakingBlocks
/gamerule allowPlacingBlocks

For specific block types, mojang could do what they do with their whitelists and create a list or array for the game to implement from the save's folder. For instance:

/gamerule allowPlacingID 1
/gamerule denyPlacingID 1

This would be the topper on the cake to map makers who need more control for their minigames. With Bukkit, they have had these options for ages, which is why Bukkit minigames are becoming so popular. Please consider this Mojang.

-Djimusic

migrated

To Dakotah Intriglia:
Many of the people who commented on this issue here suggested the exact same solution as you did, myself included. Unfortunately, Mojang usually has a "we'll do it in our own sweet time" attitude.

Skylinerw

A hopeful heads-up: https://twitter.com/jeb_/status/420942646950260736

Adventure mode screenshot, will make sense tomorrow: http://i.imgur.com/1Nu83qD.png ... The tag is CanDestroy:["minecraft:sand","minecraft:grass"]

With this addition, it sounds very plausible that the method of destroying blocks is being changed, which may bring a close to this bug. With this, map-makers can manually assign tools to break specific blocks for that individual tool. This would also mean you could have two pickaxes that can mine different blocks, but not the same blocks. Won't know if this is merely an addition or a widespread change to how adventure mode works, until the first snapshot arrives.

migrated

I'm hoping for a change, but there are some things I'm wondering: will block placement be unchanged? Will pre-1.8-but-post-1.4.2 mechanics be removed, meaning only NBT-edited items (and not crafted items) get these properties? I'm personally hoping some gamerules will be associated with the changes (allowing a choice between pre-1.4.2, post-1.4.2, and post-1.8 mechanics to some degree), but I'm excited even if that isn't the case. As you said, until the snapshot comes, there's no telling how exactly it will pan out.

Skylinerw

Fixed as of 14w02a! Players in adventure modes cannot place OR break any blocks, unless a tool with specified NBT tags have been provided by the map maker. Source: https://mojang.com/2014/01/minecraft-snapshot-14w02a/

migrated

(Unassigned)

Community Consensus

Minecraft 1.4.2, Minecraft 1.4.3, Minecraft 1.4.5, Minecraft 1.4.6, Snapshot 13w01a, ..., Minecraft 1.7, Minecraft 1.7.1, Minecraft 1.7.2, Minecraft 1.7.3, Minecraft 1.7.4

Minecraft 14w02a

Retrieved