Intent
No reviews yet
Intent transforms your keybinds into context-aware actions, allowing a single key to perform different functions based on different conditions.
Includes quality of life improvements and small tweaks to enhance and customize gameplay.
Neoforge is a fork of the Minecraft Forge available for versions 1.20.1+ of Minecraft. Many Forge mods are compatible with Neoforge and vice versa.
Community voices
Reviews
Click once to include, again to exclude, again to clear
No reviews yet. Be the first to review this project!
Get it on
Available Platforms
About
Project Details
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.
Use HTML for any page that supports it, or Markdown for README files and Markdown-based descriptions.
Identifiers
Platform IDs
About
Description
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.
Screenshots
Gallery
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
By the numbers
Statistics
Want to reach Minecraft players?
We're looking for a server hosting partner to feature here and other parts of the site. Interested? Send us a message!
Get in touchGet it on
Available Platforms
On ModDex
Community snapshot
By the numbers