This page as Markdown: https://bloxd.io/docs/entity-settings.md. Every page of these docs, for AI agents: https://bloxd.io/docs/llms.txt
Entity Settings
An "Entity Setting" impacts how a player sees or interacts with another player or entity. E.g. Player 1 could have an otherEntitySetting for entity 2 as opacity set to 0.5. This means player 1 sees entity 2 as partly see-through. Player1 is the relevant player, player2 is the targeted player. These API methods allow you to modify entity settings:
/**
* Set every player's other-entity setting to a specific value for a particular entity.
* includeNewJoiners=true means that new players joining the game will also have this other player setting applied.
*
* @param {EntityId} targetedPlayerId
* @param {Setting} settingName
* @param {OtherEntitySettings[Setting]} settingValue
* @param {boolean} [includeNewJoiners]
* @returns {void}
*/
setTargetedPlayerSettingForEveryone(targetedPlayerId, settingName, settingValue, includeNewJoiners)
/**
* Set a player's other-entity setting for every player, mob and Person mesh in the game.
* includeNewJoiners=true means that the player will have the setting applied to new joiners.
*
* @param {PlayerId} playerId
* @param {Setting} settingName
* @param {OtherEntitySettings[Setting]} settingValue
* @param {boolean} [includeNewJoiners]
* @returns {void}
*/
setEveryoneSettingForPlayer(playerId, settingName, settingValue, includeNewJoiners)
/**
* Set a player's other-entity setting for a specific entity.
*
* @param {PlayerId} relevantPlayerId
* @param {EntityId} targetedEntityId
* @param {Setting} settingName
* @param {OtherEntitySettings[Setting]} settingValue
* @returns {void}
*/
setOtherEntitySetting(relevantPlayerId, targetedEntityId, settingName, settingValue)
/**
* Set many of a player's other-entity settings for a specific entity.
*
* @param {PlayerId} relevantPlayerId
* @param {EntityId} targetedEntityId
* @param {Partial<OtherEntitySettings>} settingsObject
* @returns {void}
*/
setOtherEntitySettings(relevantPlayerId, targetedEntityId, settingsObject)
/**
* Get the value of a player's other-entity setting for a specific entity.
*
* @param {PlayerId} relevantPlayerId
* @param {EntityId} targetedEntityId
* @param {Setting} settingName
* @returns {OtherEntitySettings[Setting]}
*/
getOtherEntitySetting(relevantPlayerId, targetedEntityId, settingName)
/**
* Reset a player's other-entity setting for a specific entity to the game's default value.
*
* @param {PlayerId} relevantPlayerId
* @param {EntityId} targetedEntityId
* @param {Setting} settingName
* @returns {void}
*/
setOtherEntitySettingToDefault(relevantPlayerId, targetedEntityId, settingName)
Here is the full list of available entity settings:
alwaysInInterest
Type: boolean
Default: false
Keep sending this entity to the player at any distance, for markers or objectives they follow from afar, once players are sent only the entities near them
canAttack
Type: boolean
Default: false
Whether the relevant player can attack this entity, ignored if the entity is invincible. Also makes the entity pickable, so the player's aim lands on it - as does interactable, which is the setting to use for an entity that should be aimed at without being a valid target.
canSee
Type: boolean
Default: true
Whether the entity can be seen by the relevant player
colorInLobbyLeaderboard
Type: string
Default: ""
The colour of the player in the lobby leaderboard.
hasPriorityNametag
Type: boolean
Default: false
Whether the player has a priority name tag
interactable
Type: boolean
Default: false
Whether alt actioning this entity (right click / the interact bind / a mobile tap) counts as interacting with it. When true the alt action is consumed, so a held block isn't placed through the entity and a held throwable isn't used, and onPlayerAltAction fires with it as the target. Leave false on decorative entities, or they will swallow player input.
Also makes the entity pickable, so an entity can be interactable without canAttack: the player's aim lands on it, but swinging or shooting at it does nothing.
Works on mobs too, taking priority over held items and native harvesting, riding and pet actions. Native action packets are also rejected by the server for interactable entities.
interactionPrompt
Type: string | CustomTextStyling
Default: null
Replaces the label in the interaction prompt shown by the crosshair while the relevant player is looking at this entity, e.g. "Open Shop". Left null, the prompt reads "Interact". The engine draws the player's interact key next to it, so write what interacting does rather than which button to press. Only used on entities that have interactable set, and not shown on touchscreens, where there is no key to show.
killfeedColour
Type: string
Default: ""
The colour of kills in the killfeed. Defaults to blue for themselves and red for everyone else.
lobbyLeaderboardTags
Type: ChatTags
Default: null
The tags to the left of a player's name in the lobby leaderboard.
lobbyLeaderboardValues
Type: LobbyLeaderboardValues
Default: {}
The values of the leaderboard.
meshScaling
Type: EntityMeshScalingMap
Default: {}
Scaling of mesh nodes, see api.scalePlayerMeshNodes
multilineTextBox
Type: MultilineTextBox
Default: null
Multiline text info for displaying text next to entities:
{
content: (CustomTextStyling[number] | RankInfo)[] // Array of text content
backgroundColor?: string // Background color
animateIn?: boolean // Whether text should animate in character-by-character
visibleThroughWalls?: boolean // Overrides canSeeNametagsThroughWalls for this text: true draws it over blocks and entities, false lets them hide it
}
Hidden whenever the entity's own mesh is, so a mesh entity's hideDist applies to its text too.
nameColour
Type: "default" | "yellow" | "lime" | "green" | "aqua" | "cyan" | "blue" | "purple" | "pink" | "red" | "orange"
Default: "default"
The colour of the entity's name.
nameTagInfo
Type: NameTagInfo
Default: null
The name tag info of the player:
{
backgroundColor?: string
content?: StyledText[]
subtitle?: StyledText[]
subtitleBackgroundColor?: string
minLighting?: number
healthbar?: { display?: "always" | "never" | "onDamage"; height?: FontSize; backgroundColour?: string; foregroundColour?: string | { healthFraction: number; colour: string }[] }
border?: { colour: string; style?: "solid" | "glow" | "double"; width?: FontSize; applyTo?: "both" | "nametag" | "healthbar" }
}
opacity
Type: number
Default: 1
Opacity of the entity
Fractional values will use dithering
0 opacity will hide the entity but not its name tag
overlayColour
Type: string
Default: null
Applies a colour tint to the entity when set, like the red tint when an entity gets hurt.
showDamageAmounts
Type: boolean
Default: true
Whether you can see damage amounts when shooting the entity
zIndex
Type: 0 | 1
Default: 0
Rendering order of the entity, higher zIndex renders on top of lower ones.