Skip to content

Releases

Artisan v1.1.1

Choose a tag to compare

@GameDroit GameDroit released this 26 Jul 09:15

This release focuses on multiplayer stability and backpack upgrade synchronization.

Highlights

  • Fixed remote clients being unable to interact with the backpack upgrade station.
  • Fixed purchased backpack slots appearing locked after reconnecting.
  • Fixed stale lock overlays and disabled extra-slot hotkeys.
  • Restored the red unavailable prompt when the player does not have enough gold.
  • Fixed a multiplayer crash that could occur when entering a level with restored inventory items.

Multiplayer improvements

Backpack unlock progression is now synchronized authoritatively by the host after purchases, inventory restoration, and client reconnection.

Purchase validation, gold deduction, and save writes remain server-authoritative. Upgrade commands are also validated against the owning player's connection.

Inventory restoration

The inventory capacity transpiler no longer modifies vanilla inventory serialization and restoration methods. This prevents PropState.InInventory from being replaced by an invalid value while loading saved items.

Extended inventory slots continue to be handled by Artisan's dedicated persistence system.

Important

The host and all connected clients must use Artisan v1.1.1. Using different versions may cause multiplayer networking incompatibilities.

Installation

  1. Install BepInEx.
  2. Place Artisan.dll inside the BepInEx/plugins directory.
  3. Replace the previous Artisan version on the host and every client.

Artisan v1.1.0

Choose a tag to compare

@GameDroit GameDroit released this 07 Jun 17:05

Added

  • Added support for adaptive inventory grid positioning.
  • Added support for configurable inventory grid columns.
  • Added support for configurable slot spacing.
  • Added support for optional inventory background hiding.
  • Added support for configurable inventory position offsets.
  • Added support for extra slot key bindings.

Changed

  • Refactored inventory UI layout system to support dynamic grid configurations.
  • Reworked slot positioning to use relative offsets based on configurable grid settings.
  • Improved offhand slot alignment and scaling to maintain consistency with dynamic grid layouts.
  • Reorganized mod configuration into dedicated configuration groups.

    ⚠️ Its recommended to reset your mod configuration after updating to this version to ensure all new settings are properly initialized.

Fixed

  • Fixed issue where items could become permanently inaccessible when inventory slot upgrades were enabled after a save already contained items in higher slots. Such items are now automatically removed from invalid slots and dropped into the world as recoverable items.
  • Fixed issue where reducing MaxSlots could permanently delete items stored in higher inventory slots. Items from overflow slots are now automatically dropped into the world during inventory restoration instead of being lost.
  • Fixed race condition between: ServerTryRestoreFromKvp and ServerSerializeToKvp, which could cause inventory data to be overwritten during restoration. Now added restore state tracking through: RestoringInventories and prevented slot serialization while a restore operation is in progress.

What comes next on the roadmap?

  • Implementing support for synchronizing host configurations to clients in multiplayer sessions, so that settings are consistent across all players without requiring manual configuration.

If you have any suggestions or feedback on the mod, please feel free to reach out to me on the mod's GitHub repository or through the modding community discord. Your input is invaluable in helping me improve and expand the mod's features!

Available on Thunderstore or for direct download here.
https://thunderstore.io/c/yapyap/p/TeamSorcerers/Artisan/

Artisan v1.0.2

Choose a tag to compare

@GameDroit GameDroit released this 26 May 00:27

Added

  • Added configurable backpack inventory slot upgrades.
  • Added per-player inventory progression system.
  • Added lobby upgrade chest for purchasing additional inventory slots.
  • Added support for shared gold economy when purchasing inventory upgrades.
  • Added locked slot visual overlays with tele-lock mesh rendering.
  • Added automatic slot locking/unlocking synchronization.
  • Added multiplayer-safe inventory upgrade networking.
  • Added localized upgrade text support.
  • Added English and Brazilian Portuguese localization support.
  • Added shopkeeper purchase feedback integration.
  • Added purchase sound effects and NPC reactions after successful upgrades.
  • Added configurable upgrade pricing:
    • Base slot upgrade price
    • Upgrade price multiplier
  • Added support for disabling the upgrade system entirely while keeping all slots unlocked.
  • Added inventory full handling for potion ingredients and custom interactables.
  • Added runtime UI refresh for slot overlays and upgrade states.

Changed

  • Completely refactored extended inventory UI layout system.
  • Reworked slot positioning to use deterministic absolute positioning.
  • Improved inventory frame alignment and spacing.
  • Improved offhand slot alignment and scaling.
  • Improved locked slot visuals and overlay rendering.
  • Improved inventory interaction validation.
  • Improved multiplayer synchronization for inventory upgrades.
  • Improved tooltip behavior for locked/full inventory states.

