Restrictive Core

Allows developers to restrict actions of certain Items and Blocks through custom syntax JSON

Restrictive Core

Restrictive Core is a lightweight, strictly data-driven server utility framework designed for modpack developers. It provides absolute, code-free control over player interactions, item utilization, and block mechanics.

Built entirely around JSON configuration and NBT evaluation, Restrictive Core allows you to construct complex progression stages, dynamic gating systems, and custom UI restrictions without requiring external scripting languages (like KubeJS or CraftTweaker).

How the mod operates from the developer's POV

The mod operates via JSON files generated in your config/restrictive_core/ directory. Changes made to the configuration can be evaluated at runtime without restarting the server—simply execute /reload (soon will add /rc reload) to re-parse the data and apply restrictions instantly.

How the mod operates from the player's POV

The mod operates through canceling events and preventing players from obtaining, using, placing and breaking items and blocks. All the player sees is a message in their action bar, tooltip or a red outline in their inventory/hotbar, which is all editable in the json files provided on game load.

Syntax & Parser Engine

Standard JSON is highly rigid, but Restrictive Core utilizes a custom parser to make pack development faster, easier and better:

  • Comment Support: Safely annotate your files using # to leave notes for your development team without breaking the parser or misaligning line number errors.
  • Wildcards & Exclusions: Target entire mod namespaces using wildcards (e.g., "create:*"). Need an exception? Prepend a minus sign (e.g., "-create:andesite_alloy") to exclude specific registry items from a broader tag or wildcard restriction.
  • Array Grouping: Pass multiple items, tags, or conditions into a single array block [ ] to condense your configurations.

Comprehensive Restriction Modules

Restrictive Core monitors event triggers across both block and item environments. Target registry names, tags (e.g., #minecraft:logs), or wildcards and apply combinations of the following restriction flags:

  • Item Restrictions: use, consume, drop, pickup, equip, swing, craft, smelt, process, smith.
  • Block Restrictions: use, break, place.
  • Macro Keywords: Use "all" (comprehensive lockdown), "nall" (restricts utility but allows safe environmental dropping/pickup), "obtain" (restricts crafting/smelting/smithing simultaneously), or "none" (whitelist overrides soon to be replaced with the "-" symbol so its suggested you do this to whitelist from lists of restricted items/blocks "-minecraft:oak_log").

Conditional Progression & State Logic

Gating is handled via NBT/Component data condition checks. By appending a "condition": "stage_iron" parameter to an item, the item remains locked until the player's persistent data contains a matching boolean set to true.

  • Condition Inversions: Prepend an exclamation mark (!) to require the absence of a state (e.g., "!iron_banned"). Useful for dynamic penalty systems.

Smart UI & Processing Compatibility

Vanilla processing grids (furnaces, crafting tables, smithing) are supported natively. For modded machinery, Restrictive Core features a highly configurable UI bridging system (custom_interfaces.json):

  • Map directly to a custom machine's Menu Type registry namespace.
  • Define output_slots indexing for crafting overrides.
  • Evaluation Modes: Choose between "smelt" (predictive evaluation of internal recipes—blocks inputs if outputs are restricted) and "process" (direct validation of raw input components).

Dynamic Messaging & Placeholders

Provide your users with clear feedback using a robust messaging system:

  • Assign multiple discrete deny_message and info_tooltip arrays to single registry targets (e.g., one message for denied crafting, another for denied usage).
  • Supports legacy & color formatting translation.
  • Live Placeholders: Built-in macros like <player>, <item>, <block>, and <action>.
  • Custom NBT Mapping: Map your own custom placeholders (e.g., <mana>) to live player NBT keys via custom_placeholders.json, dynamically extracting and rendering the data into your messages at runtime.

Diagnostic & Administrative Tooling

Restrictive Core ships with an extensive suite of /restrictivecore (/rc) commands to speed up modpack development:

  • Integrated Validator: Run /rc debug [target] to invoke the built-in semantic validator. It audits your JSON files for missing brackets, invalid macro keywords, and cross-contamination (e.g., utilizing item restriction flags within block configurations) while returning accurate line errors.
  • In-Game Inspector: Use /rc inspect [holding/looking] [modifier] to read raw NBT data, block states, required tool tiers, associated loot tables, or active JSON restrictions for specific items in real-time.
  • Admin Controls: Quickly grant, revoke, or check player progression conditions via /rc admin commands to test gating limits.
  • In-Game Documentation: The /rc help UI is embedded directly into the chat log and has all the documentation you need to use this on a server or modpack.

Why was Restrictive Core made?

Restrictive Core was a personal project of mine. I work with a friend on his server The Bingus SMP, where I have been lead developer for a while now, and I noticed that some players would join a new Season and spend hours decking themselves out using the most broken parts of mods. When players new to the Season would then log on a couple of hours later or a day later, they would be leagues behind. The players who had been grinding would then give items/access to farms that would break progression for the new player. Using Restrictive Core you can avoid all of that, using the json file provided. Once I realised the potential of the mod I worked on it more and more. Even with all this work though the mod is still is Alpha. I would much appreaciate if you were to leave a comment IF you find a bug. Also compatibility isnt great at the moment but I tried my best with the time I have. If you notice a mod doesnt have compatibility or you have a suggestion, please leave a comment OR email me at coakrinmods@gmail.com

Current list of Supported mods:

(Remember that although you can add your own compatibility, it is not always reliable so please email or comment)

  • Crafting Station
  • Refined Storage
  • AE2
  • Iron Furnaces

Modpack Policy: You are free to include Restrictive Core in any CurseForge modpack.

Other Information

Restritive Core requires both Client and Server side to work. I'm currently working on a video on how to use my mod and that will be available soon.

Where you can support me

buymeacoffee.com/Coakrin - The option to donate is here but I'd much rather you build something cool with my hard work!

The Restrictive Core Team

profile avatar
Owner
  • 1
    Followers
  • 3
    Projects
  • 549
    Downloads

More from Coakrin

  • Bingus: Events project image

    Bingus: Events

    A mod for Events and Holidays on the Bingus SMP!

    • 314
    • December 15, 2025
  • Coe's C.O.E project image

    Coe's C.O.E

    C.O.E (Completely and Objectively Erratic ideas) is a mod made for me, Coakrin to make random ideas and just shove them into a mod... Your welcome!

    • 70
    • October 27, 2025
  • Bingus: Events project image

    Bingus: Events

    A mod for Events and Holidays on the Bingus SMP!

    • 314
    • December 15, 2025
  • Coe's C.O.E project image

    Coe's C.O.E

    C.O.E (Completely and Objectively Erratic ideas) is a mod made for me, Coakrin to make random ideas and just shove them into a mod... Your welcome!

    • 70
    • October 27, 2025