You are viewing a potentially older version of this package. View all versions.
LordAshes-OverheadNotesPlugin-1.0.0 icon

OverheadNotesPlugin

Allows adding both player text above and GM text to the side of a mini

Date uploaded 3 years ago
Version 1.0.0
Download link LordAshes-OverheadNotesPlugin-1.0.0.zip
Downloads 223
Dependency string LordAshes-OverheadNotesPlugin-1.0.0

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.5.1 icon
brcoding-SetInjectionFlagPlugin

Allows players to flag that mods are installed for BouncyRock.

Preferred version: 2.5.1
LordAshes-AssetDataPlugin-3.4.0 icon
LordAshes-AssetDataPlugin

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

Preferred version: 3.4.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
HolloFox_TS-RadialUIPlugin-2.6.0 icon
HolloFox_TS-RadialUIPlugin

This is a developer tool based package used to manage and configure Radial UI Menus.

Preferred version: 2.6.0

README

Overhead Notes Plugin

This unofficial TaleSpire plugin for adding text to minis and converted-props. Options are available for player visible text above the mini and GM only text beside the mini. A mini can have either or both.

This plugin replaces the GM Info Plugin and the States Plugin by using the streamlined architecture of GM Info Plugin 3.0.0 and combining it with the functionality of States Plugin also implemented using the streamlined architecture.

Change Log

1.0.0: Initial release

Install

Install using R2ModMan or similar.

Usage

Add Player Note

Press the shortcut key to activate the Player Note dialog or select the Player Note from the right click radial context menu. Enter the desired note. Commas get translated to new lines. The text will appear above the mini. If any of the keywords in the text matches the (optional) colorization file, the replacements will be processed. This typiclaly allows keywords to be colorized.

To erase a Player Note, open the Player Note dialog (same as above) and then press the Clear button.

Player Notes are visible to all players (and the GM).

Default: LCTRL+N

Add GM Note

Press the shortcut key to activate the GM Note dialog or select the GM Note from the right click radial context menu. Enter the desired note. Commas get translated to new lines. The text will appear beside the mini. If any of the keywords in the text matches the (optional) colorization file, the replacements will be processed. This typiclaly allows keywords to be colorized.

To erase a GM Note, open the Player Note dialog (same as above) and then press the Clear button.

GM Notes are visible to the GM only. Any player currently in the GM role will see these notes.

Default: LALT+N

Re-Apply Notes

Due to the way the streamline architecture handles board loads, this function should not be necessary. However, if the notes fail to show, you can try re-applying them with this function.

Default: RCTRL+N

Performance

On Startup

When a board loads, the assets are not immediately available. This means that when a board loads the plugin needs to try to figure out when all of the assets have properly loaded. This is basically a trial and error process. There are two configruations associated with this process. The issue is that if the plugin tries to hard, it will eat up all the CPU and TS will never actually be able to complete the board load (or it will take a very long time). If the plugin doesn't try hard enough then it will take a long time after the board load before all of the texts appear. The configurational parameters are:

Update Interval = The time that the plugin waits before trying to process texts. If it is unable to process at least one text then it will try again, to do the remained, after the same update interval. It will continue to try to process the board load texts at this interval until all have been processed. Setting this value too low means that the plugin is constantly trying and not leaving CPU to TS to actually process the board load. Setting this value too high means text will take a long time to load.

Update Throttle = This is the maximum number of text updates that the plugin performs per Update Interval. Setting this value high will process more text per udpate cycle but use more CPU. Setting this value too low will mean that it take a long time for text to be updated on board load.

On high performance devices, the Update Interval can be set low (e.g. 1 second) while the Update Throttle can be set high (e.g. 100).

On low performance devices, the Update Interval can be set high (e.g. 30 seconds) while the Update Throttle can be set low (e.g. 5).

On mid ranage performance, the user can play with the two settings to find a setting that works.

It should be noted that the board itself has a factor in this so you may need different settings for boards that have lots of minis with text as opposed to boards that have very few minis with text. So adjustment may be necessary based on the board for optimal performance.

During Play

The plugin only performs visual updates when necessary. While idle, the update loop does nothing but check for the keyboard triggers and for mouse movement.

When GM Info is added to an asset it is always fully refreshed.

When the GM/Player Mode changes, the visibility of all assets is updated.

When the mouse is dragged or when the keyboard is used, the rotation of assets is updated based on the update setting set in the configuration for the plugin. These settings are follows:

None = Text Blocks rotation (to face the screen) is not done. Selected = Text Blocks rotation (to face the screen) is done to the currently selected mini only. All = Text Blocks rotation (to face the screen) is done to all mini that have Text Blocks.

This setting can be further used to control performane. With on-demand updates only this plugin should run fairly smooth on most device but this configuration can be used to tweak performance. If you have a high performance device then set this option to "all". This will keep all Text Block rotated towards the screen at all times. If you have a medium performance device, try the "selected" option. This will lower the CPU requirement but at least keep the selected mini's Text Block facing the screen. If you have a low performance device then try the "none" setting. This will not rotate Text Block to face the screen but will use the least amount of CPU.

Appearance

The size and offset of the text can be configured in the configuration. If you have a smaller or larger screen the font size can be adjusted but then the offset per line will need to also be adjusted in order to make the text appear correctly. To properly calibrate these settings, do the following:

  1. Add a single line of text and see that it shows up just above the mini.
  2. Change the text to 5 or more lines and see if the the bottom of the text still shows up just above the mini.

If the text increases the gap between the mini and the text when more lines are added the per line offset setting needs to be made smaller. If the lines of go into the mini, the per line offset needs to be increased.

In addition there is a configuration for the font color and the background highlight. These use a 6 or 8 digit hex code (either RGB or RGBA) to specify the color. Please note that background highlight is not a true background color. It is applied using the functionality and is more of a highlight color that colorized both the background and the foreground text. To turn on the background highlight use a 8 digit value that has a non zero alpha value (e.g. 00000088). To turn the highlight off just use a zero value for the alpha value (e.g. 00000000).

Known Bugs

  1. Rotations on minis don't auto update until a mini is selected.
  2. Since the GM Notes are to the side, even though they rotate to face the screen, they can be hidden by the mini if the camera is rotated around the mini.
  3. If a mini fails to load on board load, the plugin will keep trying to apply the text boxes. Need to implement a give up and remove feature for bad assets.