Chaos Gems and Runes - SilentChaos512/SilentGems GitHub Wiki
Quick facts
- Found in: Most versions
- Generates chaos when enabled. Emission rate depends on context.
- Limited number of slots to apply runes
- Apply runes by crafting them with a chaos gem
- Buff data path:
data/*/silentgems/chaos_buffs
Introduction
Chaos gems are items which apply buffs to players when enabled, producing chaos as a side effect. Most buffs are simply potion effects. The buffs are set by crafting the chaos gem with chaos runes.
Each rune adds one level of a "buff". Different buffs will use a different number of slots, with higher levels requiring additional slots (usually one or two per extra level).
Minecraft 1.12.2 and Lower
Chaos was an energy system in 1.12.2 and earlier, so chaos gems must be charged to work. Place them in a chaos altar with nodes or pylons nearby. Most buffs will drain a fixed amount in 1.12.2 and lower, regardless of whether you are benefiting from them or not.
Using
Once a chaos gem has at least one rune applied, you can enable or disable it by using the chaos gem (right-click). Chaos will be generated depending on the buffs, and whether they are considered active or inactive. Typically, a buff is "active" if you are benefiting from it. For example, jump boost is active while you are in the air, water breathing is active underwater, etc. Most buffs still generate chaos while inactive, but the amount is much smaller. Consider disabling chaos gems when not in use.
Pedestals
When placed on a pedestal, chaos gems can apply effects to all players in a small radius. Redstone can be used to enable/disable the chaos gem. Chaos generated is slightly discounted if multiple players are in the area of effect.
Crafting
In Minecraft 1.13.2 and higher, both chaos gems and chaos runes are crafted in the token enchanter. Recipes are visible in Just Enough Items (JEI) and Roughly Enough Items (REI).
In Minecraft 1.12.2 and lower, normally vanilla crafting is used. Recipes are visible in Just Enough Items (JEI).
Adding Buffs
Additional buffs can be added (to some extent) with a data pack. For the most part you will only be able to add potion effect buffs (more types may be added in the future). The data path is data/*/silentgems/chaos_buffs
, where *
should be replaced by the namespace of your data pack.
Chaos rune recipes are best handled with the token enchanter. You can read about how to add recipes on the token enchanter page
If you are not familiar with data packs, you can read about them here.
JSON Format
JSON files are used to define chaos buffs, allowing a great degree of control. The slots and chaos generated can be controlled per-level. For example, if slots
is an array of four elements, the first is the slots used by level I, the second element is the slots used by level II, etc. The same applies to cost.active
. The inactive cost (cost.inactive
) cannot be set by level.
You can view built-in buffs here: https://github.com/SilentChaos512/SilentGems/tree/1.13/src/main/resources/data/silentgems/silentgems/chaos_buffs
Properties
type
- The type of buff, typicallysilentgems:potion
potion
- The potion effect (for typesilentgems:potion
)maxLevel
- The maximum level alloweddisplayName
- The name of the effect. If you changetranslate
to false,name
will be used literally. Otherwise, it tries to translatename
.slots
- Slots used (per level)cost
- Defines how chaos is generatedinactive
- Chaos generated whenconditions
are not metactive
- Chaos generated whenconditions
are metconditions
- Conditions in which the buff is considered "active". All conditions must be true to be considered active.
Cost Conditions
These are the conditions which may be used in cost.conditions
. The JSON files ignore casing.
burning
- The player is "on fire". Note that an entity can be "burning" without taking damage (i.e. this is true even if the player has fire resistance).flying
- The player is flyinghurt
- The player is not at max healthin_air
- The player is not standing on the groundmoving
- The player has moved recently (this is currently broken and is always "true")underwater
- The player is currently in water
Example
{
"type": "silentgems:potion",
"potion": "minecraft:jump_boost",
"maxLevel": 4,
"displayName": {
"translate": true,
"name": "effect.minecraft.jump_boost"
},
"slots": [
4,
5,
6,
7
],
"cost": {
"inactive": 0,
"active": [
10,
12,
14,
16
],
"conditions": [
"in_air"
]
}
}