Glossary

This page gives the meaning of each term that the developer pages use. Read this page first if a term is new to you.

Terms

TermMeaning
ElementA part that you can use in a config: an effect, a trigger, a condition, a filter, or a mutator.
EffectThe action that libreforge does. For example, it gives money or stops fall damage.
Permanent effectAn effect that stays on while its conditions are true. It has no trigger.
Triggered effectAn effect that runs one time each time its trigger occurs.
TriggerAn event that makes triggered effects run. For example, a player jumps.
ConditionA check that must be true before an effect can run or stay on.
FilterA check on the data of one trigger. For example, "only when the block is diamond ore".
MutatorA change to the data of one trigger before the effect gets it. For example, it moves the location.
HolderAn object that contains a list of effects and a list of conditions. Examples are a custom item, an enchantment, or a pet.
Provided holderA holder together with the object that gave it to the player. For example, a holder and the item stack that has it.
Holder providerYour code that tells libreforge which holders a dispatcher has now.
DispatcherThe thing that has holders and that effects act on. Usually this is a player. It can also be a mob, a block, a location, or the server.
Trigger dataThe values that a trigger sends to effects: the player, the victim, the block, the location, the item, the event, and two numbers.
Trigger parameterOne value in the trigger data that a trigger promises to send. For example, PLAYER or BLOCK.
Compile dataData that you calculate one time when the config loads, not each time the element runs. Use NoCompileData if you do not need it.
IdentifiersA UUID and a key that are unique to one permanent effect on one dispatcher. Use them to find the changes that the effect made, so you can remove them.
RegistryThe list where libreforge keeps each element type. Libreforge only finds elements that you register.
IDThe name that users write in the config to use your element. It must be unique and in snake_case.
ArgumentsThe settings that a user writes under args in the config.

Where each element runs

Trigger occurs
  -> libreforge finds the active effects of the dispatcher
  -> mutators change the trigger data
  -> filters check the trigger data
  -> conditions check the dispatcher
  -> the effect runs

Permanent effects do not use this flow. Libreforge turns them on when the holder and its conditions are present. Libreforge turns them off when the holder or a condition is not present.