Skip to content

nelihdev/MemoryMobs

Repository files navigation

MemoryMobs - Mobs with Memory

A Minecraft plugin that gives mobs memory, making them remember players and events, creating dynamic and personal gameplay experiences.

🧠 Features

Core Mechanics

  • Persistent Memory System - Mobs remember interactions across server restarts
  • Configurable Behaviors - Every aspect is customizable in config.yml
  • Module/Addon Support - Extend functionality with custom modules
  • Performance Optimized - Async processing and configurable limits

Built-in Behaviors

🏹 Skeleton Revenge

Skeletons never forget who attacked them. They will:

  • Remember players who damaged them for configurable days
  • Actively hunt down remembered players when nearby
  • Deal increased damage to their remembered enemies
  • Prioritize revenge targets over other players

🐺 Wolf Loyalty

Wolves remember kindness and return the favor:

  • Remember players who fed them (even if not tamed)
  • Spontaneously help remembered players in combat
  • Can teleport to assist if configured
  • Configurable cooldown to prevent exploitation

🔮 Enderman Block Theft

Endermen learn your mining patterns and steal accordingly:

  • Track which blocks players mine frequently
  • Steal those specific block types from inventory or world
  • Smart targeting based on player behavior
  • Fully configurable theft mechanics

📦 Installation

  1. Download the latest release
  2. Place MemoryMobs.jar in your plugins/ folder
  3. Restart your server
  4. Configure in plugins/MemoryMobs/config.yml

⚙️ Configuration

All behaviors are fully configurable in config.yml:

behaviors:
  skeleton-revenge:
    enabled: true
    memory-duration-days: 7
    detection-radius: 32.0
    remember-chance: 0.8
    damage-multiplier: 1.2

See the default config.yml for all available options.

🔌 Commands

Command Permission Description
/memorymobs help - Show help menu
/memorymobs reload memorymobs.reload Reload configuration
/memorymobs stats memorymobs.stats View statistics
/memorymobs clear all memorymobs.clear Clear all memories
/memorymobs modules memorymobs.modules List all modules
/memorymobs modules info <name> memorymobs.modules View module details

🧩 Module System

MemoryMobs supports custom modules/addons to extend functionality!

Installing Modules

  1. Place module JAR files in plugins/MemoryMobs/modules/
  2. Restart your server
  3. Configure in config.yml under modules: section

Creating Modules

Want to create your own behaviors? Check out MODULE_DEVELOPMENT.md for a complete guide.

Example module ideas:

  • Creepers that flee from players who frequently kill them
  • Villagers with trade memory (discounts/price increases)
  • Spiders that set web traps for remembered players
  • Zombies that remember their killer and seek revenge through other zombies

Available Modules

Check the Modules Wiki for community-created modules (coming soon!)

🛠️ For Developers

Architecture

MemoryMobs/
├── behavior/          # Behavior system
│   ├── BehaviorRegistry
│   ├── MobBehavior (abstract)
│   └── impl/         # Built-in behaviors
├── manager/          # Core managers
│   ├── MemoryManager
│   └── BehaviorProcessor
├── model/            # Data models
│   ├── Memory
│   └── MobMemory
├── storage/          # Persistence layer
│   ├── StorageProvider (interface)
│   └── YamlStorageProvider
├── module/           # Module system
│   ├── Module (interface)
│   ├── ModuleManager
│   └── ModuleLoader
└── command/          # Commands

Creating Custom Behaviors

  1. Extend MobBehavior
  2. Implement required methods
  3. Register in plugin startup or via module
public class MyBehavior extends MobBehavior implements Listener {
    @Override
    public String getName() {
        return "my-behavior";
    }
    
    @Override
    public boolean isApplicableFor(EntityType type) {
        return type == EntityType.ZOMBIE;
    }
    
    @Override
    public void process(LivingEntity entity) {
        // Your behavior logic
    }
}

See MODULE_DEVELOPMENT.md for detailed guide.

📊 Performance

  • Async Processing - Behavior processing runs asynchronously
  • Smart Cleanup - Expired memories are automatically cleaned
  • Configurable Limits - Set max memories per mob
  • Distance Checks - Only process mobs near players
  • Efficient Storage - Optimized YAML/JSON/SQLite storage

🤝 Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📝 License

This project is licensed under the MIT License.

🐛 Bug Reports & Suggestions

Please use the Issues page for:

  • Bug reports
  • Feature requests
  • Module ideas
  • Questions

🎮 Compatibility

  • Minecraft Versions: 1.16+
  • Server Software: Spigot, Paper, Purpur
  • Java Version: Java 8+

📖 Wiki

For detailed documentation, visit the Wiki (coming soon!)

⭐ Support

If you enjoy this plugin, please:

  • ⭐ Star the repository
  • 📢 Share with others
  • 💬 Join our Discord (coming soon!)
  • ☕ Support development (coming soon!)

Made with ❤️ for the Minecraft community

About

Minecraft Mobs With Real Memory & Evolving Behavior

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published