Skip to content

Conversation

@KoloInDaCrib
Copy link
Contributor

@KoloInDaCrib KoloInDaCrib commented Oct 28, 2025

Linked Issues

True... or False... call it.

Description

Characters had a very weird implementation of animation priority. Singing was set to have the highest priority, despite not even being set to ignore other animations, overriding any other animation that may play instead. It was a mess.
This PR introduces a json-configurable animation priority system, which should hopefully make the animations a lot more consistent. The new system supports adding asterisks to animations, in case multiple animations should have the same priority. Any animation that isn't in the configurable array assumes the index of -1 and therefore has the highest priority. The default animation priority queue is ["sing*", "idle"] or ["sing*", "dance*"], meaning that sing and miss animations should happen before the idling animation(s).

Caution

This is a breaking change for mods using ignoreExclusionPref, as well as for the base game scripts using it! I've opened a PR in the assets repo (FunkinCrew/funkin.assets#295) that should be merged as well so that there's no script errors being thrown on the screen for every character initialization.

Screenshots/Videos

pogchamp.vs.hey.mp4

@github-actions github-actions bot added status: pending triage Awaiting review. size: medium A medium pull request with 100 or fewer changes. pr: haxe PR modifies game code. and removed size: medium A medium pull request with 100 or fewer changes. labels Oct 28, 2025
@EliteMasterEric
Copy link
Member

This implementation is kind of odd, and doesn't work with other types of sprites.

I was imagining that the playAnimation function, instead of having a force argument, would have a numeric priority with a default value, with that value determining whether one animation can override another.

@AbnormalPoof AbnormalPoof added size: medium A medium pull request with 100 or fewer changes. type: enhancement Involves an enhancement or new feature. topic: breaking change Introduces a change that is not compatible with older versions. Existing code may need revision. labels Oct 28, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

pr: haxe PR modifies game code. size: medium A medium pull request with 100 or fewer changes. status: pending triage Awaiting review. topic: breaking change Introduces a change that is not compatible with older versions. Existing code may need revision. type: enhancement Involves an enhancement or new feature.

Development

Successfully merging this pull request may close these issues.

3 participants