Create Bugfix: Schematic Patch

Quick rating

Create Bugfix: Schematic Patch

No reviews yet

Fixed a bug with the Schematic item of the create mod

No Theme
No Genre
Create-focused
Bug Fixes
Performance & Optimization
Server Utility
Mod Addon
Development: Abandoned
Mod Loaders
NeoForge
Minecraft

Community voices

Reviews

Versions
Loading versions…
Match includes

Click once to include, again to exclude, again to clear

Rating Any
Any 0.5 1.0 1.5 2.0 2.5 3.0 3.5 4.0 4.5 5.0
Min
Max
Play Status
Reviews
Time Played
hrs+
Verified developers only
Has developer response
List view
Grid view
Compact view
Sort by
Date
Rating
Helpful
Unhelpful
Edited
Sort ascending
Delete this review?

This removes your review from the project. You can write a new review after.

Review submitted for moderation

Your review has been sent to moderators, who will check that it meets our guidelines before it appears publicly.

No reviews yet. Be the first to review this project!

Get it on

Available Platforms

Compatibility

Supported Environments

Where It Runs
Server Required, Client Optional

Required on the server. Installing it on the client adds functionality.

About

Project Details

Type
Mod
License
MIT License
Latest Version
Create_Bugfix_Schematic_Patch-1.1.4
Authors
CurseForge
Modrinth

For authors

Embed Badge

If you're the author of this project, you can embed a live badge anywhere that supports HTML or Markdown. It updates automatically whenever ratings change.

Custom banner text
ModDex rating badge preview

Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.

Identifiers

Platform IDs

CurseForge ID
Modrinth ID

Resources

External Links

Source Issues Wiki Discord

About

Description

This mod has been discontinued and will no longer receive updates or support. Please visit https://www.curseforge.com/minecraft/mc-mods/create-schematicchecker to find a similar mod.

Overview

This mod fixes a critical schematic item exploit in the Create mod for Minecraft 1.21+. Please note: when using the mod for the first time on your server (mod_version ≥1.1), execute the command /schematic-config reload to initialize the mod configuration.

Original Issue

Create's schematics could store blocks/items with illegal components, allowing players to obtain unobtainable survival items.

Fix Features

  • Anomaly Detection: Scans uploaded schematics in real-time
  • Data Sanitization: Automatically removes illegal components/blacklisted blocks
  • Alert Logging: Outputs server warning when player uploaded anomaly schematic
  • Auto-Archiving: Backups anomalous schematics at:/schematics/anomaly/playername/schematic.nbt

For mod_version<1.1.3

  • Configurable: Blacklist management via schematicsfix-common.toml
  • Advanced Configuration Feature: You can define the schematic NBT detection logic using JSON in schematicsfix.jsonl. However, please note that this feature is still experimental. Unless you know what you are doing, do not modify the default advanced configuration.

For mod_version≥1.1.3

  • Configurable:Define NBT filter rules freely through schematicsfix.yaml

Admin Benefits

  1. Real-time exploit blocking
  2. Automatic evidence preservation
  3. Customizable filter rules
  4. Zero manual review for legitimate uploads

Configuration File Format (mod_version≥1.1.3)

Configuration File Location: config/schematicsfix.yaml

Basic Structure:

version: "1.0"
rules:
  - name: "rule_name"
    target_path: "target_path"
    conditions:
      - condition_list
    cleanup_actions:
      - cleanup_action_list

Rule Fields:

  • name: Unique identifier for the rule, used for logging and command display
  • target_path: Target path to search for in NBT data, supports wildcards
  • conditions: List of conditions that must all be satisfied to trigger cleanup
  • cleanup_actions: List of cleanup actions to execute when conditions are met

Path Syntax:

  • Normal path: Use dots to separate, e.g., "blocks.nbt.id"
  • Wildcard: Use [* ] to match all array elements Example: "blocks[* ].nbt" matches nbt fields in all blocks arrays Example: "messages[* ]" matches all elements in messages array
  • Specific index: Use [number] to match specific array index Example: "messages[0]" matches the first element in messages array

Condition Types:

   field_equals - Field value equals
   type: "field_equals"
   path: "field_path"
   value: expected_value
   field_not_equals - Field value not equals
   type: "field_not_equals" 
   path: "field_path"
   value: expected_value
   field_exists - Field exists
   type: "field_exists"
   path: "field_path"
   string_contains - String contains
   type: "string_contains"
   path: "field_path"
   value: "string_to_find"

