Mineuniverse
Log in Register
Mods

Intent

Intent transforms your keybinds into context-aware actions, allowing a single key to perform different functions based on different conditions.
by xkjmaster_1x
Download Claim this project
33 downloads
0 likes
Updated Jul 6, 2026
0 hypes
API and Library Utility & QoL

Intent

Context-Aware Keybinds for Minecraft

Intent transforms your keybinds into intelligent, context-aware actions. Instead of remembering dozens of keys for different mods, you can assign multiple functions to a single key, triggered automatically by specific conditions like your health, equipment, or movement state.

Features

  • Contextual Bindings: Bind a single physical key (e.g., R) to perform different actions based on the situation.
    • Example: R throws an Ender Pearl if holding one, but opens your Inventory if your hand is empty.
  • Radial Menu System: If multiple actions are valid for a key press, holding the key opens a Radial Menu to select the desired action. Tapping the key triggers the highest priority action immediately.
  • In-Game Editor: No need to edit JSON files manually. Press I (default) to open the Intent Editor to configure your rules visually.
  • Default Condition Library:
    • Player State: Sneaking, Sprinting, Airborne, Riding.
    • Inventory: Holding specific Items or Item Tags.
    • World: Looking at specific Blocks or Entities.
    • Stats: Health or Item Durability thresholds (e.g., "Eat food when health < 50%").
    • Combat: Detect if you are currently in combat.
    • GUI: Detect if a specific screen (like an Inventory) is open.

How to Use

The Editor

Press I to open the Intent Editor.

  1. Select a Key: Choose a physical key (e.g., Key R) on the left.
  2. Add Rules: Add "Intent Entries" to the stack.
  3. Define Contexts: For each entry, define When it should trigger (e.g., is_sneaking).
  4. Set Priority: Rules are checked from top to bottom. Use the Up/Down arrows to prioritize specific actions.

Virtualization

Intent allows you to "Virtualize" a keybinding. This unbinds the action from the vanilla controls options so it doesn't conflict with your custom Intent rules.


Developer API

Intent exports a dedicated API jar, allowing other mods to add custom Context Types (conditions) and Editors.

Usage (Gradle)

Intent is available via JitPack. Add the following to your build.gradle:

repositories {
    maven { url '[https://jitpack.io](https://jitpack.io)' }
}

dependencies {
    // Compile against the API (Recommended)
    implementation "com.github.kjmaster1:Intent:v1.0.0:api"

    // Or include the full mod for runtime testing
    // implementation "com.github.kjmaster1:Intent:v1.0.0"
}

Registering a Custom Context

To add a new condition (e.g., checking if it's raining), implement IIntentContext and register a ContextType.

  1. Create the Context:

    public record RainingContext() implements IIntentContext {
        public static final MapCodec<RainingContext> CODEC = MapCodec.unit(new RainingContext());
    
        @Override
        public boolean test(LocalPlayer player) {
            return player.level().isRaining();
        }
    
        @Override
        public ContextType<?> getType() {
            return MyRegistries.IS_RAINING.get();
        }
    }
    
  2. Register the Type: Use IntentAPI.CONTEXT_TYPE_REGISTRY_KEY to register your type to the Intent registry.

    public static final DeferredRegister<IIntentContext.ContextType<?>> CONTEXT_TYPES =
            DeferredRegister.create(IntentAPI.CONTEXT_TYPE_REGISTRY_KEY, "my_mod_id");
    
    public static final DeferredHolder<IIntentContext.ContextType<?>, IIntentContext.ContextType<RainingContext>> IS_RAINING =
            CONTEXT_TYPES.register("is_raining", () -> () -> RainingContext.CODEC);
    

Adding a GUI Editor

To make your custom context editable in the Intent GUI, register an IContextEditor.

// In your Client Setup
ContextEditorRegistry.register(MyRegistries.IS_RAINING.get(), () -> new SimpleStateEditor<>(RainingContext::new));

License

This project is licensed under the MIT License.

intent-1.0.0.jar
MC Client, 1.21.1, NeoForge
Release 2025-12-07 Get

More from xkjmaster_1x

Ender Totem
8,064
Stone Chests
7,532
MagicBooks2
51,663
KJLib
5,004,570
Inventory Generators
4,952,621
KJ's Enchantable Wolf Armor
3,657

You Might Also Like

Liberty's Villagers
Quality of Life and AI improvements for Villagers
9,968,428
No More Pop-ups
A Minecraft mod to remove in-game pop-ups
996,708
BetterRandomSourceConcurrencyCrash
Improved logging of crashes caused by mods accessing RandomSources from the wrong thread
99,371
Exit Confirmation
Often accidentally closed Minecraft? This mod might help!
99,067
NoDynamicFps
Adds an option to disable Vanilla's Dynamic FPS implementation
99,004
Immersive Crafting
Adds crafting recipes to immersive portals
9,998