# 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

Example:
``

Setting | Type | Default | 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

# Key must be held to activate this ability

### threecore:held

Example:
``

Setting | Type | Default | 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

# Ability must be toggled with the key

### threecore:toggle

Example:
``

Setting | Type | Default | 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

# Ability must be cooled down

### threecore:cooldown

Example:
``

Setting | Type | Default | 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

# / ability must be enabled

### threecore:ability_enabled

Example:
``

Setting | Type | Default | 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.

# / ability must be unlocked

### threecore:ability_unlocked

Example:
``

Setting | Type | Default | 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.

# Karma must be at least -2147483648

### threecore:karma

Example:
``

Setting | Type | Default | 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.

# 5 experience points must be spent

### threecore:xp_buy

Example:
``

Setting | Type | Default | 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.

# An item must be spent

### threecore:item_buy

Example:
``

Setting | Type | Default | 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.

# Item needs to be in the main hand slot

### threecore:equipment_slot

Example:
``

Setting | Type | Default | 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

# Karma must be at least 0

### threecore:xp

Example:
``

Setting | Type | Default | 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.

# Entity must wear specific items

### threecore:wearing_item

Example:
``

Setting | Type | Default | 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

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

### threecore:wearing_item_tag

Example:
``

Setting | Type | Default | 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

# Item in HEAD slot must have specific value in Opening nbt tag

### threecore:item_integer_nbt

Example:
``

Setting | Type | Default | 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

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

### threecore:eyes_in_fluid

Example:
``

Setting | Type | Default | 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

# Size must be between 0.0 and 16.0

### threecore:size

Example:
``

Setting | Type | Default | 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.

# abilities must be locked

### threecore:abilities_locked

Example:
``

Setting | Type | Default | 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

# Entity HEALTH must be GREATER than 0.0

### threecore:living_values

Example:
``

Setting | Type | Default | 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

# Entity must have potion effects

### threecore:has_potions

Example:
``

Setting | Type | Default | 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

# ThreeData value must be compared

### threecore:three_data

Example:
``

Setting | Type | Default | 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

# Ability must be the only of its kind

### threecore:exclusive

Example:
``

Setting | Type | Default | 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

# Specific abilities must be used in specific order

### threecore:combo

Example:
``

Setting | Type | Default | 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

# Item needs to be in specific Curios slot

### threecore:curios_slot

Example:
``

Setting | Type | Default | 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

# Specific item must be in specific Curios slot

### threecore:wearing_curios

Example:
``

Setting | Type | Default | 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