▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Kindred Souls
Kindred Souls

Kindred Souls

Protect or be protected

193
3

Kindred Souls 1.1.2

release5 ноября 2025 г.

🌙 Kindred Souls API & Skills Update – Changelog

This update introduces a major new Skill & Progression System and a vastly expanded API for addon developers.
Players can now unlock new skills tied to their chosen roles, while mod makers can define entirely new ability types, skills, and even custom “classes” for Guardians and Wards.


🧭 Major New Features

Skill Tree System

A full progression and unlock system has been implemented. Players can now earn and invest skill points to enhance their chosen ability path.

New Skill Tree GUI

  • Accessed via a new keybind (default: N).
  • Features a pannable, advancement-style interface with tabs for each available IAbilityType (e.g., Guardian, Ward).
  • Skills are displayed as nodes connected by dependency lines.
  • Hovering over a skill displays:
    • Skill name and description
    • Unlock cost and dependency requirements
  • Unlocking a skill prompts a confirmation pop-up.
  • Player progression is now saved to world data, ensuring persistence across sessions.

⚔️ New Gameplay Mechanic

Skill-based progression now defines how powerful your Guardian or Ward can become. Unlock passive buffs, defensive triggers, or special cooperative effects tied to your bond.

Note:
By default, the standard Guardian and Ward roles do not have any skills.
However, this new API makes it easy for any addon or mod to add skill trees, new ability types, or progression systems to them.
This ensures complete flexibility for addon creators to define how their unique Guardian or Ward subclasses evolve.


🧩 New API for Addon Developers

The IKindredSoulsAPI has been significantly expanded for addon creators.
Developers can now register new abilities, skills, unlock conditions, and integrate seamlessly with the new Skill Tree system.

New Registries

  • getSkillRegistry() — Register new ISkill objects.
    Addons can inject their skills into any ability tab, including the defaults or those from other mods.
  • getSkillUnlockRegistry() — Register new ISkillUnlockCondition types.
    Allows defining unique unlock logic for any skill (e.g., XP cost, item cost, quest completion).

New API Interfaces

ISkill

Defines a skill node in the progression system.

  • Requires:
    • Unique ID
    • Parent Ability Tab
    • Name, description, and icon
    • GUI coordinates (x, y)
    • Dependency list for skill chaining

ISkillUnlockCondition

Defines how a skill is unlocked.

  • canUnlock(player, skill): Server-side validation (e.g., "has 5 XP levels?")
  • applyCost(player, skill): Applies the cost (e.g., removes XP)
  • getCostDescription(player, skill): Returns descriptive text for the UI (e.g., "Cost: 5 Levels")

New API Methods

  • isSkillUnlocked(player, skillId) — Check if a player has a specific skill unlocked.

🔥 Event Enhancements

  • SoulbindHurtEvent and SoulbindHealEvent are now Cancelable.
    Addons can now intercept, modify, or cancel the default soulbinding damage and healing logic.

  • SoulbindPlayerTickEvent — Fires once per second for every bound player.
    Perfect for implementing passive or timed skill effects.


🧑‍💻 New Commands (Admins & Developers)

  • /skill grant <player> <skill_id>
    Grants a skill to a player directly, bypassing dependencies or costs.
    Includes tab-completion for all registered skills.

  • /skill revoke <player> <skill_id>
    Removes a skill from a player.
    Includes tab-completion for skills currently unlocked by the target.


🧠 Summary

The Kindred Souls API now provides:

  • Full Skill Tree customization
  • Extendable Skill and Unlock registries
  • Deep event hooks for damage, healing, and ticking logic
  • Developer tools for testing and integration
  • Freedom for addons to define their own Guardian/Ward skill systems

Download mdk to develop addons

Kindred Souls 1.1.1

release2 ноября 2025 г.

🌙 Kindred Souls 1.1.1 Update

A small but powerful technical update for modpack creators and addon developers.


⚙️ Overview

Version 1.1.1 focuses on giving modpack developers and addon creators more control over how Kindred Souls abilities appear in-game.

This update introduces a new configuration system that automatically detects all registered ability types — whether from Kindred Souls itself or from external addons — and allows you to toggle them individually.


🧩 New Feature: Dynamic Ability Configuration

File Path:config/kindredsouls-abilities.cfg

