== Experimental ==
These additions and changes are accessible by enabling the "Beta APIs", "Upcoming Creator Features", "Creator Camera: New Third Person Presets", and "Aim Assist" experimental toggles.
=== Additions ===
==== Technical ====
;API
*Added {{cd|scriptEvent}} method to system object which sends a script event similar to the {{cmd|scriptevent}} command to {{cd|beta}}.
*Added {{cd|NamespaceNameError}} error which validates namespace usage to {{cd|beta}}.
*Added {{cd|NamespaceNameErrorReason}} enum which shows the types of issues that namespace validation can run into to {{cd|beta}}.
*Added new function {{cd|collectPluginStats}} to {{cd|@minecraft/debug-utilities}} which will return the types and counts of all active script objects.
**Removed {{cmd|script watchdog exportstats}} command, deprecated in favor of script API.
*Added {{cd|setDynamicProperties}} method to {{cd|World}}, {{cd|Entity}}, {{cd|ItemStack}} and {{cd|ContainerSlot}}.
*Added enum {{cd|LiquidType}}:
 export enum LiquidType {
     Water = 'Water'
 }
*Added four new bindings to Script Block API (Beta)
**{{cd|Block::canBeDestroyedByLiquidSpread}}
**{{cd|Block::isLiquidBlocking}}
**{{cd|Block::liquidSpreadCausesSpawn}}
**{{cd|Block::liquidCanFlowFromDirection}}
*Added three new bindings to Script Block Permutation API (Beta)
**{{cd|BlockPermutation::canBeDestroyedByLiquidSpread}}
**{{cd|BlockPermutation::isLiquidBlocking}}
**{{cd|BlockPermutation::liquidSpreadCausesSpawn}}

;Commands
*Place: Entities saved within structures will now be placed unless specified.
*Added two subcommands to the {{cmd|place}} command behind the "Upcoming Creator Features" Experiment toggle:
**{{cmd|place feature}}
**{{cmd|place featurerule}}

;Creator
*Added support for {{cd|ItemTags}} in {{cd|match_tool}} loot table conditions behind the "Upcoming Creator Features" Experiment toggle.

;Gameplay
*Added the option to limit yaw rotations on all cameras with an orbit component.

;Scripting
*Structure
**Added {{cd|waterlogged: boolean}} parameter to {{cd|setBlockPermutation}}. This can be used to set whether the specified block within a structure is waterlogged.

=== Changes ===
==== Technical ====
;Add-Ons and Script Engine
*Updated Aim Assist, now it can only be used in third person camera perspectives. Switching to a unsupported camera type will disable aim assist.

;Aim Assist
*Changed aim-assist preset item settings to reference categories by unique namespace Ids globally instead of via name in a {{cd|categories}} list.

;API
*Moved the following methods from beta to 1.17.0:
**{{cd|Block::isWaterlogged}}
**{{cd|Block::setWaterlogged}}

;[[Commands]]
*Added support for input glyph replacement for {{cmd|me}} and {{cmd|tell}} commands. For example, using input string {{cd|:_input_key.jump:}} will be replaced with "JUMP" when using keyboard, or an emoji in case of using a gamepad.

;Components
*Removing a waterlogged custom block using the {{cd|minecraft:liquid_detection}} component with {{cd|stopsLiquidFlowingFromDirection}} enabled for all directions now results in flowing water rather than a stagnant block of water. 

;Gameplay
*Added easing between two moving cameras when "Creator Camera: New Third Person Presets" experiment is enabled.

;Molang
*Moved {{cd|query.last_input_mode_is_any}} to stable. It takes one or more arguments ({{cd|keyboard_and_mouse}}, {{cd|touch}}, {{cd|gamepad}}, or {{cd|motion_controller}}). If the last input used is any of the specified string values, returns 1.0. Otherwise returns 0.0. Available on the Client (Resource Packs) only.
*Moved {{cd|query.touch_only_affects_hotbar}} to stable. It returns 1.0 if the touch input only affects the touchbar, otherwise returns 0.0. Available on the Client (Resource Packs) only.

;Scripting API
*Moved enum {{cd|InputMode}} from {{cd|beta}} to {{cd|1.17.0}}.
*Moved class {{cd|InputInfo}} from {{cd|beta}} to {{cd|1.17.0}}.
**Moved property {{cd|lastInputModeUsed}} from {{cd|beta}} to {{cd|1.17.0}}.
**Moved property {{cd|touchOnlyAffectsHotbar}} from {{cd|beta}} to {{cd|1.17.0}}.
*Class {{cd|Player}}
**Moved property {{cd|inputInfo}} from {{cd|beta}} to {{cd|1.17.0}}.
*Moved class {{cd|PlayerInputModeChangeAfterEvent}} from {{cd|beta}} to {{cd|1.17.0}}.
*Moved class {{cd|PlayerInputModeChangeAfterEventSignal}} from {{cd|beta}} to {{cd|1.17.0}}.
*Class {{cd|WorldAfterEvents}}
**Moved property {{cd|playerInputModeChange}} from {{cd|beta}} to {{cd|1.17.0}}.
*Moved class {{cd|InvalidEntityError}} from {{cd|beta}} to {{cd|1.17.0}}.
*{{cd|system.scriptEvent}} updated to return a new error for exceeding the message size.
*Removed {{cd|ScriptBlockType.canBeWaterlogged}} from {{cd|Beta}} - instead, {{cd|ScriptBlock.canContainLiquid}} or {{cd|ScriptBlockPermutation.canContainLiquid}} can be used to check if a block can be waterlogged.

;UI
*Added support for input glyph replacement for signs, signed books, and NPC dialogs. For example, using input string {{cd|:_input_key.jump:}} will be replaced with "JUMP" when using keyboard, or an emoji in case of using a gamepad.
