PluginMasters-CustomAssetsLibraryPluginIntegratedExtension icon

CustomAssetsLibraryPluginIntegratedExtension

By LordAshes and Hollofox, Custom Assets Library Plugin Interated Extension adds addition features such as auras, effects, filters, animations and sound.

Last updated 2 weeks ago
Total downloads 7261
Total rating 2 
Categories Tweaks Networked Tools Integration Assets Minis Effects Tiles Props
Dependency string PluginMasters-CustomAssetsLibraryPluginIntegratedExtension-1.9.6
Dependants 2 other mods depend on this mod

This mod requires the following mods to function

bbepisTaleSpire-BepInExPack-5.4.10 icon
bbepisTaleSpire-BepInExPack

Unified BepInEx all-in-one modding pack - plugin framework, detour library

Preferred version: 5.4.10
brcoding-SetInjectionFlagPlugin-2.3.0 icon
brcoding-SetInjectionFlagPlugin

Allows players to flag mods are installed

Preferred version: 2.3.0
LordAshes-FileAccessPlugin-1.4.1 icon
LordAshes-FileAccessPlugin

Provides standardized methods for accessing both local file and url resources. Automatically handles searching local folders for assets.

Preferred version: 1.4.1
LordAshes-AssetDataPlugin-2.1.3 icon
LordAshes-AssetDataPlugin

Dependency plugin for subscription/notification based data storage and message exchange.

Preferred version: 2.1.3
HolloFox_TS-RadialUIPlugin-2.2.3 icon
HolloFox_TS-RadialUIPlugin

This is a developer tool based package used to help devs easily configure UI Radial Menus.

Preferred version: 2.2.3

README

Custom Assets Library Plugin Integrated Extension

The Custom Assets Library Plugin Integrated Extension adds additional functionality such as auras, effects, filters, transformations, animations and sound to custom assets. Previously this was part of CALP but it has been moved to it own plugin so that if this more complex plugin fails due to a BR update, the core CALP code can still function.

Installing With R2ModMan

This package is designed specifically for R2ModMan and Talespire. You can install them via clicking on "Install with Mod Manager" or using the r2modman directly.

Player Usage

Once enabled, this plugin provides additional functionality as outlined below.

Default Keyboard Shortcuts

CALP has a bunch of keyboard shortcuts for triggering additional functionality. The default keys can be reconfigured to other keys by editing the R2ModMan configuration for the CALP plugin. Keyboard shortcuts are divided into two sub-sections: functionality triggers and asset spawn modifeirs.

Functionality Triggers

Press these keys while a mini is selected to trigger the corresponding effect if supported.

+-----------------+------------------------------------------------------------------+
| Modifier Keys   | Results                                                          |
+-----------------+------------------------------------------------------------------+
+-----------------+------------------------------------------------------------------+
| LControl + 1    | Trigger Animation "Anim01"                                       |
+-----------------+------------------------------------------------------------------+
| LControl + 2    | Trigger Animation "Anim02"                                       |
+-----------------+------------------------------------------------------------------+
| LControl + 3    | Trigger Animation "Anim03"                                       |
+-----------------+------------------------------------------------------------------+
| LControl + 4    | Trigger Animation "Anim04"                                       |
+-----------------+------------------------------------------------------------------+
| LControl + 5    | Trigger Animation "Anim05"                                       |
+-----------------+------------------------------------------------------------------+
| LControl + 6    | Trigger Animation "Anim06"                                       |
+-----------------+------------------------------------------------------------------+
| LControl + 7    | Trigger Animation "Anim07"                                       |
+-----------------+------------------------------------------------------------------+
| LControl + 8    | Prompt for animation name and play it                            |
+-----------------+------------------------------------------------------------------+
| LControl + 9    | Start playing associated audio                                   |
+-----------------+------------------------------------------------------------------+
| LControl + 0    | Stop all (animation, audio and blend shape sequences)            |
+-----------------+------------------------------------------------------------------+
| LAlt + 1        | Toggle Blend Shape Sequence 1                                    |
+-----------------+------------------------------------------------------------------+
| LAlt + 2        | Toggle Blend Shape Sequence 2                                    |
+-----------------+------------------------------------------------------------------+
| LAlt + 3        | Toggle Blend Shape Sequence 3                                    |
+-----------------+------------------------------------------------------------------+
| LAlt + 4        | Toggle Blend Shape Sequence 4                                    |
+-----------------+------------------------------------------------------------------+
| LAlt + 5        | Toggle Blend Shape Sequence 5                                    |
+-----------------+------------------------------------------------------------------+
| LAlt + 6        | Toggle Blend Shape Sequence 6                                    |
+-----------------+------------------------------------------------------------------+
| LAlt + 7        | Toggle Blend Shape Sequence 7                                    |
+-----------------+------------------------------------------------------------------+
| LAlt + 0        | Alternate Stop all (animation, audio and blend shape sequences)* |
+-----------------+------------------------------------------------------------------+
+-----------------+------------------------------------------------------------------+
| RControl + A    | Analyze and log selected minis' renderer information             |
+-----------------+------------------------------------------------------------------+
  • = Same functionality as Stop All just on a different keyboard shortcut

