All versions
1.4.0
Release
Steve AI 1.4.07 months ago 494
Compatibility
Minecraft: Java Edition
1.20.1–1.20.6
Platform
Forge
Supported environments
Client and server
Changes
Core Mod
- Minecraft Forge mod entry point (
SteveMod) with full lifecycle management (FML events, server start/stop) - In-game command interface: open panel with
K, issue natural-language commands via/steve spawn <name>
Agent & Action System
ActionExecutor— orchestrates action execution with retry logic and error handlingCollaborativeBuildManager— multi-agent workload balancing and conflict resolution for building tasksTask/ActionResult— typed task/result models for the agent pipeline- Built-in action implementations:
BuildStructureAction— autonomous structure planning and block-by-block placementCombatAction— threat assessment and combat coordinationCraftItemAction— recipe lookup and crafting executionFollowPlayerAction— pathfinding to track a target playerGatherResourceAction— resource location and gatheringIdleFollowAction— passive follow behaviour when idleMineResourceAction— optimal mining location selection and executionNavigateAction— point-to-point navigation
LLM Integration
TaskPlanner— converts natural-language input into a structured action plan using LLMsPromptBuilder/ResponseParser— prompt construction and response parsing utilities- Synchronous clients:
OpenAIClient,GroqClient,GeminiClient - Asynchronous clients:
AsyncOpenAIClient,AsyncGroqClient,AsyncGeminiClient(non-blocking LLM calls) LLMCache— response caching to reduce API calls and latencyLLMExecutorService— managed thread pool for async LLM requestsLLMFallbackHandler/ResilientLLMClient— automatic provider fallback and resilience policiesResilienceConfig— configurable retry, timeout, and circuit-breaker settingsLLMException/LLMResponse— typed error and response models
Execution Engine
SteveAPI— public API surface for issuing commands to agentsCodeExecutionEngine— safe execution sandbox for generated code snippetsMetricsInterceptor— records execution metrics (latency, success rate, token usage)
Memory & World Knowledge
SteveMemory— per-agent short-term and long-term memory storeWorldKnowledge— shared world state cache (blocks, entities, resources)StructureRegistry— persistent registry of built and planned structures
Plugin System
ActionPlugin/ActionFactory/ActionRegistry— extensible plugin API for registering custom actionsCoreActionsPlugin— default plugin bundling all built-in actionsPluginManager— runtime plugin discovery and lifecycle management via Java ServiceLoader
Structure Generation
StructureGenerators— procedural generators for common structures (houses, walls, platforms, etc.)StructureTemplateLoader— loads structure templates from resource filesBlockPlacement— value type representing a single block placement operation
Utilities & Events
ActionUtils— shared helper methods for action implementationsSteveCommands— registers and handles all Forge commandsServerEventHandler— listens to server-side Minecraft events (player join/leave, world tick, etc.)
Configuration
- TOML config file (
config/steve-common.toml) supporting OpenAI, Groq, and Gemini API credentials and model settings - Config example file (
config/steve-common.toml.example)
Testing
- Unit test stubs for
ActionExecutor,TaskPlanner,WorldKnowledge, andStructureGenerators
Infrastructure
- Gradle build system with Minecraft Forge (
1.20.1-47.3.0) setup gradlew/gradlew.batwrapper scriptsscripts/run_steve.shhelper script for local development- Resource files:
mods.toml,en_us.jsonlanguage file,pack.mcmeta .gitignorecovering Gradle, IDE, and OS-specific files
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:hCJGLWON:DVRxey2R"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:hCJGLWON:DVRxey2R"
}

