Enchantments
Enchantments make it possible to specify custom effects provided by item, bionic or mutation.
Fields
id
(string) Unique identifier for this enchantment.
conditions
(string array) How an enchantment determines if it should be active
All conditions must pass for it to be valid, if there are no conditions it is automatically true
For all basegame values see here
emitter
(string) Identifier of an emitter that's active as long as this enchantment is active. Default: no emitter.
ench_effects
(array) Grants effects of specified intensity as long as this enchantment is active.
Syntax for single entry:
{
// (required) Identifier of the effect
"effect": "effect_identifier",
// (required) Intensity. Setting to 1 works for effects that do not actually have intensities.
"intensity": 2
}
hit_you_effect
(array) List of spells that may be cast when enchantment is active and character melee attacks a creature.
Syntax for single entry:
{
// (required) Identifier of the spell
"id": "spell_identifier",
// If true, the spell is centered on the character's location.
// If false, the spell is centered on the attacking creature.
// Default: false
"hit_self": false,
// Chance to trigger, one in X.
// Default: 1
"once_in": 1,
// Message for when the spell is triggered for you.
// %1$s is your name, %2$s is creature's
// Default: no message
"message": "You pierce %2$s with Magic Piercing!",
// Message for when the spell in triggered for an NPC.
// %1$s is their name, %2$s is creature's
// Default: no message
"npc_message": "%1$s pierces %2$s with Magic Piercing!",
// TODO: broken?
"min_level": 1,
// TODO: broken?
"max_level": 2
}
hit_me_effect
(array) List of spells that may be cast when enchantment is active and character gets melee attacked by a creature.
Same syntax as for hit_you_effect.
mutations
(array) List of mutations temporarily granted while enchantment is active.
intermittent_activation
(object) Rules that specify random effects which occur while enchantment is active.
Syntax:
{
// List of checks to run on every turn while enchantment is active.
"effects": [
{
// Average activation frequency.
// The exact chance to pass is "one in (X converted to turns)" per turn.
"frequency": "5 minutes",
// List of spells to cast if the check passed.
"spell_effects": [
{
// (required) Identifier of the spell
"id": "nasty_random_effect",
// TODO: broken?
"min_level": 1,
// TODO: broken?
"max_level": 5
// TODO: other fields appear to be loaded, but unused
}
]
}
]
}
values
(array) List of miscellaneous character/item values to modify.
Syntax for single entry:
{
// (required) Value ID to modify, refer to list below.
"value": "VALUE_ID_STRING",
// Additive bonus. Optional integer number, default is 0.
// Ignored for:
// METABOLISM, MANA_REGEN, STAMINA_CAP, STAMINA_REGEN, THIRST, FATIGUE
"add": 13,
// Multiplicative bonus. Optional, default is 0.
"multiply": -0.3
}
Additive bonus is applied separately from multiplicative, like so:
bonus = add + base_value * multiply
Thus, a multiply value of -0.8 is -80%, and a multiply of 2.5 is +250%. When modifying integer
values, final bonus is rounded towards 0 (truncated).
When multiple enchantments (e.g. one from an item and one from a bionic) modify the same value, their bonuses are added together without rounding, then the sum is rounded (if necessary) before being applied to the base value.
Since there's no limit on number of enchantments the character can have at a time, the final calculated values have hardcoded bounds to prevent unintended behavior.
For all basegame values see here
Flags
(array) of enchantment_flag_id values
For all basegame values see here
Immune Effects
(array) of effect_type_id values
Prevents recieving these effects, but any present effects will persist
Immune Fields
(array) of field_type_id values
Prevents environmental effects of fields from being applied
Fake Items
(array) of itype_id values
Adds these items to the crafting inventory. Can use bionic power with USES_BIONIC_POWER
Examples
[
{
"//": "On-hit effect for ink glands mutation, implemented via enchantment.",
"type": "enchantment",
"id": "MEP_INK_GLAND_SPRAY",
"hit_me_effect": [
{
"id": "generic_blinding_spray_1",
"hit_self": false,
"once_in": 15,
"message": "Your ink glands spray some ink into %2$s's eyes.",
"npc_message": "%1$s's ink glands spay some ink into %2$s's eyes."
}
]
},
{
"//": "This one would look good on a katana for an anime mod.",
"type": "enchantment",
"id": "ENCH_ULTIMATE_ASSKICK",
"has": "WIELD",
"condition": "ALWAYS",
"ench_effects": [{ "effect": "invisibility", "intensity": 1 }],
"hit_you_effect": [{ "id": "AEA_FIREBALL" }],
"hit_me_effect": [{ "id": "AEA_HEAL" }],
"mutations": ["KILLER", "PARKOUR"],
"values": [{ "value": "STRENGTH", "multiply": 1.1, "add": -5 }],
"intermittent_activation": {
"effects": [
{
"frequency": "1 hour",
"spell_effects": [
{ "id": "AEA_ADRENALINE" }
]
}
]
},
"flags": ["FOOD_POISON_IMMUNE"],
"immune_fields": ["fd_fire"],
"immune_effects": ["poison"],
"fake_items": ["fake_burrowing"]
}
}
]
Enchantment Values
{
"id": "CLIMATE_CONTROL", // Id of enchantment
"type": "enchantment_value", // Needed type
"can_add": true, // Weather adding to the enchantment value will do anything; Default true
"can_mult": true, // Weather multiplying to the enchantment value will do anything; Default true
"can_max": false, // Weather getting the maximum value of this type will do anything; Default false
"suffixes": [ // All of the suffixes this is quite literally the most complicated part
[
{ "suffix": "COOLING", "desc_insert": [ "hot", "" ] }, // These show up as `CLIMATE_CONTROL_XXX`
{ "suffix": "HEATING", "desc_insert": [ "cold", "" ] } // Desc insert overwrites the below `desc_insert`, desc can also be replaced
],
[ // Then you can define a second set, there can be as many sets as you want
{ "suffix": "TORSO", "replace": { "desc_insert": { "idx": 1, "val": "Torse" } } }, // Replace replaces based off starting at 0 index, so this replaces "" with "Torso"
{
"suffix": "ARM",
"replace": { "desc_insert": { "idx": 1, "val": "Arm" } },
"suffixes": [ // These are a list of further suffix specific suffixes
{ "suffix": "L", "replace": { "desc_insert": { "idx": 1, "val": "Left Arm" } } }, // These suffixes could have additional nested suffixes too
{ "suffix": "R", "replace": { "desc_insert": { "idx": 1, "val": "Right Arm" } } } // These only show up as `CLIMATE_CONTROL_XXX_ARM_XXX`, never will they be applied to another type
]
},
] // See below for further explination on why there are multiple sets
],
"desc": "Keeps you comfortable against %1$s temperatures ( %2$s )", // Description, with support for formatting in additional strings
"desc_insert": [ "all bodyparts", "" ], // The additional strings to format in
"unsupported_conditions": ["character", "item_and_character"] // These values are called where these conditions cannot ever be used
},
Suffixes Explination
Start by examining the above tree There are two groups:
- COOLING and HEATING
- TORSO and ARM ( With Arm's children )
Order matters here, because COOLING came first, whenever you need the COOLING specifier, it must be first
I.E.
CLIMATE_CONTROL_COOLING_ARM works, but CLIMATE_CONTROL_ARM_COOLING is invalid.
The chain produced from the above json is as follows
- CLIMATE_CONTROL
- CLIMATE_CONTROL_COOLING
- CLIMATE_CONTROL_COOLING_ARM
- CLIMATE_CONTROL_COOLING_ARM_L -> References CLIMATE_CONTROL_ARM_L
- CLIMATE_CONTROL_COOLING_ARM_R -> References CLIMATE_CONTROL_ARM_R
- CLIMATE_CONTROL_COOLING_ARM
- CLIMATE_CONTROL_HEATING
- CLIMATE_CONTROL_HEATING_ARM
- CLIMATE_CONTROL_HEATING_ARM_L -> References CLIMATE_CONTROL_ARM_L
- CLIMATE_CONTROL_HEATING_ARM_R -> References CLIMATE_CONTROL_ARM_R
- CLIMATE_CONTROL_HEATING_ARM
- CLIMATE_CONTROL_ARM -> Does not reference CLIMATE_CONTROL to prevent stacking effects
- CLIMATE_CONTROL_ARM_L
- CLIMATE_CONTROL_ARM_R
- CLIMATE_CONTROL_COOLING
This can be done with as many chains as wanted, but it gets increasingly complicated as more chains are added
In the docs, only the chain groups will be referenced, not the full list of enchantment values, due to the increasing number of enchantment children
When referencing these values in c++ or lua you always want to use the most specific value, the lower tiers are autofilled.
I.E. CLIMATE_CONTROL_COOLING_ARM_R should be what you reference, never CLIMATE_CONTROL_ARM_R, or CLIMATE_CONTROL_ARM when getting a value
Standard suffixes
Bodyparts
This is a standard set of suffixes for all bodyparts Includes
- HEAD
- TORSO
- EYES
- MOUTH
- ARM
- L
- R
- LEG
- L
- R
- HAND
- L
- R
- FOOT
- L
- R
Skills
Used for all skill levels
BARTERSPEECHCOMPUTERFIRSTAIDMECHANICSTRAPSDRIVINGSWIMMINGFABRICATIONCOOKINGTAILORSURVIVALELECTRONICSARCHERYGUNLAUNCHERPISTOLRIFLESHOTGUNSMGTHROWMELEEBASHINGCUTTINGDODGESTABBINGUNARMED
Damage Types
Basegame Enchantment Value ID List
Character values
STRENGTH
Strength stat. base_value here is the base stat value. The final value cannot go below 0.
DEXTERITY
Dexterity stat. base_value here is the base stat value. The final value cannot go below 0.
PERCEPTION
Perception stat. base_value here is the base stat value. The final value cannot go below 0.
INTELLIGENCE
Intelligence stat. base_value here is the base stat value. The final value cannot go below 0.
HEALTH_POINTS
Hit points stat. base_value here is the base health value, The final value cannot go below 1.
These are the children.
| Set | Values | Use |
|---|---|---|
| Bodyparts | TORSO, HEAD, ARM ( L, R ), LEG ( L, R ) | The specific bodypart that is affected |
SPEED
Character speed. base_value here is character speed including pain/hunger/weight penalties. Final
speed value cannot go below 25% of base speed.
ATTACK_COST
Melee attack cost. The lower, the better. base_value here is attack cost for given weapon
including modifiers from stats and skills. The final value cannot go below 25.
MOVE_COST
Movement cost. base_value here is tile movement cost including modifiers from clothing and traits.
The final value cannot go below 20.
FLAT_MOVE_COST
Movement cost effect on flat ground. base_value here is movement cost partially through processing.
The final value cannot go below 20 like MOVE_COST.
This stacks with MOVE_COST
OBSTACLE_MOVE_COST
Movement cost effect on obstacles. base_value here is initial move cost.
The final value cannot go below 100.
Stacks with MOVE_COST, done before it.
SWIM_MOVE_COST
Movement cost effect while swimming The fianl value cannot go below 30. This does NOT stack with MOVE_COST
READING_SPEED
Speed of reading books. base_value is final reading speed in moves.
The final value cannot go below 1 second.
CRAFTING_SPEED
Crafting speed. base_value is a multiplier of crafting speed.
Calculated after all other multipliers
CONSTRUCTION_SPEED
Construction speed. base_value is a multiplier of construction speed for vehicles and furniture/terrain.
Calculated after all other multipliers
| Set | Values | Use |
|---|---|---|
| Construction Type | CON, VEH | Weather construction or vehicle construction speed is affected |
METABOLISM
Metabolic rate. This modifier ignores add field. base_value here is PLAYER_HUNGER_RATE
modified by traits. The final value cannot go below 0.
MANA_CAP
Mana capacity. base_value here is character's base mana capacity modified by traits. The final
value cannot go below 0.
MANA_REGEN
Mana regeneration rate. This modifier ignores add field. base_value here is character's base
mana gain rate modified by traits. The final value cannot go below 0.
STAMINA_CAP
Stamina capacity. This modifier ignores add field. base_value here is character's base stamina
capacity modified by traits. The final value cannot go below 10% of PLAYER_MAX_STAMINA.
STAMINA_REGEN
Stamina regeneration rate. This modifier ignores add field. base_value here is character's base
stamina gain rate modified by mouth encumbrance. The final value cannot go below 0.
THIRST
Thirst gain rate. base_value here is character's base thirst
gain rate. The final value cannot go below 0.
FATIGUE
Fatigue gain rate. base_value here is character's base fatigue
gain rate. The final value cannot go below 0.
MENDING_MULT
Edits the multiplier to broken limb mending rate. base_value is regen mod post mutations ( default 0.25 )
Final value range is 0.0 to 1.0
HEARING
Multiplier to hearing. base_value is the final multiplier to hearing.
Final value cannot go below 0.
NOISE
Footstep noise value. base_value is the post-mutaiton multiplier to noise.
Final value cannot go below 0.
SCENT
Scent value. base_value is the post-mutation scent value
Final value cannot go below 0
STEALTH
Stealth modifier value higher value increases stealth, lower value decreases it. base_value is the post mutation value
Clamped between 20 and 160. With 160 being 60% more visible and 20 being 80% less visible
MOTION_ALARM
From how far away will you be notified of approaching creatures. base_value is always 0.
This is a maxed value for tile range of notification.
BODYTEMP_X
Modifier to bodytemp accepted ranges
Appropriate values are
BODYTEMP_MIN: minimum temp for comfort
BODYTEMP_MAX: maximum temp for comfort
BODYTEMP_SLEEP
Additional bodytemp given during sleep
base_value is the mutation/previous enchantment values
There is no limit
BODYTEMP_SPEED
Additional speed change for COLDBLOOD4 characters
base_value is the mutation value or 0
There is no current limit
SLEEP_PAIN_THRESHOLD
Additional pain required for being woken up
base_value is the base sleep pain value
Minimum value is 1
SLEEP_DB_RESIST
Modifier to the amount of noise above environemental required to be woken up
base_value is 20
There is no minimum nor maximum value
CLIMATE_CONTROL
Moves temperature felt by the player towards a point.
base_value is the current temperature felt by the player
It will increase or decrease based off if it is below or above normal temperature ( including mutations )
It has two children:
| Set | Values | Use |
|---|---|---|
| Temperature | COOLING, HEATING | Weather it applies increase in heat or decrease in heat towards ideal temp |
| Bodypart | See general bodypart enchantments here | Bodypart that it applies to |
That would only heat or cool respectively
LIE
Modifier to Lie chance base_value is post skill effects
Under 0 and above 100 has no change
PERSUADE
Same as LIE but for persuasion
INTIMIDATE
Same as LIE but for intimidation
HEALTHY_MULT
Edit to healthy. base_value is 1
FALL_DAMAGE_MULT
Modifier to fall damage multiplier, base_value is post mutations and other modifiers
Cannot go below 0
CARRY_STORAGE
Modifier to carryable storage. base_value is current storage in mililiters
Cannot go below 0
CARRY_WEIGHT
Modifier to carryable weight. base_value is current storage in mililiters
Cannot go below 0
WEIGHTMOD
Modifier to the current weight of the player. base_value is the respective weight of one of the categories listed below.
Minimum is 0, maximum is uncapped
| Set | Values | Use |
|---|---|---|
| Category | BIONICS, WEAPON, INVENTORY, BODY, WORN | What part of player weight it is applied to |
OVERMAP_SIGHT
Modifier to overmap sight. base_value is the best mutation value.
Maximum is 3
EFFECTIVE_FOCUS
Modifier to focus. base_value is current focus
There is no limit
MELEE_HIT
Modifier to melee hit rating. base_value is the value after all modifiers.
There are no limits.
OVERKILL
Modifier to after death damage on a zombie. base_value is the current overkill damage
Minimum value of 0.
FOOD_FUN
Modifier to food morale. base_value is current food morale
There is no limit.
VOMIT_MOD
Modifier to chance to vomit. base_value is always 1.
Minimum value of 0.
PAIN
Modifier to shifts in pain. base_value is the pain mod.
| Set | Values | Use |
|---|---|---|
| Type | GAIN, LOSS | Apply specifically to increases or decreases. |
PAIN_MOD
Modifier to current amount of pain, constant shift. base_value is current pain.
Minimum value of 0
CHRONIC_PAIN_MOD
Modifier to pain from the CHRONIC_PAIN option. base_value is the chronic pain.
Minimum value of 0 after being added to value after PAIN_MOD
PERCEIVED_PAIN_MOD
Modifier to percieved pain. base_value is current pain after PAIN_MOD.
Minimum value of 0
| Set | Values | Use |
|---|---|---|
| Stat | SPD, STR, DEX, INT, PER | Apply only to speed, strength, dexterity, intellegence and perception respectively. |
PAIN_PENALTY
Affects the stat penalty from high amounts of pain. base_value is the current penalty.
Maximum value of 0 ( no effect )
ADDICTION_STRENGTH
Modifier to likelyhood to gain another addiction intensity.
base_value is the strength of the added addiction.
There is no limit.
ADDICTION_TIME_PER_ADDITION
Modifier to how long addiction applications increase addition time. base_value is base time added each time additions are applied in seconds.
There is no limit.
ADDICTION_TIME_PER_INTENSITY
Modifier to how long addictions last. base_value is time to remove one addiction stack.
Reducing increases addiction time, adding reduces addiction time
There is no limit.
UNCANNY_DODGE
0-1 chance to dodge bullets. base_value is 0.
Each uncanny dodge takes 100 stamina.
Any values below 0 or above 1 will have the same effect as at 0 and at 1 respectively
BONUS_DODGE
Additional dodges per turn before dodge penalty kicks in. base_value here is character's base
dodges per turn before penalty (usually 1). The final value can go below 0, which results in penalty
to dodge roll.
FORCEFIELD
0-1 chance to block damage of a damage type. base_value is 0.
| Set | Values | Use |
|---|---|---|
| Damage Type | See general damage type suffixes here | Damage Type that it applies to |
CROWD_CRUSH_RESIST
Modifier to how likely it is to get crowd crushed base_value is 5, it is always 5.
Increasing it reduces the chance to get crowd crushed
From 0 ( no chance to resist ) to 95 ( 5% chance to not resist )
BLISTER_COUNT
Effective heat armor modifier to gaining the blister effect. base_value is the number of blisters.
The final value can go below 0, which would never blister the character. Or it could go higher and always blister the character.
LUMINATION
Lumination around the player when active. You cannot add nor multiply this enchantment, only max value works. The final value will not go below 0, and the maximum value is uncapped.
NIGHT_VISION
Night vision value for the player. EFFECT_NIGHT_VISION or GNV_EFFECT is 10.0 while GNVE_EFFECT is 18.0
Only max works, and it will take the highest of enchantment and other night vision effects
CLAIRVOYANCE
Clairvoyance value for the player. CLAIRVOYANCE_SUPER is 40.0 while CLAIRVOYANCE_PLUS is 8.0
And CLAIRVOYANCE is 3
Only max works, and it will take the highest of enchantment and other clairvoyance effects
FLASH_PROTECTION
Flash protection value for the player. Item and effect flags give 3.
Only max works, and it will take the highest of enchantment, item and effect effects.
GROUNDED_CREATURE_SIGHT
Sight that passes through walls of grounded creatures in the form of infrared.
Number of tiles it works on. Only max works.
REACH_RANGE
Value that adds reach to all melee attacks ( unarmed or armed ).
base_value is always 0. Only max works
| Set | Values | Use |
|---|---|---|
| Type | UNARMED, ARMED | Apply only to armed or unarmed attacks. |
ARMOR_X
Incoming damage modifier. Applied after Active Defense System bionic but before the damage is
absorbed by items. Note that base_value here is incoming damage value of corresponding type, so
positive add and greater than 1 mul will increase damage received by the character.
| Set | Values | Use |
|---|---|---|
| Damage Type | See general damage type suffixes here | Damage Type that it applies to |
SKILL_LEVEL
Character wide skill level modifier.
base_value is the current skill level of the player
| Set | Values | Use |
|---|---|---|
| Skill Type | See general skill suffixes here | Skill that it applies to |
SKILL_EXP
Character wide skill exp gain modifier.
base_value is the exp gained by whatever is being done
Warning: this value can only be multiplied, not added
| Set | Values | Use |
|---|---|---|
| Skill Type | See general skill suffixes here | Skill that it applies to |
Encumbrance
Character wide encumbrance modifier, children modify certain bodyparts.
| Set | Values | Use |
|---|---|---|
| Bodypart | See general bodypart enchantments here | Bodypart that it applies to |
MELEE_DAMAGE
Character wide melee damage modifier ( reach attacks included ), children modify only certain damage types.
| Set | Values | Use |
|---|---|---|
| Damage Type | See general damage type suffixes here | Damage Type that it applies to |
MELEE_ARMOR_PENETRATION
Character wide melee armor penetration modifier. Children modify certain damage types.
| Set | Values | Use |
|---|---|---|
| Damage Type | See general damage type suffixes here | Damage Type that it applies to |
Item values
ITEM_ATTACK_COST
Attack cost (melee or throwing) for this item. Ignores condition / location, and is always active.
base_value here is base item attack cost. Note that the final value cannot go below 0.
ITEM_DAMAGE_X
Melee damage of this item. Ignores condition / location, and is always active. base_value here is
base item damage of corresponding type. Note that the final value cannot go below 0.
There is the global damage modifier ITEM_DAMAGE in addition to the supported damage types:
| Set | Values | Use |
|---|---|---|
| Damage Type | See general damage type suffixes here | Damage Type that it applies to |
ITEM_ARMOR_PENETRATION_X
Armor penetration of this item. base_value here is base armor penetration of corresponding type.
Note that the final value cannot go below 0.
There is the global modifier ITEM_ARMOR_PENTRATION in addition to the supported damage types:
| Set | Values | Use |
|---|---|---|
| Damage Type | See general damage type suffixes here | Damage Type that it applies to |
ITEM_ARMOR_X
Incoming damage modifier for this item, applied before the damage is absorbed by the item. Note that
base_value here is incoming damage value of corresponding type, so positive add and greater than
1 mul will increase damage received by the character. Each damage type has its own enchant
value, in addition to the global ITEM_ARMOR:
| Set | Values | Use |
|---|---|---|
| Damage Type | See general damage type suffixes here | Damage Type that it applies to |
ITEM_REACH_RANGE
Modifier to item reach range, max value between this and any item flags.
Enchantment Flag
{
"id": "NEARSIGHTED", // Id of the enchantment flag
"type": "enchantment_flag", // Needed type
"parents": [ "BLIND" ], // Array of other enchantment_flags it also gives
"conflicts": [ "FIX_NEARSIGHTED" ] // Array of other enchantment_flags of which it cancels
"info": "<bad>Causes nearsightedness</bad>" // Info string showed in enchantment info
},
All noted effects apply to the character in possession of the enchantment granting thing
Basegame Enchantment Flag ID List
Sight
UNDERWATER_SIGHT
Makes sight underwater uninhibited
SLEEP_SIGHT
Allows sight while sleeping
NEARSIGHTED
Restricts vision greatly, solved by some glasses
FIX_NEARSIGHTED
Conflict to NEARSIGHTED, cures and removes it
BLIND
Prevents seeing any tile, bumping into walls does reveal them
FIX_BLIND
Conflict to BLIND, cures and removes it
INFRARED_VISION
Gain infrared vision
ELECTROSENSE
Can see robots and electrical creatures through walls
SONAR
Can see burrowing creatures with the INFRARED_VISION sprite
ANTIGLARE
Prevents glare effects from sunlight and such
Consumption
EAT_ROTTEN
Gives the ability to eat rotten food safely.
ONLY_EAT_ROTTEN
Gives significant penalty to eating fresh food, still allows drinking fresh liquids
EAT_ROTTEN_MORALE
Gives no morale penalty to eating rotten food
CONSUME_UNCLEAN
Gives the ability to drink unclean liquids and eat unclean foods
FOOD_PARASITE_IMMUNE
Prevents gaining parasites from consuming food
FOOD_POISON_IMMUNE
Prevents gaining poison from consuming food
Miscellaneous
ALARMCLOCK
Gives the ability to set an alarm while sleeping
INTENAL_ALARMCLOCK
Has the effects of ALARMCLOCK, but does not produce sound
It also should prevent sleeping through it.
VIEW_DRONE_CAM
Allows viewing any creature with effect_drone_marker, generally applied by PHOTOGRAPH robots
RADIO
Gives the effects of having a radio
THERMOMETER
Gives the effects of having a themometer
WATCH
Gives the ability to see the precise time
FIRE_FIELD_IMMUNE
Provides immunity to fire fields.
SILENT
Prevents player sound from movement
NO_THERMAL_WAKE
Extreme temperatures will not wake up the player
NO_DAMAGE_WAKE
Taking damage will not wake up the player
NO_LIGHT_WAKE
Lights will not wake up the player
Enchantment Condition
{
"id": "WORN", // Id of condition
"type": "enchantment_condition", // Mandatory Type
"condition_type": "item_and_character", // Type of condition, `global`, `item`, `character` and `item_and_character` are possible values
"condition_function": "worn", // What function to use, generally references a hardcode or lua function
"condition_info": "While worn", // Enchantment condition info to display on items
}
Basegame Enchantment Condition ID List
Item and Character
HELD
When in your inventory
WIELD
When wielded in your hand
WORN
When worn as armor
Global
ALWAYS
Always active ( Obsolete but supported: Comes out to be true, thus no condition is needed )
NIGHT
When it is night time
DUSK
When it is dusk
DAY
When it is day time
DAWN
When it is dawn
ACTIVE
Whenever the item, mutation, bionic, or whatever the enchantment is attached to is active.
INACTIVE
The opposite of ACTIVE
Character
INSIDE
When the owner of the item is inside
OUTSIDE
When the owner of the item is outside
UNDERGROUND
When the owner of the item is below Z-level 0
ABOVEGROUND
When the owner of the item is at or above Z-level 0
UNDERWATER
When the owner is in swimmable terrain