Asset Spawn Modifiers

When selecting an asset from the Talespire Library the asset will be loaded based on the kind specified in the asset bundle or as a creature if the asset does not specify the kind in its info.txt file. However, it is possible to override the kind indicated in the asset bundle with a different kind by holding down the corresponding modifier key while selecting it from the library and when placing it down (if applicable). The following tables show what modifier keys select what kind:

+-----------------+------------------------------------------------------------------+
| Modifier Keys   | Resulting Kind                                                   |
+-----------------+------------------------------------------------------------------+
+-----------------+------------------------------------------------------------------+
| None            | Uses kind specified in asset bundle or creature if not specified |
+-----------------+------------------------------------------------------------------+
| Left Shift      | Processes spawn as if the kind was effect*                       |
+-----------------+------------------------------------------------------------------+
| Right Shift     | Processes spawn as if the kind was transform*                    |
+-----------------+------------------------------------------------------------------+
| Left Control    | Processes spawn as if the kind was aura                          |
+-----------------+------------------------------------------------------------------+
| Right Control   | Processes spawn as if the kind was creature                      |
+-----------------+------------------------------------------------------------------+
| Left Alt        | Processes spawn as if the kind was filter*                       |
+-----------------+------------------------------------------------------------------+
| Right Alt       | Processes spawn as if the kind was audio                         |
+-----------------+------------------------------------------------------------------+

See Custom Assets Library Plugin (CALP) for more details on the meaning of the different kinds.

Note 1: Effect types are currently treated the same a creature types but may be different in the future. Note 2: Transforms are not yet supported and may be removed completely since core TS has a similar function. Note 3: Filters are not yet supported but will be soon.

Asset Types

To avoid duplication, see the CALP documentation for the various differences between the different kind of assets.

Configuration

The R2ModMan configuration can be edited to tweak settings. The following settings can be changed:

  1. Diagnostic mode level. Set to Ultra when getting logs for trouble shooting.
  2. Default keys for most CALPIE functions.
  3. Show Hide Update Delay: Delay in seconds after an asset loads before Non-TS content is synced. If this value is too low, content may not hide on board load. If this value is too high there will be a long delay before content is hidden on board load.

Blend Shape Sequencer

To use blend shapes, add the blend shapes property to the info.txt file similar to the following:

{
    "name": "Star Gate",
    "kind": "Creature",
    "groupName": "Portals",
    "description": "Star Gate Atlantis",
    "tags": "Star Gate, Atlantis",
    "author": "Lord Ashes",
    "version": "1.0",
    "comment": "Blender 2.9",
    "size": 1.0,
    "assetBase": "Default",
    "blendshapes":
    [
        {
            "elements": 
            [ 
                { "style": 1, "blendShapeIndex": 1, "start": 0.0, "end": 100.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 2, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 3, "start": 0.0, "end": 100.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 4, "start": 0.0, "end": 100.0, "step": 100.0 }
            ]
        },
        {
            "elements": 
            [ 
                { "style": 1, "blendShapeIndex": 1, "start": 100.0, "end": 0.0, "step": -2.0 },
                { "style": 1, "blendShapeIndex": 2, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 3, "start": 0.0, "end": 100.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 4, "start": 0.0, "end": 100.0, "step": 100.0 }
            ]
        },
        {
            "elements": 
            [ 
                { "style": 1, "blendShapeIndex": 1, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 2, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 3, "start": 0.0, "end": 100.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 4, "start": 100.0, "end": 0.0, "step": -5.0 }
            ]
        },
        {
            "elements": 
            [ 
                { "style": 1, "blendShapeIndex": 1, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 2, "blendShapeIndex": 2, "start": 0.0, "end": 100.0, "step": 5.0 },
                { "style": 1, "blendShapeIndex": 3, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 4, "start": 0.0, "end": 0.0, "step": 100.0 }
            ]
        },
        {
            "elements": 
            [ 
                { "style": 1, "blendShapeIndex": 1, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 2, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 3, "start": 0.0, "end": 100.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 4, "start": 0.0, "end": 100.0, "step": 5.0 }
            ]
        },
        {
            "elements": 
            [ 
                { "style": 1, "blendShapeIndex": 1, "start": 0.0, "end": 100.0, "step": 2.0 },
                { "style": 1, "blendShapeIndex": 2, "start": 0.0, "end": 0.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 3, "start": 0.0, "end": 100.0, "step": 100.0 },
                { "style": 1, "blendShapeIndex": 4, "start": 0.0, "end": 100.0, "step": 100 }
            ]
        }
    ]
}

