# Conditions

## Overview

### ThreeCore

- Key must be pressed once to active this ability
- Key must be held to activate this ability
- Ability must be toggled with the key
- Ability must be cooled down
- / ability must be enabled
- / ability must be unlocked
- Karma must be at least -2147483648
- 5 experience points must be spent
- An item must be spent
- Item needs to be in the main hand slot
- Karma must be at least 0
- Entity must wear specific items
- Entity must wear items within the forge:ingots/iron tag
- Item in HEAD slot must have specific value in Opening nbt tag
- Eyes are need to be covered by fluids in the NamedTag[minecraft:water] tag
- Size must be between 0.0 and 16.0
- abilities must be locked
- Entity HEALTH must be GREATER than 0.0
- Entity must have potion effects
- ThreeData value must be compared
- Ability must be the only of its kind
- Specific abilities must be used in specific order
- Item needs to be in specific Curios slot
- Specific item must be in specific Curios slot

## Key must be pressed once to active this ability`threecore:action`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `true` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `true` | If this condition requires a key

### Example:

## Key must be held to activate this ability`threecore:held`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `true` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `true` | If this condition requires a key

### Example:

## Ability must be toggled with the key`threecore:toggle`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `true` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `true` | If this condition requires a key

### Example:

## Ability must be cooled down`threecore:cooldown`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
cooldown | Integer | `0` | Maximum cooldown for using this ability

### Example:

## / ability must be enabled`threecore:ability_enabled`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
ability_id | String | `""` | The id for the ability that must be enabled for the condition to be true.

### Example:

## / ability must be unlocked`threecore:ability_unlocked`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
ability_id | String | `""` | The id for the ability that must be unlocked for the condition to be true.

### Example:

## Karma must be at least -2147483648`threecore:karma`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
min | Integer | `-2147483648` | The minimum karma required for the condition to be true.
max | Integer | `2147483647` | The maximum karma required for the condition to be true.

### Example:

## 5 experience points must be spent`threecore:xp_buy`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
experience | ExperienceThreeData$Experience | `5` | Determines the amount of XP the player has to spend to activate this condition.

### Example:

## An item must be spent`threecore:item_buy`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
item | ItemStack | `{"item":"minecraft:apple","count":1}` | Determines the item the player must spend to activate this condition.

### Example:

## Item needs to be in the main hand slot`threecore:equipment_slot`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
slot | EquipmentSlotType | `"mainhand"` | Requires the ability to be in an item, and needs that item in the specified slot

### Example:

## Karma must be at least 0`threecore:xp`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
min | Integer | `0` | The minimum xp level required for the condition to be true.
max | Integer | `2147483647` | The maximum xp level required for the condition to be true.

### Example:

## Entity must wear specific items`threecore:wearing_item`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
mainhand | Ingredient | `[]` | Specifies the ingredient for the item in the mainhand slot
offhand | Ingredient | `[]` | Specifies the ingredient for the item in the offhand slot
feet | Ingredient | `[]` | Specifies the ingredient for the item in the feet slot
legs | Ingredient | `[]` | Specifies the ingredient for the item in the legs slot
chest | Ingredient | `[]` | Specifies the ingredient for the item in the chest slot
head | Ingredient | `[]` | Specifies the ingredient for the item in the head slot

### Example:

## Entity must wear items within the forge:ingots/iron tag`threecore:wearing_item_tag`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
item_tag | Item> | `"forge:ingots/iron"` | Determines the item tag the items must have
mainhand | Boolean | `false` | Determines if the item in the mainhand slot must have the specified tag
offhand | Boolean | `false` | Determines if the item in the offhand slot must have the specified tag
feet | Boolean | `true` | Determines if the item in the feet slot must have the specified tag
legs | Boolean | `true` | Determines if the item in the legs slot must have the specified tag
chest | Boolean | `true` | Determines if the item in the chest slot must have the specified tag
head | Boolean | `true` | Determines if the item in the head slot must have the specified tag

### Example:

## Item in HEAD slot must have specific value in Opening nbt tag`threecore:item_integer_nbt`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
slot | EquipmentSlotType | `"head"` | The slot which will be checked on
nbt_tag | String | `"Opening"` | The nbt tag which will be checked on
min | Integer | `0` | The minimum value the nbt tag has to be
max | Integer | `0` | The maximum value the nbt tag has to be

### Example:

## Eyes are need to be covered by fluids in the NamedTag[minecraft:water] tag`threecore:eyes_in_fluid`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
fluid_tag | Fluid> | `"minecraft:water"` | Determines the fluid the eyes are needed to be in

### Example:

## Size must be between 0.0 and 16.0`threecore:size`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
min | Float | `0.0` | The minimum size required for the condition to be true.
max | Float | `16.0` | The maximum size required for the condition to be true.

### Example:

## abilities must be locked`threecore:abilities_locked`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
ability_ids | String[] | `["ability_1","ability_2"]` | Contains the ids of abilities which MUST be LOCKED

### Example:

## Entity HEALTH must be GREATER than 0.0`threecore:living_values`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
value_type | String | `"HEALTH"` | The type of value to test, HEALTH, HUNGER, SATURATION, OXYGEN, ARMOR, TOUGHNESS, EXPERIENCE_BAR, or EXPERIENCE_POINT
test_type | String | `"GREATER"` | The type of test for the value, GREATER, LESS, EQUAL, PERCENT_GREATER, PERCENT_LESS, PERCENT_EQUAL
test_value | Float | `0.0` | The value to test the entity's value against

### Example:

## Entity must have potion effects`threecore:has_potions`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
potions | String[] | `[]` | The potion effects to test for. If empty, tests if there are any potion effects

### Example:

## ThreeData value must be compared`threecore:three_data`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
test_ability | String | `""` | The ability to test the threedata from
data_name | String | `""` | The name of the data to test
add_amount | Float | `0.0` | The amount of data to add after checking
test_value | String | `""` | The value to test the threedata's value against, as a string. Supports string, boolean, float and integer
test_type | String | `"GREATER"` | The type of test for the value, GREATER, LESS, or EQUAL
amount_max | Float | `3.4028235E38` | The maximum amount the data can be after adding add_amount
amount_min | Float | `0.0` | The minimum amount the data can be after adding add_amount

### Example:

## Ability must be the only of its kind`threecore:exclusive`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key

### Example:

## Specific abilities must be used in specific order`threecore:combo`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
abilities | String[] | `[]` | The abilities required to use in order to unlock the ability

### Example:

## Item needs to be in specific Curios slot`threecore:curios_slot`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
slots | String[] | `"back"` | Requires the ability to be in an item, and needs that item to be in one of those specified slots. Leave empty for all kind of slots -> https://github.com/TheIllusiveC4/Curios/wiki/Frequently-Used-Slots

### Example:

## Specific item must be in specific Curios slot`threecore:wearing_curios`

### Data Settings:

Setting | Type | Fallback Value | Description
--- | --- | --- | ---
custom_title | ITextComponent | `{"text":"empty"}` | A custom display name for the condition.
invert | Boolean | `false` | Lets you invert the condition
enabling | Boolean | `false` | If this condition enables. If false it instead decides whether the ability is unlocked.
needs_key | Boolean | `false` | If this condition requires a key
item | Ingredient | `{"item":"minecraft:apple"}` | Ingredient for testing the item in the curios slot
slots | String[] | `["back","belt"]` | Slots the item can be in. Leave empty for all kind of slots -> https://github.com/TheIllusiveC4/Curios/wiki/Frequently-Used-Slots

### Example: