Skip to content

Releases: minipasila/Girlfriend-Mod

v2.0.3-beta [MC 1.21.9]

Pre-release

Choose a tag to compare

@minipasila minipasila released this 28 Feb 11:00

Girlfriend Mod Changelog

Version 2.0.3-beta [MC 1.21.9]

Overview

So this adds a lot of stuff, and is also mostly just QOL stuff. The girlfriend now has better context of the environment though there's still some issues with her sometimes spamming too much or running towards mobs randomly even when those are like really far away. Another issue I gotta figure out how to fix is her basically having X-Ray now..


Deep Awareness Systems (New)

The girlfriend now has significantly enhanced perception of her surroundings:

  • Biome Awareness: She detects when she enters a new biome and reacts to the change in scenery or atmosphere.
  • Block Awareness: A comprehensive new system (BlockAwarenessManager) scans nearby blocks and categorizes them. She can now detect and react to:
    • Ores: Especially reacts with excitement to rare ores (Diamond, Emerald, Ancient Debris).
    • Flowers: Comments on nearby flora.
    • Housing & Decorations: Notices glass, wool, beds, banners, and other building materials.
    • Dangerous Blocks: Warns the player about lava, fire, cactus, etc.
  • Decoration Awareness: A new system (EntityAwarenessManager) allows her to see and comment on:
    • Paintings: Appreciates the art.
    • Item Frames: Comments on displayed items (especially glowing ones).
    • Armor Stands: Notices equipment on stands.
  • Enhanced Mob Awareness: Improved logic to track mob populations (hostile vs. neutral) and provide summaries rather than reacting to every single individual mob.

Advancement Reactions (New)

  • The girlfriend now reacts when you earn advancements/achievements.
  • Reactions vary based on the difficulty:
    • Tasks: Casual congratulations.
    • Goals: Enthusiastic celebration.
    • Challenges: Extreme excitement and pride.
  • Implemented via a new Mixin (PlayerAdvancementTrackerMixin).

Door Interaction (New)

  • Added a DoorInteractGoal AI behavior.
  • She will now automatically open doors, trapdoors, and fence gates when following you.
  • She attempts to close them behind her after passing through.

AI & Token Management Improvements

  • Accurate Token Counting: Implemented a TokenCountingService that uses actual token usage data from the APIs (Chutes, OpenRouter, KoboldCpp) instead of rough estimates.
  • Dynamic Context Window: Added configuration for context windows with auto-detection capabilities for different models.
  • Smart Summarization: Summarization triggers are now based on calculated token thresholds (configurable percentage of available context) rather than fixed character counts.
  • System Prompt Manager: Centralized prompt loading into SystemPromptManager. This allows for better variable replacement (e.g., {name}, {playerName}) and easier customization.
  • Context Ordering: Standardized the message structure sent to the AI: System Prompt -> Chat History -> Current Status.

Inventory & Interaction

  • Multi-Item Giving: You can now request multiple items at once (e.g., "Give me 10 diamonds and 20 iron"). The RelationshipManager parses complex requests and handles partial successes if inventory space is limited.
  • Enhanced Context: The "Current Status" sent to the AI now includes precise coordinates, facing direction, nearby mob summaries, biome info, and detected blocks/entities.

Configuration & GUI

  • Advanced Token Settings: Added new fields in the config and GUI:
    • Context Window: Set specific context limits (0 = auto-detect).
    • Summarization Threshold: Adjust when memory gets summarized (0.0-1.0).
    • Safety Buffer: Reserve a percentage of context for safety.
    • Max Generation Tokens: Limit the length of AI responses.
  • API Key Masking: API keys in the configuration GUI are now masked (********) for security. They are only revealed if edited.

Code Structure & Cleanup

  • New Classes: AIResponse, BlockAwarenessManager, EntityAwarenessManager, SystemPromptManager, TokenCountingService, AdvancementEventHandler.
  • Removed: COMPLETION_SUMMARY.md (information consolidated into README.md).
  • Updated: README.md reflects new features and removes the raw file structure listing.
  • Refactoring: Significant cleanup in ChutesClient, OpenRouterClient, and KoboldCppClient to use the new centralized managers and token tracking.

Credits

Original Project:

Additions & Modifications:


Full Changelog: v2.0.2-alpha...v2.0.3-beta

v2.0.2-alpha [MC 1.21.9]

Pre-release

Choose a tag to compare

@minipasila minipasila released this 05 Jan 00:14

Girlfriend Mod Changelog

Version 2.0.2-alpha [MC 1.21.9]

Overview

This update introduces a sophisticated sentiment analysis system for relationship management and refines combat forgiveness mechanics. The girlfriend now intelligently interprets player interactions, rewarding positive behavior and understanding accidental harm, while providing meaningful relationship-based bonuses.


Major Features

Sentiment Analysis Engine:

  • AI-Powered Interaction Analysis: Girlfriend now uses the configured AI provider to analyze player messages for sentiment (positive/negative/neutral) and intent (item requests, compliments, insults).
  • Context-Aware Interpretation: The system distinguishes between comments directed at the girlfriend versus general conversation, preventing false positives.
  • Relationship Impact: Positive interactions increase relationship level, negative interactions decrease it, with scaling based on current relationship tier.

Relationship Milestone Bonuses:

  • Level 25: Forgives accidental hits from owner
  • Level 50: Shares rare items more willingly and heals owner when health is low
  • Level 75: Takes more risks to protect owner and deals increased combat damage
  • Level 90: Deep devotion with significant damage reduction
  • Level 100: Maximum relationship with ultimate commitment

Combat Forgiveness System:

  • Accidental Hit Protection: Girlfriend no longer attacks the player for accidental hits if relationship level is above 20.
  • Reduced Damage: When forgiven, accidental hits from the owner deal reduced damage based on relationship level.
  • Appropriate Reactions: Girlfriend expresses forgiveness or hurt based on the context of the attack.

Technical Improvements

RelationshipManager Class:

  • Replaces LLM Logic Engine: New modular system separates sentiment analysis, milestone tracking, and bonus calculation.
  • InteractionResult Object: Structured response format for AI analysis with reasoning, sentiment, action, and item fields.
  • Bonus Multipliers: Dynamic combat damage, healing, and damage reduction multipliers based on relationship level.
  • Auto-Heal Owner: High relationship (>40) enables girlfriend to use golden apples from her inventory to heal the owner when injured.

Combat System Refinements:

  • ForgivingRevengeGoal: Custom goal that checks relationship level before retaliating against owner attacks.
  • Damage Reduction Scaling: Owner-inflicted damage scales from 100% at level 0 to 25% at level 90+.
  • Sacrifice System: At relationship >80, girlfriend will take damage for the owner if her health is sufficient.

Known Issues

Current Limitations:

  • The girlfriend is unable to give multiple items at once.
  • Girlfriend is not able to walkthrough doors most of the time.
  • Still somewhat spammy when she sees new mobs.

Credits

Original Project:

Additions & Modifications:


Next Planned Features

Planned for 2.1.0:

  • TTS/STT support via KoboldCpp for voice interactions

Full Changelog: v2.0.1-alpha-hotfix...v2.0.2-alpha

v2.0.1-alpha [MC 1.21.9]

Pre-release

Choose a tag to compare

@minipasila minipasila released this 03 Jan 20:19

Girlfriend Mod Changelog

Version 2.0.1-alpha [MC 1.21.9]

Overview

This update focuses on refining the AI interaction system, improving combat behavior, and fixing several critical bugs that affected gameplay experience. The girlfriend now has better contextual awareness, more natural reactions, and properly respects her unconscious state.


HOTFIX

  • Fixed duplicate events.

Bug Fixes

Combat & Knockout System:

  • Fixed Knockout Combat: Girlfriend can no longer attack enemies while unconscious. All combat goals are disabled during the knockout state, and she remains invulnerable until respawn completes.
  • Fixed Kill Attribution: When the player kills a mob that the girlfriend was helping fight, the system now correctly attributes the kill to the player rather than the girlfriend. She'll react appropriately to "owner kills" versus "personal kills".
  • Fixed AI Combat Blocking: AI response generation no longer blocks combat behavior. The girlfriend continues fighting while generating responses, preventing her from standing still and getting killed mid-conversation.