Kindred Souls 1.1.0

release31 октября 2025 г.

Kindred Souls 1.1.0

API Update Notes (For Addon Developers)

Hello addon developers! Version 1.1.0 marks a major expansion of the Kindred Souls API — introducing the Ability Types System and improving overall addon integration and flexibility.

This update focuses on API structure, ability customization, and event-driven logic, giving you more control over how Guardian and Ward roles behave.


1. Unified API Access — IKindredSoulsAPI

All API interactions are now unified under a single singleton interface.
You should no longer call managers directly — instead, access everything through IKindredSoulsAPI.

Old (deprecated):

SoulbindManager.getSomeData(...);

New (current):

IKindredSoulsAPI.getInstance().getSomeData(...);

This singleton provides access to all core systems — including the new Ability Registry:

// Retrieve the ability registry
AbilityRegistry registry = IKindredSoulsAPI.getInstance().getAbilityRegistry();

2. Creating and Registering Custom Abilities

The new Ability Types API lets you define your own Guardian and Ward “classes” with custom behavior and lore.

Step 1: Implement IAbilityType

For convenience, you can extend the provided AbilityType class, which handles most boilerplate setup for you.

public class MyShadowGuardianAbility extends AbilityType {

    public static final ResourceLocation ID = new ResourceLocation("my_addon", "shadow_guardian");
    public static final ResourceLocation ICON = new ResourceLocation("my_addon", "textures/gui/shadow_guardian_icon.png");

    public MyShadowGuardianAbility() {
        super(
            ID,
            AbilityRole.GUARDIAN, // The role this ability is tied to
            Component.translatable("ability.my_addon.shadow_guardian.name"),
            Component.translatable("ability.my_addon.shadow_guardian.desc"),
            Component.translatable("ability.my_addon.shadow_guardian.lore"), // Lore for selection UI
            ICON
        );
    }
}

💡 Note:
The getLore() component is now synced automatically from the server.
The AbilityLoreRegistry still exists, but its role is solely for defining additional lore entries that are referenced in the selection UI — not for syncing or registration.

Step 2: Register Your Ability

Abilities must be registered via the Ability Registry during the common setup phase (FMLCommonSetupEvent):

IKindredSoulsAPI.getInstance().getAbilityRegistry().register(new MyShadowGuardianAbility());

If multiple abilities exist for the same role, the player will automatically be prompted to choose between them.

Optional: Define Extra Lore (Client-Side)

If you want to define extra lore entries that appear in the selection UI or tooltips, register them through the AbilityLoreRegistry on the client:

@Mod.EventBusSubscriber(bus = Mod.EventBusSubscriber.Bus.MOD, value = Dist.CLIENT)
public class MyAddonClientSetup {
    @SubscribeEvent
    public static void onClientSetup(FMLClientSetupEvent event) {
        AbilityLoreRegistry.register(
            MyShadowGuardianAbility.ID,
            Component.translatable("ability.my_addon.shadow_guardian.lore")
        );
    }
}

3. New Forge Events for Ability Logic

Several new Forge events have been added to let you define custom logic for your abilities.

EventDescriptionCancelable
SoulbindHurtEventFired when a bound player is hurt, before damage sharing occurs. Modify or cancel to override logic.
SoulbindHealEventFired when a bound player heals, before healing is shared. Cancel to implement your own logic.
SoulbindPlayerTickEventFired once per second for each bound player. Ideal for passive buffs or visual effects.
SoulbindActiveAbilityEventFired when a player triggers an active ability (you should post this from your keybind handler).

Example: Passive effect logic

@SubscribeEvent
public static void onPlayerTick(SoulbindPlayerTickEvent event) {
    ResourceLocation typeId = IKindredSoulsAPI.getInstance().getPlayerAbilityType(event.getPlayer());

    if (MyShadowGuardianAbility.ID.equals(typeId)) {
        if (event.getPlayer().isCrouching()) {
            event.getPlayer().addEffect(new MobEffectInstance(MobEffects.INVISIBILITY, 30, 0, true, false));
        }
    }
}

