MoreRequirement

Added more requirements to Tetra's crafting effects and schematics.

MoreRequirement has added the following requirements for Tetra:

Requirements


"mr:advancement"

└ advancement (Required) String
    Checks whether the player has this advancement.

Example:

"requirement":{
  "type":"mr:advancement",
  "advancement":"minecraft:end/find_end_city"
}
``` "mr:biome" 

└ biome (Required) String Checks whether the workstation is located in the specified biome.


Example:

```json
"requirement":{
  "type":"mr:biome",
  "biome":"minecraft:end_highlands"
}
``` "mr:mbd" 

├ blocks (Required) Map<String,Integer> │ Checks whether the specified number of blocks exists within a given range. ├ x (Optional) Integer │ Distance to extend along the X-axis from the workstation (both directions). ├ y (Optional) Integer │ Distance to extend along the Y-axis from the workstation (both directions). └ z (Optional) Integer Distance to extend along the Z-axis from the workstation (both directions).


Example:

```json
"requirement":{
  "type":"mr:mbd",
  "x":5,
  "y":5,
  "z":5,
  "blocks":{
    "minecraft:end_portal_frame":10,
    "minecraft:end_stone":5
  }
}
``` "mr:entities" 

├ entities (Required) Map<String,Integer> │ Checks whether the specified number of entities exists within a given range. ├ x (Optional) Integer │ Distance to extend along the X-axis from the workstation (both directions). ├ y (Optional) Integer │ Distance to extend along the Y-axis from the workstation (both directions). └ z (Optional) Integer Distance to extend along the Z-axis from the workstation (both directions).


Example:

```json
"requirement":{
  "type":"mr:entities",
  "x":5,
  "y":5,
  "z":5,
  "entities":{
    "pig":10
  }
}
``` "mr:dimension" 

└ dimension (Required) String The dimension ID to check against.


Example:

```json
"requirement":{
  "type":"mr:dimension",
  "dimension":"the_end"
}
``` "mr:height" 

├ min (Optional) Integer │ Minimum required Y-level for the workstation (default: -99). └ max (Optional) Integer Maximum required Y-level for the workstation (default: 333).


Example:

```json
"requirement":{
  "type":"mr:height",
  "min":255
}
``` "mr:moon\_phase" 

└ moonPhase (Required) Integer Moon phase, valid values are in the range [1~8].


Example:

```json
"requirement":{
  "type":"mr:moon_phase",
  "moonPhase":"1"
}
``` "mr:potion" 

├ effect (Required) String │ The ID of the potion effect to check. ├ duration (Optional) Integer │ Minimum required duration in ticks (default: 0). └ amplifier (Optional) Integer Minimum required amplifier level (0 = level I, consistent with command syntax; default: 0).


Example:

```json
"requirement":{
  "type":"mr:potion",
  "effect":"minecraft:darkness",
  "duration":200
}
``` "mr:see\_sky" 

└ No parameters required. Returns true if the workstation is exposed to the sky.


Example:

```json
"requirement":{
  "type":"mr:see_sky"
}
``` "mr:time" 

└ time (Required) String Valid options: ├ "day" – daytime └ "night" – nighttime


Example:

```json
"requirement":{
  "type":"mr:time",
  "time":"day"
}
``` "mr:other\_module" 

Redirects the requirement check to a module in the specified slot.

├ slot (Required) String │ Target slot identifier. └ requirement (Required) Requirement Another requirement to evaluate on the target module.


Example:

```json
"requirement":{
  "type":"mr:other_module",
  "slot":"sword/hilt",
  "requirement": {
    "type": "tetra:improvement",
    "improvement": "hilt_hone/damage"
  }
}
``` "mr:weather" 

└ weather (Required) String Valid options: ├ "clear" – clear weather ├ "rain" – raining └ "thunder" – thunderstorm


Example:

```json
"requirement":{
  "type":"mr:weather",
  "weather":"test"
}
``` "mr:custom" (New Version) 

This requirement does nothing by itself and always returns true.  
You can implement custom logic using KubeJS.  
It uses a "key" for identification, allowing you to define multiple custom requirements freely.  
The localization key is: `"more_requirement.holo.custom_requirement.key"` (replace "key" with the one you defined in your datapack).

```js
// In startup_scripts
let $CustomRequirement = Java.loadClass('net.yiran.morerequirement.requirements.CustomRequirement');
$CustomRequirement.registerCustomFunction("key", cxt => true);

