Перейти к содержимому
Mineforgian

Per-Player Displays

A Minecraft Data Pack library for player-specific display entities.

Загрузки
273
Подписчики
6
Обновлён
26 марта 2025 г.
Лицензия
MIT

Опубликован 9 ноября 2024 г.

Per-Player Displays

A Minecraft Data Pack library that lets you create display entities that are only visible to one player.
For inquiries, please contact @silicatYT on Discord.

Download: Modrinth
Issue tracker: GitHub

PSA (PLEASE READ)

Due to a bug in Minecraft's code, I am currently unable to port PPD to 1.21.5. Any upvotes on the bugreport are greatly appreciated!

How to use

This description can also be found in the ppd:how_to function.

  1. Summon a display entity
  2. Set its scores:
    • ppd.Pos.<x/y/z>: Where it should appear (Scaled by 10,000x)
    • ppd.ID: The ID of the player it should be visible for
      (The ID is automatically given to the player)

Important: It is advised that you tag the entity, so that it can be found after uninstalling PPD (Which deletes all scores).

How it works

PPD teleports your display entities into your head and sets their translation transformation accordingly so their models still appear at the desired location. It also sets their view_range NBT optimally to ensure that nobody else can see them, while also avoiding flickering if you move fast.

Good to know

  • High ping, bad server performance or the Entity Distance graphics setting can impact the visibility of displays. This can be counteracted by the user by running /trigger ppd.ViewRangeMultiplier set .... The higher it is set, the bigger the range for other players to see your display entities.
  • Display entities will only be displayed in the dimension they're summoned in.
  • Display entities will stay while the player is offline, but won't be visible.
  • Display entities will not display farther than 160 blocks away from the destination position.

Caveats

  • If another player stands very close to you, they may be able to see your display entities.
  • The display entities receive the light from your head position, so it may look off at times if you don't manually set the light NBT.
  • PPD uses the translation field to achieve the per-player visibility. This means that all translations need to be combined with the marker's destination Pos. Interpolated transformations are not possible!
  • The display entity's Rotation must not be changed. Use the left_rotation and right_rotation transformations instead.
  • The display entities are not visible in F5.
  • PPD doesn't work more than 100,000 blocks out in each axis.
  • If the player is teleported to a far away chunk and it unloads before the display entities can teleport to the player, the entity can get stuck there, so the displays no longer show up for that player.
  • Billboards other than fixed are not supported.

Credit

From CMDred:

  • SilicatYT

License

As per the MIT License, you are allowed to redistribute, modify and use PPD as long as you provide credit for the original work.

Ченджлог

1.3.0Релиз1.21.2, 1.21.3, 1.21.4 · 26 марта 2025 г.

BREAKING CHANGES

  • Heavily simplified how per-player displays are created (Better performance)
  • Renamed the ppd.Pos.0/1/2 scores to ppd.Pos.x/y/z to be more intuitive

As a result of these changes, previously created per-player displays will no longer work. Also, you will need to uninstall the previous version first to get rid of now unused scoreboards (& create new ones when installing this version).

1.3.0Релиз1.21, 1.21.1 · 26 марта 2025 г.

BREAKING CHANGES

  • Heavily simplified how per-player displays are created (Better performance)
  • Renamed the ppd.Pos.0/1/2 scores to ppd.Pos.x/y/z to be more intuitive

As a result of these changes, previously created per-player displays will no longer work. Also, you will need to uninstall the previous version first to get rid of now unused scoreboards (& create new ones when installing this version).

1.2.0Релиз1.21.2, 1.21.3, 1.21.4 · 11 ноября 2024 г.

BREAKING CHANGES

  • Replaced the ppd.ViewRangeBuffer trigger scoreboard with ppd.ViewRangeMultiplier, which allows you to modify your view_range in case it flickers

Changes

  • Heavily improved the view_range allocation to make it harder for others to see your displays
  • Added support for the minecraft:scale attribute
1.2.0Релиз1.21, 1.21.1 · 11 ноября 2024 г.

BREAKING CHANGES

  • Replaced the ppd.ViewRangeBuffer trigger scoreboard with ppd.ViewRangeMultiplier, which allows you to modify your view_range in case it flickers

Changes

  • Heavily improved the view_range allocation to make it harder for others to see your displays
  • Added support for the minecraft:scale attribute
1.1.1Релиз1.21.2, 1.21.3, 1.21.4 · 10 ноября 2024 г.

Changes

  • Massively optimized PPD
  • Added a ppd.ViewRangeBuffer trigger score for players to compensate for server lag or bad ping

Bugfixes

  • Fixed a bug where displays would incorrectly teleport to the overworld
1.1.0Релиз1.21.2, 1.21.3, 1.21.4 · 10 ноября 2024 г.

BREAKING CHANGES:

  • Changed how the destination pos is defined to scores. This allows for better performance, but PPD now no longer works more than 100k blocks out on each axis. The markers can now be removed from the mobstack.

Changes:

  • Changed how the translation is calculated to scores
  • Displays that are more than 160 blocks away on an axis no longer compute as much
  • Made it so displays no longer check if the player's position moved. This means that changes in the destination pos are applied immediately.
  • Added a convention that allows users to specify the order in which data pack libraries load

Bugfixes:

  • Fixed a bug where the "UUID collision" error would display on every reload
  • Fixed a bug where the "Could not uninstall" message would not work
  • Fixed a bug where relogging or changing dimensions would make displays that are too far away visible again
1.0.2Релиз1.21.2, 1.21.3, 1.21.4 · 9 ноября 2024 г.

Bugfixes

  • Fixed a bug where the datapack would stop working if the root marker got stuck in an unloaded chunk
  • Fixed a bug where the display entities would fly relative to the player if the distance to the destination was too big
  • Fixed a bug where the datapack would not give an error message if an entity with the UUID [I;128,0,0,128] exists but is not loaded
1.0.1Релиз1.21.2, 1.21.3, 1.21.4 · 9 ноября 2024 г.

Bugfixes

  • Fixed a bug where sometimes the display entity would not update its translation value
  • Updated the how_to function
  • Removed some leftover dev comments

Комментарии

Загружаем…