Fixed

  • Fixed players being able to store items in locked inventory slots.
  • Fixed mouse scroll selecting locked slots.
  • Fixed locked slots accepting drag/drop interactions.
  • Fixed inventory pickup validation when extra slots are locked.
  • Fixed inventory full tooltip inconsistencies.
  • Fixed potion ingredient tooltip not displaying "Inventory Full".
  • Fixed upgrade chest not respawning after returning to the title screen.
  • Fixed locked slot overlays not refreshing immediately after upgrades.
  • Fixed several inventory UI alignment issues.
  • Fixed frame positioning inconsistencies between regular slots and offhand slot.
  • Fixed purchase SFX playing when upgrades failed.
  • Fixed multiplayer purchase confirmation behavior.
  • Fixed several UI layering and overlay positioning issues.

Technical

  • Added runtime mesh-to-sprite rendering for tele-lock slot icons.
  • Added server-authoritative inventory upgrade purchases.
  • Added custom Mirror networking handlers for upgrade synchronization.
  • Added helper utilities for locked slot validation and inventory state checks.
  • Added automatic UI rebuild and refresh logic for inventory overlays.

Artisan pre-1.0.1

Artisan pre-1.0.1 Pre-release
Pre-release

Choose a tag to compare

@GameDroit GameDroit released this 23 May 15:32

Artisan pre-1.0.1

Added

  • Added monster health bars displayed when enemies take damage.
  • Added floating damage indicators for monster hits.
  • Added multiplayer-compatible hit UI by rendering effects client-side through Mirror RPC hit events.

Fixed

  • Prevented monster health text from showing negative values after death.

ArtisanMod pre-1.0.0

ArtisanMod pre-1.0.0 Pre-release
Pre-release

Choose a tag to compare

@GameDroit GameDroit released this 22 May 19:22

Artisan v1.0.0 — Initial Release

This initial version introduces inventory improvements, spell modifications, localization support, and an extensible framework intended for future custom content.


✨ Features

Extended Inventory System

Added a complete extended inventory implementation allowing players to use more inventory slots than the base game supports.

Includes:

  • Configurable maximum inventory slot count
  • Additional inventory slot rendering in the UI
  • Dynamic inventory grid layout
  • Extra slot hotkeys:
    • 4
    • 5
    • 6
    • 7
    • 8
  • Automatic repositioning of:
    • inventory slots
    • slot labels
    • selected item text
    • hand slot visuals
    • prompt containers
  • Custom frame generation for added slots
  • Hidden default inventory background for cleaner visuals

Inventory Save Persistence

Implemented full persistence support for extended inventory slots.

Added:

  • Serialization of custom slot counts
  • Restoration of extended inventory after reconnecting/loading saves
  • Main-hand slot restoration
  • Saving and loading of extra slots (S0+)

Fixed issues where:

  • Extra items could appear on the ground after loading
  • Inventory state became desynchronized
  • Additional slots were not restored correctly

Spell Registry Framework

Added a centralized spell registry system.

Features:

  • Automatic registration of discovered wands
  • Runtime spell lookup
  • Voice-command based spell searching
  • Initialization safety checks
  • Debug logging for discovered spell assets

This creates a foundation for future custom spell implementations.


Localization Support

Added localization utilities for custom content.

Includes:

  • Voice command localization support
  • Custom voice command registration
  • Multi-language expansion support

⚔ Spell Improvements

Aero Damage Patch

Added optional damage support for Aero-based projectiles.

Configurable options:

  • Enable/disable Aero damage
  • Change damage amount
  • Allow damaging other players

TeleBlast Damage Patch

Added optional damage support for TeleBlast projectiles.

Configurable options:

  • Enable/disable TeleBlast damage
  • Change damage amount
  • Allow damaging other players

⚙ Configuration

Added multiple configuration entries allowing customization without recompiling:

Aero

  • Enable damage patch
  • Damage amount
  • Player damage toggle

TeleBlast

  • Enable damage patch
  • Damage amount
  • Player damage toggle

Astral Thorns

  • Enable spell
  • Target distance
  • Sphere radius

Inventory

  • Enable extended slots
  • Configure maximum slot count

🐛 Fixes

Fixed:

  • Inventory items visually appearing on the ground after spawning
  • Extra inventory slots not persisting correctly
  • Slot synchronization inconsistencies
  • Multiple inventory UI positioning issues
  • Potential duplicate projectile damage behavior