Minecraft Preview 1.19.70.20 lets players be more sneaky

What you need to know

  • Minecraft Previews let players test early versions of upcoming Minecraft updates, including new features.
  • Minecraft Preview 1.19.70.20 is now available with a hefty changelog of fixes.
  • It also includes major improvements to sneaking, with players now able to crouch to a height of 1.5 blocks instead of 1.8.

Sneaking in Minecraft: Bedrock Edition will be more useful in the future, thanks to changes being tested in Thursday’s Minecraft Preview build. Mojang Studios is now in the process of releasing Minecraft Preview 1.19.70.20 to any interested players, and it’s packed with various changes, fixes, and some solid improvements.

Minecraft players can crouch to their heart’s content in Minecraft already, but it’s not very useful besides preventing accidental falls and for vague in-game emoting. With the latest Minecraft Preview build, subtle changes are adding up to big improvements. Sneaking will now lower players to a height of 1.5 blocks instead of 1.8, giving players the ability to crouch through tighter spaces than they’d be able to walk.

This feature may even arrive before Minecraft 1.20, since it’s not being tested as an experimental feature. While a seemingly insignificant change, these sneaking improvements will open up new avenues to builders, map designers, Minecraft creators, and more. Besides that, the latest pre-release build for one of Xbox’s best games also includes plenty of other fixes and changes.

In case you missed it, the latest Minecraft: Java Edition snapshot included a major Minecraft 1.20 feature in customizable armor trims, which should appear in future Minecraft Preview builds for wider testing. We also recently got our first look at the Sniffer mob in Minecraft, which may also be added to future pre-release builds. The world of Minecraft is steadily getting a little more exciting as development on Minecraft 1.20 continues.

The full changelog for Minecraft Preview 1.19.70.20 includes:

Features & bug fixes

Blocks

  • Destroying Mangrove Log or Mangrove Wood now properly cause leaves to decay
  • End Crystals occupying the same space as a block will no longer cause that block to disappear 

Commands

  • `Replaceitem` and `loot replace block` commands no longer place items in Cauldrons
  • Rotation in the `teleport` command is now relative to the executor of the command instead of the target
    • Old usage of rotations in commands will stay relative to the target mob for backwards compatibility

Gameplay

  • Players no longer take rapid damage when touching damaging blocks
  • Fixed a crash that could occur when entering a 1.7.1.0 world in 1.8 or above
  • Projectiles shot while swimming / gliding no longer spawn from above the player’s position
  • Items dropped while swimming / gliding, manually or on death, no longer spawn from above the player’s position
  • The player’s crosshair now properly mines/interacts with items in front of them while swimming / gliding, rather than 1 block above their position
  • Written Books can now be moved in the inventory even when the player has identical Written Books
  • Double-clicking on the Furnace output slot will no longer drop the item
  • Fixed a bug where Observers would not detect changes due to corrupted data
  • Hoppers now pull in items from above them through all blocks that have a lower height than a full block

Graphical

  • Fixed an issue where the “Mine” tooltip was appearing when targeting a block with a Trident in Creative game mode

Mobile

  • When starting a new world in Pocket UI, removed the “Press Open Chat to open chat” message for players with text-to-speech turned off

Mobs

  • Parrots will no longer shake while on a player riding a Horse that is turning mid-jump
  • Fixed a bug causing global entities (e.g. Ender Dragon and projectiles) to stop rendering when out of normal entity render distance

Player sneaking

  • Player’s hitbox height now reduces to 1.5 blocks while sneaking
    • Sneaking will automatically be initiated while stuck in a gap of less than 1.8 blocks
    • Sneaking will lower the player camera height respective of these changes
    • Sneaking now requires enough space to stand in order to exit sneaking
    • Players will transition from swimming to sneaking if they are unable to stand up but would be able to sneak
  • Known Issues that we hope to have addressed soon:
    • Camera may be obscured when sneaking under blocks in third person view
    • Interacting with certain blocks may not work when sneaking in a gap
    • Jumping off the edge of blocks may not work as expected when sneaking in a gap

Touch controls

  • Updated the How to Play screen with info on new touch controls
  • Changing input modes from Gamepad to Touch while an item is selected will return the selected to the inventory or drop it
  • Fixed an issue on the Furnace screen where double-tapping the output window caused other slots to become unselectable
  • Fixed a bug where progressive select was automatically initiated on the first slot when opening a small Chest