Cleanup Action Types:

   conditional_remove - Conditional removal
   type: "conditional_remove"
   target_path: "target_field_path"
   condition: removal_condition (optional)
   remove_strategy: "field_only" (only removes field value)
   path_remove - Path removal  
   type: "path_remove"
   target_path: "target_path"
   remove_strategy: "entire_object" (removes entire object)
   nested_string_remove - Nested string cleanup
   type: "nested_string_remove"
   target_path: "target_path"
   condition: trigger_condition (optional)
   remove_pattern: "regex_pattern"
   remove_strategy: "regex_replace"

Complete Examples:

Example 1: Clean specific fields of valve handles Rule name: valve_handle_capacity_cleanup Target path: blocks[* ].nbt Condition: id field equals "create:valve_handle" Action1: If Network.Capacity not equals 256.0, remove this field Action2: If Speed not equals 32.0, remove this field

Example 2: Clean container data from clipboards
Rule name: clipboard_container_cleanup Target path: blocks[* ].nbt Condition: id field equals "create:clipboard" Action: Remove Item.components.minecraft:container path

Example 3: Clean click events from signs Rule name: sign_clickevent_cleanup Target path: blocks[* ].nbt Condition: id field equals "minecraft:sign" Action: Search for strings containing "clickEvent" in front_text.messages[*], use regex to remove clickEvent objects

Configuration Example Code:

version: "1.0"
rules:
  - name: "valve_handle_capacity_cleanup"
    target_path: "blocks[*].nbt"
    conditions:
      - type: "field_equals"
        path: "id"
        value: "create:valve_handle"
    cleanup_actions:
      - type: "conditional_remove"
        target_path: "Network.Capacity"
        condition:
          type: "field_not_equals"
          path: "Network.Capacity"
          value: 256.0
        remove_strategy: "field_only"
      - type: "conditional_remove"
        target_path: "Speed"
        condition:
          type: "field_not_equals"
          path: "Speed"
          value: 32.0
        remove_strategy: "field_only"

  - name: "clipboard_container_cleanup"
    target_path: "blocks[*].nbt"
    conditions:
      - type: "field_equals"
        path: "id"
        value: "create:clipboard"
    cleanup_actions:
      - type: "path_remove"
        target_path: "Item.components.minecraft:container"
        remove_strategy: "entire_object"

  - name: "sign_clickevent_cleanup"
    target_path: "blocks[*].nbt"
    conditions:
      - type: "field_equals"
        path: "id"
        value: "minecraft:sign"
    cleanup_actions:
      - type: "nested_string_remove"
        target_path: "front_text.messages[*]"
        condition:
          type: "string_contains"
          value: "clickEvent"
        remove_pattern: "\"clickEvent\":\\s*\\{[^}]*\\}"
        remove_strategy: "regex_replace"

Important Notes:

  1. Use /schematic-config reload to reload configuration after changes
  2. Use /schematic-config rules to view loaded rules
  3. Use /schematic-config status to check mod status
  4. All operations are removal operations only, no replacement functionality
  5. Regular expressions use Java standard syntax
  6. Make sure YAML file uses proper indentation (spaces, not tabs)

This mod has been discontinued and will no longer receive updates or support. Please visit https://modrinth.com/mod/createschematicchecker to find a similar mod.

Overview

This mod fixes a critical schematic item exploit in the Create mod for Minecraft 1.21+. Please note: when using the mod for the first time on your server (mod_version ≥1.1), execute the command /schematic-config reload to initialize the mod configuration.

Original Issue

Create's schematics could store blocks/items with illegal components, allowing players to obtain unobtainable survival items.

Fix Features

  • Anomaly Detection: Scans uploaded schematics in real-time
  • Data Sanitization: Automatically removes illegal components/blacklisted blocks
  • Alert Logging: Outputs server warning when player uploaded anomaly schematic
  • Auto-Archiving: Backups anomalous schematics at:/schematics/anomaly/playername/schematic.nbt

For mod_version<1.1.3

  • Configurable: Blacklist management via schematicsfix-common.toml
  • Advanced Configuration Feature: You can define the schematic NBT detection logic using JSON in schematicsfix.jsonl. However, please note that this feature is still experimental. Unless you know what you are doing, do not modify the default advanced configuration.

For mod_version≥1.1.3

  • Configurable:Define NBT filter rules freely through schematicsfix.yaml

Admin Benefits

  1. Real-time exploit blocking
  2. Automatic evidence preservation
  3. Customizable filter rules
  4. Zero manual review for legitimate uploads

Configuration File Format (mod_version≥1.1.3)

Configuration File Location: config/schematicsfix.yaml

Basic Structure:

version: "1.0"
rules:
  - name: "rule_name"
    target_path: "target_path"
    conditions:
      - condition_list
    cleanup_actions:
      - cleanup_action_list

Rule Fields:

  • name: Unique identifier for the rule, used for logging and command display
  • target_path: Target path to search for in NBT data, supports wildcards
  • conditions: List of conditions that must all be satisfied to trigger cleanup
  • cleanup_actions: List of cleanup actions to execute when conditions are met

