Game Mechanics Command Blocks for Custom Adventure Map Makers

JereTheJuggler

Spazmatism
Overview
With the new Journey Mode interface, a lot of really cool mechanics have been added that would be really nice to activate automatically in custom adventure maps.

What I'm thinking is that you could have placed items that are similar to Announcement Boxes, but instead of saying things in chat when activated by wiring, they could run a command instead.
These commands would essentially just be background clicks of the buttons in the Journey Mode interface, to enhance the map player's experience.

Syntax
For command syntax, I'm thinking something pretty similar to Minecraft's command syntax. For specific examples...
/time [dawn/noon/dusk/midnight] - Sets the current time to the option specified. Alternatively, an integer could be specified to allow more specific times instead of strings.
/timescale [0 - 24] - If 0 then it keeps the current time scale and freezes time. If 1-24 then it unfreezes time and sets the scale to that number.
/wind [-40 - 40] - Sets the wind speed to the number entered.
/windchange [enabled/disabled] - Enable and disable changing the wind speed. Alternatively, true/false could be used instead of enabled/disabled.
/rain [0 - 100] - Set the amount of rain, from 0% to 100%.
/rainchange [enabled/disabled] - Enable and disable changing the amount of rain. Alternatively, true/false could be used instead of enabled/disabled.
/infectionspread [enabled/disabled] - Enable and disable the spread of infection. Alternatively, true/false could be used instead of enabled/disabled.
/difficulty [option] - Set the current difficulty of the game. As for specifying in the command, you could use a float from .5 to 3, but it could also accept the strings "journey", "normal", "expert" or "master" as constants.

For the Personal Power options, I would again follow Minecraft's example and use target selectors to say "all" players or just the "nearest" player to the command block.
/godmode [all/nearest] [enabled/disabled] - Enable and disable godmode for the specified player(s). Alternatively, true/false could be used instead of enabled/disabled.
/extendedrange [all/nearest] [enabled/disabled] - Enable and disable the extended placement range for the specified player(s). Alternatively, true/false could be used instead of enabled/disabled.
/spawnrate [all/nearest] [0 - 10] - Set the spawn rate for the specified player(s) to the number specified.

For duplicating items, I would use the same target selectors as the Personal Power options.
It may be a point of contention, but I would allow items to be given to a player even if they don't have it researched, as the whole point of this feature is for custom adventure maps where most of the time you are supposed to start with a fresh character. I get that the feature could be abused, but the problem could be bypassed by telling the player to research everything in a chest at the map start anyway, so being able to give players items they haven't yet researched just saves the map makers and players the hassle.
Anyways... for the syntax:
/give [all/nearest] [itemname] [1 - 999] - Give the specified player(s) the specified item, in the specified quantity (1 - 999). An anti-abuse measurement could be removing the target selector for this command and limiting it to only working for the nearest player.

Use Cases
I'm actually working on making a custom adventure map currently (which is what brought the idea up), and I can already think of many ways to use these features that would elevate custom adventure map experiences to a whole new level.
  • Pairing day/night sensors with the timescale command. I have a castle area that I'm working on that utilizes windows and natural lighting for a majority of the light in the area, thus making the area really dark during the night. To solve this issue without having to compromise the castle's aesthetic, it would be nice to have a night sensor trigger a command block that sets the time scale to 24x to fast forward through the night, and then reset it back to 1x when it becomes day again.
  • Pairing player above sensors with the godmode command. It would be nice to be able to turn on godmode for players while they are in parkour based areas of a map so they don't die (or get whittled down by multiple non-lethal drops) when they miss a jump. This allows for harder parkour areas where players don't have to risk dying and going through the slog of waiting for the respawn timer when they make a mistake (I know there are blocks that negate fall damage, but again this would be a nice solution that doesn't compromise aesthetics). Once the player moves on to an area where they might have to do some fighting, then you could have another player above sensor that turns their godmode back off.
  • Time based boss fights and the time command. For as long as there have been custom adventure maps, fighting bosses like the Eye of Cthulhu and Skeletron have been a part of the adventure, and that means standing around for up to 24 minutes if you fail to beat the boss (particularly Skeletron because you have to wait for the Old Man to respawn).
  • Restocking items so the player never runs out and can't complete the map. This applies to basically all consumables, from ammo to potions to boss summons.
Choosing Beggar Features
All of the ideas above are simply automating the Journey Mode interface,and I would be elated even if just those features were added, but I would be doing myself a disservice if I did not at least throw out the following abilities that are not currently available in Journey Mode.
  • The ability to prevent random events from happening. Unwanted Goblin Invasions, Slime Rains, and Blood Moons can wreak havoc on custom adventure maps. It would be nice to be sure that it won't ruin anyone's experience playing your map.
  • Clear items from a player's inventory. Most custom adventure maps start off by telling players to delete their starting items, and it would be nice if this could be automated. Additionally, if you give players items to deal with a certain area of the map and you don't want them to leftovers for dealing with later parts of the map. For an example, if you want to give players Swiftness Potions for a boss fight, but after they finish the fight you don't want them to be able to use the potion for the following parkour area. I get that implementing this could cause more trouble than it solves because it could wipe the inventory of a player when they aren't expecting it, so I really don't expect this to be added.
  • The ability to give players buffs. This could be very useful for boss fights, so the player can have the same buffs for the fight no matter how many times they try to beat the boss. This would alleviate the problem of either giving the player too little potions so they run out, or giving them too many so they have a surplus to use when they aren't supposed to. This would actually completely negate the example I gave in the previous feature.
  • A butcher command to kill all enemies. It could come in handy from time to time.
  • The ability to turn off graves for player deaths. I actually spectated a friend playing one of my 1.3 custom adventure maps yesterday, and the amount of graveyards that were created during the map kind of lessened the experience because the map was not designed to work with them or prevent them from occurring (because how was I supposed to predict this would be a thing a couple years later).
 
Back
Top Bottom