CurseForge · Minecraft mod
Intent
Intent transforms your keybinds into context-aware actions, allowing a single key to perform different functions based on different conditions.
Quick answer
Which Intent release should I use?
intent-1.0.0.jar targets 1.21.1 with NeoForge. The project page does not say whether this file belongs on the client, dedicated server, or both. No extra mods listed for this file.
Where it goes
Is Intent required on the client, server, or both?
The project page does not say whether this file belongs on the client, dedicated server, or both.
The source does not explicitly classify this release as client-only or server-only.
What else does intent-1.0.0.jar need?
intent-1.0.0.jar. Change the file and its required mods may change too.
This file does not list any required mods. Do not add a library just because a different file uses it.
This file does not list any required or optional mods.
Before you install it
Add Intent without breaking your instance.
Built for intent-1.0.0.jar. Pick another file and the loader, install side or required mods may change.
- 01
Stick to this file
Use intent-1.0.0.jar. It targets 1.21.1 with NeoForge; another release may have different loader, side or dependency requirements.
- 02
Bring the mods it needs
This file does not list any required mods. Do not add a library just because a different file uses it.
- 03
Put it on the correct side
The project page does not say whether this file belongs on the client, dedicated server, or both.
- 04
Pick the file you checked
Use the “Get this file” button beside intent-1.0.0.jar. It opens that exact file at the source.
About this project
What does Intent add?
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:
Rthrows an Ender Pearl if holding one, but opens your Inventory if your hand is empty.
- Example:
- 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.
- Select a Key: Choose a physical key (e.g.,
Key R) on the left. - Add Rules: Add "Intent Entries" to the stack.
- Define Contexts: For each entry, define When it should trigger (e.g.,
is_sneaking). - 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.
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(); } }Register the Type: Use
IntentAPI.CONTEXT_TYPE_REGISTRY_KEYto 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.
Project description from CurseForge.
Pick your setup
Intent by Minecraft version and loader
Choose the version and loader you play, then open the matching release.
Check the dependencies, then try the file in a copied instance before changing a world you care about.
Recent files
Intent versions and loaders
intent-1.0.0.jar
7 Dec 2025
Looking for an older file? The official CurseForge project page is in Resources.