Attributes & Metadata
Attributes and metadata are the low-level tuning knobs for mob entity behavior and appearance. Attributes control numeric properties like walk speed, detection range, and hitbox size; metadata controls boolean flags like whether the mob makes sounds, displays a health bar, or drops loot.
Attributes
The attributes block maps Bukkit attribute names (in snake_case) to their base values. When a mob is spawned, each attribute is registered on the entity (if missing) and its base value is set.
Attribute | Description | Common Range |
|---|---|---|
| Detection range used when no target selector |
|
| Walk/run speed multiplier. Must be set in |
|
| How high the mob can step up blocks without jumping. |
|
| Model and eye-height scale (used by flying move control for collision). Must be set in |
|
| Resistance to knockback force from attacks. |
|
| Resistance to knockback from explosions. |
|
| (Auto-set by flying move control) Speed while airborne when using |
|
Critical Gotcha
movement_speed and scale MUST be declared under attributes, not under metadata. The metadata keys movement-speed and scale are not recognized by the blueprint loader and will be silently ignored.
Incorrect:
Correct:
Several example blueprints in the network contain the incorrect metadata form for backwards compatibility reasons, but new blueprints should use attributes.
Target Selector Fallback
If a target selector's range is omitted or set to <= 0, it falls back to the follow_range attribute. This allows you to tune detection range globally without repeating it across every selector.
Metadata
The metadata block controls behavioral flags via kebab-case keys. All fields are optional and default to the values shown below.
Field | Type | Default | Description |
|---|---|---|---|
| boolean |
| When |
| boolean |
| When |
| boolean |
| Internal flag used during rendering setup; usually left |
| boolean |
| When |
| boolean |
| When |
| boolean |
| When |
| boolean |
| When |
| boolean |
| When |
| boolean |
| Renders the mob as a baby. Only visible on a |
| boolean |
| When |
| ComponentWrapper | (the type name) | Name shown on a |
| boolean |
| When |
| boolean |
| Whether the mob keeps itself at the surface when it ends up in water or lava, the way every vanilla mob does. See below. |
| boolean |
| When |
| boolean |
| Deserialized by |
| boolean |
| When |
Floating in water
Blueprint mobs strip every vanilla goal, including the FloatGoal that keeps a mob at the surface. Without it they sink to the bottom and — since a submerged mob's ground path is planned along the lake bed — effectively stop moving.
With float-in-water: true (the default) a float goal is injected at spawn, unless the blueprint already declares its own float goal — declaring one wins, so its jump-chance, priority and requirements apply instead. Mobs that fly (no-gravity) never sink and are skipped either way.
Set it false for a mob that should sink and walk along the bottom.
Drop Control
The three prevent-* flags work together to control what happens when the mob dies:
prevent-other-drops: Clears all vanilla loot drops (armor, weapons, equipment, mob-specific items). Runs on both spawn and death.prevent-experience-drops: Sets the death event's experience drop to0, awarding no XP.prevent-mob-kill-drops: Present inMobMetadataand defaultstrue, but currently has no wired behavior — it is not read byMobListeneror anywhere else in the plugin.
Most boss mobs set prevent-other-drops and prevent-experience-drops to true to prevent unintended loot cascades.
Note: prevent-sunburn
Some example blueprints contain a prevent-sunburn metadata field in comments. This field is not recognized by AstralMobs and has no effect. It appears to be legacy documentation. Do not use it; rely instead on skeletons and other sun-sensitive mobs working correctly without it (the Pig-based spoofing handles sun-damage immunity naturally for most types).
Examples
Normal Mob: Skeleton
Boss Mob: Warden
The Warden example sets boss: true, which creates a boss bar health display instead of overhead text. The silent: true suppresses the default warden sounds in favor of custom sound actions.