Readonly
dimensionReadonly
idUnique identifier of the entity. This identifier is intended to be consistent across loads of a world instance. No meaning should be inferred from the value and structure of this unique identifier - do not parse or interpret it. This property is accessible even if Entity.isValid is false.
Readonly
locationOptional
Readonly
scoreboardReadonly
typeIdentifier of the type of the entity - for example, 'minecraft:skeleton'. This property is accessible even if Entity.isValid is false.
Type of effect to add to the entity.
Amount of time, in ticks, for the effect to apply. There are 20 ticks per second. Use TicksPerSecond constant to convert between ticks and seconds. The value must be within the range [0, 20000000].
Optional
options: EntityEffectOptionsAdditional options for the effect.
Returns nothing if the effect was added or updated successfully. This can throw an error if the duration or amplifier are outside of the valid ranges, or if the effect does not exist.
Adds or updates an effect, like poison, to the entity.
This function can't be called in read-only mode.
const villagerId = 'minecraft:villager_v2<minecraft:ageable_grow_up>';
const villagerLoc: mc.Vector3 = { x: 1, y: 2, z: 1 };
const villager = test.spawn(villagerId, villagerLoc);
const duration = 20;
villager.addEffect(EffectTypes.get('poison'), duration, { amplifier: 1 });
const overworld = mc.world.getDimension("overworld");
const fox = overworld.spawnEntity("minecraft:fox", {
x: targetLocation.x + 1,
y: targetLocation.y + 2,
z: targetLocation.z + 3,
});
fox.addEffect("speed", 10, {
amplifier: 2,
});
log("Created a fox.");
const wolf = overworld.spawnEntity("minecraft:wolf", {
x: targetLocation.x + 4,
y: targetLocation.y + 2,
z: targetLocation.z + 3,
});
wolf.addEffect("slowness", 10, {
amplifier: 2,
});
wolf.isSneaking = true;
log("Created a sneaking wolf.", 1);
Content of the tag to add. The tag must be less than 256 characters.
Returns true if the tag was added successfully. This can fail if the tag already exists on the entity.
let mobs = ["creeper", "skeleton", "sheep"];
// create some sample mob data
for (let i = 0; i < 10; i++) {
let mobTypeId = mobs[i % mobs.length];
let entity = overworld.spawnEntity(mobTypeId, targetLocation);
entity.addTag("mobparty." + mobTypeId);
}
let eqo: mc.EntityQueryOptions = {
tags: ["mobparty.skeleton"],
};
for (let entity of overworld.getEntities(eqo)) {
entity.kill();
}
Amount of damage to apply.
Optional
options: EntityApplyDamageByProjectileOptions | EntityApplyDamageOptionsAdditional options about the source of damage, which may add additional effects or spur additional behaviors on this entity.
Whether the entity takes any damage. This can return false if the entity is invulnerable or if the damage applied is less than or equal to 0.
const skelly = overworld.spawnEntity("minecraft:skeleton", targetLocation);
skelly.applyDamage(19); // skeletons have max damage of 20 so this is a near-death skeleton
mc.system.runTimeout(() => {
let health = skelly.getComponent("health") as mc.EntityHealthComponent;
log("Skeleton health before heal: " + health.currentValue);
health.resetToMaxValue();
log("Skeleton health after heal: " + health.currentValue);
}, 20);
Impulse vector.
X direction in horizontal plane.
Z direction in horizontal plane.
Knockback strength for the horizontal vector.
Knockback strength for the vertical vector.
Applies impulse vector to the current velocity of the entity.
This function can't be called in read-only mode.
let mobs = ["creeper", "skeleton", "sheep"];
// create some sample mob data
for (let i = 0; i < 10; i++) {
overworld.spawnEntity(mobs[i % mobs.length], targetLocation);
}
let eqo: mc.EntityQueryOptions = {
type: "skeleton",
};
for (let entity of overworld.getEntities(eqo)) {
entity.applyKnockback(0, 0, 0, 1);
}
Optional
options: BlockRaycastOptionsAdditional configuration options for the ray cast.
Returns the first intersecting block from the direction that this entity is looking at.
const blockHit = entity.getBlockFromViewDirection();
if (blockHit) {
console.log("Block Hit:");
console.log("Block:", blockHit.block);
console.log("Face:", blockHit.face);
console.log("Face Location:", JSON.stringify(blockHit.faceLocation));
} else {
console.log("No block in view direction.");
}
import { BlockPermutation, world } from "@minecraft/server";
const entity = world
.getDimension("overworld")
.spawnEntity("minecraft:fox", { x: 0, y: 0, z: 0 });
const blockHit = entity.getBlockFromViewDirection();
if (blockHit) {
blockHit.block.setPermutation(
BlockPermutation.resolve("minecraft:bedrock")
);
} else {
console.log("No block in view direction.");
}
The identifier of the component (e.g., 'minecraft:rideable') to retrieve. If no namespace prefix is specified, 'minecraft:' is assumed. If the component is not present on the entity, undefined is returned.
Returns the component if it exists on the entity, otherwise undefined.
const getEntityHealthComponent = entity.getComponent("health");
getEntityHealthComponent.currentValue;
getEntityHealthComponent.defaultValue;
getEntityHealthComponent.effectiveMax;
getEntityHealthComponent.effectiveMin;
getEntityHealthComponent.resetToDefaultValue();
getEntityHealthComponent.resetToMaxValue();
getEntityHealthComponent.resetToMinValue();
getEntityHealthComponent.setCurrentValue(100); // Assuming 100 as an example value
// Custom function to check if the health attribute is within a valid range
function isValidHealthValue(value) {
return (
value >= getEntityHealthComponent.effectiveMin &&
value <= getEntityHealthComponent.effectiveMax
);
}
// Example usage of the custom isValidHealthValue function
const newHealthValue = 80;
if (isValidHealthValue(newHealthValue)) {
getEntityHealthComponent.setCurrentValue(newHealthValue);
}
const getEntityInventoryComponent = entity.getComponent("inventory");
getEntityInventoryComponent.additionalSlotsPerStrength;
getEntityInventoryComponent.canBeSiphonedFrom;
const inventoryContainer = getEntityInventoryComponent.container;
getEntityInventoryComponent.containerType;
getEntityInventoryComponent.inventorySize;
getEntityInventoryComponent.private;
getEntityInventoryComponent.restrictToOwner;
getEntityInventoryComponent.isValid();
// Custom function to add an item to the inventory
function addItemToInventory(itemStack) {
return inventoryContainer.addItem(itemStack);
}
// Custom function to move an item within the inventory
function moveItemWithinInventory(fromSlot, toSlot) {
inventoryContainer.moveItem(fromSlot, toSlot, inventoryContainer);
}
// Custom function to transfer an item from inventory to another container
function transferItemToContainer(fromSlot, targetContainer) {
return inventoryContainer.transferItem(fromSlot, targetContainer);
}
// Example usage of the custom functions
const newItemStack = new ItemStack("apple", 10); // Assuming "apple" is a valid item
const addedItem = addItemToInventory(newItemStack);
if (addedItem) {
console.log("Item added to inventory:", addedItem);
}
const sourceSlot = 2;
const destinationSlot = 5;
moveItemWithinInventory(sourceSlot, destinationSlot);
const targetContainer = someOtherContainer; // Assuming 'someOtherContainer' is an instance of another container
const transferredItem = transferItemToContainer(0, targetContainer);
if (transferredItem) {
console.log("Item transferred to another container:", transferredItem);
}
Returns all components that are both present on this entity and supported by the API.
The effect identifier.
Effect object for the specified effect, undefined if the effect is not present, or throws an error if the effect does not exist.
List of effects.
Optional
options: EntityRaycastOptionsAdditional configuration options for the ray cast.
Returns a set of entities from the direction that this entity is looking at.
Returns the current location of the head component of this entity.
Returns the current velocity vector of the entity.
const fireworkRocket = overworld.spawnEntity("minecraft:fireworks_rocket", targetLocation);
mc.system.runTimeout(() => {
let velocity = fireworkRocket.getVelocity();
log("Velocity of firework is: (x: " + velocity.x + ", y:" + velocity.y + ", z:" + velocity.z + ")");
}, 5);
Returns the current view direction of the entity.
The identifier of the component (e.g., 'minecraft:rideable') to retrieve. If no namespace prefix is specified, 'minecraft:' is assumed.
Returns true if the specified component is present on this entity.
Returns true if entity can be killed (even if it is already dead), otherwise it returns false.
Kills this entity. The entity will drop loot as normal.
This function can't be called in read-only mode.
let mobs = ["creeper", "skeleton", "sheep"];
// create some sample mob data
for (let i = 0; i < 10; i++) {
let mobTypeId = mobs[i % mobs.length];
let entity = overworld.spawnEntity(mobTypeId, targetLocation);
entity.addTag("mobparty." + mobTypeId);
}
let eqo: mc.EntityQueryOptions = {
tags: ["mobparty.skeleton"],
};
for (let entity of overworld.getEntities(eqo)) {
entity.kill();
}
The effect identifier.
Returns true if the effect has been removed. Returns false if the effect is not found or does not exist.
The command string. Note: This should not include a leading forward slash.
A command result containing whether the command was successful.
Command to run. Note that command strings should not start with slash.
For commands that return data, returns a JSON structure with command response values.
New location for the entity.
Optional
teleportOptions: TeleportOptionsOptions regarding the teleport operation.
Teleports the selected entity to a new location
This function can't be called in read-only mode.
const pig = overworld.spawnEntity("minecraft:pig", targetLocation);
let inc = 1;
let runId = mc.system.runInterval(() => {
pig.teleport(
{ x: targetLocation.x + inc / 4, y: targetLocation.y + inc / 4, z: targetLocation.z + inc / 4 },
{
facingLocation: targetLocation,
}
);
if (inc > 100) {
mc.system.clearRun(runId);
}
inc++;
}, 4);
Name of the entity type event to trigger. If a namespace is not specified, minecraft: is assumed.
Location to teleport the entity to.
Optional
teleportOptions: TeleportOptionsOptions regarding the teleport operation.
Returns whether the teleport succeeded. This can fail if the destination chunk is unloaded or if the teleport would result in intersecting with blocks.
Represents the state of an entity (a mob, the player, or other moving objects like minecarts) in the world.