4. Additional Technical Updates

  • GUI Networking Overhaul:
    All GUI-opening packets (S2C_Open...Packet) are now handled by a centralized ClientPacketHandler, fixing server-side crashes and removing the need for DistExecutor checks.

  • Global Save Data:
    SoulbindSaveData now stores globally in the Overworld rather than per-dimension.
    Internal access remains through SoulbindManager.getSaveData().

  • Lore Registry Clarification:
    The AbilityLoreRegistry remains part of the API but is now purely for defining lore content that appears in UIs or tooltips.
    It does not handle registration or synchronization — that’s fully managed by the server.


5. Summary

Kindred Souls 1.1.0 transforms the mod’s backend into a flexible API for addon developers.
You can now:

✅ Create and register your own Guardian and Ward ability types.
✅ Use centralized API access via IKindredSoulsAPI.
✅ Hook into new Forge events for active and passive abilities.
✅ Define UI lore through the AbilityLoreRegistry.

🔧 Migration Tip:
Replace all direct manager references with IKindredSoulsAPI.getInstance().
Only use the AbilityLoreRegistry to define lore, not for syncing or gameplay logic.

Kindred Souls 1.0.6

release29 октября 2025 г.

🕊️ Kindred Souls v1.06 — Major API & Stability Update

This update marks a major milestone for Kindred Souls, introducing a stable addon API, new quality-of-life improvements, and critical bug fixes for multiplayer and cross-dimensional gameplay.


🌟 Major Features

🔮 Ability & Addon API (v1.0)

The long-awaited Kindred Souls API has arrived, enabling mod developers to create custom extensions and gameplay systems.

  • Ability Registry

    • Introduced the IKindredSoulsAPI and AbilityRegistry, allowing external mods to define new Ability Types (e.g. “Fire Guardian”, “Shadow Ward”).
    • Each ability can include its own name, description, and icon for full creative flexibility.
  • Ability Selection GUI

    • After two players soulbind, they are now presented with a refined Ability Selection Screen.
    • The GUI lists all available Ability Types for each role. If only the default type exists, it’s auto-assigned.
  • Forge Event Hooks

    • The API fires a comprehensive suite of events for custom logic integration:
      • SoulbindHurtEvent — Triggered when a bound player takes damage. Addons can modify or cancel damage-sharing.
      • SoulbindHealEvent — Triggered when healing occurs. Addons can adjust healing distribution.
      • SoulbindPlayerTickEvent — Fires once per second for each bound player, ideal for passive buffs, effects, or monitoring.
      • SoulbindActiveAbilityEvent — A foundational event for keybind-activated custom abilities.

✨ Quality-of-Life Improvements

  • 🧭 Action Bar Soulmate Tracker

    • Your soulmate’s location and dimension now display in the action bar, updating every second:
      • Guardians see: Ward is at X, Y, Z in [Dimension]
      • Wards see: Guardian is at X, Y, Z in [Dimension]
    • If your partner is offline, it will clearly state so.
  • ⚔️ Lethal Bond Enhancement

    • The soul link between Guardian and Ward is now truly fatal.
    • If a Ward dies, their Guardian immediately shares their fate — a message will notify the Guardian of the loss.

🐛 Bug Fixes & Stability

  • ✅ Fixed: Cross-Dimensional Sync

    • Soulbind mechanics (damage, healing, and death link) now function flawlessly across all dimensions — including custom worlds.
  • ✅ Fixed: Dedicated Server Startup Crash

    • Resolved an issue causing crashes on dedicated servers.
    • Client-only code (GUIs, keybinds, etc.) is now safely restricted with @OnlyIn(Dist.CLIENT).
    • Network packet handling has been fully refactored for proper side separation.
  • ✅ Fixed: Request GUI Player List Crash

    • A crash caused by null player names in the “Send New Request” screen has been resolved.
    • The player list now safely filters invalid entries and handles dynamic updates correctly.

🧩 Developer Note

  • This version solidifies Kindred Souls as both a gameplay experience and a modding platform. Future updates will expand the API with visual effects, sound hooks, and advanced ability customization tools.

Kindred Souls 1.0.2

release27 октября 2025 г.

Нет описания изменений

Совместимость

Minecraft: Java Edition

1.20.x

Платформы

Поддерживаемые окружения

Клиент и сервер

Ссылки

Детали

Лицензия:CC-BY-4.0
Опубликован:4 месяца назад
Обновлён:4 месяца назад
Главная