JSON Formats
This page details the specific JSON object structures and Enumeration values used throughout Arc's Action, Condition, and Reward files.
Complex Objects
ArcBlockState
Represents a block and its properties. It can be defined as a simple string (Resource Location) if no properties are needed, or as an object for more specific matching.
As a String:
"minecraft:chest"
As an Object:
{
"id": "minecraft:chest", // The block ID
"properties": { // Optional: Simple map for equality checks
"facing": "north",
"waterlogged": "false"
}
}
Advanced Properties:
For advanced comparisons (like checking if a property is not a value), properties can be a list of property objects:
{
"id": "minecraft:chest",
"properties": [
{
"name": "facing",
"value": "south",
"comparison_type": "!="
}
]
}
ArcItemStack
Represents an item stack. Can be a simple string or a full object including counts and components.
As a String:
"minecraft:diamond"
As an Object:
{
"id": "minecraft:diamond_sword",
"count": 1, // Optional, defaults to 1
"components": { // Optional, standard Minecraft Data Components
"minecraft:enchantments": {
"levels": {
"minecraft:sharpness": 5
}
}
}
}
MobEffectInstance
Represents a potion effect applied to an entity.
As a String:
"minecraft:speed"
As an Object:
{
"id": "minecraft:speed", // The effect ID
"amplifier": 0, // Optional (0 = Level 1), default 0
"duration": 200, // Optional, duration in ticks, default 200
"ambient": false, // Optional, default false
"show_particles": true, // Optional, default true
"show_icon": true // Optional, default true
}
ArcEnchantment
Represents an enchantment and its level.
{
"id": "minecraft:sharpness",
"level": 3
}
EntityDataProperty
Used in the arc:entity_data condition to check specific dynamic values on an entity.
{
"id": "arc:health", // The data type ID (see Entity Data Registry below)
"value": "10", // The value to compare against (as a string)
"comparison": ">=" // Optional comparison type, default "=="
}
Enums & Types
ComparisonType
Used in various conditions (like health, experience, block properties) to compare numerical values.
| Symbol | Description |
|---|---|
== | Equal to |
!= | Not equal to |
> | Greater than |
< | Less than |
>= | Greater than or equal to |
<= | Less than or equal to |
InteractionHand
Specifies which hand is being used or checked.
MAIN_HAND(ormain)OFF_HAND(oroff)
ArcItemTarget
Specifies which equipment slot to target for rewards like enchant_item or disarm_entity.
MAIN_HANDOFF_HANDHEADCHESTLEGSFEET
ArcPositionTarget
Specifies the origin position for rewards like spawn_entity, play_sound, or set_block.
PLAYER(The player's current position)BLOCK(The position of the block involved in the action)ENTITY(The position of the target entity involved in the action)
ArcWeatherType
Used in weather conditions and rewards.
CLEARRAINTHUNDER
SoundSource
Standard Minecraft sound categories.
MASTERMUSICRECORDSWEATHERBLOCKSHOSTILENEUTRALPLAYERSAMBIENTVOICE
EffectCategory
Classifies potion effects.
BENEFICIALHARMFULNEUTRAL
Entity Data Registry
These are the valid IDs for EntityDataProperty.
General Entity
arc:is_on_fire(Boolean)arc:is_crouching(Boolean)arc:is_sprinting(Boolean)arc:is_swimming(Boolean)arc:is_glowing(Boolean)arc:is_invisible(Boolean)arc:is_on_ground(Boolean)arc:is_in_water(Boolean)arc:is_in_lava(Boolean)arc:is_in_rain(Boolean)arc:air_supply(Integer)arc:fall_distance(Float)arc:ticks_frozen(Integer)arc:has_no_gravity(Boolean)arc:is_silent(Boolean)arc:pose(String)
Living Entity
arc:health(Float)arc:max_health(Float)arc:absorption_amount(Float)arc:is_baby(Boolean)arc:is_using_item(Boolean)arc:is_blocking(Boolean)arc:is_sleeping(Boolean)arc:arrow_count(Integer)arc:stinger_count(Integer)arc:main_arm(String)arc:is_fall_flying(Boolean)
Player
arc:score(Integer)arc:experience_level(Integer)arc:total_experience(Integer)arc:experience_progress(Float)arc:is_creative(Boolean)arc:is_spectator(Boolean)arc:food_level(Integer)arc:saturation_level(Float)
Mob / Animal / Villager
arc:has_no_ai(Boolean)arc:is_left_handed(Boolean)arc:is_aggressive(Boolean)arc:can_pickup_loot(Boolean)arc:is_leashed(Boolean)arc:has_target(Boolean)arc:in_love_time(Integer)arc:is_tame(Boolean)arc:is_sitting(Boolean)arc:has_owner(Boolean)arc:is_trading(Boolean)arc:villager_profession(String)arc:is_casting_spell(Boolean)