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.