Each set of elemets is a Blend Shape Sequence (triggered using LALT+#). The sequence can set one or more blend shapes. In this case, all blend shapes are being set each time to ensure that the asset is in a correct state but that is not required. Each entry in the elements section has:

style = 1: Single (from start to end), 2: PingPong (from start to end to start), 3: Loop blendShapeIndex = The number of the actual blend shape (starting at 1)* start = The starting value of the blend shape (0 to 100) end = The ending value of the blend shape (0 to 100) step = The rate at which the value is changed**

* = With log set to "ultra", run a blend shape sequence to see the order of the blend shapes ** = Set step to 100 in order to set a value without transitioning from start to end *** = To be able blend shape sequence from 0 to 100 and 100 to 0, two blend shape sequences are needed. The Blend Shape Sequence is not a toggle.

Multi Slabs

Paste content with the following format using the Multi Slab Paste:

[
	{
		"position": {"x": 0, "y": 0, "z": 0},
		"code": "H4s...QkIgLpAQAAA=="
	}
	,	
	{
		"position": {"x": 20, "y": 20, "z": 20},
		"code": "H4s...TJVTAOAAA"
	}
]

Note: Code above has been abridged for documentation purpose. Note that code should not include the 3 starting and/or ending apostrophes.

Changelog

1.9.6: Added missing dependency for RadialUI
1.9.5: Bug fix for Multi-Slab paste functionality
1.9.4: Added support to trigger (rigged) animation by name instead of index 
1.9.3: Added work-around implementation of auras. 
1.9.2: Catch AssetLoader exceptions
1.9.1: Partial fix for LOS issues
1.9.0: Re-implemented varaiants. If a mini has variants they will be added as morphs. 
1.8.1: Fix bug with custom multi material assets hiding 
1.8.0: Fix of Cyberpunk Update
1.8.0: Improved GetBaseLoader and GetAssetLoader functions to work with more different assets
1.7.0: Replaced Preliminary Blend Shape functionality with Blend Shape Sequencer
1.6.0: Preliminary Blend Shape functionality
1.6.0: Fix Height Bat hide for Shiv Transparency Trick content
1.5.0: Shiv Transparency Trick content is hidden by hide/reveal, hight bar and hide volumes.
1.4.0: Kind Effect works exactly like Creature. Use the Shiv Transparency Trick to add transparency to minis.
1.3.0: Unified on-load and on-demand code to handle shaders the same way.
1.2.0: Reworked shader setting code to fix "already loaded bug" issue.
1.1.0: Improved modifier key detection
1.1.0: Added more "already loaded" protection
1.1.0: Bug fix with prefab property
1.0.1: Bug fix guess for "already loaded" issue
1.0.1: Bug fix for laggy effects
1.0.1: Bug fix for older registrations without PREFAB key
1.0.0: Supports partial implemntation of Multi Slabs. As of now, Multi-Slabs don't respect the Height Bar. 
1.0.0: Supports Animations and Sound.
1.0.0: Supports Effects including hiding effects by Hide function and Height Bar.
1.0.0: Initial release.

Limitations

Currently the aura re-implementation is a bit of a hack. Since there is an issue with spawning new creatures from code, this implementation uses the library and performs an auto mouse click to immediately drop an instance of the library selection after which it switches out of drop mode and attaches the dropped mini to the selected mini. This sometimes leads to the aura not being dropped if the simulated mouse button is not processed correctly. You can either click manually to drop an instance or right click to abort and do it again.

Notes

  1. Kind Effect is still a legal kind. While it does the same as Kind Creature, it is being supported for backwards compatibility and for possible differences in the future.

  2. Blend Shape speed uses Update cycles as opposed to actual time and thus sequences may be faster or slower depending on CPU. Currently there is no compensation for this. In future version a configurable parameter will be added to adjust sequencing speed.

Shoutout to Hollofoxes Patreons recognising their mighty contribution to his caffeine addiction:

Also checkout LordAshes donation page

Available versions

Please note that the install buttons only work if you have compatible client software installed, such as the Thunderstore Mod Manager. Otherwise use the zip download links instead.

Upload date Version number Downloads Download link  
2022-11-13 1.9.6 596 Version 1.9.6 Install
2022-11-11 1.9.5 165 Version 1.9.5 Install
2022-11-11 1.9.4 44 Version 1.9.4 Install
2022-10-24 1.9.3 646 Version 1.9.3 Install
2022-10-1 1.9.2 663 Version 1.9.2 Install
2022-10-1 1.9.1 45 Version 1.9.1 Install
2022-9-23 1.9.0 414 Version 1.9.0 Install
2022-9-4 1.8.1 680 Version 1.8.1 Install
2022-8-22 1.8.0 565 Version 1.8.0 Install
2022-7-20 1.7.0 1280 Version 1.7.0 Install
2022-7-18 1.6.0 214 Version 1.6.0 Install
2022-7-17 1.5.0 154 Version 1.5.0 Install
2022-7-16 1.4.0 88 Version 1.4.0 Install
2022-7-14 1.3.0 252 Version 1.3.0 Install
2022-7-10 1.2.0 313 Version 1.2.0 Install
2022-6-27 1.1.0 708 Version 1.1.0 Install
2022-6-23 1.0.1 342 Version 1.0.1 Install
2022-6-22 1.0.0 92 Version 1.0.0 Install