Path Syntax:

  • Normal path: Use dots to separate, e.g., "blocks.nbt.id"
  • Wildcard: Use [* ] to match all array elements Example: "blocks[* ].nbt" matches nbt fields in all blocks arrays Example: "messages[* ]" matches all elements in messages array
  • Specific index: Use [number] to match specific array index Example: "messages[0]" matches the first element in messages array

Condition Types:

   field_equals - Field value equals
   type: "field_equals"
   path: "field_path"
   value: expected_value
   field_not_equals - Field value not equals
   type: "field_not_equals" 
   path: "field_path"
   value: expected_value
   field_exists - Field exists
   type: "field_exists"
   path: "field_path"
   string_contains - String contains
   type: "string_contains"
   path: "field_path"
   value: "string_to_find"

Cleanup Action Types:

   conditional_remove - Conditional removal
   type: "conditional_remove"
   target_path: "target_field_path"
   condition: removal_condition (optional)
   remove_strategy: "field_only" (only removes field value)
   path_remove - Path removal  
   type: "path_remove"
   target_path: "target_path"
   remove_strategy: "entire_object" (removes entire object)
   nested_string_remove - Nested string cleanup
   type: "nested_string_remove"
   target_path: "target_path"
   condition: trigger_condition (optional)
   remove_pattern: "regex_pattern"
   remove_strategy: "regex_replace"

Complete Examples:

Example 1: Clean specific fields of valve handles Rule name: valve_handle_capacity_cleanup Target path: blocks[* ].nbt Condition: id field equals "create:valve_handle" Action1: If Network.Capacity not equals 256.0, remove this field Action2: If Speed not equals 32.0, remove this field

Example 2: Clean container data from clipboards
Rule name: clipboard_container_cleanup Target path: blocks[* ].nbt Condition: id field equals "create:clipboard" Action: Remove Item.components.minecraft:container path

Example 3: Clean click events from signs Rule name: sign_clickevent_cleanup Target path: blocks[* ].nbt Condition: id field equals "minecraft:sign" Action: Search for strings containing "clickEvent" in front_text.messages[*], use regex to remove clickEvent objects

Configuration Example Code:

version: "1.0"
rules:
  - name: "valve_handle_capacity_cleanup"
    target_path: "blocks[*].nbt"
    conditions:
      - type: "field_equals"
        path: "id"
        value: "create:valve_handle"
    cleanup_actions:
      - type: "conditional_remove"
        target_path: "Network.Capacity"
        condition:
          type: "field_not_equals"
          path: "Network.Capacity"
          value: 256.0
        remove_strategy: "field_only"
      - type: "conditional_remove"
        target_path: "Speed"
        condition:
          type: "field_not_equals"
          path: "Speed"
          value: 32.0
        remove_strategy: "field_only"

  - name: "clipboard_container_cleanup"
    target_path: "blocks[*].nbt"
    conditions:
      - type: "field_equals"
        path: "id"
        value: "create:clipboard"
    cleanup_actions:
      - type: "path_remove"
        target_path: "Item.components.minecraft:container"
        remove_strategy: "entire_object"

  - name: "sign_clickevent_cleanup"
    target_path: "blocks[*].nbt"
    conditions:
      - type: "field_equals"
        path: "id"
        value: "minecraft:sign"
    cleanup_actions:
      - type: "nested_string_remove"
        target_path: "front_text.messages[*]"
        condition:
          type: "string_contains"
          value: "clickEvent"
        remove_pattern: "\"clickEvent\":\\s*\\{[^}]*\\}"
        remove_strategy: "regex_replace"

Important Notes:

  1. Use /schematic-config reload to reload configuration after changes
  2. Use /schematic-config rules to view loaded rules
  3. Use /schematic-config status to check mod status
  4. All operations are removal operations only, no replacement functionality
  5. Regular expressions use Java standard syntax
  6. Make sure YAML file uses proper indentation (spaces, not tabs)

Screenshots

Gallery

This project has no gallery images yet.

Versions

Files

Relations

Project Relations

More like this

Similar Mods

Suggestions use data such as tags, dependencies, dependents, descriptions, titles, and more to rank how much they overlap with this mod.

On ModDex

Community snapshot

0
Ratings
0
Followers
0
In stacks

By the numbers

Statistics

~22,000
Total Downloads
CurseForge
~13,000
Modrinth
~9,000
Last Updated
CurseForge
Modrinth
Created
CurseForge
Modrinth
Last synced
When ModDex last fetched this project from CurseForge or Modrinth. Every project is re-checked on a schedule, and any project that ships a new file is synced automatically within hours of the release.
New file updates sync automatically
How syncing works