# Latest updates

## What are silent updates? Read [here](https://docs.google.com/document/d/1ZkhqMFNbRlfEld0f2ezRg1ZYE-AfTlm8zxIOt7Ja6V4/edit?usp=sharing).

***

<details>

<summary><mark style="color:$success;">Silent update 26.03.2026</mark></summary>

> <mark style="color:$danger;">**FIXED:**</mark>
>
> * Incompatibility with <mark style="color:red;">**offline players contexts**</mark>, now offline players contexts are also supported and parsed well (this concerned cases when exactly player context in placeholders was offline and was not parsed (NOT the player specified in CEP placeholder, like "`%CEP_entity_realUUID:SYNC_,_<offlinePlayer>%"` - this worked well), for example in "`/papi parse ...`" command or in placeholders which change player context, like "`%parseother_{offlinePlayer}_...%`");
> * Some inaccuracies in "[<mark style="color:red;">**LP get/has permission with contexts**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/plugins-placeholders/placeholder-for-luckperms-permissions-with-contexts)" placeholder, now players processing is more correct and reliable;
> * Some inaccuracies in <mark style="color:red;">**itemModel**</mark> option and general arguments checking in [<mark style="color:red;">**item**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-items) placeholders;
> * Some small inaccuracies in [<mark style="color:red;">**permValue**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/plugins-placeholders/placeholder-for-checking-last-number-value-in-luckpermss-permission) placeholders;
> * Incorrect file saving while server restart in [<mark style="color:red;">**customData**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-custom-data) placeholder eternal variables (now all data saves to the another file correctly; if the new actual file will be absent, it will be created and the transfer from the old file will be performed);
> * Calculations of the distance were performed on integers instead of decimals even if decimals were specified in "<mark style="color:red;">**world,x,y,z**</mark>" option in [<mark style="color:red;">**distance**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-checking-the-distance-between-two-points) placeholder;
> * Checking <mark style="color:red;">**addon updates**</mark> blocked the thread if the destination was unreachable, now this task is asynchronous;
> * Logic of <mark style="color:red;">**checking necessary plugins existence**</mark> in many actions/placeholders to prohibit them from working, now this logic is more correct and reliable;
> * Logic of moving entities while they are flying in [<mark style="color:red;">**change\_destination**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/change_destination) action;
>
> <mark style="color:$primary;">**UPDATED:**</mark>
>
> * Improved working and efficiency of <mark style="color:$primary;">**many placeholders**</mark> (such as array, list, entitiesInRadius etc);
> * Improved working and efficiency of [<mark style="color:$tint;">**change\_item**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/change_item) and [<mark style="color:$tint;">**change\_destination**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/change_destination) actions;
> * Now radius can be also specified for all three directions in [<mark style="color:$tint;">**entitiesInRadius**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-entities-in-radius) placeholders;
> * Now many targets can be specified through comma in [<mark style="color:$tint;">**teleport\_entities**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/teleport_entities) action;
> * Now the target can be removed in [<mark style="color:$tint;">**change\_target**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/change_target) action by skipping the target option;
> * Now the axis for distance calculation can be chosen and combined with other axes in [<mark style="color:$tint;">**distance**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-checking-the-distance-between-two-points) placeholder;
> * Now the internal <mark style="color:$primary;">**$val@**</mark> placeholder can be specified as player for call event to replace it to the current value on each iteration in the array in [<mark style="color:$tint;">**manage\_cycle**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/manage_cycle) action (for example, if array - is an online players list, and you need to conveniently call the event to each of them);
> * Now you can use multiple sorting in "<mark style="color:$primary;">**list\_sorting**</mark>" in [<mark style="color:$tint;">**list**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-custom-player-lists) placeholder (for example, if you want first to sort players by group, and then sort players with identical groups by balance, etc);
>
> <mark style="color:$success;">**ADDED:**</mark>
>
> * New [<mark style="color:$success;">**show\_lightning**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/plugins-actions/show_lightning) action to show lightning strikes only to specified players;
> * New <mark style="color:$success;">**NBTCustomData**</mark> option to [<mark style="color:$success;">**item**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-items) placeholders to obtain NBT "custom\_data" property of the items;
> * New <mark style="color:$success;">**attributes**</mark> option to [<mark style="color:$success;">**item**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-items) placeholders;
> * New <mark style="color:$success;">**itemModel**</mark> and <mark style="color:$success;">**attributes**</mark> options to [<mark style="color:$success;">**change\_item**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/change_item) action;
> * New [<mark style="color:$success;">**worldKey**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-to-get-the-key-of-the-world) placeholder to get the key of the world instead of the regular name (for example, `world_the_end` -> `minecraft:the_end`);
> * New <mark style="color:$success;">**isFlying**</mark> and <mark style="color:$success;">**deathLoc**</mark> options to [<mark style="color:$success;">**entity**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-different-entity-information) placeholders;
> * New [<mark style="color:$success;">**runCMD**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-to-run-console-commands) placeholder to run console commands;
> * New [<mark style="color:$success;">**runPlayer**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-to-run-player-commands) placeholder to run player commands;
> * New [<mark style="color:$success;">**enderDragon**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-to-check-ender-dragon-existence) placeholder to check ender dragon existence;
> * New [<mark style="color:$success;">**silent\_console\_command**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/silent_console_command) action to run any console commands silently;
> * New <mark style="color:$success;">**FIND-FIRST**</mark> option to [<mark style="color:$success;">**array**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-processing-arrays) placeholder to return the value if it was found (useful for many "OR" checks or inaccurate checks like "contains" and obtaining the value which was found);
> * New "<mark style="color:$success;">**PLAYERS:**</mark>" type for "<mark style="color:$success;">**list\_type**</mark>" option to [<mark style="color:$success;">**list**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-custom-player-lists) placeholder to specify the predefined players list (names or uuids) which you want to process;

</details>

<details>

<summary>Update v4.1 13.11.2025</summary>

> <mark style="color:$danger;">**FIXED:**</mark>
>
> * `Improved`` `<mark style="color:$danger;">**`placeholders`**</mark>` ``internal`` `<mark style="color:$danger;">**`work`**</mark>`;`
> * `Added in some places`` `<mark style="color:$danger;">**`normal`**</mark>` ``unsuccessful`` `<mark style="color:$danger;">**`output`**</mark>` ``instead of`` `<mark style="color:$danger;">**`console errors`**</mark>` ``in` [<mark style="color:$danger;">**`entitiesInRadius`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-entities-in-radius)`,` [<mark style="color:$danger;">**`item`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-items)`,` [<mark style="color:$danger;">**`entity`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-different-entity-information) `and` [<mark style="color:$danger;">**`repeat`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-repeating-the-text) `placeholders;`
> * `Fixed that targets with`` `<mark style="color:$danger;">**`underscores`**</mark>` ``at the nickname start were not being`` `<mark style="color:$danger;">**`correctly proceed`**</mark>` ``in` [<mark style="color:$danger;">**`item`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-items) `and` [<mark style="color:$danger;">**`entity`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-different-entity-information) `placeholders;`
> * `Lore lines are`` `<mark style="color:$danger;">**`no`**</mark>` ``longer being`` `<mark style="color:$danger;">**`trimmed`**</mark>` ``in` [<mark style="color:$danger;">**`change_item`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/change_item) `action;`
> * `Lore outputting is`` `<mark style="color:$danger;">**`no`**</mark>` ``longer have`` `<mark style="color:$danger;">**`unnecessary`**</mark>` ``specified`` `<mark style="color:$danger;">**`separator`**</mark>` ``at its end in` [<mark style="color:$danger;">**`item`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-items) `placeholders;`
> * <mark style="color:$danger;">**`Brackets`**</mark>` ``and`` `<mark style="color:$danger;">**`multiple conditions`**</mark>` ``now are being parsed`` `<mark style="color:$danger;">**`correctly`**</mark>` ``in` [<mark style="color:$danger;">**`array`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-processing-arrays) `and` [<mark style="color:$danger;">**`list`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-custom-player-lists) `placeholders;`
> * <mark style="color:$danger;">**`AND`**</mark>` ``and`` `<mark style="color:$danger;">**`OR`**</mark>` ``delimiters are`` `<mark style="color:$danger;">**`no`**</mark>` ``longer being`` `<mark style="color:$danger;">**`counted`**</mark>` ``inside placeholders in` [<mark style="color:$danger;">**`array`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-processing-arrays) `and` [<mark style="color:$danger;">**`list`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-custom-player-lists) `placeholders;`
> * `Symbols like`` `<mark style="color:$danger;">**`$`**</mark>`,`` `<mark style="color:$danger;">**`@`**</mark>`, delimiters`` `<mark style="color:$danger;">**`AND`**</mark>`,`` `<mark style="color:$danger;">**`OR`**</mark>` ``and operators like`` `<mark style="color:$danger;">**`<=`**</mark>`,`` `<mark style="color:$danger;">**`==`**</mark>`,`` `<mark style="color:$danger;">`contains`</mark>` ``etc in array itself are`` `<mark style="color:$danger;">**`no`**</mark>` ``longer`` `<mark style="color:$danger;">**`interfere`**</mark>` ``conditions in` [<mark style="color:$danger;">**`array`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-processing-arrays) `placeholder;`
> * `Conditions with`` `<mark style="color:$danger;">**`condition operators`**</mark>` ``as part of the`` `<mark style="color:$danger;">**`expression`**</mark>` ``and not as condition operator now are being parsed`` `<mark style="color:$danger;">**`correctly`**</mark>` ``in` [<mark style="color:$danger;">**`array`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-processing-arrays) `placeholder;`
> * `The` [<mark style="color:$danger;">**`manage_mysql`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/manage_mysql) `action,` [<mark style="color:$danger;">**`MySQL`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-working-with-mysql) `placeholder and`` `<mark style="color:$danger;">**`realUUID`**</mark>` ``option in` [<mark style="color:$danger;">**`entity`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-different-entity-information) `placeholders are`` `<mark style="color:$danger;">**`no`**</mark>` ``longer`` `<mark style="color:$danger;">**`print stacktrace`**</mark>` ``while encountering with errors;`
> * `The`` `<mark style="color:$danger;">**`ASYNC`**</mark>` ``mode in` [<mark style="color:$danger;">**`MySQL`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-working-with-mysql) `placeholder now returns "`<mark style="color:$danger;">**`Loading...`**</mark>`" when loads the data instead of`` `<mark style="color:$danger;">**`non-parsing placeholder`**</mark>` ``and puts errors as output on occassions as well.`
>
> <mark style="color:$primary;">**UPDATED:**</mark>
>
> * `Updated` [<mark style="color:$primary;">**`manage_inventory`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/manage_inventory) `action: rewritten`` `<mark style="color:$primary;">**`code`**</mark>`, fixed`` `<mark style="color:$primary;">**`bugs`**</mark>`, added new`` `<mark style="color:$primary;">**`possibilities`**</mark>`, improved`` `<mark style="color:$primary;">**`structure`**</mark>`, logic and`` `<mark style="color:$primary;">**`functioning`**</mark>`.`
>
> <mark style="color:$success;">**ADDED:**</mark>
>
> * `New`` `<mark style="color:$success;">**`boats`**</mark>` ``and`` `<mark style="color:$success;">**`chestBoats`**</mark>` ``filters in` [<mark style="color:$success;">**`entitiesInRadius`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-entities-in-radius) `placeholders;`
> * `New`` `<mark style="color:$success;">**`SYNC`**</mark>`/`<mark style="color:$success;">**`FORCESYNC`**</mark>`/`<mark style="color:$success;">**`ASYNC`**</mark>`/`<mark style="color:$success;">**`FORCEASYNC`**</mark>` ``switching, different`` `<mark style="color:$success;">**`settings`**</mark>` ``for them and new call event`` `<mark style="color:$success;">**`variables`**</mark>` ``in` [<mark style="color:$success;">**`manage_cycle`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/manage_cycle) `action;`
> * `New`` `<mark style="color:$success;">**`SYNC`**</mark>`/`<mark style="color:$success;">**`ASYNC`**</mark>` ``switching in` [<mark style="color:$success;">**`array`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-processing-arrays) `placeholders;`
> * `New`` `<mark style="color:$success;">**`BREAKASYNC`**</mark>` ``variety to`` `<mark style="color:$success;">**`break`**</mark>` ``run tasks in` [<mark style="color:$success;">**`list`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-custom-player-lists) `and` [<mark style="color:$success;">**`array`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-processing-arrays) `placeholders;`
> * `New`` `<mark style="color:$success;">**`$empty@`**</mark>` ``internal placeholder for output to`` `<mark style="color:$success;">**`avoid restriction`**</mark>` ``that output should always end with`` `<mark style="color:$success;">**`@`**</mark>` ``symbol in` [<mark style="color:$success;">**`list`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/independent-placeholders/placeholder-for-custom-player-lists) `placeholders;`
> * `New` [<mark style="color:$success;">**`regions`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/plugins-placeholders/placeholder-for-checking-regions-amount-of-players) `placeholder to get player's`` `<mark style="color:$success;">**`regions amount`**</mark>`;`
> * `New` [<mark style="color:$success;">**`permValue`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/placeholders/plugins-placeholders/placeholder-for-checking-last-number-value-in-luckpermss-permission) `placeholder to get`` `<mark style="color:$success;">**`last number value`**</mark>` ``in LuckPerms's`` `<mark style="color:$success;">**`permission`**</mark>`;`
> * `New`` `<mark style="color:$success;">**`set`**</mark>`,`` `<mark style="color:$success;">**`add`**</mark>` ``and`` `<mark style="color:$success;">**`clear`**</mark>` ``actions to change inventories in` [<mark style="color:$success;">**`manage_inventory`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/manage_inventory) `action;`
> * `New possibility to`` `<mark style="color:$success;">**`set`**</mark>` ``and`` `<mark style="color:$success;">**`reset titles`**</mark>` ``for opened`` `<mark style="color:$success;">**`inventories`**</mark>` ``of players in` [<mark style="color:$success;">**`manage_inventory`**</mark>](https://optifynes-organization.gitbook.io/ce-aapp/ce-aapp/actions/independent-actions/manage_inventory) `action.`

</details>

***