Example:

"requirement":{
  "type":"mr:custom",
  "key":"key"
}
``` "mr:custom" (Legacy Version – Deprecated since 1.0.3) 

This requirement does nothing by itself and always returns true.  
You can implement custom logic using KubeJS.

```js
// In startup_scripts
let $CustomRequirement = Java.loadClass('net.yiran.morerequirement.requirements.CustomRequirement');
$CustomRequirement.setCustomFunction(cxt => true);

Example:

"requirement":{
  "type":"mr:custom"
}
``` "mr:group" 

[\[See below for how to define groups\]](#group)

├ key (Required) String │ Used to retrieve the specific group. └ hideExtend (Optional) Boolean Whether to hide the group's individual conditions (default: false).


Example:

```json
"requirement":{
  "type":"mr:group",
  "group":"test"
}

Group


Place group definition files in data/morerequirement/group/.

├ requirements (Required) Requirement[]
│   A list of requirements to check when this group is referenced. All must pass.
├ key (Optional) String
│   By default, the key is automatically assigned as the file path under the group folder.
│   For example, "group/test/a.json" defaults to key "test/a".
│   You may manually specify a custom key.
├ translation (Optional) String
│   Localization key. Defaults to "more_requirement.group." + key.
└ hideExtend (Optional) Boolean
    Whether to hide the group's individual conditions (default: false).

Example:

{
  "key": "test",
  "requirements": [
    {
      "type": "mr:mbd",
      "blocks": {
        "minecraft:chain": 8,
        "minecraft:birch_stairs": 12,
        "minecraft:stripped_birch_log": 9
      }
    },
    {
      "type": "mr:see_sky"
    },
    {
      "type": "mr:weather",
      "weather": "clear"
    },
    {
      "type": "mr:height",
      "min": 200
    }
  ]
}

You can also nest groups within other groups:

{
  "key": "combination_test",
  "requirements": [
    {
      "type": "mr:group",
      "key": "test1"
    },
    {
      "type": "mr:group",
      "key": "test2",
      "hideExtend": true
    }
  ]
}

The MoreRequirement Team

profile avatar
  • 14
    Followers
  • 35
    Projects
  • 5.2M
    Downloads

More from yiran1457View all

  • RS Tetra project image

    RS Tetra

    • 14
    • Mods

    An addon mod bridging RS and Tetra, adding modular storage disk with customizable components.

    • 14
    • June 4, 2026
    • Mods
  • TetraModify Core project image

    TetraModify Core

    • 1.0K
    • Mods

    A lib to modify Tetra.

    • 1.0K
    • June 3, 2026
    • Mods
  • TetraOverHoning project image

    TetraOverHoning

    • 123.7K
    • Mods

    Allows you to continue accumulating honing progress after completing honing.

    • 123.7K
    • June 3, 2026
    • Mods
  • GeoTetraArmor project image

    GeoTetraArmor

    • 291.0K
    • Mods

    Add Tetra modular armor using GeckoLib models.

    • 291.0K
    • June 3, 2026
    • Mods
  • RS Tetra project image

    RS Tetra

    • 14
    • Mods

    An addon mod bridging RS and Tetra, adding modular storage disk with customizable components.

    • 14
    • June 4, 2026
    • Mods
  • TetraModify Core project image

    TetraModify Core

    • 1.0K
    • Mods

    A lib to modify Tetra.

    • 1.0K
    • June 3, 2026
    • Mods
  • TetraOverHoning project image

    TetraOverHoning

    • 123.7K
    • Mods

    Allows you to continue accumulating honing progress after completing honing.

    • 123.7K
    • June 3, 2026
    • Mods
  • GeoTetraArmor project image

    GeoTetraArmor

    • 291.0K
    • Mods

    Add Tetra modular armor using GeckoLib models.

    • 291.0K
    • June 3, 2026
    • Mods