AI & Context System:

  • Fixed Name Reference Context: Improved system prompt and context building to consistently use the girlfriend's name instead of "you", preventing LLM confusion about who is being referenced.
  • Fixed Response Formatting: AI responses are now properly cleaned of newlines and formatting artifacts from various AI providers (Chutes, OpenRouter, KoboldCpp).
  • Fixed Eating Awareness: Girlfriend now properly recognizes when she eats food from her inventory and has a 30% chance to comment on it in chat.

New Features

Enhanced Context Awareness:

  • Movement State Detection: Girlfriend now distinguishes between swimming, walking, and standing idle in her context awareness. This provides better AI responses based on her current activity.
  • Day/Night Cycle Reactions: Girlfriend now notices and comments on time transitions (night falling, morning arriving) with appropriate emotional responses.
  • Mob Awareness System: Girlfriend has a 33% chance to react when she spots new hostile or neutral mobs nearby. She maintains a memory of which mobs she's already reacted to, preventing spam reactions to the same mob.
  • Combat Context Refinement: When fighting, the context now clearly indicates whether she's "helping owner fight [mob]" versus personally engaging in combat.

Improved Combat Behavior:

  • Defensive Engagement: Girlfriend now waits for hostile mobs to get closer before engaging, rather than immediately charging at distant threats.
  • Target Monitoring: Improved tracking of which mobs she's fighting to provide better kill attribution and reaction timing.

User Interface & Configuration

Pause Menu Integration:

  • Added Pause Menu Button: AI configuration is now accessible directly from the game pause menu via "Girlfriend AI Settings" button, eliminating the need for the G keybind.
  • Settings Persistence: Configuration changes now apply immediately and persist even before summoning a girlfriend, ensuring custom names and settings are used from the first spawn.

Technical Improvements

Context System Refactoring:

  • Event History Expansion: Added more system events to chat history including day/night transitions, eating events, and mob sightings.

Memory Management:

  • Mob Reaction Cooldown: Implemented spatial memory system where girlfriend remembers which mobs she's reacted to within a 20-block radius, preventing repetitive reactions.

Known Issues

Remaining Issues:

  • Background Rendering: The pause menu currently has a basic gray background which I'll change later.

Credits

Original Project:

Additions & Modifications:


Next Planned Features

Planned for 2.1.0:

  • TTS/STT support via KoboldCpp for voice interactions
  • Fixing issues, general improvements

Note: This is an alpha release. Some features may be experimental. Please report any issues on the GitHub repository.

Full Changelog: v2.0.0-alpha...v2.0.1-alpha-hotfix

v2.0.0-alpha [MC 1.21.9]

Pre-release

Choose a tag to compare

@minipasila minipasila released this 01 Jan 23:32

Girlfriend Mod Changelog

Version 2.0.0 (Pre-Release Alpha) [MC 1.21.9]

Overview

