HomeJavaModsMoreRequirement
MoreRequirement
ModsJava

MoreRequirement

by yiran1457 · on CurseForge

⬇ Download on CurseForge

The author built this one for Minecraft 1.20.1 on Forge. On other versions it may install and then do nothing.

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
    }
  ]
}
Quick facts

Install steps are the general flow for this file type — How to install Minecraft Java mods & modpacks walks through it step by step.

Verified by MCModsHub

These come from our own check of the pack file, not from the source page.

Explore more