promotional bannermobile promotional banner

MoreRequirement

Added more requirements to Tetra's crafting effects and schematics.
yiran1457 | MoreRequirement
Create a server, get 25% off your first monthaffiliate logo
Create Server
affiliate banner image

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:

"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:

"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:

"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:

"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:

"requirement":{
  "type":"mr:height",
  "min":255
}

 "mr:moon_phase" 

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

Example:

"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:

"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:

"requirement":{
  "type":"mr:see_sky"
}

 "mr:time" 

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

Example:

"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:

"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:

"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).

// 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.

// 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]

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

Example:

"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

High Crafter tier frameprofile avatar
  • 19
    Followers
  • 45
    Projects
  • 6.4M
    Downloads

More from yiran1457View all