-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Amaryllis edited this page Jul 30, 2026
·
1 revision
Experiment types are defined in data/<namespace>/aero_science_experiments
| Key | Type | Description |
|---|---|---|
stages |
List<ExperimentCondition> | An ordered sequence of stages which must be completed one after another. Each stage is a single condition, which when complete progresses the experiment onto the next stage. |
conditions |
Optional List<ExperimentCondition> | A list of conditions which must be satisfied in order to make progress on the current stage. Conditions here can also target a specific stage, to exclusively apply to it. |
xp_reward |
Optional int (Default: 200) | The base amount of XP rewarded upon experiment completion. May be modified by the config options xp_reward_multiplier and automated_xp_reward_multiplier
|
loot_reward |
Optional ResourceLocation | A loot table which will be rolled for item drops upon experiment completion. |
custom_reward_message |
Optional List<String> | A list of lang keys which will be translated and displayed when rewards are listed (by default, in recipe viewers) |
weight |
Optional float (Default: 1.0) | Determines how often this experiment is selected when a new Probe item randomly selects an experiment. |
sort |
Optional int | Determines how the experiment types are sorted, when listed in recipe viewers. Larger numbers sort after smaller numbers. If unset, is added at the end. |
Experiment rewards may also be overriden via code with the event ResearchProbeBlockEntity.CompletedResearchEvent.
| Key | Type | Description |
|---|---|---|
type |
Enum | What kind of criteria this condition checks. Possible types are listed below. |
condition |
Optional Enum | When paired with value, defines an inequality relationship. Possible values are: equal, greater_than, less_than, greater_than_or_equal, less_than_or_equal. |
value |
Optional int | When paired with condition, defines an inequality relationship. |
identifier |
Optional ResourceLocation | Defines a fluid/biome/dimension subject. May be a direct ID or a tag. |
inverted |
Optional boolean | Inverts the condition, if applicable. The condition is calculated, and then required to be false instead of true. Only the following condition types are invertable: submerged, biome, dimension. Others may be inverted by inverting the inequality condition. |
duration |
Optional int | For stages: defines a duration in ticks (20 per second) that the condition must be satisfied for before the stage is completed. |
reset_progress |
Optional boolean (Default: false) | For conditions: If true, violating the condition will cause the current (targetted) stage to reset all progress, instead of just pausing progress. |
target_stage |
Optional int | Represents an index in the stages list. The condition will only apply to the specified stage, and will be listed directly under it in tooltips. |
custom_message |
Optional String | A lang key which will be translated and displayed instead of the condition's normal tooltip description. |
| Condition Type | Relevant Parameters | Description |
|---|---|---|
wait |
duration |
A dummy condition which is always true, and thus waits only on duration. Only allowed in stages. |
height |
condition + value
|
Satisfied if the inequality condition is true for the block's Y position, e.g. Y > value
|
speed |
condition + value
|
Satisfied if the inequality conditionis true for the block's speed, e.g. speed > value
|
distance |
condition + value
|
Satisfied if the inequality conditionis true for the max distance travelled by the block from one point to another, e.g. distance > value.If any distance conditions are targetted to a specific stage, the Probe's distance is always reset between stages.If in stages, the inequality condition must be > or >=.If in conditions, the inequality condition must be < or <=, and there must be no distance stages. |
grounded |
condition + value
|
Satisfied if the inequality condition is true for the block's distance above the ground, e.g. height_above_ground > value.This height is calculated from the Heightmap MOTION_BLOCKING_NO_LEAVES
|
submerged |
identifier |
Satisfied if the block is within a fluid represented by the identifier. Invertable. |
biome |
identifier |
Satisfied if the block is within a biome represented by the identifier. Invertable. |
dimension |
identifier |
Satisfied if the block is within a dimension represented by the identifier. Invertable. |
The following is the Experiment entry for the Deep Ocean Pressure Gauge experiment.
{
"stages": [
{ "type": "height", "condition": "greater_than_or_equal", "value": 62 },
{ "type": "height", "condition": "less_than", "value": 20, "duration": 600 }
],
"conditions": [
{ "type": "submerged", "identifier": "minecraft:water", "target_stage": 1 },
{ "type": "biome", "identifier": "minecraft:is_ocean" }
],
"sort": 60
}The following is the Experiment entry for the Microscopic Sand Shifter experiment.
{
"stages": [
{ "type": "distance", "condition": "greater_than_or_equal", "value": 256 },
{ "type": "wait", "duration": 600 }
],
"conditions": [
{ "type": "grounded", "condition": "less_than_or_equal", "value": 10 },
{ "type": "biome", "identifier": "c:is_dry/overworld" }
],
"sort": 40
}