V2 Animify - An easy to use animation/dance gui

Preview

Visit the preview place to try it out.

Installation Guide

To begin, get the model here

Installation is straight forward. Place the model under StarterGui

How to start the service

Require the module from a starter player script.

local playerGui = game.Players.LocalPlayer.PlayerGui
local Animify = require(playerGui:WaitForChild('AnimationGui'):WaitForChild('AnimifyClient'))

By default, Animify will automatically load once required.

How to create animations and sections

To create a section, create a ModuleScript under the Sections folder.
The Name of this module script will be the name of the section.

To add animations to your new section, make a list like this

-- inside the module script
return {
    ['My Animation'] = 123456
}

The name of the animation and the ID of the animation (number).


Alternativley, you can create sections with the API using Controller.AddAnimation() (See API)
This is useful if you want to add a custom animation that may not be accessible by all players. Eg, a vip animation

:computer: API

Please note that the AnimifyClient module is referred to as “Controller” in this section.

Controller.AddAnimation(sectionName, animationTitle, animationId)

Adds an animation to the GUI under a specified section.

  • Arguments:
    • sectionName: Name of the section to place the animation under. If no section exists, it will create one.
    • animationTitle: The display name of the animation.
    • animationId: The number ID used to load the animation.

Controller.Query(text)

Searches through button attributes for a section name and disables buttons that don’t match.

  • Arguments:
    • text: The string to search for in section names.

Controller.ToggleState()

Toggles the visibility of the main GUI and the side button.

Controller.OpenGui()

Opens the main GUI. Useful for custom open/close button implementations.

Controller.CloseGui()

Closes the main GUI.

Controller.Refresh()

Deletes all buttons in the GUI and creates new ones from the sections list.

Controller.EnableToggle()

Makes the default toggle button visible.

Controller.DisableToggle()

Hides the default toggle button, useful if you want to implement your own button.

Controller.Frame

Returns the MainFrame of the GUI.


:hammer_and_wrench: Configuration

The configs are located under “AnimifyClient” module, it’s called “Configuration”

Configuration.UsePlayerCharacter (bool)

Determines wether the gui will use dummies or the player character to preview animations
Set to true by default.’

:warning: If the player’s character is R6 then make sure you only add R6 animations. Same goes to R15. Other wise the animation won’t play.

Configuration.LoadOnRequire (bool)

If set to true, Animify will load when required (will yield thread until complete). If you disable this, you can use Controller.Refresh() to load the gui manually.

Configuration.DefaultAvatarType (string)

If Configuration.UsePlayerCharacter is set to false, the controller will load a template based off this setting. It can either be R6 or R15, if an invalid type is set. The controller will warn and not display your animations.

:warning: DefaultAvatarType must match Animations, If your animations are not the same type as the Config, they won’t play. Ex, Adding an R15 animation when the AnimationType is set to R6 won’t work.

Configuration.SectionsEnabled (bool)

Enables or disables the top section bar in the GUI.

Configuration.HideUiOnSelect (bool)

Determines whether the UI should automatically close after an animation is selected

Configuration.ToggleButton (bool)

The default toggle button visibility, Set this to false if you implement KeyBinds.

Configuration.ViewDistance (number)

Sets the distance from which the camera will focus on the avatar in the viewport.

Configuration.KeyBind (Enum.KeyCode)

Defines the keybind for toggling Animify. Set this to nil to disable keybinding entirely. Animify will throw a warning if the type is invalid.

17 Likes

In Animify’s description you never actually link the DevForum topic.

Other than that it looks like a nice resource.

Maybe provide a test place so we can test the built in animations without having to open Roblox Studio?

1 Like

Actually you have miss in Functions.
getting state function is not
animify.getState()
it was
animify.getGuiState()
when i took a look

1 Like

Animify V2

Thank you for your support with Animify V1! I’m excited to introduce Animify V2, which has been completely reworked with a new and improved API and a refreshed gui. You can download the module here. For details on the updated API, please refer to the api.

What’s New:

  • Improved API
  • Revamped GUI
  • Enhanced Configuration Options

Hello! Thank you for this improved version, However it seems that is not working for me.

I have the “AnimationGui” in StarterGui and im requring it on StarterPlayer

image
image

The next image is a Module script being required by a local script inside of StarterPlayer:

This is what it looks like in game:
image

Hey, thanks for using.
Could you send me the console?

The issue should be fixed now, get the model and let me know.

Unfortunatly, Its still happening.

image
Its yielding for the character, Warning only happens when the animfyclient is required

Edit: Issue is fixed, Your Waiting for the character without checking any folders in workspace, Going to add compability for this and send it to you so this doesnt happen again.

1 Like

Thanks for the update, I will credit you for it too.

Ok so, It actually still isnt working. No Errors No WaitForChilds.

This is the problem:
image

The WorldModel will cycle the idle animation, I updated and spoofed all the animations but its not doing anything.

I Strongly suggest releasing an uncopylocked place for this.

The preview place is uncopylocked. Are you sure the animations are in numbers and that you own them? Animify only supports R15 Btw

Oh that might be why lol, Ill work on getting it to support r6.
Also, the roblox model comes as a scrippt only. Make sure to put it in a ScreenGui.

Update, If the player is r6 everything works fine but if you use the players avatar instead of a default rig. The position the rig is facing will be wrong, otherwise its looking good.

Going to add r6 support soon

Thanks for bringing to notice. I will add support for R6.

Animify V2.2

  • Added support for R6 Default rigs
  • Some bug fixes

Sorry about this :sweat_smile: I keep saying im going to add something and you do it before me lol

To make up for this, Going to add random features which I WONT tell you about because I want to do it for you.

Edit: Reorganized MainFunctions, Going to add FastSignal for more performance for what im doing.
Might use fusion to spice things up

Edit2: Found Some bugs concerning “UsePlayerCharacter”. If the Player is r6 any animations regardless of emote or other system, will be bugged out and randomly stop.

Edit3: The reason this bug is happening is because your also cloning any scripts inside of the character which come from StarterCharacter scripts. Going to try to find a solution to this.

Edit4:This is kinda hard, The problem is we need the humanoid description of the character but we simply cant get that without cloning

Edit5: There is a solution but its not very convenient for plug n play

Edit6: Performance Optimizations here we go!

Edit7: Like 5 New Settings Added

Animify V2.3

  • Fixed Bug Where WorldModel Would Have Replicated Scripts From StarterCharacter (Therefore Causing Bugs)

  • Added Extra Settings

  • Cleaned Up Common Functions Into a Module

  • Added Option To Toggle Ui Using Key

  • Light Optimizations

Emotes.rbxm (60.6 KB)

Is there anyway I can utilize this with TopbarPlus v3? for the toggle button…

Yea!

Here are the steps:

  1. Make a Icon and use bindEvent:Selected() as a event callback.
  2. depending on the state, fire a bindable
  3. do bindable.OnInvoke:Connect(function()
  4. use the internal method to toggle the emote Ui