Hey! Big fan of the plugin — really appreciate the flexibility it gives for custom animations.
I ran into a few bugs while setting up a 9-frame, 8-directional walk/run animation ([f9][d8] tag), wanted to pass them along in case they're useful:
1. maxPattern() off-by-one (~line 3174)
return ++frames; increments the frame count read from the [f<n>] tag before returning it, so a 9-frame sheet reports 10 frames. Should just be return frames;
2. pattern() bounce-back logic breaks non-3-frame animations (~line 3183)
return this._pattern < (frames - 1) ? this._pattern : 1; is the vanilla 3-frame bounce-back logic, but it causes the last frame of any custom-length animation to be skipped and frame 1 to play twice per loop instead. For looping animations with a custom frame count, this should just be return this._pattern;
3. Wrong direction flashes for one frame on walk↔dash transition (~line 2630, setImage)
When swapping poses, _characterIndex gets reset to the pose's base index, but update8DirIndex() isn't called afterward to re-sync it with the current facing direction. Adding <code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]" <this.update8dirindex();<="" code=""> right after the >code class="bg-text-200/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]">setImage.call(...)</code> line fixes it.
All three only show up together when using non-Big-Character sheets with both a non-3-frame count and 8-direction support, which is probably why they hadn't surfaced before. Happy to share a more detailed write-up (repro steps, console logs, before/after diffs) if it'd help — just let me know! Thanks again for the plugin, it's been great to work with otherwise.