Skip to content
On this page
Common

ClientItemRenderMarkerApi

top.katton.apicommon/src/main/kotlin/top/katton/api/ClientItemRenderMarkerApi.kt
A lightweight client-side item model rendered directly in the world.

ClientItemRenderMarker ​

ClientItemRenderMarkerCommonData Class
kotlin
data class ClientItemRenderMarker( val id: UUID, val level: ResourceKey<Level>, val pos: Vec3, val stack: ItemStack, val displayContext: ItemDisplayContext

A lightweight client-side item model rendered directly in the world.

It has no server entity, collision, selector target, persistence, or vanilla entity sync. The server only sends this marker to clients that should see it.

itemRenderMarker ​

itemRenderMarkerCommonFunction
kotlin
fun itemRenderMarker(level: ResourceKey<Level>, pos: Vec3, stack: ItemStack, displayContext: ItemDisplayContext = ItemDisplayContext.GROUND, scale: Float = 1.0f, yaw: Float = 0.0f, pitch: Float = 0.0f, roll: Float = 0.0f, fullBright: Boolean = false, maxDistance: Double = 64.0, lifetimeTicks: Int = -1, animations: Map<String, ClientItemRenderAnimationSetBuilder.() -> Unit> = emptyMap(), playingAnimationID: List<String> = emptyList(), id: UUID = UUID.randomUUID()): ClientItemRenderMarker

Build a [ClientItemRenderMarker] with a generated id.

showItemRenderMarker ​

showItemRenderMarkerCommonFunction
kotlin
fun showItemRenderMarker(marker: ClientItemRenderMarker): UUID

Add or update a client-side item marker for every connected player.

Returns the marker id so scripts can later remove or update it.

showItemRenderMarker ​

showItemRenderMarkerCommonFunction
kotlin
fun showItemRenderMarker(player: ServerPlayer, marker: ClientItemRenderMarker): UUID

Add or update a client-side item marker for one player.

showItemRenderMarker ​

showItemRenderMarkerCommonFunction
kotlin
fun showItemRenderMarker(player: ServerPlayer, stack: ItemStack, x: Double, y: Double, z: Double, level: ResourceKey<Level> = player.level().dimension(), displayContext: ItemDisplayContext = ItemDisplayContext.GROUND, scale: Float = 1.0f, yaw: Float = 0.0f, pitch: Float = 0.0f, roll: Float = 0.0f, fullBright: Boolean = false, maxDistance: Double = 64.0, lifetimeTicks: Int = -1, animations: Map<String, ClientItemRenderAnimationSetBuilder.() -> Unit> = emptyMap(), playingAnimationID: List<String> = emptyList(), id: UUID = UUID.randomUUID()): UUID

Convenience overload for one player using raw coordinates.

removeItemRenderMarker ​

removeItemRenderMarkerCommonFunction
kotlin
fun removeItemRenderMarker(id: UUID)

Remove a client-side item marker from every connected player.

removeItemRenderMarker ​

removeItemRenderMarkerCommonFunction
kotlin
fun removeItemRenderMarker(player: ServerPlayer, id: UUID)

Remove a client-side item marker from one player.

clearItemRenderMarkers ​

clearItemRenderMarkersCommonFunction
kotlin
fun clearItemRenderMarkers()

Clear all client-side item markers from every connected player.

clearItemRenderMarkers ​

clearItemRenderMarkersCommonFunction
kotlin
fun clearItemRenderMarkers(player: ServerPlayer)

Clear all client-side item markers from one player.

playItemRenderAnimationSet ​

playItemRenderAnimationSetCommonFunction
kotlin
fun playItemRenderAnimationSet(id: UUID, animationSetId: String)

Start playing one animation set on a tracked marker for every viewer that originally received it. Playback starts from the beginning on the client.

stopItemRenderAnimationSet ​

stopItemRenderAnimationSetCommonFunction
kotlin
fun stopItemRenderAnimationSet(id: UUID, animationSetId: String)

Stop playing one animation set on a tracked marker for every viewer that originally received it.

playItemRenderAnimationSet ​

playItemRenderAnimationSetCommonFunction
kotlin
fun playItemRenderAnimationSet(player: ServerPlayer, id: UUID, animationSetId: String)

Start playing one animation set for a single player. This is intentionally per-viewer and does not mutate the server-side tracked marker state.

stopItemRenderAnimationSet ​

stopItemRenderAnimationSetCommonFunction
kotlin
fun stopItemRenderAnimationSet(player: ServerPlayer, id: UUID, animationSetId: String)

Stop playing one animation set for a single player. This is intentionally per-viewer and does not mutate the server-side tracked marker state.

clearItemRenderMarkersInRange ​

clearItemRenderMarkersInRangeCommonFunction
kotlin
fun clearItemRenderMarkersInRange(level: ResourceKey<Level>, center: Vec3, radius: Double): Int

Clear tracked item markers in [radius] blocks around [center] and notify the clients that were originally sent those markers.