Genes are data-driven, which means you can make custom Genes using jsons in a datapack.
Gene definition jsons go in /data/namespace/geneticsresequenced/gene/. For example, the file /data/coolmodpack/geneticsresequenced/gene/example.json would make a Gene with the id coolmodpack:example.
The Gene's translation key is dynamically generated, using the pattern gene.namespace.path. For the above example, the key would be gene.coolmodpack.example.
The Gene's EMI Information recipe is also dynamically generated! It's the exact same as above, but with info. at the start. For example info.gene.coolmodpack.example.
The json itself
Every field in a Gene definition file is optional, making {} a completely valid json. In fact, several default Genes already use this!
The possible fields are:
dna_points_required- An integer, defaults to
1 - How many DNA Points are required to fill a Plasmid
- An integer, defaults to
requires_genes- A list of Gene ids, defaults to
[] - The Gene will fade away if the entity doesn't have everything in the list
- A list of Gene ids, defaults to
allowed_entities- An entity type filter, defaults to
{"type": "neoforge:any"}- Can also just use a single entity type id (
minecraft:pig), or a list of entity type ids (["minecraft:cow","minecraft:player"])
- Can also just use a single entity type id (
- Entities not in the list cannot have the Gene
- An entity type filter, defaults to
potion_details- A list of objects with the following fields:
effect- A mob effect id
level- The potions level (not its amplifier)
- Optional, defaults to 1
duration- The amount of ticks the effect lasts
- Generally not requires, since the potion is reapplied every couple seconds
- Optional, defaults to -1 (infinite)
- The amount of ticks the effect lasts
- A list of objects with the following fields:
attribute_modifiers- A list of objects with the following fields
attribute- An entity attribute id (like
"minecraft:generic.max_health")
- An entity attribute id (like
- modifier
- An object with these fields
id- A resource location for the attribute modifier
- Should be unique
operation- One of the following:
- "add_value"
- "add_multiplied_base"
- "add_multiplied_total"
- One of the following:
amount- A number
- An object with these fields
- A list of objects with the following fields
scares_entities_with_tag- An entity type tag, defaults to nothing
- Entities with that tag run away from entities that have the Gene
incompatible_genes- A list of Gene ids, defaults to
[] - The Gene will not be added to entities that already have any of the Genes in the list
- A list of Gene ids, defaults to