DAI Engine ( Decisions and Impulses / D.A.I. )

A JSON-driven Minecraft game framework for creating automation, custom experiences, UI, worldgen, reactions, recognition, server-authoritative gameplay, and complete games through datapacks and resource packs.
Back to Files

Decisions_and_Impulses-1.6.jar

File namedecisions_and_impulses-1.6.jar
Uploader
J12H36HJ12H36H
Uploaded
Aug 13, 2026
Downloads
9
Size
1.5 MB
Mod Loaders
NeoForge
File ID
8640863
Type
R
Release
Supported game versions
  • 26.2

Curse Maven Snippet

NeoForge

implementation "curse.maven:decisions-and-impulses-1632508:8640863"

Learn more about Curse Maven

What's new

# Version 1.6

## Major Architecture Changes

### Gameplay Datapacks Separated from DAI Core
- Removed the built-in Survival gameplay mode from the default DAI runtime.
- Removed the built-in Speedrun and Adventure gameplay modes from the default runtime.
- Converted gameplay modes into standalone datapacks that can be installed, removed, and updated independently.
- DAI now focuses more heavily on being a reusable automation/runtime framework rather than owning a specific gameplay progression.
- Extracted legacy gameplay into standalone packs for compatibility and continued development.
- Cleaned shared core actions that previously routed back into legacy Survival-specific progression.
- Removed hidden fp_cycle / fp_decide dependencies from shared runtime definitions.

### External Gameplay Support
- Expanded support for third-party and standalone DAI gameplay datapacks.
- Datapacks can contribute their own:
  - Automation menu entries
  - Action menus
  - Available menus
  - Objectives
  - Logic definitions
  - Recognition definitions
  - Recognition groups
- Gameplay namespaces can now remain fully independent from decisions_and_impulses.

## New Available Menu System

### Conditional Action Menus
- Added dynamically filtered "Available" action menus.
- Menu buttons may now contain normal DAI conditions.
- Buttons automatically disappear when their conditions fail.
- Remaining buttons automatically repack so empty slots are not left behind.
- Available menus reevaluate while open using the normal menu tick loop.
- Current selection is preserved whenever the selected option remains available.

### Named Available Menus
- Available menu JSONs are now independent named menus rather than being merged into one global menu.
- Example:
  menus/actions/available/hunt.json
  registers the action menu:
  hunt
- Named Available menus open through the normal existing menu action:

  {
    "type": "update_menu",
    "menu": "action",
    "open": "hunt"
  }

- No separate menu-opening API is required.
- Normal and condition-filtered action menus now use the same external interface.

### Dynamic Perception Menus
- Available menus can react to:
  - Inventory conditions
  - Player health/hunger
  - Nearby entities
  - Specific entity types
  - Nearby recognized structures
  - Other registered DAI conditions
- Enables contextual menu trees such as:
  - Explore
  - Attack
  - Hunt
  - Harvest
  - Situation-specific submenus

## Recognition Improvements

### Nearby Recognition Condition
- Added generic nearby_recognition.
- Allows datapacks to ask whether a registered recognition result exists near the player.

Example:

  {
    "type": "nearby_recognition",
    "parameter": "decisions_and_impulses:tree",
    "number_value": 24.0
  }

- Recognition checks are non-mutating.
- Passive menu perception no longer changes or steals the player's active DAI target.

### Recognition Perception Cache
- Decoupled expensive structure recognition from the 20 TPS Available-menu refresh.
- Available-menu conditions read cached recognition state each tick.
- Structural recognition refreshes on a reduced cadence.
- Prevents repeated full-world/structure scans every client tick.
- Keeps conditional menus responsive without excessive perception overhead.

### Tree Recognition
- Existing structural tree recognition is now usable directly by contextual gameplay systems.
- Tree detection distinguishes actual tree structures using:
  - Trunk groups
  - Foliage groups
  - Connectivity
  - Vertical-column requirements
  - Ground contact
  - Upper-region foliage relationships

## Creative Builder

### Vanilla Sandstone Pyramid
- Replaced the previous Fuji Academy blueprint/build with a vanilla-style Minecraft sandstone desert pyramid.
- Added a large physical Creative Builder sequence for constructing the pyramid in-world.
- Designed specifically to work cleanly in superflat worlds.

### Physical Creative Building
- Builder now performs physical player-style placement rather than relying on direct world-edit/setblock behavior.
- Required blocks are placed into the player's Creative hotbar.
- Builder physically flies between construction positions.
- Blocks are placed using normal interaction behavior.