This is my extremely vibe coded (including readme's... sorry) attempt at transforming the original Girlfriend Mod into a feature-rich companion with AI-powered conversations, inventory management, combat assistance, and persistent memories. Almost every system has been rewritten or expanded. Next update will hopefully fix some bugs if Google gives me more free quota.. or maybe MiniMax-M2.1 won't be useless.. and also maybe add TTS/STT support via Koboldcpp. Should have probably done that before the project got this big.


Core GF System

Added:

  • Inventory System: 36-slot inventory for holding items, picking up loot, and storing player gifts
  • Knockout/Respawn System: Girlfriend falls unconscious at 0 HP and respawns after 20 seconds
  • Owner UUID Persistence: Girlfriends remember their owner across sessions and world restarts
  • Auto-Healing: Girlfriend automatically eats food from inventory when health drops below 70%
  • Intelligent Following: Distance management with 2-16 block range and teleportation for extreme distances

Changed:

  • Auto-healing interval reduced from 40 seconds to trigger-based with 40-second cooldown
  • Following behavior now includes sprinting when owner sprints or distance exceeds threshold

Combat System

Added:

  • Auto-Weapon Selection: Automatically equips best available weapon (sword or bow) from inventory
  • Ranged Combat: Uses bow with arrows from inventory, targeting enemies within range
  • Melee Combat: Uses sword for close-quarters combat
  • Owner Defense: Attacks entities threatening the owner within 15-block radius
  • Kill Reactions: AI comments on defeating enemies (20-second cooldown to prevent spam)
  • Projectile Attack Goal: Dynamic goal switching between melee and ranged based on weapon equipped

AI-Powered Conversations

Added:

  • Multiple AI Provider Support:

    • Chutes AI (cloud) - Default provider
    • OpenRouter (cloud) - Access to Claude, GPT, and other models
    • KoboldCpp (local/offline) - Complete privacy with local GGUF models
  • Conversation Memory System:

    • Persistent conversation history across sessions
    • Automatic summarization when history exceeds token limit
    • Memory persistence via JSON files in config folder
  • Smart Intent Analysis: AI detects when player is asking for items vs. casual chat

  • Dynamic Context Awareness:

    • Time of day detection (day/night/sunrise/sunset)
    • Health status awareness
    • Inventory content awareness
    • Owner health and armor monitoring
  • Reaction System:

    • Damage reactions (self and owner)
    • Pickup reactions (when picking up items)
    • Gift reactions (when receiving items)
    • Time awareness (night fall/morning reactions)
    • Kill reactions
    • Owner death/respawn reactions

Changed:

  • Original phrase system replaced entirely with AI-generated responses
  • Relationship now affects AI behavior through conversation context

Inventory & Item Logic

Added:

  • Automatic Item Pickup: Girlfriend automatically picks up nearby dropped items
  • Gift Receiving: Player can give any item for girlfriend to hold (stored in inventory)
  • Intelligent Item Requests: Player can ask via chat (e.g., "give me the diamond", "do you have food?")
    • AI analyzes intent and checks inventory
    • Girlfriend tosses requested item to player if available
  • Inventory Management: AI-assisted decisions on which useless items to drop when full
  • Auto-Eating: Girlfriend automatically consumes food from inventory when health is low

Changed:

  • Original random gift spawning replaced with inventory-based gift system
  • Item pickup now uses custom logic instead of vanilla loot pickup

Interaction System

Added:

  • Gift Giving: Right-click with non-food items to give to girlfriend (stored in inventory)
  • Inventory Full Handling: Girlfriend informs player when inventory is full
  • Item Return: Girlfriend can give items back to player via chat requests

Changed:

  • Feeding system expanded from ~10 food types to 15+ with varied healing values
  • Relationship bonuses now vary by food quality

Commands

Added:

  • /girlfriend dismiss <player> - Dismiss a specific girlfriend
  • /girlfriend dismiss all - Dismiss all girlfriends (OP required)
  • /girlfriend dismiss nearby - Dismiss nearby girlfriends within 5 blocks (OP required)
  • /girlfriend reloadprompt - Reload system prompt for AI personality
  • /girlfriend config - Info on how to open client-side config

Changed:

  • All dismiss commands added to existing command structure

Configuration & GUI

Added:

  • Client-Side AI Config GUI: Press G to open configuration screen
  • Real-Time Config Sync: Config changes sync between client and server
  • Provider Selection: Switch between Chutes AI, OpenRouter, and KoboldCpp via GUI
  • API Key Management: Enter and save API keys for each provider
  • Model Selection: Choose specific AI model for each provider
  • Temperature Control: Adjust AI creativity (0.0-2.0)
  • Min P Control: Adjust minimum probability threshold (0.0-1.0)
  • Max History Tokens: Configure conversation memory size
  • Memory Clear: Button to clear all conversation memories
  • Edit System Prompt: Button to open system-prompt.txt for personality customization
  • Custom Name: Set girlfriend's name via GUI
  • Custom Skin Path: Configure texture path for custom skins

Changed:

  • Configuration moved from hardcoded values to JSON file (girlfriend-mod.json)
  • System prompt moved to editable file (config/girlfriend-mod/system-prompt.txt)

Custom Skins

Added:

  • Resource Pack Support: Create custom skins using standard Minecraft resource packs
  • GUI Configuration: Set texture path directly in AI Config screen
  • Multiple Path Formats: Support for various texture path formats
    • girlfriend-mod:textures/entity/girlfriend.png (default)
    • minecraft:textures/entity/steve.png (use Steve's skin)
    • custom-mod:textures/entity/custom.png (custom namespace)

Technical Improvements

Added:

  • Network Sync: Custom payload system for config and memory synchronization
  • NBT Data Serialization: Proper writeCustomData/readCustomData implementation
  • Server Event Handlers: Player death and respawn event handling
  • Chat Event Handler: Process player chat for AI conversations

Fixed:

  • API Signature Mismatches for Minecraft 1.21.9:
    • writeCustomData(WriteView) - Implemented for NBT data serialization
    • readCustomData(ReadView) - Implemented for NBT data deserialization
    • damage(ServerWorld, DamageSource, float) - Updated signature
    • initDataTracker(DataTracker.Builder) - Implemented for entity data tracking
  • Item Registry Initialization NullPointerException
  • Owner UUID persistence across sessions
  • GUI widget visibility toggling
  • AI client null pointer handling

Changed:

  • Entity rendering updated to use PlayerEntityRenderState for custom skins
  • AI client architecture refactored to use unified AIClientManager
  • ConversationManager refactored for better memory handling

File Structure Changes

Added Files:

  • ai/AIClientManager.java - Unified AI client router
  • ai/ChutesClient.java - Chutes AI API integration
  • ai/OpenRouterClient.java - OpenRouter API integration
  • ai/KoboldCppClient.java - KoboldCpp local AI integration
  • ai/ConversationManager.java - Memory and conversation history
  • config/ModConfig.java - Configuration management with provider support
  • event/ChatEventHandler.java - Chat message processing
  • gui/AIConfigScreen.java - Client-side configuration GUI
  • network/ModNetwork.java - Config and memory sync
  • client/KeyInputHandler.java - Keybind handling (G for config)

Modified Files:

  • GirlfriendMod.java - Added AI initialization, player lifecycle events, chat handler
  • GirlfriendModClient.java - Added key input handler registration
  • GirlFriendEntity.java - Complete rewrite with inventory, combat, AI integration
  • GirlFriendCommand.java - Added dismiss commands
  • EntityInteractionHandler.java - Added gift giving and inventory handling
  • GirlFriendEntityRenderer.java - Added custom skin support
  • ItemUseHandler.java - Minor refinements

System Prompt System

Added:

  • File-based customization at config/girlfriend-mod/system-prompt.txt
  • Placeholder support:
    • {name} - Replaced with girlfriend's name
    • {context} - Replaced with current environment data
  • GUI button to open system prompt file for editing
  • Hot reload on next AI response after file change

Default Personality:

  • Gentle, soft-spoken, nurturing
  • Easily flustered, deeply devoted
  • Uses lowercase, kaomoji emoticons (:3, >.<, ^-^, ~)
  • Brief, sweet responses focused on current Minecraft situation

Dependencies

Added:

  • Gson for JSON serialization/deserialization

Unchanged:

  • Minecraft 1.21.9
  • Fabric API 0.134.0+1.21.9
  • Fabric Loader 0.17.3+
  • Java 21+

License

Changed:

  • Original code remains CC0 1.0 Universal (by UltimateGamerMC)
  • All additions and modifications licensed under GNU General Public License v2.0 (by minipasila)
  • Combined work is dual-licensed under CC0 (original) and GPLv2 (additions)

Known Issues / Bugs

Combat & Combat-Related:

  • Knockout Combat Bug: When the girlfriend is knocked out, she can still punch enemies while unconscious. Combat should be completely disabled during the knockout state.
  • Kill Reaction Timing: The kill reaction cooldown may be to...
Read more