User interface

  • Ocean Explorer, Woodland Explorer, and Treasure Maps now show the proper icon in the inventory
  • Fixed a bug where mouse scrolling on the Friend Options dropdown would not scroll the dropdown contents
  • Resolved an issue where graphical elements of the Sign-In / Sign-Up screen could extend beyond the bounds of the dialog container

Vanilla parity

  • Bells that are connected to multiple blocks no longer drop when one block is broken
  • Breeding horses can now produce random variants
  • Fixed an issue where dead players prevented other players from skipping night
  • Eating and drinking animations will now always be centered, regardless of screen aspect ratio
  • Note Block sound attenuation over a distance is now linear

Technical updates

Creative

  • The game will no longer create a content error when Bee spawn eggs are used on a Spawner
  • Behavior packs with scripts can now be removed from worlds

Mobs

  • Tropical Fish spawn rules .json file is now located in the correct folder
  • Witch potion drinking and ranged attack behaviour is now defined in its .json file

Experimental features

General

  • Piglin Head Blocks rendered in the hotbar or inventory no longer have the ear overlapping the rest of the head
  • Players can now receive damage when falling while riding a Camel

Experimental technical updates

API

  • Important breaking change: The classes `Location` and `BlockLocation` no longer exist in the beta script API
    • All usages of these classes have been changed to use the Vector3 interface (that is, `{ x: 1, y: 2, z: 3}` objects).
    • Also, note that several changes were made to properties and get / set methods across objects (listed below) to make them more consistent in calling structure.
  • `ItemStack`
    • Item lore can now be cleared by calling `setLore(undefined)` or `setLore([])`
    • Added function `clearLore` — Clears the item lore
  • `ItemStack`
    • Fixed a bug where calling function `getComponent` or `ItemStack.getComponents` would fail on `ItemStacks` returned from `EntityItemComponent.itemStack`
  • `BeforeChatEvent`
    • Renamed function `tell` to `sendMessage`
  • `Block`
    • Added function `isAir` — Returns if the block is an air block (for example, empty space)
    • Added function `isLiquid` — Returns if the block is a liquid (for example, a water block and a lava black are liquid, while an air block and a stone block are not)
    • Added function `isSolid` — Returns if the block is solid (for example, a cobblestone block and a diamond block are solid, while a ladder block and a fence block are not)
    • The following blocks now have an inventory component:
      • Barrel
      • Beacon
      • Blast Furnace
      • Brewing Stand
      • Dispenser
      • Dropper
      • Furnace
      • Hopper
      • Jukebox
      • Lectern
      • Smoker
    • `World Events`
      • Added event `entityDie` — It is fired when an entity dies.
      • Modified `projectileHit` to be a `readOnly` property on the `Events` class
    • `Player`
      • Added method `getSpawnPosition` — Gets the `spawnPoint` position
      • Added property `spawnDimension` — Gets the `spawnPoint` dimension
      • Added method `setSpawn'(spawnPosition : Vec3, spawnDimension : Dimension)` — Sets `spawnPoint` with a position and dimension
      • Added method `clearSpawn` — Sets the `spawnPoint` position and dimension to undefined
    • `World`
      • Renamed function `say` to `sendMessage`
      • Added method `getDefaultSpawnPosition` — Gets the `spawnPoint` position
      • Added method `setDefaultSpawn'(spawnPosition : Vec3)` — Sets the `spawnPoint` position within `overworld` dimension
    • `BeforeChatEvent`
      • Added function `getTargets(): Player[]` — Gets chat Player targets
      • Added function `setTargets(players: Player[])` — Sets chat Player targets
      • Removed property `targets`
    • `BeforeDataDrivenEntityTriggerEvent`
      • Added function `getModifiers(): DefinitionModifier[]` — Gets entity definition modifiers
      • Added function `setModifiers(modifiers: DefinitionModifier[])` — Sets entity definition modifiers
      • Removed property `modifiers`
    • `BoolBlockProperty`
      • Added function `getValidValues(): boolean[]` — Gets all valid boolean values for the `BoolBlockProperty`
      • Removed property `validValues`
    • Converted `BlockHitInformation` to an interface
    • `ChatEvent`
      • Added function `getTargets(): Player[]` — Gets chat Player targets
      • Removed property `targets`
    • Converted `Color` to an interface
    • `DataDrivenEntityTriggerEvent`
      • Added function `getModifiers(): DefinitionModifier[]` — Gets Entity definition modifiers
      • Removed property `modifiers`
    • `DefinitionModifier`
      • Added function `getComponentGroupsToAdd(): string[]` — Gets component groups that will be added with the `DefinitionModifier`
      • Added function `setComponentGroupsToAdd(newGroups: string[]): void` — Sets component groups that will be added with the `DefinitionModifier`
      • Added function `getComponentGroupsToRemove(): string[]` — Gets component groups that will be removed with the `DefinitionModifier`
      • Added function `setComponentGroupsToRemove(removedGroups: string[]): void` — Sets component groups that will be removed with the `DefinitionModifier`
      • Added function `getTriggers(): Trigger[]` — Gets event triggers of the `DefinitionModifier`
      • Added function `setTriggers(newTriggers: Trigger[]): void` — Sets event triggers of the `DefinitionModifier`
      • Removed property `componentGroupsToAdd`
      • Removed property `componentGroupsToRemove`
      • Removed property `triggers`
    • `DirectionBlockProperty`
      • Added function `getValidValues(): Direction[]` — Gets all valid direction enum values for the `DirectionBlockProperty`
      • Removed property `validValues`
    • `Entity`
      • Added function `getViewDirection(): Vector3` — Gets view direction of the `Entity`
      • Added function `getRotation(): XYRotation` — Gets rotation of the `Entity`
      • Added function `getVelocity(): Vector` — Gets velocity of the `Entity`
      • Removed property `viewDirection`
      • Removed property `rotation`
      • Removed property `velocity`
    • `EntityAgeableComponent`
      • Added function `getDropItems(): string[]` — Gets items that drop when entity grows
      • Added function `getFeedItems(): EntityDefinitionFeedItem[]` — Gets items that can be fed to the entity
      • Removed property `dropItems`
      • Removed property `feedItems`
    • `EntityBreathableComponent`
      • Added function `getBreatheBlocks(): BlockPermutation[]` — Gets blocks entity can breathe in
      • Added function `getNonBreatheBlocks(): BlockPermutation[]` — Gets blocks entity can’t breathe in
      • Removed property `breatheBlocks`
      • Removed property `nonBreatheBlocks`
    • `EntityHealableComponent`
      • Added function `getFeedItems(): FeedItem[]` — Gets healing items for the `EntityHealableComponent`
      • Removed property `items`
    • Converted `EntityHitInformation` to an interface
    • `EntityRideableComponent`
      • Added function `getFamilyTypes(): string[]` — Gets supported rider entity types
      • Added function `getSeats(): Seat[]` — Gets rider information for each seat
      • Removed property `familyTypes`
      • Removed property `seats`
    • `EntityTameableComponent`
      • Added function `getTameItems(): string[]` — Gets tame items of the `EntityTameableComponent`
      • Removed property `tameItems`
    • `FeedItem`
      • Added function `getEffects(): FeedItemEffect[]` — Gets effect of the `FeedItem`
      • Removed property `effects`
    • `IntBlockProperty`
      • Added function `getValidValues(): number[]` — Gets all valid integer values for the `IntBlockProperty`
      • Removed property `validValues`
    • `ItemDurabilityComponent`
      • Added function `getDamageRange(): NumberRange` — Gets the range of numbers that describes the chance of the item losing durability
      • Removed property `damageRange`
    • Converted `NumberRange` to an interface
    • `ProjectileHitEvent`
      • Added function `getBlockHit(): BlockHitInformation` — Gets block hit information from the `ProjectileHitEvent`
      • Added function `getEntityHit(): EntityHitInformation` — Gets entity hit information from the `ProjectileHitEvent`
      • Removed property `blockHit`
      • Removed property `entityHit`
    • `StringBlockProperty`
      • Added function `getValidValues(): string[]` — Gets all valid string values for the `StringBlockProperty`
      • Removed property `validValues`

Commands

  • Fixed a crash with deferred command execution when the executing actor is removed before execution

Leave a Reply

Your email address will not be published. Required fields are marked *