### Creative Flight
- Added managed Creative flight movement for large construction sequences.
- Builder can reposition itself automatically while constructing large structures.

### Smooth Placement Camera
- Creative exact placement now smoothly rotates the player's camera toward each intended placement point.
- Placement waits for camera alignment before performing the interaction.
- Managed-look ownership is preserved during exact placement alignment.

### Surface-Normalized Build Origin
- Creative Builder now normalizes the saved build origin to the actual walkable surface.
- Fixes pyramid foundations being generated one block above superflat terrain.
- Particularly improves predictable construction in flat/superflat worlds.

### Placement Diagnostics
- Improved failure reporting for:
  - Missing support
  - Interaction rejection
  - Reach failure
  - Camera alignment failure
- Added better placement retry visibility for large physical builds.

## Automation Menu Improvements

### Stop Automation Always Last
- Stop Automation is now structurally pinned to the bottom of the Automation menu.
- Third-party datapacks cannot accidentally insert buttons below it.
- Position is no longer dependent purely on contribution priority.
- Automation contributions continue to merge normally while Stop Automation remains last.

### Third-Party Automation Contributions
- Multiple datapacks can contribute their own Automation menu entries.
- Entries are merged dynamically at datapack load time.

## Logging & Debugging

### Real Debug Configuration
- Added a functional debugging configuration option.
- Debugging defaults to false for release builds.
- Disabling debugging now actually suppresses DAI diagnostic logging.

When disabled:
- <DAI:DEBUG> output is suppressed.
- Detailed human telemetry is suppressed.
- JSONL runtime telemetry is suppressed.
- Large custom debug logs are no longer continuously generated.

Normal:
- INFO
- WARN
- ERROR

messages remain available.

### Automatic Config Migration
- Added automatic config-version migration.
- Older DAI config files are automatically upgraded to the current schema.
- Existing compatible user settings are preserved during migration.
- Config version is rewritten after successful migration.

### Dedicated DAI Log Directory
- DAI-specific logs now remain under:
  logs/DAI_Log/
- Human gameplay telemetry was removed from Minecraft's normal latest.log.
- Human trace now writes to:
  logs/DAI_Log/human_latest.log
- Added bounded rollover behavior to prevent unlimited human telemetry growth.

### Compact Runtime Diagnostics
- Reduced excessive diagnostic verbosity.
- Runtime snapshots were tightened considerably compared with earlier full-line logging.
- Maintains useful state information without producing enormous debug files during short sessions.

## Datapack Validation
- Continued strengthening datapack validation during reload.
- Invalid action definitions are detected before gameplay execution.
- Validation reports:
  - Errors
  - Warnings
  - Informational messages
- Current gameplay datapacks can be independently validated as they load.

## Navigation & Runtime Improvements
- Continued refinement of target approach handling.
- Improved recovery routing when normal target approach fails.
- Added multiple safe recovery-route attempts before declaring a target unreachable.
- Failed/unreachable targets can be rejected so future searches may select another candidate.
- Improved movement and target-state cleanup when menu actions preempt active automation.
- Menu actions now immediately interrupt stale runtime work when appropriate.

## Harvesting / Gameplay Framework Improvements

### Connected Wood Harvesting Support
- Added datapack-level building blocks for connected-log harvesting using existing DAI actions.
- Wood harvesting can:
  - Find an initial nearby log
  - Approach and mine it
  - Scan the surrounding 26 neighboring blocks
  - Continue through adjacent connected logs
  - Recover nearby branches
  - Collect dropped wood items
- Allows gameplay packs to build tree-harvesting behavior without introducing a hardcoded Java "harvest tree" action.

### Spatial Scanning Reuse
- Existing surrounding_26 spatial scanning is now being reused for connected-structure gameplay logic.
- Enables lightweight adjacency-driven behaviors instead of repeatedly performing large-radius recognition scans.

## Menu / Runtime Philosophy

Version 1.6 moves DAI toward a more modular architecture:

- Java provides reusable capabilities.
- Recognition provides perception.
- Conditions expose current state.
- Available menus expose contextually valid choices.
- Datapacks define gameplay behavior.
- Gameplay modes no longer need to be hardcoded into the base mod.

This makes DAI substantially easier to extend with independent Survival, Speedrun, Adventure, Creative, or third-party automation packs without requiring each gameplay mode to modify the core runtime.

This mod has no related projects